@charset "UTF-8";
*, ::before, ::after{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
::backdrop{
  --tw-border-spacing-x: 0;
  --tw-border-spacing-y: 0;
  --tw-translate-x: 0;
  --tw-translate-y: 0;
  --tw-rotate: 0;
  --tw-skew-x: 0;
  --tw-skew-y: 0;
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  --tw-pan-x:  ;
  --tw-pan-y:  ;
  --tw-pinch-zoom:  ;
  --tw-scroll-snap-strictness: proximity;
  --tw-gradient-from-position:  ;
  --tw-gradient-via-position:  ;
  --tw-gradient-to-position:  ;
  --tw-ordinal:  ;
  --tw-slashed-zero:  ;
  --tw-numeric-figure:  ;
  --tw-numeric-spacing:  ;
  --tw-numeric-fraction:  ;
  --tw-ring-inset:  ;
  --tw-ring-offset-width: 0px;
  --tw-ring-offset-color: #fff;
  --tw-ring-color: rgb(59 130 246 / 0.5);
  --tw-ring-offset-shadow: 0 0 #0000;
  --tw-ring-shadow: 0 0 #0000;
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  --tw-blur:  ;
  --tw-brightness:  ;
  --tw-contrast:  ;
  --tw-grayscale:  ;
  --tw-hue-rotate:  ;
  --tw-invert:  ;
  --tw-saturate:  ;
  --tw-sepia:  ;
  --tw-drop-shadow:  ;
  --tw-backdrop-blur:  ;
  --tw-backdrop-brightness:  ;
  --tw-backdrop-contrast:  ;
  --tw-backdrop-grayscale:  ;
  --tw-backdrop-hue-rotate:  ;
  --tw-backdrop-invert:  ;
  --tw-backdrop-opacity:  ;
  --tw-backdrop-saturate:  ;
  --tw-backdrop-sepia:  ;
  --tw-contain-size:  ;
  --tw-contain-layout:  ;
  --tw-contain-paint:  ;
  --tw-contain-style:  ;
}
/*
! tailwindcss v3.4.12 | MIT License | https://tailwindcss.com
*/
/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/
*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}
::before,
::after {
  --tw-content: '';
}
/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/
html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}
/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/
body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}
/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/
hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}
/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/
abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}
/*
Remove the default font size and weight for headings.
*/
h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}
/*
Reset links to optimize for opt-in styling instead of opt-out.
*/
a {
  color: inherit;
  text-decoration: inherit;
}
/*
Add the correct font weight in Edge and Safari.
*/
b,
strong {
  font-weight: bolder;
}
/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}
/*
Add the correct font size in all browsers.
*/
small {
  font-size: 80%;
}
/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}
sub {
  bottom: -0.25em;
}
sup {
  top: -0.5em;
}
/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/
table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}
/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/
button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}
/*
Remove the inheritance of text transform in Edge and Firefox.
*/
button,
select {
  text-transform: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/
button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}
/*
Use the modern Firefox focus style for all focusable elements.
*/
:-moz-focusring {
  outline: auto;
}
/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/
:-moz-ui-invalid {
  box-shadow: none;
}
/*
Add the correct vertical alignment in Chrome and Firefox.
*/
progress {
  vertical-align: baseline;
}
/*
Correct the cursor style of increment and decrement buttons in Safari.
*/
::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}
/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/
[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}
/*
Remove the inner padding in Chrome and Safari on macOS.
*/
::-webkit-search-decoration {
  -webkit-appearance: none;
}
/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}
/*
Add the correct display in Chrome and Safari.
*/
summary {
  display: list-item;
}
/*
Removes the default spacing and border for appropriate elements.
*/
blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}
fieldset {
  margin: 0;
  padding: 0;
}
legend {
  padding: 0;
}
ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}
/*
Reset default styling for dialogs.
*/
dialog {
  padding: 0;
}
/*
Prevent resizing textareas horizontally by default.
*/
textarea {
  resize: vertical;
}
/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/
input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}
input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}
/*
Set the default cursor for buttons.
*/
button,
[role="button"] {
  cursor: pointer;
}
/*
Make sure disabled buttons don't get the pointer cursor.
*/
:disabled {
  cursor: default;
}
/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/
img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}
/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/
img,
video {
  max-width: 100%;
  height: auto;
}
/* Make elements with the HTML hidden attribute stay hidden by default */
[hidden] {
  display: none;
}
/*components*/
.\!container{
  width: 100% !important;
}
.container{
  width: 100%;
}
@media (min-width: 640px){
  .\!container{
    max-width: 640px !important;
  }
  .container{
    max-width: 640px;
  }
}
@media (min-width: 768px){
  .\!container{
    max-width: 768px !important;
  }
  .container{
    max-width: 768px;
  }
}
@media (min-width: 1024px){
  .\!container{
    max-width: 1024px !important;
  }
  .container{
    max-width: 1024px;
  }
}
@media (min-width: 1280px){
  .\!container{
    max-width: 1280px !important;
  }
  .container{
    max-width: 1280px;
  }
}
@media (min-width: 1536px){
  .\!container{
    max-width: 1536px !important;
  }
  .container{
    max-width: 1536px;
  }
}
/*utilities*/
.pointer-events-none{
  pointer-events: none;
}
.visible{
  visibility: visible;
}
.invisible{
  visibility: hidden;
}
.collapse{
  visibility: collapse;
}
.static{
  position: static;
}
.fixed{
  position: fixed;
}
.absolute{
  position: absolute;
}
.relative{
  position: relative;
}
.inset-0{
  inset: 0px;
}
.inset-y-0{
  top: 0px;
  bottom: 0px;
}
.bottom-10{
  bottom: 2.5rem;
}
.bottom-2{
  bottom: 0.5rem;
}
.end-1{
  inset-inline-end: 0.25rem;
}
.left-0{
  left: 0px;
}
.left-2{
  left: 0.5rem;
}
.left-3{
  left: 0.75rem;
}
.left-4{
  left: 1rem;
}
.left-8{
  left: 2rem;
}
.right-0{
  right: 0px;
}
.right-2{
  right: 0.5rem;
}
.right-4{
  right: 1rem;
}
.top-1\/2{
  top: 50%;
}
.top-10{
  top: 2.5rem;
}
.top-2{
  top: 0.5rem;
}
.top-3{
  top: 0.75rem;
}
.top-4{
  top: 1rem;
}
.z-10{
  z-index: 10;
}
.z-20{
  z-index: 20;
}
.z-50{
  z-index: 50;
}
.col-span-full{
  grid-column: 1 / -1;
}
.m-auto{
  margin: auto;
}
.mx-0{
  margin-left: 0px;
  margin-right: 0px;
}
.mx-2{
  margin-left: 0.5rem;
  margin-right: 0.5rem;
}
.mx-4{
  margin-left: 1rem;
  margin-right: 1rem;
}
.mx-auto{
  margin-left: auto;
  margin-right: auto;
}
.my-3{
  margin-top: 0.75rem;
  margin-bottom: 0.75rem;
}
.my-4{
  margin-top: 1rem;
  margin-bottom: 1rem;
}
.-mt-2{
  margin-top: -0.5rem;
}
.-mt-4{
  margin-top: -1rem;
}
.mb-0\.5{
  margin-bottom: 0.125rem;
}
.mb-1{
  margin-bottom: 0.25rem;
}
.mb-2{
  margin-bottom: 0.5rem;
}
.mb-3{
  margin-bottom: 0.75rem;
}
.mb-4{
  margin-bottom: 1rem;
}
.mb-6{
  margin-bottom: 1.5rem;
}
.mb-8{
  margin-bottom: 2rem;
}
.me-2{
  margin-inline-end: 0.5rem;
}
.ml-1{
  margin-left: 0.25rem;
}
.ml-10{
  margin-left: 2.5rem;
}
.ml-2{
  margin-left: 0.5rem;
}
.ml-3{
  margin-left: 0.75rem;
}
.ml-4{
  margin-left: 1rem;
}
.ml-6{
  margin-left: 1.5rem;
}
.ml-auto{
  margin-left: auto;
}
.mr-0{
  margin-right: 0px;
}
.mr-1{
  margin-right: 0.25rem;
}
.mr-2{
  margin-right: 0.5rem;
}
.mr-3{
  margin-right: 0.75rem;
}
.mr-4{
  margin-right: 1rem;
}
.mt-1{
  margin-top: 0.25rem;
}
.mt-1\.5{
  margin-top: 0.375rem;
}
.mt-2{
  margin-top: 0.5rem;
}
.mt-3{
  margin-top: 0.75rem;
}
.mt-4{
  margin-top: 1rem;
}
.mt-6{
  margin-top: 1.5rem;
}
.mt-8{
  margin-top: 2rem;
}
.line-clamp-2{
  overflow: hidden;
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.block{
  display: block;
}
.inline-block{
  display: inline-block;
}
.inline{
  display: inline;
}
.flex{
  display: flex;
}
.inline-flex{
  display: inline-flex;
}
.table{
  display: table;
}
.grid{
  display: grid;
}
.contents{
  display: contents;
}
.list-item{
  display: list-item;
}
.hidden{
  display: none;
}
.aspect-square{
  aspect-ratio: 1 / 1;
}
.size-6{
  width: 1.5rem;
  height: 1.5rem;
}
.h-0\.5{
  height: 0.125rem;
}
.h-10{
  height: 2.5rem;
}
.h-12{
  height: 3rem;
}
.h-16{
  height: 4rem;
}
.h-2{
  height: 0.5rem;
}
.h-2\.5{
  height: 0.625rem;
}
.h-24{
  height: 6rem;
}
.h-3{
  height: 0.75rem;
}
.h-3\.5{
  height: 0.875rem;
}
.h-4{
  height: 1rem;
}
.h-40{
  height: 10rem;
}
.h-5{
  height: 1.25rem;
}
.h-6{
  height: 1.5rem;
}
.h-8{
  height: 2rem;
}
.h-96{
  height: 24rem;
}
.h-auto{
  height: auto;
}
.h-full{
  height: 100%;
}
.h-screen{
  height: 100vh;
}
.max-h-32{
  max-height: 8rem;
}
.max-h-96{
  max-height: 24rem;
}
.max-h-\[1000px\]{
  max-height: 1000px;
}
.max-h-\[60vh\]{
  max-height: 60vh;
}
.max-h-\[80vh\]{
  max-height: 80vh;
}
.max-h-\[90vh\]{
  max-height: 90vh;
}
.max-h-\[calc\(100vh-1rem\)\]{
  max-height: calc(100vh - 1rem);
}
.max-h-\[calc\(100vh-200px\)\]{
  max-height: calc(100vh - 200px);
}
.max-h-\[calc\(100vh-4rem\)\]{
  max-height: calc(100vh - 4rem);
}
.min-h-\[100px\]{
  min-height: 100px;
}
.min-h-screen{
  min-height: 100vh;
}
.w-0\.5{
  width: 0.125rem;
}
.w-10{
  width: 2.5rem;
}
.w-12{
  width: 3rem;
}
.w-16{
  width: 4rem;
}
.w-2{
  width: 0.5rem;
}
.w-20{
  width: 5rem;
}
.w-24{
  width: 6rem;
}
.w-3{
  width: 0.75rem;
}
.w-3\.5{
  width: 0.875rem;
}
.w-32{
  width: 8rem;
}
.w-4{
  width: 1rem;
}
.w-48{
  width: 12rem;
}
.w-5{
  width: 1.25rem;
}
.w-56{
  width: 14rem;
}
.w-6{
  width: 1.5rem;
}
.w-8{
  width: 2rem;
}
.w-full{
  width: 100%;
}
.min-w-0{
  min-width: 0px;
}
.min-w-12{
  min-width: 3rem;
}
.max-w-2xl{
  max-width: 42rem;
}
.max-w-48{
  max-width: 12rem;
}
.max-w-4xl{
  max-width: 56rem;
}
.max-w-6xl{
  max-width: 72rem;
}
.max-w-7xl{
  max-width: 80rem;
}
.max-w-\[calc\(100vw-1rem\)\]{
  max-width: calc(100vw - 1rem);
}
.max-w-md{
  max-width: 28rem;
}
.max-w-xs{
  max-width: 20rem;
}
.flex-1{
  flex: 1 1 0%;
}
.flex-shrink{
  flex-shrink: 1;
}
.flex-shrink-0{
  flex-shrink: 0;
}
.shrink{
  flex-shrink: 1;
}
.flex-grow{
  flex-grow: 1;
}
.border-collapse{
  border-collapse: collapse;
}
.-translate-y-0\.5{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.-translate-y-1\/2{
  --tw-translate-y: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.translate-x-full{
  --tw-translate-x: 100%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.rotate-180{
  --tw-rotate: 180deg;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.transform{
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
@keyframes pulse{
  50%{
    opacity: .5;
  }
}
.animate-pulse{
  animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes spin{
  to{
    transform: rotate(360deg);
  }
}
.animate-spin{
  animation: spin 1s linear infinite;
}
.cursor-grab{
  cursor: grab;
}
.cursor-move{
  cursor: move;
}
.cursor-pointer{
  cursor: pointer;
}
.resize-none{
  resize: none;
}
.resize{
  resize: both;
}
.list-disc{
  list-style-type: disc;
}
.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));
}
.grid-cols-4{
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.flex-col{
  flex-direction: column;
}
.flex-wrap{
  flex-wrap: wrap;
}
.items-start{
  align-items: flex-start;
}
.items-end{
  align-items: flex-end;
}
.items-center{
  align-items: center;
}
.justify-start{
  justify-content: flex-start;
}
.justify-end{
  justify-content: flex-end;
}
.justify-center{
  justify-content: center;
}
.justify-between{
  justify-content: space-between;
}
.gap-1{
  gap: 0.25rem;
}
.gap-2{
  gap: 0.5rem;
}
.gap-3{
  gap: 0.75rem;
}
.gap-4{
  gap: 1rem;
}
.gap-6{
  gap: 1.5rem;
}
.space-x-1 > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-1\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.375rem * var(--tw-space-x-reverse));
  margin-left: calc(0.375rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-2 > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-3 > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.75rem * var(--tw-space-x-reverse));
  margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-4 > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(1rem * var(--tw-space-x-reverse));
  margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-x-6 > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(1.5rem * var(--tw-space-x-reverse));
  margin-left: calc(1.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.125rem * var(--tw-space-y-reverse));
}
.space-y-1 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}
.space-y-2 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}
.space-y-3 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}
.space-y-4 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.space-y-6 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}
.space-y-8 > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(2rem * var(--tw-space-y-reverse));
}
.divide-y > :not([hidden]) ~ :not([hidden]){
  --tw-divide-y-reverse: 0;
  border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
  border-bottom-width: calc(1px * var(--tw-divide-y-reverse));
}
.divide-gray-200 > :not([hidden]) ~ :not([hidden]){
  --tw-divide-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-divide-opacity));
}
.overflow-hidden{
  overflow: hidden;
}
.overflow-x-auto{
  overflow-x: auto;
}
.overflow-y-auto{
  overflow-y: auto;
}
.overflow-x-hidden{
  overflow-x: hidden;
}
.truncate{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.whitespace-nowrap{
  white-space: nowrap;
}
.whitespace-pre-wrap{
  white-space: pre-wrap;
}
.break-words{
  overflow-wrap: break-word;
}
.rounded{
  border-radius: 0.25rem;
}
.rounded-full{
  border-radius: 9999px;
}
.rounded-lg{
  border-radius: 0.5rem;
}
.rounded-md{
  border-radius: 0.375rem;
}
.rounded-xl{
  border-radius: 0.75rem;
}
.rounded-b-2xl{
  border-bottom-right-radius: 1rem;
  border-bottom-left-radius: 1rem;
}
.rounded-b-lg{
  border-bottom-right-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
.rounded-b-xl{
  border-bottom-right-radius: 0.75rem;
  border-bottom-left-radius: 0.75rem;
}
.rounded-l-lg{
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
.rounded-l-md{
  border-top-left-radius: 0.375rem;
  border-bottom-left-radius: 0.375rem;
}
.rounded-r-lg{
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}
.rounded-r-md{
  border-top-right-radius: 0.375rem;
  border-bottom-right-radius: 0.375rem;
}
.rounded-t-2xl{
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
}
.rounded-t-lg{
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
}
.rounded-t-xl{
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}
.border{
  border-width: 1px;
}
.border-0{
  border-width: 0px;
}
.border-2{
  border-width: 2px;
}
.border-b{
  border-bottom-width: 1px;
}
.border-b-2{
  border-bottom-width: 2px;
}
.border-l-2{
  border-left-width: 2px;
}
.border-l-4{
  border-left-width: 4px;
}
.border-r{
  border-right-width: 1px;
}
.border-t{
  border-top-width: 1px;
}
.border-dashed{
  border-style: dashed;
}
.border-blue-200{
  --tw-border-opacity: 1;
  border-color: rgb(191 219 254 / var(--tw-border-opacity));
}
.border-blue-300{
  --tw-border-opacity: 1;
  border-color: rgb(147 197 253 / var(--tw-border-opacity));
}
.border-blue-400{
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / var(--tw-border-opacity));
}
.border-blue-500{
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity));
}
.border-gray-100{
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity));
}
.border-gray-200{
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity));
}
.border-gray-300{
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
}
.border-gray-400{
  --tw-border-opacity: 1;
  border-color: rgb(156 163 175 / var(--tw-border-opacity));
}
.border-gray-500{
  --tw-border-opacity: 1;
  border-color: rgb(107 114 128 / var(--tw-border-opacity));
}
.border-gray-600{
  --tw-border-opacity: 1;
  border-color: rgb(75 85 99 / var(--tw-border-opacity));
}
.border-gray-700{
  --tw-border-opacity: 1;
  border-color: rgb(55 65 81 / var(--tw-border-opacity));
}
.border-green-200{
  --tw-border-opacity: 1;
  border-color: rgb(187 247 208 / var(--tw-border-opacity));
}
.border-green-300{
  --tw-border-opacity: 1;
  border-color: rgb(134 239 172 / var(--tw-border-opacity));
}
.border-green-400{
  --tw-border-opacity: 1;
  border-color: rgb(74 222 128 / var(--tw-border-opacity));
}
.border-green-500{
  --tw-border-opacity: 1;
  border-color: rgb(34 197 94 / var(--tw-border-opacity));
}
.border-orange-200{
  --tw-border-opacity: 1;
  border-color: rgb(254 215 170 / var(--tw-border-opacity));
}
.border-orange-500{
  --tw-border-opacity: 1;
  border-color: rgb(249 115 22 / var(--tw-border-opacity));
}
.border-purple-200{
  --tw-border-opacity: 1;
  border-color: rgb(233 213 255 / var(--tw-border-opacity));
}
.border-purple-500{
  --tw-border-opacity: 1;
  border-color: rgb(168 85 247 / var(--tw-border-opacity));
}
.border-red-200{
  --tw-border-opacity: 1;
  border-color: rgb(254 202 202 / var(--tw-border-opacity));
}
.border-red-300{
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity));
}
.border-red-500{
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity));
}
.border-teal-600{
  --tw-border-opacity: 1;
  border-color: rgb(13 148 136 / var(--tw-border-opacity));
}
.border-transparent{
  border-color: transparent;
}
.border-white{
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity));
}
.border-yellow-200{
  --tw-border-opacity: 1;
  border-color: rgb(254 240 138 / var(--tw-border-opacity));
}
.border-yellow-500{
  --tw-border-opacity: 1;
  border-color: rgb(234 179 8 / var(--tw-border-opacity));
}
.bg-black{
  --tw-bg-opacity: 1;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity));
}
.bg-black\/20{
  background-color: rgb(0 0 0 / 0.2);
}
.bg-black\/50{
  background-color: rgb(0 0 0 / 0.5);
}
.bg-blue-100{
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity));
}
.bg-blue-50{
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}
.bg-blue-500{
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
}
.bg-blue-600{
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity));
}
.bg-gray-100{
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}
.bg-gray-200{
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
.bg-gray-300{
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity));
}
.bg-gray-400{
  --tw-bg-opacity: 1;
  background-color: rgb(156 163 175 / var(--tw-bg-opacity));
}
.bg-gray-50{
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}
.bg-gray-500{
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity));
}
.bg-gray-600{
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity));
}
.bg-gray-800{
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity));
}
.bg-gray-900{
  --tw-bg-opacity: 1;
  background-color: rgb(17 24 39 / var(--tw-bg-opacity));
}
.bg-green-100{
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity));
}
.bg-green-300{
  --tw-bg-opacity: 1;
  background-color: rgb(134 239 172 / var(--tw-bg-opacity));
}
.bg-green-50{
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity));
}
.bg-green-500{
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity));
}
.bg-green-600{
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / var(--tw-bg-opacity));
}
.bg-green-800{
  --tw-bg-opacity: 1;
  background-color: rgb(22 101 52 / var(--tw-bg-opacity));
}
.bg-indigo-600{
  --tw-bg-opacity: 1;
  background-color: rgb(79 70 229 / var(--tw-bg-opacity));
}
.bg-orange-100{
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / var(--tw-bg-opacity));
}
.bg-orange-50{
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity));
}
.bg-orange-600{
  --tw-bg-opacity: 1;
  background-color: rgb(234 88 12 / var(--tw-bg-opacity));
}
.bg-purple-100{
  --tw-bg-opacity: 1;
  background-color: rgb(243 232 255 / var(--tw-bg-opacity));
}
.bg-purple-50{
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 255 / var(--tw-bg-opacity));
}
.bg-purple-500{
  --tw-bg-opacity: 1;
  background-color: rgb(168 85 247 / var(--tw-bg-opacity));
}
.bg-purple-600{
  --tw-bg-opacity: 1;
  background-color: rgb(147 51 234 / var(--tw-bg-opacity));
}
.bg-red-100{
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity));
}
.bg-red-400{
  --tw-bg-opacity: 1;
  background-color: rgb(248 113 113 / var(--tw-bg-opacity));
}
.bg-red-50{
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity));
}
.bg-red-500{
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity));
}
.bg-red-600{
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity));
}
.bg-red-800{
  --tw-bg-opacity: 1;
  background-color: rgb(153 27 27 / var(--tw-bg-opacity));
}
.bg-teal-600{
  --tw-bg-opacity: 1;
  background-color: rgb(13 148 136 / var(--tw-bg-opacity));
}
.bg-white{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}
.bg-white\/10{
  background-color: rgb(255 255 255 / 0.1);
}
.bg-white\/20{
  background-color: rgb(255 255 255 / 0.2);
}
.bg-white\/60{
  background-color: rgb(255 255 255 / 0.6);
}
.bg-yellow-100{
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity));
}
.bg-yellow-300{
  --tw-bg-opacity: 1;
  background-color: rgb(253 224 71 / var(--tw-bg-opacity));
}
.bg-yellow-50{
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity));
}
.bg-yellow-500{
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity));
}
.bg-yellow-600{
  --tw-bg-opacity: 1;
  background-color: rgb(202 138 4 / var(--tw-bg-opacity));
}
.bg-yellow-700{
  --tw-bg-opacity: 1;
  background-color: rgb(161 98 7 / var(--tw-bg-opacity));
}
.bg-yellow-800{
  --tw-bg-opacity: 1;
  background-color: rgb(133 77 14 / var(--tw-bg-opacity));
}
.bg-opacity-20{
  --tw-bg-opacity: 0.2;
}
.bg-opacity-30{
  --tw-bg-opacity: 0.3;
}
.bg-opacity-50{
  --tw-bg-opacity: 0.5;
}
.bg-opacity-90{
  --tw-bg-opacity: 0.9;
}
.bg-opacity-95{
  --tw-bg-opacity: 0.95;
}
.bg-gradient-to-br{
  background-image: linear-gradient(to bottom right, var(--tw-gradient-stops));
}
.bg-gradient-to-r{
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
}
.from-blue-50{
  --tw-gradient-from: #eff6ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-blue-600{
  --tw-gradient-from: #2563eb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-green-50{
  --tw-gradient-from: #f0fdf4 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(240 253 244 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-green-600{
  --tw-gradient-from: #16a34a var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(22 163 74 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-indigo-600{
  --tw-gradient-from: #4f46e5 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(79 70 229 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-orange-50{
  --tw-gradient-from: #fff7ed var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 247 237 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-orange-600{
  --tw-gradient-from: #ea580c var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(234 88 12 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-purple-50{
  --tw-gradient-from: #faf5ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(250 245 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-purple-600{
  --tw-gradient-from: #9333ea var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(147 51 234 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.from-red-50{
  --tw-gradient-from: #fef2f2 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(254 242 242 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
.via-white{
  --tw-gradient-to: rgb(255 255 255 / 0)  var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), #fff var(--tw-gradient-via-position), var(--tw-gradient-to);
}
.to-blue-700{
  --tw-gradient-to: #1d4ed8 var(--tw-gradient-to-position);
}
.to-emerald-50{
  --tw-gradient-to: #ecfdf5 var(--tw-gradient-to-position);
}
.to-emerald-600{
  --tw-gradient-to: #059669 var(--tw-gradient-to-position);
}
.to-green-700{
  --tw-gradient-to: #15803d var(--tw-gradient-to-position);
}
.to-indigo-50{
  --tw-gradient-to: #eef2ff var(--tw-gradient-to-position);
}
.to-pink-50{
  --tw-gradient-to: #fdf2f8 var(--tw-gradient-to-position);
}
.to-pink-600{
  --tw-gradient-to: #db2777 var(--tw-gradient-to-position);
}
.to-purple-50{
  --tw-gradient-to: #faf5ff var(--tw-gradient-to-position);
}
.to-purple-600{
  --tw-gradient-to: #9333ea var(--tw-gradient-to-position);
}
.to-red-100{
  --tw-gradient-to: #fee2e2 var(--tw-gradient-to-position);
}
.to-red-600{
  --tw-gradient-to: #dc2626 var(--tw-gradient-to-position);
}
.to-yellow-50{
  --tw-gradient-to: #fefce8 var(--tw-gradient-to-position);
}
.object-contain{
  -o-object-fit: contain;
     object-fit: contain;
}
.object-cover{
  -o-object-fit: cover;
     object-fit: cover;
}
.p-1{
  padding: 0.25rem;
}
.p-1\.5{
  padding: 0.375rem;
}
.p-2{
  padding: 0.5rem;
}
.p-20{
  padding: 5rem;
}
.p-3{
  padding: 0.75rem;
}
.p-4{
  padding: 1rem;
}
.p-6{
  padding: 1.5rem;
}
.p-8{
  padding: 2rem;
}
.px-1{
  padding-left: 0.25rem;
  padding-right: 0.25rem;
}
.px-2{
  padding-left: 0.5rem;
  padding-right: 0.5rem;
}
.px-2\.5{
  padding-left: 0.625rem;
  padding-right: 0.625rem;
}
.px-3{
  padding-left: 0.75rem;
  padding-right: 0.75rem;
}
.px-4{
  padding-left: 1rem;
  padding-right: 1rem;
}
.px-6{
  padding-left: 1.5rem;
  padding-right: 1.5rem;
}
.px-8{
  padding-left: 2rem;
  padding-right: 2rem;
}
.py-0\.5{
  padding-top: 0.125rem;
  padding-bottom: 0.125rem;
}
.py-1{
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
}
.py-1\.5{
  padding-top: 0.375rem;
  padding-bottom: 0.375rem;
}
.py-12{
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.py-2{
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
}
.py-2\.5{
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
}
.py-3{
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
}
.py-4{
  padding-top: 1rem;
  padding-bottom: 1rem;
}
.py-6{
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
}
.py-8{
  padding-top: 2rem;
  padding-bottom: 2rem;
}
.pb-1{
  padding-bottom: 0.25rem;
}
.pb-2{
  padding-bottom: 0.5rem;
}
.pb-3{
  padding-bottom: 0.75rem;
}
.pl-10{
  padding-left: 2.5rem;
}
.pl-3{
  padding-left: 0.75rem;
}
.pl-4{
  padding-left: 1rem;
}
.pl-5{
  padding-left: 1.25rem;
}
.pl-6{
  padding-left: 1.5rem;
}
.pr-2{
  padding-right: 0.5rem;
}
.pr-4{
  padding-right: 1rem;
}
.pt-1{
  padding-top: 0.25rem;
}
.pt-1\.5{
  padding-top: 0.375rem;
}
.pt-2{
  padding-top: 0.5rem;
}
.pt-4{
  padding-top: 1rem;
}
.pt-6{
  padding-top: 1.5rem;
}
.text-left{
  text-align: left;
}
.text-center{
  text-align: center;
}
.text-right{
  text-align: right;
}
.text-2xl{
  font-size: 1.5rem;
  line-height: 2rem;
}
.text-3xl{
  font-size: 1.875rem;
  line-height: 2.25rem;
}
.text-4xl{
  font-size: 2.25rem;
  line-height: 2.5rem;
}
.text-base{
  font-size: 1rem;
  line-height: 1.5rem;
}
.text-lg{
  font-size: 1.125rem;
  line-height: 1.75rem;
}
.text-sm{
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.text-xl{
  font-size: 1.25rem;
  line-height: 1.75rem;
}
.text-xs{
  font-size: 0.75rem;
  line-height: 1rem;
}
.font-bold{
  font-weight: 700;
}
.font-medium{
  font-weight: 500;
}
.font-semibold{
  font-weight: 600;
}
.lowercase{
  text-transform: lowercase;
}
.capitalize{
  text-transform: capitalize;
}
.italic{
  font-style: italic;
}
.ordinal{
  --tw-ordinal: ordinal;
  font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
}
.leading-relaxed{
  line-height: 1.625;
}
.text-black{
  --tw-text-opacity: 1;
  color: rgb(0 0 0 / var(--tw-text-opacity));
}
.text-blue-100{
  --tw-text-opacity: 1;
  color: rgb(219 234 254 / var(--tw-text-opacity));
}
.text-blue-400{
  --tw-text-opacity: 1;
  color: rgb(96 165 250 / var(--tw-text-opacity));
}
.text-blue-500{
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity));
}
.text-blue-600{
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity));
}
.text-blue-700{
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity));
}
.text-blue-800{
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity));
}
.text-gray-300{
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity));
}
.text-gray-400{
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity));
}
.text-gray-500{
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity));
}
.text-gray-600{
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
}
.text-gray-700{
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
}
.text-gray-800{
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}
.text-gray-900{
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity));
}
.text-green-100{
  --tw-text-opacity: 1;
  color: rgb(220 252 231 / var(--tw-text-opacity));
}
.text-green-400{
  --tw-text-opacity: 1;
  color: rgb(74 222 128 / var(--tw-text-opacity));
}
.text-green-500{
  --tw-text-opacity: 1;
  color: rgb(34 197 94 / var(--tw-text-opacity));
}
.text-green-600{
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity));
}
.text-green-700{
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity));
}
.text-green-800{
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity));
}
.text-indigo-600{
  --tw-text-opacity: 1;
  color: rgb(79 70 229 / var(--tw-text-opacity));
}
.text-orange-600{
  --tw-text-opacity: 1;
  color: rgb(234 88 12 / var(--tw-text-opacity));
}
.text-orange-700{
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / var(--tw-text-opacity));
}
.text-purple-100{
  --tw-text-opacity: 1;
  color: rgb(243 232 255 / var(--tw-text-opacity));
}
.text-purple-500{
  --tw-text-opacity: 1;
  color: rgb(168 85 247 / var(--tw-text-opacity));
}
.text-purple-600{
  --tw-text-opacity: 1;
  color: rgb(147 51 234 / var(--tw-text-opacity));
}
.text-purple-700{
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / var(--tw-text-opacity));
}
.text-purple-800{
  --tw-text-opacity: 1;
  color: rgb(107 33 168 / var(--tw-text-opacity));
}
.text-purple-900{
  --tw-text-opacity: 1;
  color: rgb(88 28 135 / var(--tw-text-opacity));
}
.text-red-400{
  --tw-text-opacity: 1;
  color: rgb(248 113 113 / var(--tw-text-opacity));
}
.text-red-500{
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity));
}
.text-red-600{
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity));
}
.text-red-700{
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity));
}
.text-red-800{
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity));
}
.text-teal-600{
  --tw-text-opacity: 1;
  color: rgb(13 148 136 / var(--tw-text-opacity));
}
.text-white{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}
.text-white\/80{
  color: rgb(255 255 255 / 0.8);
}
.text-yellow-500{
  --tw-text-opacity: 1;
  color: rgb(234 179 8 / var(--tw-text-opacity));
}
.text-yellow-600{
  --tw-text-opacity: 1;
  color: rgb(202 138 4 / var(--tw-text-opacity));
}
.text-yellow-700{
  --tw-text-opacity: 1;
  color: rgb(161 98 7 / var(--tw-text-opacity));
}
.text-yellow-800{
  --tw-text-opacity: 1;
  color: rgb(133 77 14 / var(--tw-text-opacity));
}
.underline{
  text-decoration-line: underline;
}
.overline{
  text-decoration-line: overline;
}
.opacity-0{
  opacity: 0;
}
.opacity-100{
  opacity: 1;
}
.opacity-50{
  opacity: 0.5;
}
.opacity-70{
  opacity: 0.7;
}
.opacity-75{
  opacity: 0.75;
}
.opacity-80{
  opacity: 0.8;
}
.shadow-2xl{
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-lg{
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-md{
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-sm{
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.shadow-xl{
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.blur{
  --tw-blur: blur(8px);
  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);
}
.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);
}
.backdrop-blur-sm{
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-all{
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-colors{
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-opacity{
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-shadow{
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.transition-transform{
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.duration-200{
  transition-duration: 200ms;
}
.duration-300{
  transition-duration: 300ms;
}
.ease-in-out{
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
.ease-out{
  transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
}
/*End*/
/* === BADGES NOUVEAUX FICHIERS === */
.file-new-badge{
  border-radius: 0.25rem;
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity));
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
  animation: pulse-new 2s infinite;
}

@keyframes pulse-new {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.8;
    transform: scale(1.05);
  }
}
/* Amélioration des badges existants */
.file-badge{
  border-radius: 0.25rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
  backdrop-filter: blur(4px);
}

.file-badge-public{
  background-color: rgb(34 197 94 / 0.9);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.file-badge-folder{
  background-color: rgb(59 130 246 / 0.9);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.file-badge-new{
  background-color: rgb(239 68 68 / 0.9);
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
  animation: pulse-new 2s infinite;
}

/* Styles pour les cartes avec nouveaux éléments */
.file-card.has-new-items{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity));
  --tw-ring-opacity: 0.5;
}

.folder-card.has-new-items{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: rgb(254 202 202 / var(--tw-ring-opacity));
  --tw-ring-opacity: 0.5;
}

/* Animation subtile pour attirer l'attention */
.new-item-indicator {
  position: relative;
}

.new-item-indicator::before {
  content: "";
  position: absolute;
  top: -2px;
  right: -2px;
  width: 8px;
  height: 8px;
  background: #ef4444;
  border-radius: 50%;
  animation: pulse-dot 2s infinite;
}

@keyframes pulse-dot {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.6;
    transform: scale(1.2);
  }
}
.flatpickr-calendar {
  background: transparent;
  opacity: 0;
  display: none;
  text-align: center;
  visibility: hidden;
  padding: 0;
  animation: none;
  direction: ltr;
  border: 0;
  font-size: 14px;
  line-height: 24px;
  border-radius: 5px;
  position: absolute;
  width: 307.875px;
  box-sizing: border-box;
  touch-action: manipulation;
  background: #fff;
  box-shadow: 1px 0 0 #e6e6e6, -1px 0 0 #e6e6e6, 0 1px 0 #e6e6e6, 0 -1px 0 #e6e6e6, 0 3px 13px rgba(0, 0, 0, 0.08);
}

.flatpickr-calendar.open, .flatpickr-calendar.inline {
  opacity: 1;
  max-height: 640px;
  visibility: visible;
}

.flatpickr-calendar.open {
  display: inline-block;
  z-index: 99999;
}

.flatpickr-calendar.animate.open {
  animation: fpFadeInDown 300ms cubic-bezier(0.23, 1, 0.32, 1);
}

.flatpickr-calendar.inline {
  display: block;
  position: relative;
  top: 2px;
}

.flatpickr-calendar.static {
  position: absolute;
  top: calc(100% + 2px);
}

.flatpickr-calendar.static.open {
  z-index: 999;
  display: block;
}

.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7) {
  box-shadow: none !important;
}

.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1) {
  box-shadow: -2px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
}

.flatpickr-calendar .hasWeeks .dayContainer, .flatpickr-calendar .hasTime .dayContainer {
  border-bottom: 0;
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

.flatpickr-calendar .hasWeeks .dayContainer {
  border-left: 0;
}

.flatpickr-calendar.hasTime .flatpickr-time {
  height: 40px;
  border-top: 1px solid #e6e6e6;
}

.flatpickr-calendar.noCalendar.hasTime .flatpickr-time {
  height: auto;
}

.flatpickr-calendar:before, .flatpickr-calendar:after {
  position: absolute;
  display: block;
  pointer-events: none;
  border: solid transparent;
  content: "";
  height: 0;
  width: 0;
  left: 22px;
}

.flatpickr-calendar.rightMost:before, .flatpickr-calendar.arrowRight:before, .flatpickr-calendar.rightMost:after, .flatpickr-calendar.arrowRight:after {
  left: auto;
  right: 22px;
}

.flatpickr-calendar.arrowCenter:before, .flatpickr-calendar.arrowCenter:after {
  left: 50%;
  right: 50%;
}

.flatpickr-calendar:before {
  border-width: 5px;
  margin: 0 -5px;
}

.flatpickr-calendar:after {
  border-width: 4px;
  margin: 0 -4px;
}

.flatpickr-calendar.arrowTop:before, .flatpickr-calendar.arrowTop:after {
  bottom: 100%;
}

.flatpickr-calendar.arrowTop:before {
  border-bottom-color: #e6e6e6;
}

.flatpickr-calendar.arrowTop:after {
  border-bottom-color: #fff;
}

.flatpickr-calendar.arrowBottom:before, .flatpickr-calendar.arrowBottom:after {
  top: 100%;
}

.flatpickr-calendar.arrowBottom:before {
  border-top-color: #e6e6e6;
}

.flatpickr-calendar.arrowBottom:after {
  border-top-color: #fff;
}

.flatpickr-calendar:focus {
  outline: 0;
}

.flatpickr-wrapper {
  position: relative;
  display: inline-block;
}

.flatpickr-months {
  display: flex;
}

.flatpickr-months .flatpickr-month {
  background: transparent;
  color: rgba(0, 0, 0, 0.9);
  fill: rgba(0, 0, 0, 0.9);
  height: 34px;
  line-height: 1;
  text-align: center;
  position: relative;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  overflow: hidden;
  flex: 1;
}

.flatpickr-months .flatpickr-prev-month, .flatpickr-months .flatpickr-next-month {
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  text-decoration: none;
  cursor: pointer;
  position: absolute;
  top: 0;
  height: 34px;
  padding: 10px;
  z-index: 3;
  color: rgba(0, 0, 0, 0.9);
  fill: rgba(0, 0, 0, 0.9);
}

.flatpickr-months .flatpickr-prev-month.flatpickr-disabled, .flatpickr-months .flatpickr-next-month.flatpickr-disabled {
  display: none;
}

.flatpickr-months .flatpickr-prev-month i, .flatpickr-months .flatpickr-next-month i {
  position: relative;
}

.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month, .flatpickr-months .flatpickr-next-month.flatpickr-prev-month { /*
/*rtl:begin:ignore*/
  left: 0;
} /*
/*rtl:begin:ignore*/
/*
      /*rtl:end:ignore*/
.flatpickr-months .flatpickr-prev-month.flatpickr-next-month, .flatpickr-months .flatpickr-next-month.flatpickr-next-month { /*
/*rtl:begin:ignore*/
  right: 0;
} /*
/*rtl:begin:ignore*/
/*
      /*rtl:end:ignore*/
.flatpickr-months .flatpickr-prev-month:hover, .flatpickr-months .flatpickr-next-month:hover {
  color: #959ea9;
}

.flatpickr-months .flatpickr-prev-month:hover svg, .flatpickr-months .flatpickr-next-month:hover svg {
  fill: #f64747;
}

.flatpickr-months .flatpickr-prev-month svg, .flatpickr-months .flatpickr-next-month svg {
  width: 14px;
  height: 14px;
}

.flatpickr-months .flatpickr-prev-month svg path, .flatpickr-months .flatpickr-next-month svg path {
  transition: fill 0.1s;
  fill: inherit;
}

.numInputWrapper {
  position: relative;
  height: auto;
}

.numInputWrapper input, .numInputWrapper span {
  display: inline-block;
}

.numInputWrapper input {
  width: 100%;
}

.numInputWrapper input::-ms-clear {
  display: none;
}

.numInputWrapper input::-webkit-outer-spin-button, .numInputWrapper input::-webkit-inner-spin-button {
  margin: 0;
  -webkit-appearance: none;
}

.numInputWrapper span {
  position: absolute;
  right: 0;
  width: 14px;
  padding: 0 4px 0 2px;
  height: 50%;
  line-height: 50%;
  opacity: 0;
  cursor: pointer;
  border: 1px solid rgba(57, 57, 57, 0.15);
  box-sizing: border-box;
}

.numInputWrapper span:hover {
  background: rgba(0, 0, 0, 0.1);
}

.numInputWrapper span:active {
  background: rgba(0, 0, 0, 0.2);
}

.numInputWrapper span:after {
  display: block;
  content: "";
  position: absolute;
}

.numInputWrapper span.arrowUp {
  top: 0;
  border-bottom: 0;
}

.numInputWrapper span.arrowUp:after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-bottom: 4px solid rgba(57, 57, 57, 0.6);
  top: 26%;
}

.numInputWrapper span.arrowDown {
  top: 50%;
}

.numInputWrapper span.arrowDown:after {
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 4px solid rgba(57, 57, 57, 0.6);
  top: 40%;
}

.numInputWrapper span svg {
  width: inherit;
  height: auto;
}

.numInputWrapper span svg path {
  fill: rgba(0, 0, 0, 0.5);
}

.numInputWrapper:hover {
  background: rgba(0, 0, 0, 0.05);
}

.numInputWrapper:hover span {
  opacity: 1;
}

.flatpickr-current-month {
  font-size: 135%;
  line-height: inherit;
  font-weight: 300;
  color: inherit;
  position: absolute;
  width: 75%;
  left: 12.5%;
  padding: 7.48px 0 0 0;
  line-height: 1;
  height: 34px;
  display: inline-block;
  text-align: center;
  transform: translate3d(0, 0, 0);
}

.flatpickr-current-month span.cur-month {
  font-family: inherit;
  font-weight: 700;
  color: inherit;
  display: inline-block;
  margin-left: 0.5ch;
  padding: 0;
}

.flatpickr-current-month span.cur-month:hover {
  background: rgba(0, 0, 0, 0.05);
}

.flatpickr-current-month .numInputWrapper {
  width: 6ch;
  width: 7ch\0 ;
  display: inline-block;
}

.flatpickr-current-month .numInputWrapper span.arrowUp:after {
  border-bottom-color: rgba(0, 0, 0, 0.9);
}

.flatpickr-current-month .numInputWrapper span.arrowDown:after {
  border-top-color: rgba(0, 0, 0, 0.9);
}

.flatpickr-current-month input.cur-year {
  background: transparent;
  box-sizing: border-box;
  color: inherit;
  cursor: text;
  padding: 0 0 0 0.5ch;
  margin: 0;
  display: inline-block;
  font-size: inherit;
  font-family: inherit;
  font-weight: 300;
  line-height: inherit;
  height: auto;
  border: 0;
  border-radius: 0;
  vertical-align: initial;
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
  appearance: textfield;
}

.flatpickr-current-month input.cur-year:focus {
  outline: 0;
}

.flatpickr-current-month input.cur-year[disabled], .flatpickr-current-month input.cur-year[disabled]:hover {
  font-size: 100%;
  color: rgba(0, 0, 0, 0.5);
  background: transparent;
  pointer-events: none;
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
  appearance: menulist;
  background: transparent;
  border: none;
  border-radius: 0;
  box-sizing: border-box;
  color: inherit;
  cursor: pointer;
  font-size: inherit;
  font-family: inherit;
  font-weight: 300;
  height: auto;
  line-height: inherit;
  margin: -1px 0 0 0;
  outline: none;
  padding: 0 0 0 0.5ch;
  position: relative;
  vertical-align: initial;
  -webkit-box-sizing: border-box;
  -webkit-appearance: menulist;
  -moz-appearance: menulist;
  width: auto;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:focus, .flatpickr-current-month .flatpickr-monthDropdown-months:active {
  outline: none;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
  background: rgba(0, 0, 0, 0.05);
}

.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month {
  background-color: transparent;
  outline: none;
  padding: 0;
}

.flatpickr-weekdays {
  background: transparent;
  text-align: center;
  overflow: hidden;
  width: 100%;
  display: flex;
  align-items: center;
  height: 28px;
}

.flatpickr-weekdays .flatpickr-weekdaycontainer {
  display: flex;
  flex: 1;
}

span.flatpickr-weekday {
  cursor: default;
  font-size: 90%;
  background: transparent;
  color: rgba(0, 0, 0, 0.54);
  line-height: 1;
  margin: 0;
  text-align: center;
  display: block;
  flex: 1;
  font-weight: bolder;
}

.dayContainer, .flatpickr-weeks {
  padding: 1px 0 0 0;
}

.flatpickr-days {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: flex-start;
  width: 307.875px;
}

.flatpickr-days:focus {
  outline: 0;
}

.dayContainer {
  padding: 0;
  outline: 0;
  text-align: left;
  width: 307.875px;
  min-width: 307.875px;
  max-width: 307.875px;
  box-sizing: border-box;
  display: inline-block;
  display: flex;
  flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  justify-content: space-around;
  transform: translate3d(0, 0, 0);
  opacity: 1;
}

.dayContainer + .dayContainer {
  box-shadow: -1px 0 0 #e6e6e6;
}

.flatpickr-day {
  background: none;
  border: 1px solid transparent;
  border-radius: 150px;
  box-sizing: border-box;
  color: #393939;
  cursor: pointer;
  font-weight: 400;
  width: 14.2857143%;
  flex-basis: 14.2857143%;
  max-width: 39px;
  height: 39px;
  line-height: 39px;
  margin: 0;
  display: inline-block;
  position: relative;
  justify-content: center;
  text-align: center;
}

.flatpickr-day.inRange, .flatpickr-day.prevMonthDay.inRange, .flatpickr-day.nextMonthDay.inRange, .flatpickr-day.today.inRange, .flatpickr-day.prevMonthDay.today.inRange, .flatpickr-day.nextMonthDay.today.inRange, .flatpickr-day:hover, .flatpickr-day.prevMonthDay:hover, .flatpickr-day.nextMonthDay:hover, .flatpickr-day:focus, .flatpickr-day.prevMonthDay:focus, .flatpickr-day.nextMonthDay:focus {
  cursor: pointer;
  outline: 0;
  background: #e6e6e6;
  border-color: #e6e6e6;
}

.flatpickr-day.today {
  border-color: #959ea9;
}

.flatpickr-day.today:hover, .flatpickr-day.today:focus {
  border-color: #959ea9;
  background: #959ea9;
  color: #fff;
}

.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected.inRange, .flatpickr-day.startRange.inRange, .flatpickr-day.endRange.inRange, .flatpickr-day.selected:focus, .flatpickr-day.startRange:focus, .flatpickr-day.endRange:focus, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover, .flatpickr-day.selected.prevMonthDay, .flatpickr-day.startRange.prevMonthDay, .flatpickr-day.endRange.prevMonthDay, .flatpickr-day.selected.nextMonthDay, .flatpickr-day.startRange.nextMonthDay, .flatpickr-day.endRange.nextMonthDay {
  background: #569ff7;
  box-shadow: none;
  color: #fff;
  border-color: #569ff7;
}

.flatpickr-day.selected.startRange, .flatpickr-day.startRange.startRange, .flatpickr-day.endRange.startRange {
  border-radius: 50px 0 0 50px;
}

.flatpickr-day.selected.endRange, .flatpickr-day.startRange.endRange, .flatpickr-day.endRange.endRange {
  border-radius: 0 50px 50px 0;
}

.flatpickr-day.selected.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-day.startRange.startRange + .endRange:not(:nth-child(7n+1)), .flatpickr-day.endRange.startRange + .endRange:not(:nth-child(7n+1)) {
  box-shadow: -10px 0 0 #569ff7;
}

.flatpickr-day.selected.startRange.endRange, .flatpickr-day.startRange.startRange.endRange, .flatpickr-day.endRange.startRange.endRange {
  border-radius: 50px;
}

.flatpickr-day.inRange {
  border-radius: 0;
  box-shadow: -5px 0 0 #e6e6e6, 5px 0 0 #e6e6e6;
}

.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover, .flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay, .flatpickr-day.notAllowed, .flatpickr-day.notAllowed.prevMonthDay, .flatpickr-day.notAllowed.nextMonthDay {
  color: rgba(57, 57, 57, 0.3);
  background: transparent;
  border-color: transparent;
  cursor: default;
}

.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover {
  cursor: not-allowed;
  color: rgba(57, 57, 57, 0.1);
}

.flatpickr-day.week.selected {
  border-radius: 0;
  box-shadow: -5px 0 0 #569ff7, 5px 0 0 #569ff7;
}

.flatpickr-day.hidden {
  visibility: hidden;
}

.rangeMode .flatpickr-day {
  margin-top: 1px;
}

.flatpickr-weekwrapper {
  float: left;
}

.flatpickr-weekwrapper .flatpickr-weeks {
  padding: 0 12px;
  box-shadow: 1px 0 0 #e6e6e6;
}

.flatpickr-weekwrapper .flatpickr-weekday {
  float: none;
  width: 100%;
  line-height: 28px;
}

.flatpickr-weekwrapper span.flatpickr-day, .flatpickr-weekwrapper span.flatpickr-day:hover {
  display: block;
  width: 100%;
  max-width: none;
  color: rgba(57, 57, 57, 0.3);
  background: transparent;
  cursor: default;
  border: none;
}

.flatpickr-innerContainer {
  display: block;
  display: flex;
  box-sizing: border-box;
  overflow: hidden;
}

.flatpickr-rContainer {
  display: inline-block;
  padding: 0;
  box-sizing: border-box;
}

.flatpickr-time {
  text-align: center;
  outline: 0;
  display: block;
  height: 0;
  line-height: 40px;
  max-height: 40px;
  box-sizing: border-box;
  overflow: hidden;
  display: flex;
}

.flatpickr-time:after {
  content: "";
  display: table;
  clear: both;
}

.flatpickr-time .numInputWrapper {
  flex: 1;
  width: 40%;
  height: 40px;
  float: left;
}

.flatpickr-time .numInputWrapper span.arrowUp:after {
  border-bottom-color: #393939;
}

.flatpickr-time .numInputWrapper span.arrowDown:after {
  border-top-color: #393939;
}

.flatpickr-time.hasSeconds .numInputWrapper {
  width: 26%;
}

.flatpickr-time.time24hr .numInputWrapper {
  width: 49%;
}

.flatpickr-time input {
  background: transparent;
  box-shadow: none;
  border: 0;
  border-radius: 0;
  text-align: center;
  margin: 0;
  padding: 0;
  height: inherit;
  line-height: inherit;
  color: #393939;
  font-size: 14px;
  position: relative;
  box-sizing: border-box;
  -webkit-appearance: textfield;
  -moz-appearance: textfield;
  appearance: textfield;
}

.flatpickr-time input.flatpickr-hour {
  font-weight: bold;
}

.flatpickr-time input.flatpickr-minute, .flatpickr-time input.flatpickr-second {
  font-weight: 400;
}

.flatpickr-time input:focus {
  outline: 0;
  border: 0;
}

.flatpickr-time .flatpickr-time-separator, .flatpickr-time .flatpickr-am-pm {
  height: inherit;
  float: left;
  line-height: inherit;
  color: #393939;
  font-weight: bold;
  width: 2%;
  -webkit-user-select: none;
  -moz-user-select: none;
  user-select: none;
  align-self: center;
}

.flatpickr-time .flatpickr-am-pm {
  outline: 0;
  width: 18%;
  cursor: pointer;
  text-align: center;
  font-weight: 400;
}

.flatpickr-time input:hover, .flatpickr-time .flatpickr-am-pm:hover, .flatpickr-time input:focus, .flatpickr-time .flatpickr-am-pm:focus {
  background: #eee;
}

.flatpickr-input[readonly] {
  cursor: pointer;
}
@keyframes fpFadeInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -20px, 0);
  }
  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}
.flatpickr-calendar {
  background-color: #f9fafb; /* bg-gray-50 */
  border-radius: 0.5rem; /* rounded-lg */
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); /* shadow-lg */
}

.flatpickr-day {
  border-radius: 0.25rem; /* rounded */
}

.flatpickr-day.selected, .flatpickr-day:hover {
  background-color: #3b82f6; /* bg-blue-500 */
  color: white;
}

.carousel-item{
  margin-left: auto;
  margin-right: auto;
  height: auto;
  width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

#event-panel .carousel-item {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#event-panel.show .carousel-item {
  transform: scale(1) translateY(0);
}

#recurring-options-panel .carousel-item {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#recurring-options-panel.show .carousel-item {
  transform: scale(1) translateY(0);
}

#message-panel .carousel-item {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}

#message-panel.show .carousel-item {
  transform: translateY(0);
}

.carousel-item {
  opacity: 0;
  transition: opacity 0.5s ease-in-out; /* Transition douce de l'opacité */
  position: absolute; /* Les éléments non actifs sont retirés du flux visuel */
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  visibility: hidden; /* Rendre l'élément invisible mais présent dans le DOM */
  pointer-events: none; /* Désactiver les interactions pour les éléments non actifs */
}

.carousel-item.active {
  opacity: 1;
  position: relative; /* L'élément actif devient visible dans le flux */
  visibility: visible; /* Rendre l'élément visible */
  pointer-events: auto; /* Activer les interactions pour l'élément actif */
}

/* Styles pour les interactions sociales */
.like-button:hover svg {
  transform: scale(1.1);
  transition: transform 0.2s ease;
}

.like-button.text-red-500 svg {
  animation: heartBeat 0.3s ease-in-out;
}

@keyframes heartBeat {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.2);
  }
  100% {
    transform: scale(1);
  }
}
.replies-section {
  animation: slideDown 0.3s ease-in-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    max-height: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    max-height: 500px;
    transform: translateY(0);
  }
}
.reply-input:focus {
  box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1);
}

.social-interaction-button {
  transition: all 0.2s ease;
}

.social-interaction-button:hover {
  transform: translateY(-1px);
}

/* Styles pour les boutons d'édition et suppression */
.message_edit_item, .message_delete_item {
  transition: all 0.2s ease;
}

.message_edit_item:hover {
  transform: scale(1.1);
  background-color: rgba(252, 211, 77, 0.1);
}

.message_delete_item:hover {
  transform: scale(1.1);
  background-color: rgba(248, 113, 113, 0.1);
}

/* Animations pour les interactions sociales */
.replies-section:not(.hidden) {
  animation: slideDown 0.3s ease-in-out;
}

/* Amélioration de l'affichage des boutons d'actions */
.flex.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

/* Design compact pour les messages */
.replies-container {
  max-height: 400px;
  overflow-y: auto;
}

.replies-container::-webkit-scrollbar {
  width: 3px;
}

.replies-container::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 3px;
}

.replies-container::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 3px;
}

.replies-container::-webkit-scrollbar-thumb:hover {
  background: #a8a8a8;
}

/* Amélioration de l'espacement pour design compact */
.message-item {
  transition: all 0.2s ease;
}

.message-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Styles pour les tooltips sociaux - Version simplifiée */
#social-tooltip {
  background-color: #1f2937 !important;
  color: white !important;
  border: 1px solid #374151 !important;
  border-radius: 8px !important;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05) !important;
  font-size: 12px !important;
  padding: 8px 12px !important;
  pointer-events: none !important;
  z-index: 9999 !important;
  position: fixed !important;
  transition: opacity 200ms ease-in-out !important;
}

/* Scrollbar pour les tooltips */
#social-tooltip .max-h-32::-webkit-scrollbar {
  width: 4px;
}

#social-tooltip .max-h-32::-webkit-scrollbar-track {
  background: rgba(55, 65, 81, 0.3);
  border-radius: 2px;
}

#social-tooltip .max-h-32::-webkit-scrollbar-thumb {
  background: rgba(156, 163, 175, 0.6);
  border-radius: 2px;
}

#social-tooltip .max-h-32::-webkit-scrollbar-thumb:hover {
  background: rgba(156, 163, 175, 0.8);
}

/* ===== OPTIMISATIONS MOBILE ET HARMONISATION ===== */
/* Variables CSS pour cohérence */
:root {
  --timeline-dot-size: 12px;
  --timeline-line-width: 2px;
  --mobile-padding: 12px;
  --desktop-padding: 24px;
  --border-radius-sm: 8px;
  --border-radius-md: 12px;
}

/* Optimisations globales mobile */
@media (max-width: 768px) {
  /* Réduction des marges globales */
  .container, .max-w-4xl, .max-w-6xl{
    margin-left: 0.5rem;
    margin-right: 0.5rem;
  }
  /* Calendrier mobile optimisé */
  #calendar{
    margin-left: 0px;
    margin-right: 0px;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
  }
  .fc-header-toolbar{
    flex-direction: column;
  }
  .fc-toolbar-chunk{
    display: flex;
    justify-content: center;
  }
.fc-toolbar-chunk.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.fc-toolbar-chunk.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .fc-toolbar-chunk.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .fc-toolbar-chunk {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .fc-toolbar-chunk:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .fc-toolbar-chunk:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}
  .fc-button-group .fc-button{
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
  }
  /* Timeline mobile optimisée */
  .timeline-container{
    padding-left: 1.5rem;
    padding-right: 0.5rem;
  }
  .timeline-item{
    margin-bottom: 1rem;
  }
}
/* Harmonisation Timeline - Messages & Événements */
.timeline-unified{
  position: relative;
}

.timeline-item-unified{
  position: relative;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: flex-start;
  padding-left: 2.5rem;
}

.timeline-item-unified.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.timeline-item-unified.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .timeline-item-unified.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .timeline-item-unified {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .timeline-item-unified:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .timeline-item-unified:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.timeline-item-unified::before {
  content: "";
  position: absolute;
  left: 0.625rem;
  top: 0.75rem;
  height: 0.75rem;
  width: 0.75rem;
  border-radius: 9999px;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity));
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.file-card .timeline-item-unified.inset-0::before {
  transition: opacity 0.2s ease;
}

@media (max-width: 640px) {
  .file-card > .timeline-item-unified:first-child::before {
    top: 4px;
    left: 4px;
    position: absolute;
    z-index: 20;
  }
}

/* Dots colorés par type */
.timeline-item-unified.message::before{
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
}

.timeline-item-unified.event::before{
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity));
}

.timeline-item-unified.reminder::before{
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity));
}

.timeline-item-unified.important::before{
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity));
}

/* Cards unifiées */
.timeline-card{
  width: 100%;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding: 1rem;
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
#event-modal .timeline-card {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}
@media (max-height: 700px) {
  #event-modal .timeline-card {
    max-height: calc(100vh - 1rem);
  }
}
@media (max-width: 640px) {
  #event-modal .timeline-card {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}
#event-panel .timeline-card {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#event-panel.show .timeline-card {
  transform: scale(1) translateY(0);
}
#recurring-options-panel .timeline-card {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#recurring-options-panel.show .timeline-card {
  transform: scale(1) translateY(0);
}
#message-panel .timeline-card {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}
#message-panel.show .timeline-card {
  transform: translateY(0);
}
@media (max-width: 640px) {
  #fileGalleryModal .flex.items-center.justify-between.timeline-card {
    flex-direction: column;
    gap: 1rem;
  }
}

.timeline-card:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* Headers unifiés */
.timeline-header{
  margin-bottom: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.timeline-header.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.timeline-header.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.items-center.timeline-header .flex.items-center:first-child {
  flex: 1;
}
.timeline-header.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.timeline-header.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.items-center.timeline-header .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .timeline-header.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.timeline-header.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.items-center.timeline-header.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .timeline-header {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .timeline-header:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .timeline-header:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.timeline-meta{
  display: flex;
  align-items: center;
}

.timeline-meta > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.timeline-meta{
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity));
}

.timeline-meta.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.timeline-meta.justify-between .flex.items-center:first-child {
  flex: 1;
}

.timeline-meta.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.timeline-meta.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .timeline-meta.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.timeline-meta.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .timeline-meta {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .timeline-meta:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .timeline-meta:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.timeline-person-badge{
  border-radius: 9999px;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

/* Actions unifiées */
.timeline-actions{
  display: flex;
  align-items: center;
}
.timeline-actions > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.timeline-actions{
  opacity: 0;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.timeline-actions.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.timeline-actions.justify-between .flex.items-center:first-child {
  flex: 1;
}
.timeline-actions.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.timeline-actions.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .timeline-actions.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.timeline-actions.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .timeline-actions {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .timeline-actions:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .timeline-actions:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}
.group:hover .timeline-actions{
  opacity: 1;
}

.timeline-action-btn{
  border-radius: 9999px;
  padding: 0.375rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.timeline-action-btn:hover{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.timeline-action-btn.edit{
  --tw-text-opacity: 1;
  color: rgb(234 179 8 / var(--tw-text-opacity));
}

.timeline-action-btn.edit:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity));
}

.timeline-action-btn.delete{
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity));
}

.like-button.timeline-action-btn.delete svg {
  animation: heartBeat 0.3s ease-in-out;
}

.view-indicator.timeline-action-btn.delete svg {
  animation: heartBeat 0.3s ease-in-out;
}

.timeline-action-btn.delete:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity));
}

/* Contenu unifié */
.timeline-content > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}

.timeline-badges{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.timeline-badges.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.timeline-badges.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .timeline-badges.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .timeline-badges {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .timeline-badges:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .timeline-badges:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.timeline-badge{
  border-radius: 0.5rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
}

.timeline-badge.medical{
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity));
}

.timeline-badge.mood{
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(133 77 14 / var(--tw-text-opacity));
}

.timeline-badge.other{
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

/* Interactions sociales optimisées */
.social-interactions{
  margin-top: 0.75rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity));
  padding-top: 0.75rem;
}
.flex.social-interactions.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.social-interactions.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .flex.social-interactions.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
}

.social-btn{
  display: flex;
  align-items: center;
}

.social-btn > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}

.social-btn{
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.social-btn.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.social-btn.justify-between .flex.items-center:first-child {
  flex: 1;
}

.social-btn.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.social-btn.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .social-btn.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.social-btn.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .social-btn {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .social-btn:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .social-btn:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.social-btn:hover{
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity));
}

.social-btn.active{
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity));
}

.like-button.social-btn.active svg {
  animation: heartBeat 0.3s ease-in-out;
}

.view-indicator.social-btn.active svg {
  animation: heartBeat 0.3s ease-in-out;
}

.social-btn svg{
  height: 0.875rem;
  width: 0.875rem;
}

/* Responsive pour interactions sociales */
@media (max-width: 640px) {
  .social-interactions{
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.5rem;
    text-align: center;
  }
  .social-btn{
    justify-content: center;
  }
}
/* Calendrier - Optimisations spécifiques */
.calendar-mobile-optimized{
  width: 100%;
  overflow: hidden;
}
#event-panel .calendar-mobile-optimized {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#event-panel.show .calendar-mobile-optimized {
  transform: scale(1) translateY(0);
}
#recurring-options-panel .calendar-mobile-optimized {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#recurring-options-panel.show .calendar-mobile-optimized {
  transform: scale(1) translateY(0);
}
#message-panel .calendar-mobile-optimized {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}
#message-panel.show .calendar-mobile-optimized {
  transform: translateY(0);
}

@media (max-width: 768px) {
  /* FullCalendar mobile fixes */
  .fc-view-harness{
    overflow-x: auto;
  }
  .fc-col-header-cell{
    font-size: 0.75rem;
    line-height: 1rem;
  }
  .fc-daygrid-event{
    padding-left: 0.25rem;
    padding-right: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
  }
  .fc-event-title{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .fc-more-link{
    font-size: 0.75rem;
    line-height: 1rem;
  }
  /* Modal événement mobile */
  .event-modal-mobile{
    margin-left: 0.5rem;
    margin-right: 0.5rem;
    max-width: none;
  }
  .event-form-mobile .form-group{
    margin-bottom: 0.75rem;
  }
  .event-form-mobile label{
    margin-bottom: 0.25rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 500;
  }
  .event-form-mobile input,
  .event-form-mobile select,
  .event-form-mobile textarea{
    padding: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}
/* Médias - Galerie optimisée */
.media-gallery{
  display: grid;
  gap: 0.5rem;
  grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
}

@media (min-width: 640px) {
  .media-gallery {
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  }
}
@media (min-width: 1024px) {
  .media-gallery {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  }
}
.media-item{
  aspect-ratio: 1 / 1;
  cursor: pointer;
  overflow: hidden;
  border-radius: 0.5rem;
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.media-item:hover{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

/* Formulaires - Style unifié */
.form-unified > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}

.form-group-unified > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}

.form-label-unified{
  display: block;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
}

.form-input-unified{
  width: 100%;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

#event-panel .form-input-unified {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#event-panel.show .form-input-unified {
  transform: scale(1) translateY(0);
}

#recurring-options-panel .form-input-unified {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#recurring-options-panel.show .form-input-unified {
  transform: scale(1) translateY(0);
}

#message-panel .form-input-unified {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}

#message-panel.show .form-input-unified {
  transform: translateY(0);
}

.form-input-unified:focus{
  border-color: transparent;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}

.form-select-unified{
  width: 100%;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

#event-modal .form-select-unified {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .form-select-unified {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .form-select-unified {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

#event-panel .form-select-unified {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#event-panel.show .form-select-unified {
  transform: scale(1) translateY(0);
}

#recurring-options-panel .form-select-unified {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#recurring-options-panel.show .form-select-unified {
  transform: scale(1) translateY(0);
}

#message-panel .form-select-unified {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}

#message-panel.show .form-select-unified {
  transform: translateY(0);
}

.form-select-unified:focus{
  border-color: transparent;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}

.form-textarea-unified{
  width: 100%;
  resize: none;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

#event-panel .form-textarea-unified {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#event-panel.show .form-textarea-unified {
  transform: scale(1) translateY(0);
}

#recurring-options-panel .form-textarea-unified {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#recurring-options-panel.show .form-textarea-unified {
  transform: scale(1) translateY(0);
}

#message-panel .form-textarea-unified {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}

#message-panel.show .form-textarea-unified {
  transform: translateY(0);
}

.form-textarea-unified:focus{
  border-color: transparent;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}

/* Boutons - Style unifié */
.btn-unified{
  border-radius: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.btn-unified:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
}

.btn-primary-unified{
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.btn-primary-unified:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity));
}

.btn-primary-unified:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}

.btn-secondary-unified{
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

.btn-secondary-unified:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity));
}

.btn-secondary-unified:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity));
}

.btn-danger-unified{
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.btn-danger-unified:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity));
}

.btn-danger-unified:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity));
}

/* États de chargement */
.loading-spinner{
  height: 1rem;
  width: 1rem;
}
@keyframes spin{
  to{
    transform: rotate(360deg);
  }
}
.loading-spinner{
  animation: spin 1s linear infinite;
  border-radius: 9999px;
  border-width: 2px;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  --tw-border-opacity: 1;
  border-top-color: rgb(59 130 246 / var(--tw-border-opacity));
}

/* Animations améliorées */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.animate-fadeInUp {
  animation: fadeInUp 0.3s ease-out;
}

/* Utilitaires responsive */
.mobile-hidden{
  display: none;
}
.flatpickr-day.mobile-hidden {
  visibility: hidden;
}
.replies-section:not(.mobile-hidden) {
  animation: slideDown 0.3s ease-in-out;
}
.tab-pane.mobile-hidden{
  --tw-translate-y: 0.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 0;
}
.tab-pane:not(.mobile-hidden){
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 1;
}
#fileGalleryModal:not(.mobile-hidden) {
  animation: galleryFadeIn 0.2s ease-out;
}

@media (min-width: 768px) {
  .mobile-hidden{
    display: block;
  }
}
.mobile-only{
  display: block;
}

@media (min-width: 768px) {
  .mobile-only{
    display: none;
  }

.flatpickr-day.mobile-only {
  visibility: hidden;
}
.replies-section:not(.mobile-only) {
  animation: slideDown 0.3s ease-in-out;
}

.tab-pane.mobile-only{
    --tw-translate-y: 0.5rem;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    opacity: 0;
  }

.tab-pane:not(.mobile-only){
    --tw-translate-y: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    opacity: 1;
  }
#fileGalleryModal:not(.mobile-only) {
  animation: galleryFadeIn 0.2s ease-out;
}
}
#mobile-filters-content {
  transition: all 0.3s ease-in-out;
}

#mobile-filters-chevron {
  transition: transform 0.2s ease-in-out;
}

#mobile-filters-toggle {
  transition: all 0.2s ease;
}

#mobile-filters-toggle:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}

#mobile-filters-toggle:active{
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}

#active-filters-count {
  animation: fadeInScale 0.2s ease-out;
}

@keyframes fadeInScale {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* ===== CALENDRIER - STYLES MIGRÉS DEPUIS LE TEMPLATE ===== */
/* Styles généraux du calendrier */
.calendar-modern {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

/* Optimisations mobiles pour FullCalendar */
@media (max-width: 768px) {
  /* Vue semaine mobile - colonnes plus étroites */
  .fc-timegrid-col-frame {
    min-width: 40px !important;
  }
  /* En-têtes de jour plus compacts */
  .fc-col-header-cell {
    padding: 4px 2px !important;
    font-size: 12px !important;
    font-weight: 600;
  }
  /* Labels d'heures plus petits */
  .fc-timegrid-slot-label {
    font-size: 11px !important;
    padding-right: 6px !important;
    width: 35px !important;
  }
  /* Événements plus lisibles */
  .fc-event {
    font-size: 11px !important;
    padding: 2px 4px !important;
    border-radius: 3px !important;
  }
  .fc-event-title {
    font-weight: 500;
    line-height: 1.2;
  }
  /* Toolbar plus compact */
  .fc-toolbar {
    margin-bottom: 2px !important;
    gap: 8px;
  }
  .fc-toolbar-chunk {
    display: flex;
    align-items: center;
  }
  /* Boutons plus petits */
  .fc-button {
    padding: 6px 10px !important;
    font-size: 12px !important;
    border-radius: 6px !important;
  }
  /* Zone des heures plus étroite */
  .fc-timegrid-axis {
    width: 35px !important;
  }
  /* Grille plus fine */
  .fc-timegrid-slot {
    height: 25px !important;
  }
  /* Améliorer les all-day events */
  .fc-timegrid-divider {
    padding: 2px 0 !important;
  }
}
@media (max-width: 400px) {
  /* Pour très petits écrans */
  .fc-col-header-cell {
    font-size: 10px !important;
    padding: 2px 1px !important;
  }
  .fc-timegrid-slot-label {
    font-size: 9px !important;
    width: 30px !important;
  }
  .fc-event {
    font-size: 10px !important;
    padding: 1px 2px !important;
  }
  .fc-button {
    padding: 4px 8px !important;
    font-size: 11px !important;
  }
  .fc-timegrid-col-frame {
    min-width: 35px !important;
  }
}
/* Header du calendrier */
.fc .fc-toolbar {
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  gap: 0.75rem;
}

.fc .fc-toolbar-chunk {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.fc .fc-button-primary {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border: none;
  border-radius: 0.75rem;
  padding: 0.5rem 1rem;
  font-weight: 600;
  font-size: 0.875rem;
  transition: all 0.2s ease;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.fc .fc-button-primary:hover {
  background: linear-gradient(135deg, #5a67d8 0%, #6b46c1 100%);
  transform: translateY(-1px);
  box-shadow: 0 8px 15px -3px rgba(0, 0, 0, 0.2);
}

.fc .fc-button-primary:disabled {
  background: #e5e7eb;
  color: #9ca3af;
  transform: none;
  box-shadow: none;
}

.fc .fc-button-active {
  background: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%) !important;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
}

.fc .fc-toolbar-title {
  font-size: 1.75rem;
  font-weight: 700;
  color: #1f2937;
  margin: 0;
}

/* Grid du calendrier */
.fc-theme-standard .fc-scrollgrid {
  border: none;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
}

.fc .fc-scrollgrid-section > * {
  border: none;
}

.fc .fc-col-header {
  background: linear-gradient(135deg, #f8fafc 0%, #f1f5f9 100%);
  border-bottom: 2px solid #e2e8f0;
}

.fc .fc-col-header-cell {
  padding: 1rem 0.5rem;
  font-weight: 600;
  font-size: 0.875rem;
  color: #475569;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

/* Cellules du calendrier */
.fc .fc-daygrid-day {
  border: 1px solid #f1f5f9;
  transition: all 0.2s ease;
  position: relative;
}

.fc .fc-daygrid-day:hover {
  background-color: #f8fafc;
}

.fc .fc-daygrid-day.fc-day-today {
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%);
  border-color: #3b82f6;
}

.fc .fc-daygrid-day-number {
  padding: 0.75rem;
  font-weight: 600;
  font-size: 0.875rem;
  color: #374151;
}

.fc .fc-day-today .fc-daygrid-day-number {
  color: #1d4ed8;
  font-weight: 700;
}

/* Événements */
.fc .fc-event {
  border: none;
  border-radius: 0.5rem;
  padding: 0.25rem 0.5rem;
  font-size: 0.75rem;
  font-weight: 500;
  margin: 0.125rem;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  transition: all 0.2s ease;
  cursor: pointer;
}

.fc .fc-event:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.fc .fc-event-title {
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Vue semaine */
.fc .fc-timegrid-slot {
  height: 3rem;
  border-color: #f1f5f9;
}

.fc .fc-timegrid-slot-label {
  font-size: 0.75rem;
  color: #6b7280;
  font-weight: 500;
}

.fc .fc-timegrid-axis {
  background: #f8fafc;
}

/* Vue liste */
.fc .fc-list-event:hover {
  background-color: #f8fafc;
}

.fc .fc-list-event-dot {
  border-radius: 50%;
  width: 0.75rem;
  height: 0.75rem;
}

/* More link */
.fc .fc-more-link {
  color: #3b82f6;
  font-weight: 600;
  font-size: 0.75rem;
  padding: 0.25rem 0.5rem;
  border-radius: 0.375rem;
  background: #eff6ff;
  border: 1px solid #dbeafe;
  transition: all 0.2s ease;
}

.fc .fc-more-link:hover {
  background: #dbeafe;
  transform: scale(1.05);
}

/* Responsive */
@media (max-width: 768px) {
  .fc .fc-toolbar {
    flex-direction: row !important;
    gap: 0.25rem !important;
    margin-bottom: 0.5rem !important;
    align-items: center;
    justify-content: space-between;
    flex-wrap: nowrap;
  }
  .fc .fc-toolbar-chunk {
    display: flex;
    align-items: center;
    gap: 0.25rem !important;
    flex-shrink: 0;
  }
  /* Navigation buttons - plus compacts */
  .fc .fc-toolbar-chunk:first-child {
    order: 1;
    flex: 0 0 auto;
  }
  /* Title - au centre mais plus petit */
  .fc .fc-toolbar-chunk:nth-child(2) {
    order: 2;
    flex: 1;
    text-align: center;
    min-width: 0;
    padding: 0 0.5rem;
  }
  .fc .fc-toolbar-title {
    font-size: 1.1rem !important;
    font-weight: 600 !important;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin: 0 !important;
  }
  /* Boutons de vue - à droite */
  .fc .fc-toolbar-chunk:last-child {
    order: 3;
    flex: 0 0 auto;
  }
  .fc .fc-button {
    font-size: 0.625rem !important;
    padding: 0.25rem 0.375rem !important;
    border-radius: 0.375rem !important;
    min-height: 1.75rem;
    line-height: 1.2;
    font-weight: 500;
  }
  .fc .fc-button-group .fc-button {
    border-radius: 0 !important;
  }
  .fc .fc-button-group .fc-button:first-child {
    border-radius: 0.375rem 0 0 0.375rem !important;
  }
  .fc .fc-button-group .fc-button:last-child {
    border-radius: 0 0.375rem 0.375rem 0 !important;
  }
  /* Bouton "Aujourd'hui" séparé et plus petit */
  .fc .fc-today-button {
    font-size: 0.625rem !important;
    padding: 0.25rem 0.5rem !important;
    margin-right: 0.25rem !important;
  }
  .fc .fc-col-header-cell {
    padding: 0.5rem 0.125rem !important;
    font-size: 0.75rem;
  }
  .fc .fc-daygrid-day-number {
    padding: 0.375rem;
    font-size: 0.75rem;
  }
  .fc .fc-event {
    font-size: 0.625rem;
    padding: 0.125rem 0.25rem;
    margin: 0.0625rem;
  }
}
/* Optimisation pour très petits écrans */
@media (max-width: 480px) {
  .fc .fc-toolbar-title {
    font-size: 1rem !important;
  }
  .fc .fc-button {
    font-size: 0.5rem !important;
    padding: 0.2rem 0.3rem !important;
    min-height: 1.5rem;
  }
  .fc .fc-today-button {
    font-size: 0.5rem !important;
    padding: 0.2rem 0.4rem !important;
  }
  /* Cacher le texte des boutons de vue sur très petits écrans et garder seulement les icônes */
  .fc .fc-button .fc-icon {
    margin: 0 !important;
  }
}
/* Styles pour les boutons avec texte court sur mobile */
@media (max-width: 640px) {
  .fc .fc-dayGridMonth-button {
    font-size: 0.5rem !important;
  }
  .fc .fc-timeGridWeek-button {
    font-size: 0.5rem !important;
  }
  .fc .fc-listWeek-button {
    font-size: 0.5rem !important;
  }
}
/* Animation d'apparition */
.fc .fc-event {
  animation: fadeInUp 0.3s ease-out;
}

/* Sélection de date */
.fc .fc-highlight {
  background: linear-gradient(135deg, #ddd6fe 0%, #c7d2fe 100%);
  border-radius: 0.5rem;
  opacity: 0.8;
}

/* Modal responsive fixes */
#event-modal {
  position: fixed !important;
  z-index: 9999 !important;
}

#event-modal .bg-white {
  max-height: calc(100vh - 2rem) !important;
  overflow: hidden !important;
}

/* Assurer le scroll sur mobile */
@media (max-height: 700px) {
  #event-modal .bg-white {
    max-height: calc(100vh - 1rem) !important;
  }
  #event-modal .flex-1 {
    max-height: calc(100vh - 200px) !important;
    overflow-y: auto !important;
  }
}
/* Fix pour les petits écrans */
@media (max-width: 640px) {
  #event-modal .bg-white {
    margin: 0.5rem !important;
    max-width: calc(100vw - 1rem) !important;
  }
}
/* État "journée entière" activé */
#event-all-day:checked + * {
  background: linear-gradient(135deg, #dbeafe 0%, #bfdbfe 100%) !important;
  border-color: #3b82f6 !important;
}

/* Animation des inputs de date quand journée entière */
.date-input-transition {
  transition: all 0.3s ease;
}

/* Indicateur visuel pour les champs date vs datetime */
input[type=date] {
  background-image: linear-gradient(45deg, transparent 25%, rgba(59, 130, 246, 0.1) 25%, rgba(59, 130, 246, 0.1) 50%, transparent 50%, transparent 75%, rgba(59, 130, 246, 0.1) 75%);
  background-size: 8px 8px;
}

/* ===== COMPOSANTS COMMUNS PAGES MESSAGES & CALENDAR ===== */
/* Header unifié avec gradient */
.page-header-unified{
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #2563eb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #9333ea var(--tw-gradient-to-position);
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.page-header-content{
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 2rem;
  padding-bottom: 2rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.page-header-main{
  display: flex;
  flex-direction: column;
}

.page-header-main.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.page-header-main.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .page-header-main.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .page-header-main {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .page-header-main:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .page-header-main:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

@media (min-width: 1024px){
  .page-header-main{
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}

.page-header-icon-section{
  display: flex;
  align-items: center;
}

.page-header-icon-section > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(1rem * var(--tw-space-x-reverse));
  margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}

.page-header-icon-section.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.page-header-icon-section.justify-between .flex.items-center:first-child {
  flex: 1;
}

.page-header-icon-section.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.page-header-icon-section.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .page-header-icon-section.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.page-header-icon-section.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .page-header-icon-section {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .page-header-icon-section:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .page-header-icon-section:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.page-header-icon{
  border-radius: 0.75rem;
  background-color: rgb(255 255 255 / 0.2);
  padding: 0.75rem;
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.page-header-title{
  font-size: 1.875rem;
  line-height: 2.25rem;
  font-weight: 700;
}

.page-header-subtitle{
  margin-top: 0.25rem;
  --tw-text-opacity: 1;
  color: rgb(219 234 254 / var(--tw-text-opacity));
}

.page-header-actions{
  margin-top: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.page-header-actions.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.page-header-actions.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .page-header-actions.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .page-header-actions {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .page-header-actions:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .page-header-actions:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

@media (min-width: 640px){
  .page-header-actions{
    flex-direction: row;
  }
}

@media (min-width: 1024px){
  .page-header-actions{
    margin-top: 0px;
  }
}

/* Boutons d'actions unifiés */
.action-btn-primary{
  display: inline-flex;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity));
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.flex.action-btn-primary.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.action-btn-primary.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
#event-modal .action-btn-primary {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}
@media (max-height: 700px) {
  #event-modal .action-btn-primary {
    max-height: calc(100vh - 1rem);
  }
}
@media (max-width: 640px) {
  #event-modal .action-btn-primary {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
  #fileGalleryModal .flex.action-btn-primary.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
}
.action-btn-primary:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.action-btn-primary:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: rgb(255 255 255 / 0.3);
}

.action-btn-secondary{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  background-color: rgb(255 255 255 / 0.1);
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.flex.action-btn-secondary.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.action-btn-secondary.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .flex.action-btn-secondary.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
}

.action-btn-secondary:hover{
  background-color: rgb(255 255 255 / 0.2);
}

.action-btn-secondary:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: rgb(255 255 255 / 0.3);
}

/* Filtres unifiés */
.filters-section{
  position: relative;
  z-index: 10;
  margin-left: 1rem;
  margin-right: 1rem;
  margin-top: -1rem;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
#event-modal .filters-section {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}
@media (max-height: 700px) {
  #event-modal .filters-section {
    max-height: calc(100vh - 1rem);
  }
}
@media (max-width: 640px) {
  #event-modal .filters-section {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

.filters-content{
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 1rem;
  padding-bottom: 1rem;
}

.filters-wrapper{
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

.filters-wrapper.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.filters-wrapper.justify-between .flex.items-center:first-child {
  flex: 1;
}

.filters-wrapper.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.filters-wrapper.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .filters-wrapper.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.filters-wrapper.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .filters-wrapper {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .filters-wrapper:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .filters-wrapper:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

@media (min-width: 640px){
  .filters-wrapper{
    flex-direction: row;
  }
}

.filters-label{
  display: flex;
  align-items: center;
}

.filters-label > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.filters-label.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.filters-label.justify-between .flex.items-center:first-child {
  flex: 1;
}

.filters-label.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.filters-label.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .filters-label.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.filters-label.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .filters-label {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .filters-label:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .filters-label:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.filters-icon{
  height: 1.25rem;
  width: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity));
}

.filters-text{
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
}

.filters-inputs{
  display: flex;
  flex: 1 1 0%;
  flex-direction: column;
  gap: 0.75rem;
}

.filters-inputs.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.filters-inputs.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-height: 700px) {
  #event-modal .filters-inputs {
    max-height: calc(100vh - 200px);
    overflow-y: auto;
  }
}

#event-panel .filters-inputs {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

#recurring-options-panel .filters-inputs {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

@media (max-width: 640px) {
  #fileGalleryModal .filters-inputs.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .filters-inputs {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .filters-inputs:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .filters-inputs:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

@media (min-width: 640px){
  .filters-inputs{
    flex-direction: row;
  }
}

.filter-select-wrapper{
  position: relative;
  flex: 1 1 0%;
}

@media (max-height: 700px) {
  #event-modal .filter-select-wrapper {
    max-height: calc(100vh - 200px);
    overflow-y: auto;
  }
}

#event-panel .filter-select-wrapper {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

#recurring-options-panel .filter-select-wrapper {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

.filter-select{
  width: 100%;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
  padding-top: 0.625rem;
  padding-bottom: 0.625rem;
  padding-left: 2.5rem;
  padding-right: 1rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

#event-panel .filter-select {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#event-panel.show .filter-select {
  transform: scale(1) translateY(0);
}

#recurring-options-panel .filter-select {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#recurring-options-panel.show .filter-select {
  transform: scale(1) translateY(0);
}

#message-panel .filter-select {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}

#message-panel.show .filter-select {
  transform: translateY(0);
}

.filter-select:focus{
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity));
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}

.filter-select-icon{
  position: absolute;
  left: 0.75rem;
  top: 0.75rem;
  height: 1rem;
  width: 1rem;
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity));
}

.file-card .filter-select-icon.inset-0 {
  transition: opacity 0.2s ease;
}

@media (max-width: 640px) {
  .file-card > .filter-select-icon:first-child {
    top: 4px;
    left: 4px;
    position: absolute;
    z-index: 20;
  }
}

/* Modal unifiée */
.modal-overlay{
  position: fixed;
  inset: 0px;
  z-index: 50;
  height: 100%;
  width: 100%;
  overflow-y: auto;
  background-color: rgb(0 0 0 / 0.5);
  padding: 1rem;
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
#event-panel .modal-overlay {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#event-panel.show .modal-overlay {
  transform: scale(1) translateY(0);
}
#recurring-options-panel .modal-overlay {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#recurring-options-panel.show .modal-overlay {
  transform: scale(1) translateY(0);
}
#event-panel .modal-overlay {
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 #f1f5f9;
}
#event-panel .modal-overlay::-webkit-scrollbar {
  width: 6px;
}
#event-panel .modal-overlay::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 3px;
}
#event-panel .modal-overlay::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}
#event-panel .modal-overlay::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}
#message-panel .modal-overlay {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}
#message-panel.show .modal-overlay {
  transform: translateY(0);
}
#message-panel .modal-overlay {
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 #f1f5f9;
}
#message-panel .modal-overlay::-webkit-scrollbar {
  width: 6px;
}
#message-panel .modal-overlay::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 3px;
}
#message-panel .modal-overlay::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}
#message-panel .modal-overlay::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}
.file-card .absolute.modal-overlay {
  transition: opacity 0.2s ease;
}
@media (max-width: 640px) {
  #fileGalleryModal .flex.items-center.justify-between.modal-overlay {
    flex-direction: column;
    gap: 1rem;
  }
}

.modal-container{
  position: relative;
  display: flex;
  min-height: 100vh;
  align-items: flex-start;
  justify-content: center;
  padding-top: 2rem;
  padding-bottom: 2rem;
}

.modal-container.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.modal-container.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .modal-container.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .modal-container {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .modal-container:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .modal-container:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.modal-content{
  display: flex;
  max-height: calc(100vh - 4rem);
  width: 100%;
  max-width: 42rem;
  flex-direction: column;
  overflow: hidden;
  border-radius: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.modal-content.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.modal-content.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

#event-modal .modal-content {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .modal-content {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .modal-content {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

#event-panel .modal-content {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#event-panel.show .modal-content {
  transform: scale(1) translateY(0);
}

#recurring-options-panel .modal-content {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#recurring-options-panel.show .modal-content {
  transform: scale(1) translateY(0);
}

#message-panel .modal-content {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}

#message-panel.show .modal-content {
  transform: translateY(0);
}

@media (max-width: 640px) {
  #fileGalleryModal .modal-content.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .modal-content {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .modal-content:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .modal-content:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.modal-header{
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #2563eb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #9333ea var(--tw-gradient-to-position);
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 1.5rem;
  padding-bottom: 1.5rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.modal-header-content{
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.modal-header-content.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.modal-header-content.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.items-center.modal-header-content .flex.items-center:first-child {
  flex: 1;
}

.modal-header-content.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.modal-header-content.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.items-center.modal-header-content .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .modal-header-content.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.modal-header-content.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.items-center.modal-header-content.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .modal-header-content {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .modal-header-content:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .modal-header-content:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.modal-header-left{
  display: flex;
  align-items: center;
}

.modal-header-left > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.75rem * var(--tw-space-x-reverse));
  margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
}

.modal-header-left.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.modal-header-left.justify-between .flex.items-center:first-child {
  flex: 1;
}

.modal-header-left.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.modal-header-left.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .modal-header-left.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.modal-header-left.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .modal-header-left {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .modal-header-left:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .modal-header-left:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.modal-header-icon{
  border-radius: 0.5rem;
  background-color: rgb(255 255 255 / 0.2);
  padding: 0.5rem;
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}

.modal-title{
  font-size: 1.25rem;
  line-height: 1.75rem;
  font-weight: 700;
}

.modal-close-btn{
  border-radius: 0.5rem;
  padding: 0.5rem;
  color: rgb(255 255 255 / 0.8);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.modal-close-btn:hover{
  background-color: rgb(255 255 255 / 0.2);
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.modal-body{
  flex: 1 1 0%;
  overflow-y: auto;
}

@media (max-height: 700px) {
  #event-modal .modal-body {
    max-height: calc(100vh - 200px);
    overflow-y: auto;
  }
}

#event-panel .modal-body {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

#recurring-options-panel .modal-body {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

#event-panel .modal-body {
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 #f1f5f9;
}

#event-panel .modal-body::-webkit-scrollbar {
  width: 6px;
}

#event-panel .modal-body::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 3px;
}

#event-panel .modal-body::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}

#event-panel .modal-body::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

#message-panel .modal-body {
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 #f1f5f9;
}

#message-panel .modal-body::-webkit-scrollbar {
  width: 6px;
}

#message-panel .modal-body::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 3px;
}

#message-panel .modal-body::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}

#message-panel .modal-body::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

.modal-form > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1.5rem * var(--tw-space-y-reverse));
}

.modal-form{
  padding: 1.5rem;
}

.modal-footer{
  display: flex;
  flex-shrink: 0;
  flex-direction: column;
  justify-content: flex-end;
}

.modal-footer > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.modal-footer{
  border-top-width: 1px;
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
  padding: 1.5rem;
}

.modal-footer.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.modal-footer.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .modal-footer.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  .file-row .modal-footer {
    flex-shrink: 0;
    min-width: 20px;
  }
  #bulk-actions > .modal-footer {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .modal-footer:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .modal-footer:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

@media (min-width: 640px){
  .modal-footer{
    flex-direction: row;
  }
  .modal-footer > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse: 0;
    margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0px * var(--tw-space-y-reverse));
    --tw-space-x-reverse: 0;
    margin-right: calc(0.75rem * var(--tw-space-x-reverse));
    margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
  }
}

/* Sections colorées */
.form-section > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(1rem * var(--tw-space-y-reverse));
}
.form-section{
  border-radius: 0.75rem;
  padding: 1rem;
}
@media (max-width: 640px) {
  #fileGalleryModal .flex.items-center.justify-between.form-section {
    flex-direction: column;
    gap: 1rem;
  }
}

.form-section-blue{
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}

.form-section-purple{
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 255 / var(--tw-bg-opacity));
}

.form-section-green{
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity));
}

.form-section-orange{
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity));
}

.form-section-yellow{
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity));
}

.form-section-header{
  display: flex;
  align-items: center;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
}

.form-section-header.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.form-section-header.justify-between .flex.items-center:first-child {
  flex: 1;
}

.form-section-header.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.form-section-header.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .form-section-header.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.form-section-header.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .form-section-header {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .form-section-header:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .form-section-header:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.form-section-header.blue{
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity));
}

.form-section-header.purple{
  --tw-text-opacity: 1;
  color: rgb(126 34 206 / var(--tw-text-opacity));
}

.form-section-header.green{
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity));
}

.form-section-header.orange{
  --tw-text-opacity: 1;
  color: rgb(194 65 12 / var(--tw-text-opacity));
}

.form-section-header.yellow{
  --tw-text-opacity: 1;
  color: rgb(161 98 7 / var(--tw-text-opacity));
}

.form-section-icon{
  margin-right: 0.5rem;
  height: 1rem;
  width: 1rem;
}

/* Cards avec effet hover unifié */
.card-unified{
  margin-top: 1rem;
  overflow: hidden;
  border-bottom-right-radius: 1rem;
  border-bottom-left-radius: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
#event-modal .card-unified {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}
@media (max-height: 700px) {
  #event-modal .card-unified {
    max-height: calc(100vh - 1rem);
  }
}
@media (max-width: 640px) {
  #event-modal .card-unified {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}
.card-unified:hover{
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.card-content{
  padding: 1.5rem;
}

/* Responsive text */
.responsive-text-sm{
  display: none;
}
.flatpickr-day.responsive-text-sm {
  visibility: hidden;
}
.replies-section:not(.responsive-text-sm) {
  animation: slideDown 0.3s ease-in-out;
}
.tab-pane.responsive-text-sm{
  --tw-translate-y: 0.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 0;
}
.tab-pane:not(.responsive-text-sm){
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 1;
}
#fileGalleryModal:not(.responsive-text-sm) {
  animation: galleryFadeIn 0.2s ease-out;
}
@media (min-width: 640px){
  .responsive-text-sm{
    display: inline;
  }
  .responsive-text-mobile{
    display: none;
  }
}

/* États de chargement pour les deux pages */
.loading-overlay{
  position: fixed;
  inset: 0px;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgb(0 0 0 / 0.2);
  --tw-backdrop-blur: blur(4px);
  backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.loading-overlay.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.loading-overlay.justify-between .flex.items-center:first-child {
  flex: 1;
}
.loading-overlay.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.loading-overlay.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.file-card .absolute.loading-overlay {
  transition: opacity 0.2s ease;
}
@media (max-width: 640px) {
  #fileGalleryModal .loading-overlay.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.loading-overlay.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .loading-overlay {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .loading-overlay:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .loading-overlay:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.loading-content{
  display: flex;
  align-items: center;
}

.loading-content > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.75rem * var(--tw-space-x-reverse));
  margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
}

.loading-content{
  border-radius: 0.75rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding: 1.5rem;
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.loading-content.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.loading-content.justify-between .flex.items-center:first-child {
  flex: 1;
}

.loading-content.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.loading-content.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

#event-modal .loading-content {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .loading-content {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .loading-content {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
  #fileGalleryModal .loading-content.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.loading-content.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .loading-content {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .loading-content:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .loading-content:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.loading-spinner-large{
  height: 1.5rem;
  width: 1.5rem;
}

@keyframes spin{
  to{
    transform: rotate(360deg);
  }
}

.loading-spinner-large{
  animation: spin 1s linear infinite;
  border-radius: 9999px;
  border-width: 2px;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  --tw-border-opacity: 1;
  border-top-color: rgb(59 130 246 / var(--tw-border-opacity));
}

/* Toasts unifiés */
.toast-container{
  position: fixed;
  top: 1rem;
  right: 1rem;
  z-index: 50;
}
.toast-container > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.toast-unified{
  display: flex;
  max-width: 20rem;
  align-items: center;
  justify-content: space-between;
  border-radius: 0.75rem;
  padding: 1rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.toast-unified.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.toast-unified.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.items-center.toast-unified .flex.items-center:first-child {
  flex: 1;
}

.toast-unified.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.toast-unified.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.items-center.toast-unified .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .toast-unified.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.toast-unified.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.items-center.toast-unified.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.items-center.justify-between.toast-unified {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .toast-unified {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .toast-unified:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .toast-unified:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.toast-success{
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity));
}

.toast-error{
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity));
}

.toast-info{
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
}

.toast-warning{
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity));
}

/* ===== ONGLETS UNIFIÉS ===== */
.tab-btn{
  background-color: transparent;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
}

.tab-btn.active{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity));
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

#event-modal .tab-btn.active {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .tab-btn.active {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .tab-btn.active {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

.tab-btn:hover:not(.active){
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

/* Styles des onglets améliorés */
.nav-link{
  position: relative;
  border-top-left-radius: 0.5rem;
  border-top-right-radius: 0.5rem;
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
  transition-property: all;
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  border-bottom-width: 2px;
  border-color: transparent;
}
.nav-link:hover{
  background-color: rgb(240 253 244 / 0.5);
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity));
}
.nav-link:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: rgb(34 197 94 / 0.2);
}

.nav-link:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.nav-link.active,
.nav-link[aria-selected=true]{
  border-bottom-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(34 197 94 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity));
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

#event-modal .nav-link.active,#event-modal 
.nav-link[aria-selected=true] {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .nav-link.active,#event-modal 
.nav-link[aria-selected=true] {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .nav-link.active,#event-modal 
.nav-link[aria-selected=true] {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

.nav-link.active,
.nav-link[aria-selected=true]{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.nav-link.active::before {
  content: "";
  position: absolute;
  bottom: 0px;
  left: 0px;
  right: 0px;
  height: 0.125rem;
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #4ade80 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(74 222 128 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #10b981 var(--tw-gradient-to-position);
}

.file-card .nav-link.active.inset-0::before {
  transition: opacity 0.2s ease;
}

@media (max-width: 640px) {
  .file-card > .nav-link.active:first-child::before {
    top: 4px;
    left: 4px;
    position: absolute;
    z-index: 20;
  }
}

/* Animation d'apparition des onglets */
.tab-pane{
  transition-property: all;
  transition-duration: 300ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.tab-pane.hidden{
  --tw-translate-y: 0.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 0;
}

.tab-pane:not(.hidden){
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 1;
}

/* Conteneur des onglets */
.nav-tabs-container{
  background-color: rgb(240 253 244 / 0.3);
  padding: 0.25rem;
}

/* Amélioration responsive des tabs */
@media (max-width: 640px) {
  .nav-link{
    padding-left: 0.75rem;
    padding-right: 0.75rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
}
/* Badges médicaux simplifiés */
.medical-badge,
label[for*=medocs_]{
  display: inline-flex;
  cursor: pointer;
  align-items: center;
  border-radius: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
}
.flex.medical-badge.justify-between .flex.items-center:first-child,
label.flex[for*=medocs_].justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.medical-badge.justify-between .flex.items-center:last-child,
label.flex[for*=medocs_].justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .flex.medical-badge.justify-between.p-4,#fileGalleryModal 
label.flex[for*=medocs_].justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
}
.medical-badge,
label[for*=medocs_]{
  transition-property: all;
  transition-duration: 200ms;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
}
.medical-badge:hover,
label[for*=medocs_]:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity));
}
.medical-badge,
label[for*=medocs_]{
  border-width: 1px;
  border-color: transparent;
}

.medical-badge input[type=checkbox],
input[id*=medocs_]{
  display: none;
}

.flatpickr-day.medical-badge input[type=checkbox],
input.flatpickr-day[id*=medocs_] {
  visibility: hidden;
}

.replies-section:not(.medical-badge input[type=checkbox]),.replies-section:not(
input[id*=medocs_]) {
  animation: slideDown 0.3s ease-in-out;
}

.tab-pane.medical-badge input[type=checkbox],
input.tab-pane[id*=medocs_]{
  --tw-translate-y: 0.5rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 0;
}

.tab-pane:not(.medical-badge input[type=checkbox]),.tab-pane:not(
input[id*=medocs_]){
  --tw-translate-y: 0px;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  opacity: 1;
}

#fileGalleryModal:not(.medical-badge input[type=checkbox]),#fileGalleryModal:not(
input[id*=medocs_]) {
  animation: galleryFadeIn 0.2s ease-out;
}

.medical-badge:has(input:checked),
input[id*=medocs_]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(13 148 136 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
  --tw-border-opacity: 1;
  border-color: rgb(13 148 136 / var(--tw-border-opacity));
}

.medical-badge:not(:has(input:checked)):hover,
input[id*=medocs_]:not(:checked) + label:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

/* Styles pour les sélecteurs de selles */
label[for*=selle_types_],
label[for*=selle_qte_]{
  cursor: pointer;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
}
label[for*=selle_types_]:hover,
label[for*=selle_qte_]:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity));
}
label[for*=selle_types_],
label[for*=selle_qte_]{
  border-right-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
}
label[for*=selle_types_]:first-child,
label[for*=selle_qte_]:first-child{
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}
label[for*=selle_types_]:last-child,
label[for*=selle_qte_]:last-child{
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}

/* Styles spécifiques pour les types de selles */
input[id=selle_types_]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

input[id=selle_types_d]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(133 77 14 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

input[id=selle_types_m]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(161 98 7 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

input[id=selle_types_r]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(202 138 4 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

input[id=selle_types_l]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

/* Styles spécifiques pour les quantités */
input[id=selle_qte_]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

input[id=selle_qte_1]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(156 163 175 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

input[id=selle_qte_2]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

input[id=selle_qte_3]:checked + label{
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

/* Échelles et sélecteurs */
.scale-selector{
  display: flex;
  align-items: center;
}
.scale-selector > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.scale-selector.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.scale-selector.justify-between .flex.items-center:first-child {
  flex: 1;
}
.scale-selector.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.scale-selector.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .scale-selector.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.scale-selector.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .scale-selector {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .scale-selector:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .scale-selector:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.scale-btn{
  display: flex;
  height: 2.5rem;
  width: 2.5rem;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.scale-btn.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.scale-btn.justify-between .flex.items-center:first-child {
  flex: 1;
}

.scale-btn.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.scale-btn.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .scale-btn.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.scale-btn.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .scale-btn {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .scale-btn:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .scale-btn:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.scale-btn:hover{
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}

.scale-btn.selected{
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

/* ===== ÉDITEUR DE TEXTE ET CONTENU DES MESSAGES ===== */
/* Éditeur de texte */
.text-editor{
  min-height: 100px;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  padding: 0.75rem;
}
.text-editor:focus{
  border-color: transparent;
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}

/* Style pour l'éditeur de message */
#message_editor{
  min-height: 100px;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  padding: 0.75rem;
}
#message_editor:focus{
  border-color: transparent;
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}
#message_editor{
  font-size: 1rem;
  line-height: 1.5rem;
  line-height: 1.6;
}

/* Forcer les retours à la ligne avec <br> au lieu de <div> dans l'éditeur */
#message_editor div {
  display: inline;
}

#message_editor div:after {
  content: "\a";
  white-space: pre;
}

/* Style pour le contenu des messages dans la timeline */
.message-content-text{
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
  font-size: 1rem;
  line-height: 1.6;
  word-wrap: break-word;
  white-space: pre-wrap;
}

/* Gérer les balises HTML dans le contenu des messages */
.message-content-text p{
  margin-bottom: 0.5rem;
}

.message-content-text div{
  margin-bottom: 0.25rem;
}

.message-content-text br{
  margin-bottom: 0.25rem;
}

.message-content-text strong,
.message-content-text b{
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity));
}

.message-content-text em,
.message-content-text i{
  font-style: italic;
}

.message-content-text u{
  text-decoration-line: underline;
}

/* Style pour les réponses */
.message-reply-content{
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
  line-height: 1.5;
  word-wrap: break-word;
  white-space: pre-wrap;
}

.message-reply-content strong,
.message-reply-content b{
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

.message-reply-content em,
.message-reply-content i{
  font-style: italic;
}

.message-reply-content u{
  text-decoration-line: underline;
}

/* Upload de fichiers */
.file-upload-zone{
  width: 100%;
  cursor: pointer;
  border-radius: 0.5rem;
  border-width: 2px;
  border-style: dashed;
  --tw-border-opacity: 1;
  border-color: rgb(147 197 253 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
  padding: 1.5rem;
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
#event-panel .file-upload-zone {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#event-panel.show .file-upload-zone {
  transform: scale(1) translateY(0);
}
#recurring-options-panel .file-upload-zone {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#recurring-options-panel.show .file-upload-zone {
  transform: scale(1) translateY(0);
}
#message-panel .file-upload-zone {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}
#message-panel.show .file-upload-zone {
  transform: translateY(0);
}
.file-upload-zone:hover{
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity));
}

.file-preview-grid{
  margin-top: 1rem;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1rem;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
  padding: 1rem;
}

@media (max-width: 640px) {
  #fileGalleryModal .flex.items-center.justify-between.file-preview-grid {
    flex-direction: column;
    gap: 1rem;
  }
}

@media (min-width: 640px){
  .file-preview-grid{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px){
  .file-preview-grid{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.file-preview-item{
  position: relative;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding: 0.75rem;
  transition-property: box-shadow;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

#event-modal .file-preview-item {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .file-preview-item {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .file-preview-item {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

.file-preview-item:hover{
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* ===== MESSAGES DANS LA TIMELINE - AMÉLIORATIONS LISIBILITÉ ===== */
/* Messages dans la timeline */
.message-item{
  position: relative;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: flex-start;
  padding-left: 2.5rem;
}
.message-item.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.message-item.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .message-item.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-item {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-item:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-item:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}
.message-item::before {
  content: "";
  position: absolute;
  left: 0.625rem;
  top: 0.75rem;
  height: 0.75rem;
  width: 0.75rem;
  border-radius: 9999px;
  border-width: 2px;
  --tw-border-opacity: 1;
  border-color: rgb(255 255 255 / var(--tw-border-opacity));
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.file-card .message-item.inset-0::before {
  transition: opacity 0.2s ease;
}
@media (max-width: 640px) {
  .file-card > .message-item:first-child::before {
    top: 4px;
    left: 4px;
    position: absolute;
    z-index: 20;
  }
}
.message-item.message::before{
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
}
.timeline-item-unified.message-item::before{
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
}
.message-item.event::before{
  --tw-bg-opacity: 1;
  background-color: rgb(34 197 94 / var(--tw-bg-opacity));
}
.message-item.reminder::before{
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity));
}
.message-item.important::before{
  --tw-bg-opacity: 1;
  background-color: rgb(239 68 68 / var(--tw-bg-opacity));
}

.message-card{
  width: 100%;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding: 1rem;
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

#event-modal .message-card {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .message-card {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .message-card {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

#event-panel .message-card {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#event-panel.show .message-card {
  transform: scale(1) translateY(0);
}

#recurring-options-panel .message-card {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#recurring-options-panel.show .message-card {
  transform: scale(1) translateY(0);
}

#message-panel .message-card {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}

#message-panel.show .message-card {
  transform: translateY(0);
}

@media (max-width: 640px) {
  #fileGalleryModal .flex.items-center.justify-between.message-card {
    flex-direction: column;
    gap: 1rem;
  }
}

.message-card:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.message-card{
  padding: 1rem;
}

@media (max-width: 640px) {
  #fileGalleryModal .flex.items-center.justify-between.message-card {
    flex-direction: column;
    gap: 1rem;
  }
}

.message-card { /* Plus d'espacement */
}

.message-header{
  margin-bottom: 0.75rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}

.message-header.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.message-header.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.items-center.message-header .flex.items-center:first-child {
  flex: 1;
}

.message-header.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.message-header.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.items-center.message-header .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .message-header.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.message-header.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.items-center.message-header.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-header {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-header:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-header:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.message-meta{
  display: flex;
  align-items: center;
}

.message-meta > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.message-meta{
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity));
}

.message-meta.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.message-meta.justify-between .flex.items-center:first-child {
  flex: 1;
}

.message-meta.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.message-meta.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .message-meta.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.message-meta.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-meta {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-meta:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-meta:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.message-person-badge{
  border-radius: 9999px;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.message-actions{
  display: flex;
  align-items: center;
}

.message-actions > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}

.message-actions{
  opacity: 0;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.message-actions.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.message-actions.justify-between .flex.items-center:first-child {
  flex: 1;
}

.message-actions.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.message-actions.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .message-actions.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.message-actions.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-actions {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-actions:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-actions:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.group:hover .message-actions{
  opacity: 1;
}

.message-content > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
}

.message-badges{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.message-badges.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.message-badges.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .message-badges.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-badges {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-badges:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-badges:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.message-social{
  margin-top: 0.75rem;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity));
  padding-top: 0.75rem;
}

.flex.message-social.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.message-social.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .flex.message-social.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  .message-social{
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.5rem;
    text-align: center;
  }
}

/* Design compact pour les messages avec bordure colorée */
.message-timeline-item{
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
#event-modal .message-timeline-item {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}
@media (max-height: 700px) {
  #event-modal .message-timeline-item {
    max-height: calc(100vh - 1rem);
  }
}
@media (max-width: 640px) {
  #event-modal .message-timeline-item {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}
.message-timeline-item:hover{
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.message-timeline-item{
  margin-bottom: 0.5rem;
  margin-left: 0px;
  padding: 0.75rem;
  border-left-width: 4px;
}

.message-timeline-item:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

/* Style amélioré pour l'en-tête du message */
.message-timeline-header{
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.message-timeline-header.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.items-center.message-timeline-header .flex.items-center:first-child {
  flex: 1;
}
.flex.message-timeline-header.justify-between .flex.items-center:first-child {
  flex: 1;
}
.message-timeline-header.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.items-center.message-timeline-header .flex.items-center:last-child {
  margin-left: auto;
}
.flex.message-timeline-header.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .message-timeline-header.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.items-center.message-timeline-header.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.message-timeline-header.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-timeline-header {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-timeline-header:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-timeline-header:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.message-timeline-time{
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity));
}

.message-timeline-person{
  border-radius: 9999px;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

/* Badges médicaux avec plus de contraste */
.message-medical-badges{
  margin-bottom: 0.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}
.message-medical-badges.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.message-medical-badges.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .message-medical-badges.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-medical-badges {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-medical-badges:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-medical-badges:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.message-medical-badge{
  border-radius: 0.5rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  border-width: 1px;
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* Contenu du message avec meilleure typographie */
.message-main-content{
  margin-bottom: 0.5rem;
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
  padding: 0.625rem;
  /* Pas de bordure ici car elle est déjà sur le container principal */
}

/* Galerie de médias compacte - comme avant mais optimisée */
.message-media-grid{
  margin-bottom: 0.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem;
}
.message-media-grid.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.message-media-grid.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .message-media-grid.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-media-grid {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-media-grid:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-media-grid:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}
.message-media-grid {
  /* Utilise flexbox pour un meilleur contrôle de la disposition */
}

.message-media-grid .message-media-item {
  flex: 0 0 auto; /* Ne grandit pas, ne rétrécit pas */
}

.message-media-item{
  cursor: pointer;
  overflow: hidden;
  border-radius: 0.375rem;
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: transform;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.message-media-item:hover{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.message-media-item {
  width: 60px;
  height: 60px;
  flex-shrink: 0;
}

@media (min-width: 640px) {
  .message-media-item {
    width: 70px;
    height: 70px;
  }
}
@media (min-width: 1024px) {
  .message-media-item {
    width: 80px;
    height: 80px;
  }
}
/* Interactions sociales compactes */
.message-social-actions{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: center;
  border-top-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity));
  padding-top: 0.5rem;
}
.flex.message-social-actions.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.message-social-actions.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .flex.message-social-actions.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
}
.message-social-actions{
  gap: 0.25rem;
}

.message-social-button{
  display: flex;
  align-items: center;
  justify-content: center;
}

.message-social-button > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.message-social-button{
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity));
}

.message-social-button.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.message-social-button.justify-between .flex.items-center:first-child {
  flex: 1;
}

.message-social-button.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.message-social-button.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .message-social-button.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.message-social-button.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-social-button {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-social-button:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-social-button:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.message-social-button:hover{
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity));
}

.message-social-button{
  border-radius: 0.5rem;
  padding: 0.5rem;
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.message-social-button:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}

.message-social-button{
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
}

.message-social-button.active{
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity));
}

.like-button.message-social-button.active svg {
  animation: heartBeat 0.3s ease-in-out;
}

.view-indicator.message-social-button.active svg {
  animation: heartBeat 0.3s ease-in-out;
}

.message-social-button svg{
  height: 1rem;
  width: 1rem;
}

.view-indicator svg{
  height: 1rem;
  width: 1rem;
}

.view-indicator.text-red-500 svg {
  animation: heartBeat 0.3s ease-in-out;
}

/* Actions d'édition/suppression */
.message-action-buttons{
  display: flex;
  align-items: center;
}
.message-action-buttons > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
.message-action-buttons{
  opacity: 0;
}
.message-action-buttons.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.message-action-buttons.justify-between .flex.items-center:first-child {
  flex: 1;
}
.message-action-buttons.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.message-action-buttons.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .message-action-buttons.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.message-action-buttons.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .message-action-buttons {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .message-action-buttons:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .message-action-buttons:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}
.group:hover .message-action-buttons{
  opacity: 1;
}
.message-action-buttons{
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.message-action-btn{
  border-radius: 9999px;
  padding: 0.5rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.message-action-btn:hover{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.message-action-btn.edit{
  --tw-text-opacity: 1;
  color: rgb(202 138 4 / var(--tw-text-opacity));
}

.message-action-btn.edit:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity));
}

.message-action-btn.delete{
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity));
}

.message-action-btn.delete:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity));
}

/* Couleurs spécifiques pour les personnes */
.person-damien{
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
}

.person-camille{
  --tw-bg-opacity: 1;
  background-color: rgb(168 85 247 / var(--tw-bg-opacity));
}

.person-default{
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity));
}

/* Responsive amélioré pour messages */
@media (max-width: 768px) {
  .message-form-card{
    margin-left: 0.5rem;
    margin-right: 0.5rem;
  }
  .tab-btn{
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
  }
  .medical-badge{
    padding-left: 0.5rem;
    padding-right: 0.5rem;
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
    font-size: 0.75rem;
    line-height: 1rem;
  }
  .file-preview-grid{
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 0.5rem;
  }
  .scale-btn{
    height: 2rem;
    width: 2rem;
    font-size: 0.75rem;
    line-height: 1rem;
  }
}
/* Animation pour le formulaire de message */
.message-form-slide-down {
  animation: slideDown 0.3s ease-out;
}

.message-form-slide-up {
  animation: slideUp 0.3s ease-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    max-height: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    max-height: 1000px;
    transform: translateY(0);
  }
}
@keyframes slideUp {
  from {
    opacity: 1;
    max-height: 1000px;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    max-height: 0;
    transform: translateY(-20px);
  }
}
/* Harmonisation des boutons d'action */
.btn-submit-message{
  border-radius: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}
.btn-submit-message:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
}
.btn-submit-message{
  --tw-bg-opacity: 1;
  background-color: rgb(59 130 246 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}
.btn-submit-message:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity));
}
.btn-submit-message:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}

.btn-cancel-message{
  border-radius: 0.5rem;
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-weight: 500;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.btn-cancel-message:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-offset-width: 2px;
}

.btn-cancel-message{
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

.btn-cancel-message:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity));
}

.btn-cancel-message:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity));
}

.btn-toggle-form{
  display: inline-flex;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  align-items: center;
  justify-content: center;
  border-radius: 0.75rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity));
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.flex.btn-toggle-form.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.btn-toggle-form.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

#event-modal .btn-toggle-form {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .btn-toggle-form {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .btn-toggle-form {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
  #fileGalleryModal .flex.btn-toggle-form.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
}

.btn-toggle-form:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.btn-toggle-form:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-color: rgb(255 255 255 / 0.3);
}

/* États de validation pour les champs médicaux */
.medical-field-required:invalid{
  --tw-border-opacity: 1;
  border-color: rgb(239 68 68 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity));
}

.medical-field-valid{
  --tw-border-opacity: 1;
  border-color: rgb(34 197 94 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity));
}

/* ===== STYLES SPÉCIAUX POUR LES SECTIONS MÉDICALES ET MESSAGE ===== */
.medical-section{
  --tw-border-opacity: 1;
  border-color: rgb(187 247 208 / var(--tw-border-opacity));
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #f0fdf4 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(240 253 244 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #ecfdf5 var(--tw-gradient-to-position);
}

.message-section{
  --tw-border-opacity: 1;
  border-color: rgb(191 219 254 / var(--tw-border-opacity));
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #eff6ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #eef2ff var(--tw-gradient-to-position);
}

.medical-tab-active{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(21 128 61 / var(--tw-text-opacity));
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

#event-modal .medical-tab-active {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .medical-tab-active {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .medical-tab-active {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

.medical-tab-inactive{
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity));
}

.medical-tab-inactive:hover{
  background-color: rgb(255 255 255 / 0.5);
}

/* ===== PANNEAUX DÉROULANTS CALENDRIER ===== */
/* Modal classique d'événement */
#event-panel {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-in-out;
  padding: 1rem;
}

#event-panel.show {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}

#event-panel .w-full {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#event-panel.show .w-full {
  transform: scale(1) translateY(0);
}

/* Contenu scrollable de la modal */
#event-panel .flex-1 {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

/* Empêcher le scroll du body quand le panneau est ouvert */
body.panel-open {
  overflow: hidden;
}

/* Modal d'options récurrentes */
#recurring-options-panel {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1100;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease-in-out;
  padding: 1rem;
}

#recurring-options-panel.show {
  opacity: 1;
  visibility: visible;
  pointer-events: all;
}

#recurring-options-panel .w-full {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#recurring-options-panel.show .w-full {
  transform: scale(1) translateY(0);
}

/* Contenu scrollable de la modal d'options récurrentes */
#recurring-options-panel .flex-1 {
  flex: 1;
  overflow-y: auto;
  min-height: 0;
}

/* Scrollbar personnalisée pour les panneaux */
#event-panel .overflow-y-auto {
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 #f1f5f9;
}

#event-panel .overflow-y-auto::-webkit-scrollbar {
  width: 6px;
}

#event-panel .overflow-y-auto::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 3px;
}

#event-panel .overflow-y-auto::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}

#event-panel .overflow-y-auto::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* ===== PANNEAUX DÉROULANTS MESSAGES ===== */
/* Panneau principal de message */
#message-panel {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 1000;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
  display: flex;
  align-items: flex-end;
  pointer-events: none;
  opacity: 0;
  transition: all 0.3s ease-in-out;
}

#message-panel.show {
  opacity: 1;
  pointer-events: all;
}

#message-panel .w-full {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}

#message-panel.show .w-full {
  transform: translateY(0);
}

/* Scrollbar personnalisée pour les panneaux de messages */
#message-panel .overflow-y-auto {
  scrollbar-width: thin;
  scrollbar-color: #cbd5e1 #f1f5f9;
}

#message-panel .overflow-y-auto::-webkit-scrollbar {
  width: 6px;
}

#message-panel .overflow-y-auto::-webkit-scrollbar-track {
  background: #f1f5f9;
  border-radius: 3px;
}

#message-panel .overflow-y-auto::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}

#message-panel .overflow-y-auto::-webkit-scrollbar-thumb:hover {
  background: #94a3b8;
}

/* ===== FILTRES MOBILES MESSAGES ===== */
/* Animation pour le toggle des filtres mobiles messages */
#mobile-message-filters-content {
  transition: all 0.3s ease-in-out;
}

/* Sur mobile, les filtres sont cachés par défaut */
@media (max-width: 767px) {
  #mobile-message-filters-content {
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    padding-top: 0;
    padding-bottom: 0;
  }
  #mobile-message-filters-content.show {
    max-height: 500px;
    opacity: 1;
    padding-top: 1rem;
    padding-bottom: 1rem;
  }
}
/* Bouton toggle des filtres mobiles messages */
#mobile-message-filters-toggle {
  transition: all 0.2s ease;
}

#mobile-message-filters-toggle:hover {
  background-color: rgba(147, 51, 234, 0.05);
}

/* Animation du chevron */
#mobile-message-filters-chevron.rotate {
  transform: rotate(180deg);
}

/* Badge de compteur de filtres actifs messages */
#active-message-filters-count {
  animation: fadeInScale 0.2s ease-out;
}

@keyframes fadeInScale {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
/* Animation pour le toggle des filtres mobiles dépenses */
#mobile-expense-filters-content {
  transition: all 0.3s ease-in-out;
}

/* Bouton toggle des filtres mobiles dépenses */
#mobile-expense-filters-toggle {
  transition: all 0.2s ease;
}

#mobile-expense-filters-toggle:hover {
  background-color: rgba(34, 197, 94, 0.05);
}

/* Badge de compteur de filtres actifs dépenses */
#active-expense-filters-count {
  animation: fadeInScale 0.2s ease-out;
}

/* ===== GESTIONNAIRE DE FICHIERS ===== */
/* Conteneur principal des fichiers */
.files-container{
  min-height: 24rem;
}

/* Zone de drag & drop */
.file-upload-zone {
  transition: all 0.2s ease;
}

.file-upload-zone.drag-over{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}

/* Cards de fichiers - Vue grille */
.file-card{
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.file-card:hover{
  --tw-translate-y: -0.25rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* Overlay d'actions sur les fichiers */
.file-card .absolute.inset-0 {
  transition: opacity 0.2s ease;
}

/* Boutons d'actions des fichiers */
.file-card button, .file-row button{
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.file-card button:hover, .file-row button:hover{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.file-card button:active, .file-row button:active{
  --tw-scale-x: .95;
  --tw-scale-y: .95;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

/* Vue liste des fichiers */
.file-row{
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.file-row:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* Miniatures des fichiers */
.file-thumbnail{
  border-radius: 0.25rem;
  -o-object-fit: cover;
     object-fit: cover;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

.file-thumbnail:hover{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

/* Badges de statut des fichiers */
.file-status-badge{
  display: inline-flex;
  align-items: center;
  border-radius: 9999px;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  font-weight: 500;
}
.flex.file-status-badge.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.file-status-badge.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .flex.file-status-badge.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
}

.file-status-badge.public{
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(22 101 52 / var(--tw-text-opacity));
}

.file-status-badge.private{
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

/* Icônes de types de fichiers */
.file-type-icon{
  display: flex;
  height: 2.5rem;
  width: 2.5rem;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 600;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}
.file-type-icon.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.file-type-icon.justify-between .flex.items-center:first-child {
  flex: 1;
}
.file-type-icon.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.file-type-icon.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .file-type-icon.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.file-type-icon.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .file-type-icon {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .file-type-icon:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .file-type-icon:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}
.file-type-icon {
  transition: all 0.2s ease;
}

.file-type-icon:hover{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* Navigation des dossiers (breadcrumb) */
.folder-breadcrumb{
  display: flex;
  align-items: center;
}
.folder-breadcrumb > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.25rem * var(--tw-space-x-reverse));
  margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse)));
}
.folder-breadcrumb{
  font-size: 0.875rem;
  line-height: 1.25rem;
}
.folder-breadcrumb.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.folder-breadcrumb.justify-between .flex.items-center:first-child {
  flex: 1;
}
.folder-breadcrumb.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.folder-breadcrumb.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .folder-breadcrumb.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.folder-breadcrumb.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .folder-breadcrumb {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .folder-breadcrumb:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .folder-breadcrumb:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.breadcrumb-item{
  border-radius: 0.25rem;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity));
  transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.breadcrumb-item:hover{
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}

/* Arbre des dossiers */
.folder-tree > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.25rem * var(--tw-space-y-reverse));
}

.folder-tree-item{
  display: flex;
  cursor: pointer;
  align-items: center;
}

.folder-tree-item > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.folder-tree-item{
  border-radius: 0.5rem;
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.folder-tree-item.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.folder-tree-item.justify-between .flex.items-center:first-child {
  flex: 1;
}

.folder-tree-item.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.folder-tree-item.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .folder-tree-item.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.folder-tree-item.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .folder-tree-item {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .folder-tree-item:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .folder-tree-item:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.folder-tree-item:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}

.folder-tree-item.active{
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity));
}

/* Filtres et recherche */
.files-filters{
  margin-bottom: 1.5rem;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding: 1rem;
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
#event-modal .files-filters {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}
@media (max-height: 700px) {
  #event-modal .files-filters {
    max-height: calc(100vh - 1rem);
  }
}
@media (max-width: 640px) {
  #event-modal .files-filters {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
  #fileGalleryModal .flex.items-center.justify-between.files-filters {
    flex-direction: column;
    gap: 1rem;
  }
}

.filter-group > :not([hidden]) ~ :not([hidden]){
  --tw-space-y-reverse: 0;
  margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
  margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));
}

.filter-group label{
  display: block;
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
}

.filter-group select, .filter-group input{
  width: 100%;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  padding-left: 0.75rem;
  padding-right: 0.75rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

#event-panel .filter-group select,#event-panel  .filter-group input {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#event-panel.show .filter-group select,#event-panel.show  .filter-group input {
  transform: scale(1) translateY(0);
}

#recurring-options-panel .filter-group select,#recurring-options-panel  .filter-group input {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

#recurring-options-panel.show .filter-group select,#recurring-options-panel.show  .filter-group input {
  transform: scale(1) translateY(0);
}

#message-panel .filter-group select,#message-panel  .filter-group input {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}

#message-panel.show .filter-group select,#message-panel.show  .filter-group input {
  transform: translateY(0);
}

.filter-group select:focus, .filter-group input:focus{
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity));
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}

/* Barre d'outils des fichiers */
.files-toolbar{
  margin-bottom: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding: 1rem;
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.files-toolbar.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.files-toolbar.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.items-center.files-toolbar .flex.items-center:first-child {
  flex: 1;
}
.files-toolbar.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.files-toolbar.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.items-center.files-toolbar .flex.items-center:last-child {
  margin-left: auto;
}
#event-modal .files-toolbar {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}
@media (max-height: 700px) {
  #event-modal .files-toolbar {
    max-height: calc(100vh - 1rem);
  }
}
@media (max-width: 640px) {
  #event-modal .files-toolbar {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
  #fileGalleryModal .files-toolbar.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.files-toolbar.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.items-center.files-toolbar.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.items-center.justify-between.files-toolbar {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .files-toolbar {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .files-toolbar:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .files-toolbar:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.toolbar-group{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}

.toolbar-group > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(0.5rem * var(--tw-space-x-reverse));
  margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}

.toolbar-group.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.toolbar-group.justify-between .flex.items-center:first-child {
  flex: 1;
}

.toolbar-group.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.toolbar-group.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .toolbar-group.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.toolbar-group.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .toolbar-group {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .toolbar-group:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .toolbar-group:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.view-toggle-btn{
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  padding: 0.5rem;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}

.view-toggle-btn:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

.view-toggle-btn.active{
  --tw-border-opacity: 1;
  border-color: rgb(147 197 253 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity));
}

/* Boutons d'actions principaux */
.files-action-btn{
  display: inline-flex;
  align-items: center;
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity));
  padding-left: 1rem;
  padding-right: 1rem;
  padding-top: 0.5rem;
  padding-bottom: 0.5rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 150ms;
}
.flex.files-action-btn.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.files-action-btn.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .flex.files-action-btn.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
}
.files-action-btn:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity));
}
.files-action-btn:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
  --tw-ring-offset-width: 2px;
}

.files-action-btn:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.files-action-btn.secondary{
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity));
}

.files-action-btn.secondary:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity));
}

.files-action-btn.secondary:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity));
}

.files-action-btn.success{
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / var(--tw-bg-opacity));
}

.files-action-btn.success:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(21 128 61 / var(--tw-bg-opacity));
}

.files-action-btn.success:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity));
}

.files-action-btn.warning{
  --tw-bg-opacity: 1;
  background-color: rgb(202 138 4 / var(--tw-bg-opacity));
}

.files-action-btn.warning:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(161 98 7 / var(--tw-bg-opacity));
}

.files-action-btn.warning:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity));
}

.files-action-btn.danger{
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity));
}

.files-action-btn.danger:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(185 28 28 / var(--tw-bg-opacity));
}

.files-action-btn.danger:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity));
}

/* Statistiques des fichiers */
.file-stats{
  margin-bottom: 1.5rem;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 1rem;
}
@media (min-width: 640px){
  .file-stats{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.file-stat-card{
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding: 1rem;
  text-align: center;
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

#event-modal .file-stat-card {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .file-stat-card {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .file-stat-card {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
  #fileGalleryModal .flex.items-center.justify-between.file-stat-card {
    flex-direction: column;
    gap: 1rem;
  }
}

.file-stat-number{
  font-size: 1.5rem;
  line-height: 2rem;
  font-weight: 700;
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity));
}

.file-stat-label{
  margin-top: 0.25rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
}

/* Tags des fichiers */
.file-tags{
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.file-tags.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.file-tags.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .file-tags.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .file-tags {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .file-tags:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .file-tags:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.file-tag{
  display: inline-block;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity));
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity));
}

/* États de chargement spécifiques aux fichiers */
.files-loading{
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 3rem;
  padding-bottom: 3rem;
}
.files-loading.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.files-loading.justify-between .flex.items-center:first-child {
  flex: 1;
}
.files-loading.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.files-loading.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .files-loading.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.files-loading.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .files-loading {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .files-loading:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .files-loading:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.files-loading-spinner{
  height: 2rem;
  width: 2rem;
}

@keyframes spin{
  to{
    transform: rotate(360deg);
  }
}

.files-loading-spinner{
  animation: spin 1s linear infinite;
  border-radius: 9999px;
  border-width: 2px;
  border-color: rgb(209 213 219 / var(--tw-border-opacity));
  --tw-border-opacity: 1;
  border-top-color: rgb(37 99 235 / var(--tw-border-opacity));
}

/* Drag & drop global */
.files-container.drag-over{
  border-radius: 0.5rem;
  border-width: 2px;
  border-style: dashed;
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}

/* File Gallery Styles */
#fileGalleryModal {
  backdrop-filter: blur(4px);
}

#fileGalleryModal .carousel-item {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
}

#fileGalleryModal .carousel-item img,
#imageModal .carousel-item img {
  max-width: 100%;
  max-height: calc(100vh - 200px); /* Hauteur maximale responsive */
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

#fileGalleryModal .carousel-item video,
#imageModal .carousel-item video {
  max-width: 100%;
  max-height: calc(100vh - 200px); /* Hauteur maximale responsive */
  width: auto;
  height: auto;
  -o-object-fit: contain;
     object-fit: contain;
}

/* Amélioration responsive pour les vidéos */
@media (max-width: 640px) {
  #fileGalleryModal .carousel-item video,
  #imageModal .carousel-item video {
    max-height: calc(100vh - 150px);
    width: 100%;
  }
  #fileGalleryModal .carousel-item img,
  #imageModal .carousel-item img {
    max-height: calc(100vh - 150px); /* Plus d'espace sur mobile */
  }
  .zoomable-image {
    max-height: calc(100vh - 150px) !important;
  }
}
#galleryThumbnails {
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE and Edge */
}

#galleryThumbnails::-webkit-scrollbar {
  display: none; /* Chrome, Safari and Opera */
}

/* Animations pour la galerie */
@keyframes galleryFadeIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
#fileGalleryModal:not(.hidden) {
  animation: galleryFadeIn 0.2s ease-out;
}

/* Style pour les boutons de navigation de la galerie */
#galleryPrevBtn, #galleryNextBtn {
  transition: all 0.2s ease;
}

#galleryPrevBtn:hover, #galleryNextBtn:hover {
  transform: scale(1.1);
  background-color: rgba(0, 0, 0, 0.8);
}

/* Responsive pour mobile */
@media (max-width: 640px) {
  #fileGalleryModal .flex.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #galleryThumbnails {
    max-height: 60px;
  }
  #galleryPrevBtn, #galleryNextBtn {
    padding: 0.5rem;
  }
  #galleryPrevBtn svg, #galleryNextBtn svg {
    width: 1.25rem;
    height: 1.25rem;
  }
}
/* Messages d'état vides */
.files-empty-state{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding-top: 4rem;
  padding-bottom: 4rem;
  --tw-text-opacity: 1;
  color: rgb(107 114 128 / var(--tw-text-opacity));
}
.files-empty-state.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.files-empty-state.justify-between .flex.items-center:first-child {
  flex: 1;
}
.files-empty-state.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.files-empty-state.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
@media (max-width: 640px) {
  #fileGalleryModal .files-empty-state.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.files-empty-state.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .files-empty-state {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .files-empty-state:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .files-empty-state:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.files-empty-icon{
  margin-bottom: 1rem;
  height: 4rem;
  width: 4rem;
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity));
}

.files-empty-title{
  margin-bottom: 0.5rem;
  font-size: 1.125rem;
  line-height: 1.75rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(17 24 39 / var(--tw-text-opacity));
}

.files-empty-description{
  max-width: 24rem;
  text-align: center;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
}

/* Modales spécifiques aux fichiers */
.file-modal .modal-content{
  max-width: 56rem;
}
@media (max-width: 768px) {
  .file-modal .modal-content{
    margin-left: 0.5rem;
    margin-right: 0.5rem;
  }
}

.file-preview-container{
  display: flex;
  max-height: 24rem;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}

.file-preview-container.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}

.flex.file-preview-container.justify-between .flex.items-center:first-child {
  flex: 1;
}

.file-preview-container.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

.flex.file-preview-container.justify-between .flex.items-center:last-child {
  margin-left: auto;
}

@media (max-width: 640px) {
  #fileGalleryModal .file-preview-container.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.file-preview-container.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .file-preview-container {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .file-preview-container:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .file-preview-container:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}

.file-preview-image{
  max-height: 100%;
  max-width: 100%;
  -o-object-fit: contain;
     object-fit: contain;
}

.file-preview-icon{
  font-size: 3.75rem;
  line-height: 1;
  --tw-text-opacity: 1;
  color: rgb(156 163 175 / var(--tw-text-opacity));
}

/* Responsive pour les fichiers */
@media (max-width: 768px) {
  .files-toolbar{
    flex-direction: column;
    align-items: stretch;
    gap: 0.5rem;
  }
  .files-toolbar > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse: 0;
    margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
  }
  .toolbar-group{
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
  }
  .toolbar-group > *{
    font-size: 0.875rem;
    line-height: 1.25rem;
  }
  .file-card{
    transform: none;
  }
  .file-card:hover{
    --tw-translate-y: 0px;
    transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
    --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
    --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  }
  /* IMPORTANT: S'assurer que la border mobile ne cause pas de décalage */
  .file-card,
  .folder-card {
    border: 1px solid transparent !important; /* Override avec !important */
  }
  .files-filters > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse: 0;
    margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(1rem * var(--tw-space-y-reverse));
  }
  .filter-group > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse: 0;
    margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0.75rem * var(--tw-space-y-reverse));
  }
}
/* Animations spécifiques aux fichiers */
@keyframes fileSlideIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.file-card, .file-row {
  animation: fileSlideIn 0.3s ease-out;
}

/* Progression d'upload */
.upload-progress{
  height: 0.5rem;
  width: 100%;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}
#event-panel .upload-progress {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 800px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#event-panel.show .upload-progress {
  transform: scale(1) translateY(0);
}
#recurring-options-panel .upload-progress {
  background: white;
  border-radius: 16px;
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  transform: scale(0.95) translateY(10px);
  transition: all 0.3s ease-in-out;
  pointer-events: all;
  display: flex;
  flex-direction: column;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
}
#recurring-options-panel.show .upload-progress {
  transform: scale(1) translateY(0);
}
#message-panel .upload-progress {
  background: white;
  border-radius: 20px 20px 0 0;
  max-height: 90vh;
  transform: translateY(100%);
  transition: transform 0.3s ease-in-out;
  pointer-events: all;
}
#message-panel.show .upload-progress {
  transform: translateY(0);
}

.upload-progress-bar{
  height: 0.5rem;
  border-radius: 9999px;
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity));
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.upload-status{
  margin-top: 0.5rem;
  font-size: 0.875rem;
  line-height: 1.25rem;
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
}

/* Sélection multiple de fichiers - SUPPRIMÉ: conflit avec les nouveaux styles */
.files-selection-toolbar{
  position: fixed;
  bottom: 1rem;
  left: 50%;
  display: flex;
  --tw-translate-x: -50%;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  align-items: center;
}
.files-selection-toolbar > :not([hidden]) ~ :not([hidden]){
  --tw-space-x-reverse: 0;
  margin-right: calc(1rem * var(--tw-space-x-reverse));
  margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
}
.files-selection-toolbar{
  border-radius: 0.5rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(229 231 235 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding-left: 1.5rem;
  padding-right: 1.5rem;
  padding-top: 0.75rem;
  padding-bottom: 0.75rem;
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}
.files-selection-toolbar.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.files-selection-toolbar.justify-between .flex.items-center:first-child {
  flex: 1;
}
.files-selection-toolbar.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.files-selection-toolbar.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
#event-modal .files-selection-toolbar {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}
@media (max-height: 700px) {
  #event-modal .files-selection-toolbar {
    max-height: calc(100vh - 1rem);
  }
}
@media (max-width: 640px) {
  #event-modal .files-selection-toolbar {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
  #fileGalleryModal .files-selection-toolbar.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.files-selection-toolbar.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #bulk-actions > .files-selection-toolbar {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .files-selection-toolbar:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .files-selection-toolbar:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}
.files-selection-toolbar {
  z-index: 50;
}

.selection-count{
  font-size: 0.875rem;
  line-height: 1.25rem;
  font-weight: 500;
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
}

/* Prévisualisation rapide */
.file-quick-preview{
  position: absolute;
  inset: 0px;
  z-index: 50;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity));
  --tw-bg-opacity: 0.75;
}
.file-quick-preview.items-center.justify-between .flex.items-center:first-child {
  flex: 1;
}
.flex.file-quick-preview.justify-between .flex.items-center:first-child {
  flex: 1;
}
.file-quick-preview.items-center.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.flex.file-quick-preview.justify-between .flex.items-center:last-child {
  margin-left: auto;
}
.file-card .file-quick-preview.inset-0 {
  transition: opacity 0.2s ease;
}
.file-card .absolute.file-quick-preview {
  transition: opacity 0.2s ease;
}
@media (max-width: 640px) {
  #fileGalleryModal .file-quick-preview.items-center.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  #fileGalleryModal .flex.file-quick-preview.justify-between.p-4 {
    flex-direction: column;
    gap: 1rem;
  }
  .file-card > .file-quick-preview:first-child {
    top: 4px;
    left: 4px;
    position: absolute;
    z-index: 20;
  }
  #bulk-actions > .file-quick-preview {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions .file-quick-preview:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .file-quick-preview:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}
.file-quick-preview {
  backdrop-filter: blur(4px);
}

.quick-preview-content{
  max-height: 24rem;
  max-width: 42rem;
  overflow: auto;
  border-radius: 0.5rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  padding: 1rem;
}

#event-modal .quick-preview-content {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .quick-preview-content {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .quick-preview-content {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
  #fileGalleryModal .flex.items-center.justify-between.quick-preview-content {
    flex-direction: column;
    gap: 1rem;
  }
}

.quick-preview-close{
  position: absolute;
  top: 1rem;
  right: 1rem;
  cursor: pointer;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.file-card .quick-preview-close.inset-0 {
  transition: opacity 0.2s ease;
}

@media (max-width: 640px) {
  .file-card > .quick-preview-close:first-child {
    top: 4px;
    left: 4px;
    position: absolute;
    z-index: 20;
  }
}

.quick-preview-close:hover{
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity));
}

/* Intégration avec le design existant */
.files-page-header{
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  background-image: linear-gradient(to right, var(--tw-gradient-stops));
  --tw-gradient-from: #2563eb var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(37 99 235 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
  --tw-gradient-to: #9333ea var(--tw-gradient-to-position);
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.files-filters-section{
  position: relative;
  z-index: 10;
  margin-left: 1rem;
  margin-right: 1rem;
  margin-top: -1rem;
  border-radius: 0.75rem;
  border-width: 1px;
  --tw-border-opacity: 1;
  border-color: rgb(243 244 246 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

#event-modal .files-filters-section {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .files-filters-section {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .files-filters-section {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

.files-card{
  margin-top: 1rem;
  overflow: hidden;
  border-bottom-right-radius: 1rem;
  border-bottom-left-radius: 1rem;
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

#event-modal .files-card {
  max-height: calc(100vh - 2rem);
  overflow: hidden;
}

@media (max-height: 700px) {
  #event-modal .files-card {
    max-height: calc(100vh - 1rem);
  }
}

@media (max-width: 640px) {
  #event-modal .files-card {
    margin: 0.5rem;
    max-width: calc(100vw - 1rem);
  }
}

.files-card:hover{
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* Classes pour le zoom des images dans le carousel */
.image-zoom-container {
  position: relative;
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  background: #f3f4f6;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  min-height: calc(100vh - 200px); /* Hauteur minimale responsive */
}

/* Conteneur spécifique pour le modal des messages */
#imageModal .image-zoom-container {
  min-height: calc(100vh - 300px); /* Plus petit car modal avec header */
}

.zoomable-image {
  transition: transform 0.2s ease-out;
  cursor: grab;
  max-width: 100% !important;
  max-height: calc(100vh - 200px) !important; /* Hauteur responsive */
  width: auto !important;
  height: auto !important;
  -o-object-fit: contain !important;
     object-fit: contain !important;
  -o-object-position: center !important;
     object-position: center !important;
  display: block !important;
  margin: 0 auto !important;
}

.zoomable-image:active {
  cursor: grabbing;
}

.image-zoom-container.zoomed .zoomable-image {
  cursor: grab;
}

.image-zoom-container.zoomed .zoomable-image:active {
  cursor: grabbing;
}

/* Instructions de zoom */
.zoom-instructions{
  pointer-events: none;
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  border-radius: 0.25rem;
  background-color: rgb(0 0 0 / var(--tw-bg-opacity));
  --tw-bg-opacity: 0.6;
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  padding-top: 0.25rem;
  padding-bottom: 0.25rem;
  font-size: 0.75rem;
  line-height: 1rem;
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
  opacity: 0;
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}
.file-card .zoom-instructions.inset-0 {
  transition: opacity 0.2s ease;
}
@media (max-width: 640px) {
  .file-card > .zoom-instructions:first-child {
    top: 4px;
    left: 4px;
    position: absolute;
    z-index: 20;
  }
}

.image-zoom-container:hover .zoom-instructions{
  opacity: 1;
}

/* Contrôles de zoom */
#zoomControls button{
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
}

#zoomControls button:hover{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

#zoomControls button:disabled{
  cursor: not-allowed;
  opacity: 0.5;
}

#zoomControls button:disabled:hover{
  --tw-scale-x: 1;
  --tw-scale-y: 1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
  --tw-shadow: 0 0 #0000;
  --tw-shadow-colored: 0 0 #0000;
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

/* === LAZY LOADING === */
.lazy-thumbnail{
  transition-property: opacity;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 300ms;
}

.lazy-loading{
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
  opacity: 0.5;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%236B7280'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1' d='M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 48px;
}

.lazy-loaded{
  opacity: 1;
}

.lazy-error{
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity));
  opacity: 0.75;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%23EF4444'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='1' d='M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 48px;
}

/* === SÉLECTION MULTIPLE === */
/* Containers des fichiers - OBLIGATOIRE pour les checkboxes absolues */
.file-card,
.folder-card {
  position: relative; /* FIX: Pour que les checkboxes absolute se positionnent correctement */ transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 200ms; /* Transition douce pour la sélection */
  border: 2px solid transparent; /* FIX: Border transparente par défaut pour éviter les décalages */
}

.file-card.selected,
.file-row.selected {
  border-color: #3b82f6 !important; /* Changer seulement la couleur, pas la taille */ --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}

.file-checkbox{
  transition-property: all;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
  transition-duration: 200ms;
  box-shadow: 0 0 0 2px transparent;
  position: relative;
  z-index: 10;
}

.file-checkbox:checked{
  --tw-border-opacity: 1;
  border-color: rgb(37 99 235 / var(--tw-border-opacity));
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity));
  box-shadow: 0 0 0 2px #dbeafe;
}

.file-checkbox:hover{
  --tw-border-opacity: 1;
  border-color: rgb(96 165 250 / var(--tw-border-opacity));
  box-shadow: 0 0 0 2px #eff6ff;
}

/* === RESPONSIVE MOBILE === */
@media (max-width: 640px) {
  /* Checkboxes plus petites sur mobile */
  .file-checkbox{
    height: 1rem;
    width: 1rem;
    flex-shrink: 0;
  }
  /* Position des checkboxes en vue grille - FIX: utiliser CSS pur au lieu de @apply */
  .file-card > .absolute:first-child {
    top: 4px;
    left: 4px;
    position: absolute !important;
    z-index: 20;
  }
  /* Container des checkboxes en vue liste */
  .file-row .flex-shrink-0 {
    flex-shrink: 0 !important;
    min-width: 20px;
  }
  /* Border plus discret sur mobile - DÉJÀ DÉFINI PLUS HAUT */
  .file-card.selected,
  .file-row.selected {
    border-color: #60a5fa !important; /* Changer seulement la couleur sur mobile */ --tw-bg-opacity: 1; background-color: rgb(239 246 255 / var(--tw-bg-opacity));
  }
  /* FIX: Barre d'actions bulk-actions sur 2 lignes mobile */
  #bulk-actions {
    font-size: 0.75rem; /* text-xs */
    padding: 0.5rem !important;
  }
  #bulk-actions > .flex {
    flex-direction: column; /* flex-col */
    gap: 0.5rem; /* gap-2 */
    width: 100%; /* w-full */
  }
  #bulk-actions button {
    padding: 0.25rem 0.5rem; /* px-2 py-1 */
    min-width: 0; /* min-w-0 */
    flex-shrink: 0; /* flex-shrink-0 */
    font-size: 11px !important;
    line-height: 1.3;
  }
  #bulk-actions .border-l {
    border-left: none; /* border-l-0 */
    border-top: 1px solid #93c5fd; /* border-t border-blue-300 */
    padding-left: 0; /* pl-0 */
    padding-top: 0.5rem; /* pt-2 */
    width: 100%;
  }
  /* Compteur de sélection */
  #selection-counter {
    font-size: 0.75rem; /* text-xs */
    font-weight: 500; /* font-medium */
    text-align: center; /* text-center */
    margin-bottom: 0.5rem; /* mb-2 */
  }
  /* Actions de sélection et actions en lot sur lignes séparées */
  #bulk-actions .flex:first-of-type {
    justify-content: center; /* justify-center */
    gap: 0.5rem; /* gap-2 */
  }
  #bulk-actions .flex:last-of-type {
    justify-content: center; /* justify-center */
    gap: 0.25rem; /* gap-1 */
  }
}
/* === ACTIONS EN LOT === */
#bulk-actions {
  animation: fade-in 0.3s ease-out;
}

@keyframes fade-in {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.animate-fade-in {
  animation: fade-in 0.3s ease-out;
}

/* === PROGRESSION === */
#progress-modal {
  backdrop-filter: blur(4px);
}

#progress-bar {
  background: linear-gradient(90deg, #3B82F6, #8B5CF6);
}

.first\:rounded-l-lg:first-child{
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}

.first\:rounded-r-lg:first-child{
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}

.last\:rounded-l-lg:last-child{
  border-top-left-radius: 0.5rem;
  border-bottom-left-radius: 0.5rem;
}

.last\:rounded-r-lg:last-child{
  border-top-right-radius: 0.5rem;
  border-bottom-right-radius: 0.5rem;
}

.hover\:-translate-y-0\.5:hover{
  --tw-translate-y: -0.125rem;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-105:hover{
  --tw-scale-x: 1.05;
  --tw-scale-y: 1.05;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:scale-110:hover{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.hover\:border-blue-300:hover{
  --tw-border-opacity: 1;
  border-color: rgb(147 197 253 / var(--tw-border-opacity));
}

.hover\:border-gray-400:hover{
  --tw-border-opacity: 1;
  border-color: rgb(156 163 175 / var(--tw-border-opacity));
}

.hover\:border-red-300:hover{
  --tw-border-opacity: 1;
  border-color: rgb(252 165 165 / var(--tw-border-opacity));
}

.hover\:bg-blue-100:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(219 234 254 / var(--tw-bg-opacity));
}

.hover\:bg-blue-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(239 246 255 / var(--tw-bg-opacity));
}

.hover\:bg-blue-600:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(37 99 235 / var(--tw-bg-opacity));
}

.hover\:bg-blue-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(29 78 216 / var(--tw-bg-opacity));
}

.hover\:bg-gray-100:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(243 244 246 / var(--tw-bg-opacity));
}

.hover\:bg-gray-200:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}

.hover\:bg-gray-300:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(209 213 219 / var(--tw-bg-opacity));
}

.hover\:bg-gray-400:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(156 163 175 / var(--tw-bg-opacity));
}

.hover\:bg-gray-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(249 250 251 / var(--tw-bg-opacity));
}

.hover\:bg-gray-600:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity));
}

.hover\:bg-gray-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(55 65 81 / var(--tw-bg-opacity));
}

.hover\:bg-green-100:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(220 252 231 / var(--tw-bg-opacity));
}

.hover\:bg-green-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(240 253 244 / var(--tw-bg-opacity));
}

.hover\:bg-green-600:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(22 163 74 / var(--tw-bg-opacity));
}

.hover\:bg-green-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(21 128 61 / var(--tw-bg-opacity));
}

.hover\:bg-orange-100:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(255 237 213 / var(--tw-bg-opacity));
}

.hover\:bg-orange-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(255 247 237 / var(--tw-bg-opacity));
}

.hover\:bg-orange-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(194 65 12 / var(--tw-bg-opacity));
}

.hover\:bg-purple-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(250 245 255 / var(--tw-bg-opacity));
}

.hover\:bg-purple-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(126 34 206 / var(--tw-bg-opacity));
}

.hover\:bg-red-100:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity));
}

.hover\:bg-red-200:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(254 202 202 / var(--tw-bg-opacity));
}

.hover\:bg-red-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(254 242 242 / var(--tw-bg-opacity));
}

.hover\:bg-red-600:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(220 38 38 / var(--tw-bg-opacity));
}

.hover\:bg-red-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(185 28 28 / var(--tw-bg-opacity));
}

.hover\:bg-teal-700:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(15 118 110 / var(--tw-bg-opacity));
}

.hover\:bg-white:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(255 255 255 / var(--tw-bg-opacity));
}

.hover\:bg-white\/20:hover{
  background-color: rgb(255 255 255 / 0.2);
}

.hover\:bg-white\/50:hover{
  background-color: rgb(255 255 255 / 0.5);
}

.hover\:bg-yellow-50:hover{
  --tw-bg-opacity: 1;
  background-color: rgb(254 252 232 / var(--tw-bg-opacity));
}

.hover\:bg-opacity-20:hover{
  --tw-bg-opacity: 0.2;
}

.hover\:bg-opacity-50:hover{
  --tw-bg-opacity: 0.5;
}

.hover\:bg-opacity-70:hover{
  --tw-bg-opacity: 0.7;
}

.hover\:bg-opacity-75:hover{
  --tw-bg-opacity: 0.75;
}

.hover\:from-blue-100:hover{
  --tw-gradient-from: #dbeafe var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(219 234 254 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-blue-700:hover{
  --tw-gradient-from: #1d4ed8 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(29 78 216 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-green-100:hover{
  --tw-gradient-from: #dcfce7 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(220 252 231 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-green-700:hover{
  --tw-gradient-from: #15803d var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(21 128 61 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-orange-100:hover{
  --tw-gradient-from: #ffedd5 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(255 237 213 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-purple-100:hover{
  --tw-gradient-from: #f3e8ff var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(243 232 255 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:from-red-100:hover{
  --tw-gradient-from: #fee2e2 var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(254 226 226 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}

.hover\:to-blue-800:hover{
  --tw-gradient-to: #1e40af var(--tw-gradient-to-position);
}

.hover\:to-emerald-100:hover{
  --tw-gradient-to: #d1fae5 var(--tw-gradient-to-position);
}

.hover\:to-green-800:hover{
  --tw-gradient-to: #166534 var(--tw-gradient-to-position);
}

.hover\:to-indigo-100:hover{
  --tw-gradient-to: #e0e7ff var(--tw-gradient-to-position);
}

.hover\:to-pink-100:hover{
  --tw-gradient-to: #fce7f3 var(--tw-gradient-to-position);
}

.hover\:to-purple-700:hover{
  --tw-gradient-to: #7e22ce var(--tw-gradient-to-position);
}

.hover\:to-red-200:hover{
  --tw-gradient-to: #fecaca var(--tw-gradient-to-position);
}

.hover\:to-yellow-100:hover{
  --tw-gradient-to: #fef9c3 var(--tw-gradient-to-position);
}

.hover\:text-blue-500:hover{
  --tw-text-opacity: 1;
  color: rgb(59 130 246 / var(--tw-text-opacity));
}

.hover\:text-blue-600:hover{
  --tw-text-opacity: 1;
  color: rgb(37 99 235 / var(--tw-text-opacity));
}

.hover\:text-blue-700:hover{
  --tw-text-opacity: 1;
  color: rgb(29 78 216 / var(--tw-text-opacity));
}

.hover\:text-blue-800:hover{
  --tw-text-opacity: 1;
  color: rgb(30 64 175 / var(--tw-text-opacity));
}

.hover\:text-gray-200:hover{
  --tw-text-opacity: 1;
  color: rgb(229 231 235 / var(--tw-text-opacity));
}

.hover\:text-gray-300:hover{
  --tw-text-opacity: 1;
  color: rgb(209 213 219 / var(--tw-text-opacity));
}

.hover\:text-gray-600:hover{
  --tw-text-opacity: 1;
  color: rgb(75 85 99 / var(--tw-text-opacity));
}

.hover\:text-gray-700:hover{
  --tw-text-opacity: 1;
  color: rgb(55 65 81 / var(--tw-text-opacity));
}

.hover\:text-gray-800:hover{
  --tw-text-opacity: 1;
  color: rgb(31 41 55 / var(--tw-text-opacity));
}

.hover\:text-green-600:hover{
  --tw-text-opacity: 1;
  color: rgb(22 163 74 / var(--tw-text-opacity));
}

.hover\:text-orange-600:hover{
  --tw-text-opacity: 1;
  color: rgb(234 88 12 / var(--tw-text-opacity));
}

.hover\:text-purple-600:hover{
  --tw-text-opacity: 1;
  color: rgb(147 51 234 / var(--tw-text-opacity));
}

.hover\:text-red-500:hover{
  --tw-text-opacity: 1;
  color: rgb(239 68 68 / var(--tw-text-opacity));
}

.hover\:text-red-600:hover{
  --tw-text-opacity: 1;
  color: rgb(220 38 38 / var(--tw-text-opacity));
}

.hover\:text-red-700:hover{
  --tw-text-opacity: 1;
  color: rgb(185 28 28 / var(--tw-text-opacity));
}

.hover\:text-red-800:hover{
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity));
}

.hover\:text-white:hover{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.hover\:underline:hover{
  text-decoration-line: underline;
}

.hover\:opacity-100:hover{
  opacity: 1;
}

.hover\:opacity-80:hover{
  opacity: 0.8;
}

.hover\:shadow-2xl:hover{
  --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
  --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-lg:hover{
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-md:hover{
  --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-sm:hover{
  --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
  --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.hover\:shadow-xl:hover{
  --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
  --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
  box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.focus\:border-blue-500:focus{
  --tw-border-opacity: 1;
  border-color: rgb(59 130 246 / var(--tw-border-opacity));
}

.focus\:border-green-500:focus{
  --tw-border-opacity: 1;
  border-color: rgb(34 197 94 / var(--tw-border-opacity));
}

.focus\:border-orange-500:focus{
  --tw-border-opacity: 1;
  border-color: rgb(249 115 22 / var(--tw-border-opacity));
}

.focus\:border-purple-500:focus{
  --tw-border-opacity: 1;
  border-color: rgb(168 85 247 / var(--tw-border-opacity));
}

.focus\:border-transparent:focus{
  border-color: transparent;
}

.focus\:border-yellow-500:focus{
  --tw-border-opacity: 1;
  border-color: rgb(234 179 8 / var(--tw-border-opacity));
}

.focus\:outline-none:focus{
  outline: 2px solid transparent;
  outline-offset: 2px;
}

.focus\:ring:focus{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-2:focus{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-4:focus{
  --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
  --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);
  box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);
}

.focus\:ring-blue-100:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(219 234 254 / var(--tw-ring-opacity));
}

.focus\:ring-blue-200:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(191 219 254 / var(--tw-ring-opacity));
}

.focus\:ring-blue-300:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(147 197 253 / var(--tw-ring-opacity));
}

.focus\:ring-blue-500:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity));
}

.focus\:ring-gray-100:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(243 244 246 / var(--tw-ring-opacity));
}

.focus\:ring-gray-300:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(209 213 219 / var(--tw-ring-opacity));
}

.focus\:ring-gray-500:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(107 114 128 / var(--tw-ring-opacity));
}

.focus\:ring-green-100:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(220 252 231 / var(--tw-ring-opacity));
}

.focus\:ring-green-200:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(187 247 208 / var(--tw-ring-opacity));
}

.focus\:ring-green-500:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(34 197 94 / var(--tw-ring-opacity));
}

.focus\:ring-orange-500:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity));
}

.focus\:ring-purple-500:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(168 85 247 / var(--tw-ring-opacity));
}

.focus\:ring-red-100:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(254 226 226 / var(--tw-ring-opacity));
}

.focus\:ring-red-500:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(239 68 68 / var(--tw-ring-opacity));
}

.focus\:ring-white\/30:focus{
  --tw-ring-color: rgb(255 255 255 / 0.3);
}

.focus\:ring-yellow-500:focus{
  --tw-ring-opacity: 1;
  --tw-ring-color: rgb(234 179 8 / var(--tw-ring-opacity));
}

.focus\:ring-offset-2:focus{
  --tw-ring-offset-width: 2px;
}

.group:hover .group-hover\:scale-110{
  --tw-scale-x: 1.1;
  --tw-scale-y: 1.1;
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}

.group:hover .group-hover\:bg-blue-200{
  --tw-bg-opacity: 1;
  background-color: rgb(191 219 254 / var(--tw-bg-opacity));
}

.group:hover .group-hover\:bg-gray-200{
  --tw-bg-opacity: 1;
  background-color: rgb(229 231 235 / var(--tw-bg-opacity));
}

.group:hover .group-hover\:bg-green-200{
  --tw-bg-opacity: 1;
  background-color: rgb(187 247 208 / var(--tw-bg-opacity));
}

.group:hover .group-hover\:bg-orange-200{
  --tw-bg-opacity: 1;
  background-color: rgb(254 215 170 / var(--tw-bg-opacity));
}

.group:hover .group-hover\:bg-purple-200{
  --tw-bg-opacity: 1;
  background-color: rgb(233 213 255 / var(--tw-bg-opacity));
}

.group:hover .group-hover\:bg-red-200{
  --tw-bg-opacity: 1;
  background-color: rgb(254 202 202 / var(--tw-bg-opacity));
}

.group:hover .group-hover\:opacity-100{
  opacity: 1;
}

.peer:checked ~ .peer-checked\:bg-gray-400{
  --tw-bg-opacity: 1;
  background-color: rgb(156 163 175 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-gray-500{
  --tw-bg-opacity: 1;
  background-color: rgb(107 114 128 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-gray-600{
  --tw-bg-opacity: 1;
  background-color: rgb(75 85 99 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-gray-800{
  --tw-bg-opacity: 1;
  background-color: rgb(31 41 55 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-red-100{
  --tw-bg-opacity: 1;
  background-color: rgb(254 226 226 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-red-400{
  --tw-bg-opacity: 1;
  background-color: rgb(248 113 113 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-red-800{
  --tw-bg-opacity: 1;
  background-color: rgb(153 27 27 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-teal-600{
  --tw-bg-opacity: 1;
  background-color: rgb(13 148 136 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-yellow-100{
  --tw-bg-opacity: 1;
  background-color: rgb(254 249 195 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-yellow-500{
  --tw-bg-opacity: 1;
  background-color: rgb(234 179 8 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-yellow-600{
  --tw-bg-opacity: 1;
  background-color: rgb(202 138 4 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-yellow-700{
  --tw-bg-opacity: 1;
  background-color: rgb(161 98 7 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:bg-yellow-800{
  --tw-bg-opacity: 1;
  background-color: rgb(133 77 14 / var(--tw-bg-opacity));
}

.peer:checked ~ .peer-checked\:text-red-800{
  --tw-text-opacity: 1;
  color: rgb(153 27 27 / var(--tw-text-opacity));
}

.peer:checked ~ .peer-checked\:text-white{
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
}

.peer:checked ~ .peer-checked\:text-yellow-800{
  --tw-text-opacity: 1;
  color: rgb(133 77 14 / var(--tw-text-opacity));
}

.peer:checked ~ .group:hover .peer-checked\:group-hover\:bg-red-200{
  --tw-bg-opacity: 1;
  background-color: rgb(254 202 202 / var(--tw-bg-opacity));
}

.peer:checked ~ .group:hover .peer-checked\:group-hover\:bg-yellow-200{
  --tw-bg-opacity: 1;
  background-color: rgb(254 240 138 / var(--tw-bg-opacity));
}

@media (min-width: 640px){
  .sm\:col-span-2{
    grid-column: span 2 / span 2;
  }
  .sm\:mb-0{
    margin-bottom: 0px;
  }
  .sm\:mr-1{
    margin-right: 0.25rem;
  }
  .sm\:inline{
    display: inline;
  }
  .sm\:flex{
    display: flex;
  }
  .sm\:hidden{
    display: none;
  }
  .sm\:h-24{
    height: 6rem;
  }
  .sm\:w-1\/3{
    width: 33.333333%;
  }
  .sm\:w-24{
    width: 6rem;
  }
  .sm\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .sm\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .sm\:grid-cols-8{
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
  .sm\:flex-row{
    flex-direction: row;
  }
  .sm\:items-center{
    align-items: center;
  }
  .sm\:justify-between{
    justify-content: space-between;
  }
  .sm\:space-x-3 > :not([hidden]) ~ :not([hidden]){
    --tw-space-x-reverse: 0;
    margin-right: calc(0.75rem * var(--tw-space-x-reverse));
    margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse)));
  }
  .sm\:space-x-4 > :not([hidden]) ~ :not([hidden]){
    --tw-space-x-reverse: 0;
    margin-right: calc(1rem * var(--tw-space-x-reverse));
    margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse)));
  }
  .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]){
    --tw-space-y-reverse: 0;
    margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
    margin-bottom: calc(0px * var(--tw-space-y-reverse));
  }
  .sm\:p-4{
    padding: 1rem;
  }
  .sm\:p-6{
    padding: 1.5rem;
  }
  .sm\:px-3{
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }
  .sm\:px-4{
    padding-left: 1rem;
    padding-right: 1rem;
  }
  .sm\:px-6{
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }
}

@media (min-width: 768px){
  .md\:block{
    display: block;
  }
  .md\:flex{
    display: flex;
  }
  .md\:hidden{
    display: none;
  }
  .md\:grid-cols-2{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .md\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
}

@media (min-width: 1024px){
  .lg\:col-span-1{
    grid-column: span 1 / span 1;
  }
  .lg\:mt-0{
    margin-top: 0px;
  }
  .lg\:h-32{
    height: 8rem;
  }
  .lg\:w-32{
    width: 8rem;
  }
  .lg\:grid-cols-12{
    grid-template-columns: repeat(12, minmax(0, 1fr));
  }
  .lg\:grid-cols-3{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
  .lg\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .lg\:grid-cols-6{
    grid-template-columns: repeat(6, minmax(0, 1fr));
  }
  .lg\:flex-row{
    flex-direction: row;
  }
  .lg\:items-center{
    align-items: center;
  }
  .lg\:justify-between{
    justify-content: space-between;
  }
  .lg\:px-8{
    padding-left: 2rem;
    padding-right: 2rem;
  }
}

@media (min-width: 1280px){
  .xl\:grid-cols-4{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .xl\:grid-cols-8{
    grid-template-columns: repeat(8, minmax(0, 1fr));
  }
}