@import url(https://fonts.googleapis.com/css2?family=Lato:wght@400;500;600;700;800;900&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Lato:wght@400;500;600;700;800;900&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Lato:wght@400;500;600;700;800;900&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700;800&family=DM+Sans:ital,wght@0,400;0,500;0,600;1,400&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Lato:wght@300;400;500;600;700;800;900&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Lato:wght@400;500;600;700;800;900&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap);
@import url(https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@400;500&display=swap);
:root {
  --toastify-color-light: #fff;
  --toastify-color-dark: #121212;
  --toastify-color-info: #3498db;
  --toastify-color-success: #07bc0c;
  --toastify-color-warning: #f1c40f;
  --toastify-color-error: #e74c3c;
  --toastify-color-transparent: rgba(255, 255, 255, 0.7);
  --toastify-icon-color-info: var(--toastify-color-info);
  --toastify-icon-color-success: var(--toastify-color-success);
  --toastify-icon-color-warning: var(--toastify-color-warning);
  --toastify-icon-color-error: var(--toastify-color-error);
  --toastify-toast-width: 320px;
  --toastify-toast-offset: 16px;
  --toastify-toast-top: max(var(--toastify-toast-offset), env(safe-area-inset-top));
  --toastify-toast-right: max(var(--toastify-toast-offset), env(safe-area-inset-right));
  --toastify-toast-left: max(var(--toastify-toast-offset), env(safe-area-inset-left));
  --toastify-toast-bottom: max(var(--toastify-toast-offset), env(safe-area-inset-bottom));
  --toastify-toast-background: #fff;
  --toastify-toast-min-height: 64px;
  --toastify-toast-max-height: 800px;
  --toastify-toast-bd-radius: 6px;
  --toastify-font-family: sans-serif;
  --toastify-z-index: 9999;
  --toastify-text-color-light: #757575;
  --toastify-text-color-dark: #fff;
  --toastify-text-color-info: #fff;
  --toastify-text-color-success: #fff;
  --toastify-text-color-warning: #fff;
  --toastify-text-color-error: #fff;
  --toastify-spinner-color: #616161;
  --toastify-spinner-color-empty-area: #e0e0e0;
  --toastify-color-progress-light: linear-gradient(
    to right,
    #4cd964,
    #5ac8fa,
    #007aff,
    #34aadc,
    #5856d6,
    #ff2d55
  );
  --toastify-color-progress-dark: #bb86fc;
  --toastify-color-progress-info: var(--toastify-color-info);
  --toastify-color-progress-success: var(--toastify-color-success);
  --toastify-color-progress-warning: var(--toastify-color-warning);
  --toastify-color-progress-error: var(--toastify-color-error);
  --toastify-color-progress-bgo: 0.2;
}

.Toastify__toast-container {
  z-index: 9999;
  z-index: var(--toastify-z-index);
  -webkit-transform: translate3d(0, 0, 9999);
  -webkit-transform: translate3d(0, 0, var(--toastify-z-index));
  position: fixed;
  padding: 4px;
  width: 320px;
  width: var(--toastify-toast-width);
  box-sizing: border-box;
  color: #fff;
}
.Toastify__toast-container--top-left {
  top: max(16px, env(safe-area-inset-top));
  top: var(--toastify-toast-top);
  left: max(16px, env(safe-area-inset-left));
  left: var(--toastify-toast-left);
}
.Toastify__toast-container--top-center {
  top: max(16px, env(safe-area-inset-top));
  top: var(--toastify-toast-top);
  left: 50%;
  transform: translateX(-50%);
}
.Toastify__toast-container--top-right {
  top: max(16px, env(safe-area-inset-top));
  top: var(--toastify-toast-top);
  right: max(16px, env(safe-area-inset-right));
  right: var(--toastify-toast-right);
}
.Toastify__toast-container--bottom-left {
  bottom: max(16px, env(safe-area-inset-bottom));
  bottom: var(--toastify-toast-bottom);
  left: max(16px, env(safe-area-inset-left));
  left: var(--toastify-toast-left);
}
.Toastify__toast-container--bottom-center {
  bottom: max(16px, env(safe-area-inset-bottom));
  bottom: var(--toastify-toast-bottom);
  left: 50%;
  transform: translateX(-50%);
}
.Toastify__toast-container--bottom-right {
  bottom: max(16px, env(safe-area-inset-bottom));
  bottom: var(--toastify-toast-bottom);
  right: max(16px, env(safe-area-inset-right));
  right: var(--toastify-toast-right);
}

@media only screen and (max-width : 480px) {
  .Toastify__toast-container {
    width: 100vw;
    padding: 0;
    left: env(safe-area-inset-left);
    margin: 0;
  }
  .Toastify__toast-container--top-left, .Toastify__toast-container--top-center, .Toastify__toast-container--top-right {
    top: env(safe-area-inset-top);
    transform: translateX(0);
  }
  .Toastify__toast-container--bottom-left, .Toastify__toast-container--bottom-center, .Toastify__toast-container--bottom-right {
    bottom: env(safe-area-inset-bottom);
    transform: translateX(0);
  }
  .Toastify__toast-container--rtl {
    right: env(safe-area-inset-right);
    left: auto;
    left: initial;
  }
}
.Toastify__toast {
  --y: 0;
  position: relative;
  touch-action: none;
  min-height: 64px;
  min-height: var(--toastify-toast-min-height);
  box-sizing: border-box;
  margin-bottom: 1rem;
  padding: 8px;
  border-radius: 6px;
  border-radius: var(--toastify-toast-bd-radius);
  box-shadow: 0px 4px 12px rgba(0, 0, 0, 0.1);
  display: flex;
  justify-content: space-between;
  max-height: 800px;
  max-height: var(--toastify-toast-max-height);
  font-family: sans-serif;
  font-family: var(--toastify-font-family);
  cursor: default;
  direction: ltr;
  /* webkit only issue #791 */
  z-index: 0;
  overflow: hidden;
}
.Toastify__toast--stacked {
  position: absolute;
  width: 100%;
  transform: translate3d(0, var(--y), 0) scale(var(--s));
  transition: transform 0.3s;
}
.Toastify__toast--stacked[data-collapsed] .Toastify__toast-body, .Toastify__toast--stacked[data-collapsed] .Toastify__close-button {
  transition: opacity 0.1s;
}
.Toastify__toast--stacked[data-collapsed=false] {
  overflow: visible;
}
.Toastify__toast--stacked[data-collapsed=true]:not(:last-child) > * {
  opacity: 0;
}
.Toastify__toast--stacked:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: calc(var(--g) * 1px);
  bottom: 100%;
}
.Toastify__toast--stacked[data-pos=top] {
  top: 0;
}
.Toastify__toast--stacked[data-pos=bot] {
  bottom: 0;
}
.Toastify__toast--stacked[data-pos=bot].Toastify__toast--stacked:before {
  transform-origin: top;
}
.Toastify__toast--stacked[data-pos=top].Toastify__toast--stacked:before {
  transform-origin: bottom;
}
.Toastify__toast--stacked:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 100%;
  transform: scaleY(3);
  z-index: -1;
}
.Toastify__toast--rtl {
  direction: rtl;
}
.Toastify__toast--close-on-click {
  cursor: pointer;
}
.Toastify__toast-body {
  margin: auto 0;
  flex: 1 1 auto;
  padding: 6px;
  display: flex;
  align-items: center;
}
.Toastify__toast-body > div:last-child {
  word-break: break-word;
  flex: 1 1;
}
.Toastify__toast-icon {
  -webkit-margin-end: 10px;
          margin-inline-end: 10px;
  width: 20px;
  flex-shrink: 0;
  display: flex;
}

.Toastify--animate {
  animation-fill-mode: both;
  animation-duration: 0.5s;
}

.Toastify--animate-icon {
  animation-fill-mode: both;
  animation-duration: 0.3s;
}

@media only screen and (max-width : 480px) {
  .Toastify__toast {
    margin-bottom: 0;
    border-radius: 0;
  }
}
.Toastify__toast-theme--dark {
  background: #121212;
  background: var(--toastify-color-dark);
  color: #fff;
  color: var(--toastify-text-color-dark);
}
.Toastify__toast-theme--light {
  background: #fff;
  background: var(--toastify-color-light);
  color: #757575;
  color: var(--toastify-text-color-light);
}
.Toastify__toast-theme--colored.Toastify__toast--default {
  background: #fff;
  background: var(--toastify-color-light);
  color: #757575;
  color: var(--toastify-text-color-light);
}
.Toastify__toast-theme--colored.Toastify__toast--info {
  color: #fff;
  color: var(--toastify-text-color-info);
  background: #3498db;
  background: var(--toastify-color-info);
}
.Toastify__toast-theme--colored.Toastify__toast--success {
  color: #fff;
  color: var(--toastify-text-color-success);
  background: #07bc0c;
  background: var(--toastify-color-success);
}
.Toastify__toast-theme--colored.Toastify__toast--warning {
  color: #fff;
  color: var(--toastify-text-color-warning);
  background: #f1c40f;
  background: var(--toastify-color-warning);
}
.Toastify__toast-theme--colored.Toastify__toast--error {
  color: #fff;
  color: var(--toastify-text-color-error);
  background: #e74c3c;
  background: var(--toastify-color-error);
}

.Toastify__progress-bar-theme--light {
  background: linear-gradient(
    to right,
    #4cd964,
    #5ac8fa,
    #007aff,
    #34aadc,
    #5856d6,
    #ff2d55
  );
  background: var(--toastify-color-progress-light);
}
.Toastify__progress-bar-theme--dark {
  background: #bb86fc;
  background: var(--toastify-color-progress-dark);
}
.Toastify__progress-bar--info {
  background: #3498db;
  background: var(--toastify-color-progress-info);
}
.Toastify__progress-bar--success {
  background: #07bc0c;
  background: var(--toastify-color-progress-success);
}
.Toastify__progress-bar--warning {
  background: #f1c40f;
  background: var(--toastify-color-progress-warning);
}
.Toastify__progress-bar--error {
  background: #e74c3c;
  background: var(--toastify-color-progress-error);
}
.Toastify__progress-bar-theme--colored.Toastify__progress-bar--info, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--success, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--warning, .Toastify__progress-bar-theme--colored.Toastify__progress-bar--error {
  background: rgba(255, 255, 255, 0.7);
  background: var(--toastify-color-transparent);
}

.Toastify__close-button {
  color: #fff;
  background: transparent;
  outline: none;
  border: none;
  padding: 0;
  cursor: pointer;
  opacity: 0.7;
  transition: 0.3s ease;
  align-self: flex-start;
  z-index: 1;
}
.Toastify__close-button--light {
  color: #000;
  opacity: 0.3;
}
.Toastify__close-button > svg {
  fill: currentColor;
  height: 16px;
  width: 14px;
}
.Toastify__close-button:hover, .Toastify__close-button:focus {
  opacity: 1;
}

@keyframes Toastify__trackProgress {
  0% {
    transform: scaleX(1);
  }
  100% {
    transform: scaleX(0);
  }
}
.Toastify__progress-bar {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 9999;
  z-index: var(--toastify-z-index);
  opacity: 0.7;
  transform-origin: left;
  border-bottom-left-radius: 6px;
  border-bottom-left-radius: var(--toastify-toast-bd-radius);
}
.Toastify__progress-bar--animated {
  animation: Toastify__trackProgress linear 1 forwards;
}
.Toastify__progress-bar--controlled {
  transition: transform 0.2s;
}
.Toastify__progress-bar--rtl {
  right: 0;
  left: auto;
  left: initial;
  transform-origin: right;
  border-bottom-left-radius: 0;
  border-bottom-left-radius: initial;
  border-bottom-right-radius: 6px;
  border-bottom-right-radius: var(--toastify-toast-bd-radius);
}
.Toastify__progress-bar--wrp {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 5px;
  border-bottom-left-radius: 6px;
  border-bottom-left-radius: var(--toastify-toast-bd-radius);
}
.Toastify__progress-bar--wrp[data-hidden=true] {
  opacity: 0;
}
.Toastify__progress-bar--bg {
  opacity: 0.2;
  opacity: var(--toastify-color-progress-bgo);
  width: 100%;
  height: 100%;
}

.Toastify__spinner {
  width: 20px;
  height: 20px;
  box-sizing: border-box;
  border: 2px solid;
  border-radius: 100%;
  border-color: #e0e0e0;
  border-color: var(--toastify-spinner-color-empty-area);
  border-right-color: #616161;
  border-right-color: var(--toastify-spinner-color);
  animation: Toastify__spin 0.65s linear infinite;
}

@keyframes Toastify__bounceInRight {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    transform: translate3d(3000px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(-25px, 0, 0);
  }
  75% {
    transform: translate3d(10px, 0, 0);
  }
  90% {
    transform: translate3d(-5px, 0, 0);
  }
  to {
    transform: none;
  }
}
@keyframes Toastify__bounceOutRight {
  20% {
    opacity: 1;
    transform: translate3d(-20px, var(--y), 0);
  }
  to {
    opacity: 0;
    transform: translate3d(2000px, var(--y), 0);
  }
}
@keyframes Toastify__bounceInLeft {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: translate3d(-3000px, 0, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(25px, 0, 0);
  }
  75% {
    transform: translate3d(-10px, 0, 0);
  }
  90% {
    transform: translate3d(5px, 0, 0);
  }
  to {
    transform: none;
  }
}
@keyframes Toastify__bounceOutLeft {
  20% {
    opacity: 1;
    transform: translate3d(20px, var(--y), 0);
  }
  to {
    opacity: 0;
    transform: translate3d(-2000px, var(--y), 0);
  }
}
@keyframes Toastify__bounceInUp {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  from {
    opacity: 0;
    transform: translate3d(0, 3000px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, -20px, 0);
  }
  75% {
    transform: translate3d(0, 10px, 0);
  }
  90% {
    transform: translate3d(0, -5px, 0);
  }
  to {
    transform: translate3d(0, 0, 0);
  }
}
@keyframes Toastify__bounceOutUp {
  20% {
    transform: translate3d(0, calc(var(--y) - 10px), 0);
  }
  40%, 45% {
    opacity: 1;
    transform: translate3d(0, calc(var(--y) + 20px), 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, -2000px, 0);
  }
}
@keyframes Toastify__bounceInDown {
  from, 60%, 75%, 90%, to {
    animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
  }
  0% {
    opacity: 0;
    transform: translate3d(0, -3000px, 0);
  }
  60% {
    opacity: 1;
    transform: translate3d(0, 25px, 0);
  }
  75% {
    transform: translate3d(0, -10px, 0);
  }
  90% {
    transform: translate3d(0, 5px, 0);
  }
  to {
    transform: none;
  }
}
@keyframes Toastify__bounceOutDown {
  20% {
    transform: translate3d(0, calc(var(--y) - 10px), 0);
  }
  40%, 45% {
    opacity: 1;
    transform: translate3d(0, calc(var(--y) + 20px), 0);
  }
  to {
    opacity: 0;
    transform: translate3d(0, 2000px, 0);
  }
}
.Toastify__bounce-enter--top-left, .Toastify__bounce-enter--bottom-left {
  animation-name: Toastify__bounceInLeft;
}
.Toastify__bounce-enter--top-right, .Toastify__bounce-enter--bottom-right {
  animation-name: Toastify__bounceInRight;
}
.Toastify__bounce-enter--top-center {
  animation-name: Toastify__bounceInDown;
}
.Toastify__bounce-enter--bottom-center {
  animation-name: Toastify__bounceInUp;
}

.Toastify__bounce-exit--top-left, .Toastify__bounce-exit--bottom-left {
  animation-name: Toastify__bounceOutLeft;
}
.Toastify__bounce-exit--top-right, .Toastify__bounce-exit--bottom-right {
  animation-name: Toastify__bounceOutRight;
}
.Toastify__bounce-exit--top-center {
  animation-name: Toastify__bounceOutUp;
}
.Toastify__bounce-exit--bottom-center {
  animation-name: Toastify__bounceOutDown;
}

@keyframes Toastify__zoomIn {
  from {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  50% {
    opacity: 1;
  }
}
@keyframes Toastify__zoomOut {
  from {
    opacity: 1;
  }
  50% {
    opacity: 0;
    transform: translate3d(0, var(--y), 0) scale3d(0.3, 0.3, 0.3);
  }
  to {
    opacity: 0;
  }
}
.Toastify__zoom-enter {
  animation-name: Toastify__zoomIn;
}

.Toastify__zoom-exit {
  animation-name: Toastify__zoomOut;
}

@keyframes Toastify__flipIn {
  from {
    transform: perspective(400px) rotate3d(1, 0, 0, 90deg);
    animation-timing-function: ease-in;
    opacity: 0;
  }
  40% {
    transform: perspective(400px) rotate3d(1, 0, 0, -20deg);
    animation-timing-function: ease-in;
  }
  60% {
    transform: perspective(400px) rotate3d(1, 0, 0, 10deg);
    opacity: 1;
  }
  80% {
    transform: perspective(400px) rotate3d(1, 0, 0, -5deg);
  }
  to {
    transform: perspective(400px);
  }
}
@keyframes Toastify__flipOut {
  from {
    transform: translate3d(0, var(--y), 0) perspective(400px);
  }
  30% {
    transform: translate3d(0, var(--y), 0) perspective(400px) rotate3d(1, 0, 0, -20deg);
    opacity: 1;
  }
  to {
    transform: translate3d(0, var(--y), 0) perspective(400px) rotate3d(1, 0, 0, 90deg);
    opacity: 0;
  }
}
.Toastify__flip-enter {
  animation-name: Toastify__flipIn;
}

.Toastify__flip-exit {
  animation-name: Toastify__flipOut;
}

@keyframes Toastify__slideInRight {
  from {
    transform: translate3d(110%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, var(--y), 0);
  }
}
@keyframes Toastify__slideInLeft {
  from {
    transform: translate3d(-110%, 0, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, var(--y), 0);
  }
}
@keyframes Toastify__slideInUp {
  from {
    transform: translate3d(0, 110%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, var(--y), 0);
  }
}
@keyframes Toastify__slideInDown {
  from {
    transform: translate3d(0, -110%, 0);
    visibility: visible;
  }
  to {
    transform: translate3d(0, var(--y), 0);
  }
}
@keyframes Toastify__slideOutRight {
  from {
    transform: translate3d(0, var(--y), 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(110%, var(--y), 0);
  }
}
@keyframes Toastify__slideOutLeft {
  from {
    transform: translate3d(0, var(--y), 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(-110%, var(--y), 0);
  }
}
@keyframes Toastify__slideOutDown {
  from {
    transform: translate3d(0, var(--y), 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(0, 500px, 0);
  }
}
@keyframes Toastify__slideOutUp {
  from {
    transform: translate3d(0, var(--y), 0);
  }
  to {
    visibility: hidden;
    transform: translate3d(0, -500px, 0);
  }
}
.Toastify__slide-enter--top-left, .Toastify__slide-enter--bottom-left {
  animation-name: Toastify__slideInLeft;
}
.Toastify__slide-enter--top-right, .Toastify__slide-enter--bottom-right {
  animation-name: Toastify__slideInRight;
}
.Toastify__slide-enter--top-center {
  animation-name: Toastify__slideInDown;
}
.Toastify__slide-enter--bottom-center {
  animation-name: Toastify__slideInUp;
}

.Toastify__slide-exit--top-left, .Toastify__slide-exit--bottom-left {
  animation-name: Toastify__slideOutLeft;
  animation-timing-function: ease-in;
  animation-duration: 0.3s;
}
.Toastify__slide-exit--top-right, .Toastify__slide-exit--bottom-right {
  animation-name: Toastify__slideOutRight;
  animation-timing-function: ease-in;
  animation-duration: 0.3s;
}
.Toastify__slide-exit--top-center {
  animation-name: Toastify__slideOutUp;
  animation-timing-function: ease-in;
  animation-duration: 0.3s;
}
.Toastify__slide-exit--bottom-center {
  animation-name: Toastify__slideOutDown;
  animation-timing-function: ease-in;
  animation-duration: 0.3s;
}

@keyframes Toastify__spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}


.cookie-banner {
  position: fixed;
  bottom: 16px;
  left: 50%;
  transform: translateX(-50%);
  width: min(980px, calc(100% - 24px));
  background: #ffffff;
  border: 1px solid rgba(246, 198, 116, 0.35);
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.12);
  border-radius: 16px;
  overflow: hidden;
  z-index: 1000;
}

.cookie-banner__bg {
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.12%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
  background-size: 100px 100px;
  opacity: 0.9;
  pointer-events: none;
}

.cookie-banner__inner {
  position: relative;
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 16px;
}

.cookie-banner__text {
  flex: 1 1;
  color: #1f2937;
  font-size: 14px;
  line-height: 1.45;
}

.cookie-banner__text a {
  color: #A5765C;
  text-decoration: none;
  border-bottom: 1px dashed rgba(165, 118, 92, 0.5);
}

.cookie-banner__buttons {
  display: flex;
  align-items: center;
  gap: 10px;
}

.cookie-btn {
  padding: 10px 14px;
  border-radius: 10px;
  font-size: 14px;
  cursor: pointer;
  border: 1px solid transparent;
  transition: transform 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.cookie-btn:active { transform: translateY(1px); }

.cookie-btn--decline {
  background: #ffffff;
  color: #111827;
  border-color: #e5e7eb;
}

.cookie-btn--accept {
  background: linear-gradient(135deg, #F6C674, #FFA351);
  color: #000;
  border: none;
  box-shadow: 0 4px 14px rgba(246, 198, 116, 0.35);
}

@media (max-width: 640px) {
  .cookie-banner__inner {
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }
  .cookie-banner__buttons {
    justify-content: flex-end;
  }
}



/* 
 * Styles globaux pour les inputs HTML5 natifs
 * Assure une apparence cohérente sur tous les navigateurs
 */

/* Styles de base pour tous les inputs natifs */
input[type="date"],
input[type="time"],
input[type="datetime-local"],
input[type="text"],
input[type="email"],
input[type="number"] {
  width: 100%;
  padding: 8px 12px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  font-size: 14px;
  min-height: 40px;
  box-sizing: border-box;
  background-color: #ffffff;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  font-family: inherit;
  
  /* Améliorer l'interaction tactile */
  touch-action: manipulation;
}

/* États de focus */
input[type="date"]:focus,
input[type="time"]:focus,
input[type="datetime-local"]:focus,
input[type="text"]:focus,
input[type="email"]:focus,
input[type="number"]:focus {
  border-color: #1890ff;
  box-shadow: 0 0 0 2px rgba(24, 144, 255, 0.2);
  outline: none;
}

/* États hover */
input[type="date"]:hover,
input[type="time"]:hover,
input[type="datetime-local"]:hover,
input[type="text"]:hover,
input[type="email"]:hover,
input[type="number"]:hover {
  border-color: #40a9ff;
}

/* États disabled */
input[type="date"]:disabled,
input[type="time"]:disabled,
input[type="datetime-local"]:disabled,
input[type="text"]:disabled,
input[type="email"]:disabled,
input[type="number"]:disabled {
  background-color: #f5f5f5;
  border-color: #d9d9d9;
  color: #00000040;
  cursor: not-allowed;
}

/* Amélioration pour mobile */
@media (max-width: 768px) {
  input[type="date"],
  input[type="time"],
  input[type="datetime-local"] {
    font-size: 16px; /* Éviter le zoom sur iOS */
    min-height: 44px; /* Taille minimale recommandée pour le tactile */
  }
}

/* Correction pour les icônes de calendrier et horloge */
input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator {
  cursor: pointer;
  border-radius: 4px;
  margin-left: 4px;
  opacity: 0.6;
  -webkit-transition: opacity 0.2s ease;
  transition: opacity 0.2s ease;
}

input[type="date"]::-webkit-calendar-picker-indicator:hover,
input[type="time"]::-webkit-calendar-picker-indicator:hover,
input[type="datetime-local"]::-webkit-calendar-picker-indicator:hover {
  opacity: 1;
}

/* Styles pour les conteneurs flexibles */
.input-group {
  display: flex;
  gap: 10px;
  align-items: flex-end;
}

.input-group > div {
  flex: 1 1;
}

.input-group label {
  display: block;
  margin-bottom: 4px;
  font-size: 14px;
  font-weight: 500;
  color: #333;
}

/* Styles responsive pour les conteneurs flexibles */
@media (max-width: 768px) {
  .input-group {
    flex-direction: column;
    gap: 16px;
  }
}
.magic-loader-container {
    position: fixed;
    inset: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    z-index: 10000;
    overflow: hidden;
    background: #fdfaf7;
    color: #3d2c1e;
    transition: opacity 1.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.magic-loader-container.exit {
    opacity: 0;
    pointer-events: none;
}

.magic-loader-container::before {
    content: '';
    position: absolute;
    top: -100%;
    left: 0;
    width: 100%;
    height: 50%;
    background: linear-gradient(to bottom, transparent, rgba(194, 119, 62, 0.05), transparent);
    animation: scan-line 3s linear infinite;
    z-index: 5;
}

@keyframes scan-line {
    0% {
        top: -100%;
    }

    100% {
        top: 200%;
    }
}

/* Light Mesh Gradient Background */
.mesh-bg {
    position: absolute;
    inset: 0;
    overflow: hidden;
    filter: blur(60px);
    opacity: 0.8;
}

.mesh-bg::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox=%270 0 200 200%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cfilter id=%27noiseFilter%27%3E%3CfeTurbulence type=%27fractalNoise%27 baseFrequency=%270.65%27 numOctaves=%273%27 stitchTiles=%27stitch%27/%3E%3C/filter%3E%3Crect width=%27100%25%27 height=%27100%25%27 filter=%27url%28%23noiseFilter%29%27/%3E%3C/svg%3E");
    opacity: 0.03;
    mix-blend-mode: overlay;
}

.mesh-blob {
    position: absolute;
    width: 70vw;
    height: 70vw;
    border-radius: 50%;
    mix-blend-mode: multiply;
    animation: blob-float 25s infinite alternate cubic-bezier(0.45, 0, 0.55, 1);
}

.blob-1 {
    background: radial-gradient(circle, rgba(246, 198, 116, 0.4) 0%, transparent 70%);
    top: -20%;
    left: -10%;
}

.blob-2 {
    background: radial-gradient(circle, rgba(194, 119, 62, 0.2) 0%, transparent 70%);
    bottom: -20%;
    right: -10%;
}

.blob-3 {
    background: radial-gradient(circle, rgba(246, 198, 116, 0.3) 0%, transparent 70%);
    top: 40%;
    left: 20%;
}

@keyframes blob-float {
    0% {
        transform: translate(0, 0) scale(1) rotate(0deg);
    }

    50% {
        transform: translate(5vw, 10vh) scale(1.1) rotate(180deg);
    }

    100% {
        transform: translate(-5vw, -5vh) scale(1) rotate(360deg);
    }
}

/* Glass Branding */
.glass-loader-card {
    position: relative;
    z-index: 10;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 40px;
}

.loading-logo-reveal {
    font-size: 4rem;
    font-weight: 800;
    letter-spacing: -0.04em;
    color: #3d2c1e;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
}

.loader-status-bar {
    width: 200px;
    height: 2px;
    background: rgba(194, 119, 62, 0.1);
    position: relative;
    overflow: hidden;
    border-radius: 4px;
}

.loader-status-progress {
    position: absolute;
    height: 100%;
    width: 30%;
    background: #c2773e;
    animation: load-slide 2s infinite cubic-bezier(0.65, 0.05, 0.36, 1);
}

.loader-info-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    width: 100%;
    max-width: 400px;
    animation: tips-reveal 1s ease-out forwards;
}

.loader-tip-box {
    background: rgba(255, 255, 255, 0.4);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
    border: 1px solid rgba(194, 119, 62, 0.1);
    border-radius: 20px;
    padding: 24px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(194, 119, 62, 0.05);
    position: relative;
}

.tip-title {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 2px;
    color: #c2773e;
    font-weight: 700;
    margin-bottom: 12px;
}

.tip-content {
    margin: 0;
    font-size: 15px;
    line-height: 1.6;
    color: #3d2c1e;
    font-weight: 500;
}

@keyframes tips-reveal {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.loader-subtitle {
    font-size: 15px;
    letter-spacing: 0.05em;
    color: #6b5a4e;
    font-weight: 500;
    opacity: 0.8;
    animation: pulse-text 2s infinite ease-in-out;
}

@keyframes pulse-text {

    0%,
    100% {
        opacity: 0.6;
    }

    50% {
        opacity: 1;
    }
}
.footer {
  background-color: var(--black);
  color: #fff;
  padding: 70px 50px 40px;
  font-family: var(--font-family);
}

@media (min-width: 768px) {
  .footer.footer-with-sidebar {
    padding-left: calc(50px + 240px);
    /* 50px base padding + 220px sidebar + 20px gap */
  }
}

.footer-container {
  max-width: 1200px;
  margin: 0 auto;
}

.footer-sections {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 40px;
  margin-bottom: 60px;
}

.footer-section {
  flex: 1 1;
  min-width: 200px;
}

.footer-logo {
  display: flex;
  align-items: center;
  margin-bottom: 15px;
}

.footer-logo-img {
  height: 40px;
  margin-right: 10px;
}

.footer-brand {
  font-size: 1.5rem;
  font-weight: 800;
  color: #fff;
  margin: 0;
}

.footer-brand-dot {
  color: var(--gold);
  font-size: 2rem;
  position: relative;
}

.footer-tagline {
  color: #ccc;
  margin-bottom: 20px;
}

.footer-title {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 20px;
  color: var(--gold);
  position: relative;
}

.footer-links {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links li {
  margin-bottom: 8px;
  display: flex;
}

.footer-link {
  color: #ccc;
  text-decoration: none;
  transition: color 0.3s ease;
  position: relative;
}

.footer-link:hover {
  color: var(--gold);
}

.footer-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 1px;
  background: var(--gold);
  transition: width 0.3s ease;
}

.footer-link:hover::after {
  width: 100%;
}

.footer-bottom {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: 30px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-copyright {
  color: #888;
  font-size: 0.9rem;
  margin: 0;
}

.footer-social {
  display: flex;
  gap: 15px;
}

.social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  transition: all 0.3s ease;
  text-decoration: none;
}

.social-link:hover {
  background-color: var(--gold);
  transform: translateY(-3px);
}

.social-icon {
  font-size: 1.2rem;
}

/* Styles pour les boutons qui ressemblent à des liens */
.footer-button {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 3px;
  -webkit-text-decoration-color: transparent;
          text-decoration-color: transparent;
  transition: -webkit-text-decoration-color 0.3s ease;
  transition: text-decoration-color 0.3s ease;
  transition: text-decoration-color 0.3s ease, -webkit-text-decoration-color 0.3s ease;
}

.footer-button:hover {
  -webkit-text-decoration-color: var(--gold);
          text-decoration-color: var(--gold);
}

/* Responsive */
@media (max-width: 768px) {
  .footer {
    padding: 50px 30px 30px;
  }

  .footer-sections {
    flex-direction: column;
    gap: 30px;
    margin-bottom: 40px;
  }

  .footer-section {
    min-width: 100%;
  }

  .footer-bottom {
    flex-direction: column;
    gap: 20px;
  }

  .footer-copyright {
    text-align: center;
  }
}

@media (max-width: 480px) {
  .footer {
    padding: 40px 20px 30px;
  }

  .footer-sections {
    gap: 25px;
    margin-bottom: 30px;
  }
}
/* Variables de couleurs Rintintin */
:root {
  --chat-brown: #A5765C;
  --chat-gold: #F6C674;
  --chat-peach: #EE9F99;
  --chat-orange: #FFA351;
  --chat-light-gray: #F6F2EF;
  --chat-black: #000000;
  --chat-text-color: #333333;
}

/* Bulle de chat moderne */
.chat-bubble-modern {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: linear-gradient(135deg, #A5765C 0%, #F6C674 50%, #EE9F99 100%);
  background: linear-gradient(135deg, var(--chat-brown) 0%, var(--chat-gold) 50%, var(--chat-peach) 100%);
  border: none;
  color: white;
  cursor: pointer;
  box-shadow: 0 8px 32px rgba(165, 118, 92, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  overflow: visible;
}

/* Bouton de fermeture sur la bulle */
.chat-bubble-close {
  position: absolute;
  top: -5px;
  right: -5px;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: #ff4d4f;
  border: 2px solid white;
  color: white;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 3;
  opacity: 0;
  transform: scale(0.8);
  transition: all 0.2s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}

.chat-bubble-modern:hover .chat-bubble-close {
  opacity: 1;
  transform: scale(1);
}

.chat-bubble-close:hover {
  background: #ff3838;
  transform: scale(1.1);
}

.chat-bubble-icon {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
}

.chat-bubble-pulse {
  position: absolute;
  top: -4px;
  right: -4px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.chat-bubble-pulse-ring {
  position: absolute;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #F6C674;
  background: var(--chat-gold);
  opacity: 0.75;
  animation: pulse-ring 2s infinite;
}

.chat-bubble-pulse-dot {
  position: relative;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #F6C674;
  background: var(--chat-gold);
}

@keyframes pulse-ring {
  0% {
    transform: scale(1);
    opacity: 0.75;
  }

  50% {
    transform: scale(1.5);
    opacity: 0;
  }

  100% {
    transform: scale(1);
    opacity: 0.75;
  }
}

.chat-bubble-pulse-effect {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: linear-gradient(135deg, #A5765C 0%, #F6C674 50%, #EE9F99 100%);
  background: linear-gradient(135deg, var(--chat-brown) 0%, var(--chat-gold) 50%, var(--chat-peach) 100%);
  z-index: 0;
}

/* Fenêtre de chat moderne */
.chat-window-modern {
  position: fixed;
  bottom: 24px;
  right: 24px;
  width: 400px;
  height: 600px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98) 0%, rgba(246, 242, 239, 0.98) 100%);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-radius: 20px;
  box-shadow: 0 20px 60px rgba(165, 118, 92, 0.2);
  border: 1px solid rgba(246, 198, 116, 0.3);
  display: flex;
  flex-direction: column;
  z-index: 1000;
  overflow: hidden;
  min-width: 350px;
  min-height: 400px;
  max-width: 90vw;
  max-height: 90vh;
}

/* État de redimensionnement */
.chat-window-modern.resizing {
  box-shadow: 0 25px 70px rgba(165, 118, 92, 0.3);
  transition: box-shadow 0.2s ease;
}

/* En-tête moderne */
.chat-header-modern {
  background: linear-gradient(135deg, #A5765C 0%, #F6C674 100%);
  background: linear-gradient(135deg, var(--chat-brown) 0%, var(--chat-gold) 100%);
  padding: 16px 20px;
  padding-left: 32px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}

.chat-header-info {
  display: flex;
  align-items: center;
  gap: 12px;
}

.chat-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.chat-avatar {
  position: relative;
  width: 40px;
  height: 40px;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
}

.chat-avatar-emoji {
  font-size: 24px;
}

.chat-status-dot {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 12px;
  height: 12px;
  background: #10b981;
  border-radius: 50%;
  border: 2px solid #A5765C;
  border: 2px solid var(--chat-brown);
}

.chat-header-title {
  font-weight: 700;
  font-size: 16px;
  color: white;
  margin: 0;
}

.chat-header-status {
  font-size: 12px;
  color: rgba(255, 255, 255, 0.9);
  margin: 0;
}

.chat-close-button {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  color: rgba(255, 255, 255, 0.9);
  width: 32px;
  height: 32px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.chat-close-button:hover {
  background: rgba(255, 255, 255, 0.3);
  color: white;
}

.chat-action-button {
  background: rgba(255, 255, 255, 0.2);
  border: none;
  color: rgba(255, 255, 255, 0.9);
  width: 32px;
  height: 32px;
  border-radius: 8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
}

.chat-action-button:hover {
  background: rgba(255, 255, 255, 0.3);
  color: white;
}

/* Messages */
.chat-messages-modern {
  flex: 1 1;
  overflow-y: auto;
  padding: 20px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  background: #F6F2EF;
  background: var(--chat-light-gray);
}

.chat-message-wrapper {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.chat-message-wrapper.user {
  align-items: flex-end;
}

.chat-message-wrapper.bot {
  align-items: flex-start;
}

.chat-message-modern {
  max-width: 80%;
  padding: 12px 16px;
  border-radius: 18px;
  font-size: 14px;
  line-height: 1.4;
  word-wrap: break-word;
}

.chat-message-modern.user {
  background: linear-gradient(135deg, #A5765C 0%, #8e6651 100%);
  background: linear-gradient(135deg, var(--chat-brown) 0%, #8e6651 100%);
  color: white;
  border-bottom-right-radius: 4px;
}

.chat-message-modern.bot {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(246, 198, 116, 0.2);
  color: #333333;
  color: var(--chat-text-color);
  border-bottom-left-radius: 4px;
  position: relative;
  /* Pour le positionnement des pills */
}

.chat-message-time {
  font-size: 11px;
  color: #6b7280;
  padding: 0 8px;
}

/* Indicateur de frappe */
.chat-typing-wrapper {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}

.chat-typing {
  background: rgba(255, 255, 255, 0.9);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(246, 198, 116, 0.2);
  padding: 12px 16px;
  border-radius: 18px;
  border-bottom-left-radius: 4px;
  display: flex;
  gap: 4px;
  align-items: center;
}

.chat-typing-dot {
  width: 8px;
  height: 8px;
  background: #F6C674;
  background: var(--chat-gold);
  border-radius: 50%;
}

/* Suggestions */
.chat-suggestions {
  padding: 12px 16px;
  border-top: 1px solid rgba(246, 198, 116, 0.2);
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  background: white;
}

.chat-suggestion-button {
  padding: 6px 12px;
  background: rgba(246, 198, 116, 0.1);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid #F6C674;
  border: 1px solid var(--chat-gold);
  border-radius: 20px;
  font-size: 13px;
  color: #A5765C;
  color: var(--chat-brown);
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
  font-weight: 500;
}

.chat-suggestion-button:hover {
  background: #F6C674;
  background: var(--chat-gold);
  color: white;
  transform: translateY(-1px);
}

/* Zone de saisie */
.chat-input-modern {
  padding: 16px;
  border-top: 1px solid rgba(246, 198, 116, 0.2);
  background: white;
}

.chat-form {
  display: flex;
  gap: 12px;
}

.chat-input-field {
  flex: 1 1;
  padding: 12px 20px;
  background: #F6F2EF;
  background: var(--chat-light-gray);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border: 1px solid rgba(246, 198, 116, 0.3);
  border-radius: 24px;
  color: #333333;
  color: var(--chat-text-color);
  font-size: 14px;
  outline: none;
  transition: all 0.2s ease;
}

.chat-input-field::placeholder {
  color: #9ca3af;
}

.chat-input-field:focus {
  border-color: #F6C674;
  border-color: var(--chat-gold);
  background: white;
  box-shadow: 0 0 0 3px rgba(246, 198, 116, 0.1);
}

.chat-send-button-modern {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, #A5765C 0%, #F6C674 100%);
  background: linear-gradient(135deg, var(--chat-brown) 0%, var(--chat-gold) 100%);
  border: none;
  color: white;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.chat-send-button-modern:hover:not(:disabled) {
  box-shadow: 0 4px 20px rgba(246, 198, 116, 0.4);
  transform: translateY(-2px);
}

.chat-send-button-modern:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Responsive - Ajustements pour mobile */
@media (max-width: 767px) {

  /* Décaler la bulle pour éviter le footer mobile */
  .chat-bubble-modern {
    bottom: 80px;
    /* Au-dessus du footer mobile (56px + marge) */
    right: 16px;
    width: 56px;
    height: 56px;
  }

  .chat-bubble-icon svg {
    width: 24px;
    height: 24px;
  }

  /* Fenêtre de chat en plein écran sur mobile */
  .chat-window-modern {
    width: 100%;
    height: 100%;
    bottom: 0;
    right: 0;
    border-radius: 0;
    max-width: 100%;
    max-height: 100%;
  }

  /* Désactiver le redimensionnement sur mobile */
  .chat-resize-handle {
    display: none;
  }

  /* Cacher le bouton fullscreen sur mobile car déjà en plein écran */
  .chat-action-button[title="Plein écran"] {
    display: none;
  }

  /* Ajuster les suggestions pour mobile */
  .chat-suggestions {
    padding: 8px 12px;
    gap: 6px;
  }

  .chat-suggestion-button {
    padding: 5px 10px;
    font-size: 12px;
  }

  /* Ajuster le padding des messages */
  .chat-messages-modern {
    padding: 16px;
    gap: 12px;
  }

  /* Ajuster la zone de saisie */
  .chat-input-modern {
    padding: 12px;
  }

  .chat-input-field {
    padding: 10px 16px;
    font-size: 16px;
    /* Éviter le zoom sur iOS */
  }
}

/* Scrollbar personnalisée */
.chat-messages-modern::-webkit-scrollbar {
  width: 6px;
}

.chat-messages-modern::-webkit-scrollbar-track {
  background: transparent;
}

.chat-messages-modern::-webkit-scrollbar-thumb {
  background: rgba(246, 198, 116, 0.3);
  border-radius: 3px;
}

.chat-messages-modern::-webkit-scrollbar-thumb:hover {
  background: rgba(246, 198, 116, 0.5);
}

/* Animations supplémentaires */
@keyframes slideIn {
  from {
    transform: translateY(100%);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* Poignée de redimensionnement */
.chat-resize-handle {
  position: absolute;
  top: 0;
  left: 0;
  width: 24px;
  height: 24px;
  cursor: nwse-resize;
  color: #F6C674;
  color: var(--chat-gold);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.4;
  transition: opacity 0.2s ease;
  z-index: 100;
  background: rgba(246, 198, 116, 0.1);
  border-bottom-right-radius: 8px;
  border-top-left-radius: 20px;
}

.chat-resize-handle:hover {
  opacity: 1;
  background: rgba(246, 198, 116, 0.2);
}

.chat-resize-handle svg {
  transform: rotate(180deg);
}

.chat-resize-handle::after {
  content: '';
  position: absolute;
  top: 4px;
  left: 4px;
  width: 4px;
  height: 4px;
  background: #F6C674;
  background: var(--chat-gold);
  border-radius: 50%;
  box-shadow: 4px 0 0 #F6C674, 8px 0 0 #F6C674,
    0 4px 0 #F6C674, 4px 4px 0 #F6C674,
    0 8px 0 #F6C674;
  box-shadow: 4px 0 0 var(--chat-gold), 8px 0 0 var(--chat-gold),
    0 4px 0 var(--chat-gold), 4px 4px 0 var(--chat-gold),
    0 8px 0 var(--chat-gold);
}

/* Mode fullscreen */
.chat-window-modern.fullscreen {
  width: 100vw !important;
  height: 100vh !important;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 0;
  max-width: 100%;
  max-height: 100%;
}

.chat-window-modern:not(.fullscreen) {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.chat-window-modern.fullscreen {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Désactiver les transitions pendant le redimensionnement */
.chat-window-modern.resizing {
  transition: none !important;
}

.chat-window-modern.resizing * {
  transition: none !important;
}

/* Ajout styles pour les sources */
.chat-message-sources {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(0, 0, 0, 0.05);
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  align-items: center;
}

.sources-label {
  font-size: 10px;
  font-weight: 600;
  color: #888;
  text-transform: uppercase;
}

.source-tag {
  background: rgba(246, 198, 116, 0.2);
  color: #A5765C;
  color: var(--chat-brown);
  padding: 2px 6px;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 500;
}

/* Style spécifique pour les sources dans messages utilisateur (bien que rare) */
.user .source-tag {
  background: rgba(255, 255, 255, 0.2);
  color: white;
}

.user .sources-label {
  color: rgba(255, 255, 255, 0.7);
  border-top-color: rgba(255, 255, 255, 0.2);
}

/* ============================================
   STYLES MARKDOWN POUR LES MESSAGES BOT
   ============================================ */

.chat-message-modern.bot .markdown-p {
  margin: 0 0 0.5em 0;
  line-height: 1.5;
}

.chat-message-modern.bot .markdown-p:last-child {
  margin-bottom: 0;
}

.chat-message-modern.bot .markdown-strong {
  font-weight: 600;
  color: #A5765C;
  color: var(--chat-brown);
}

.chat-message-modern.bot .markdown-em {
  font-style: italic;
  color: #555;
}

.chat-message-modern.bot .markdown-ul,
.chat-message-modern.bot .markdown-ol {
  margin: 0.5em 0;
  padding-left: 1.2em;
}

.chat-message-modern.bot .markdown-li {
  margin-bottom: 0.25em;
  line-height: 1.4;
}

.chat-message-modern.bot .markdown-code {
  background: rgba(165, 118, 92, 0.1);
  padding: 2px 6px;
  border-radius: 4px;
  font-family: 'SF Mono', Monaco, Consolas, monospace;
  font-size: 0.9em;
  color: #A5765C;
  color: var(--chat-brown);
}

/* Amélioration globale des messages bot */
.chat-message-modern.bot {
  line-height: 1.5;
}

/* ============================================
   Boutons d'action - Style Pills moderne
   ============================================ */

/* Conteneur externe - prend toute la largeur */
.chat-action-buttons-container {
  width: 100%;
  padding: 0 8px;
  /* Petit padding pour alignement visuel */
  margin-top: 8px;
}

.chat-action-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  /* Les boutons passent à la ligne si nécessaire */
  padding: 2px 0;
  /* Masquer la scrollbar mais garder la fonctionnalité */
  scrollbar-width: none;
  /* Firefox */
  -ms-overflow-style: none;
  /* IE/Edge */
}

.chat-action-buttons::-webkit-scrollbar {
  display: none;
  /* Chrome/Safari */
}

.chat-action-btn {
  /* Style pill compact */
  padding: 6px 14px;
  border-radius: 16px;
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1.5px solid;
  white-space: nowrap;
  flex-shrink: 0;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  /* Animation d'apparition progressive */
  opacity: 0;
  transform: translateY(8px) scale(0.95);
  animation: pillFadeIn 0.3s ease forwards;
}

/* Animation progressive pour chaque bouton */
.chat-action-btn:nth-child(1) {
  animation-delay: 0.05s;
}

.chat-action-btn:nth-child(2) {
  animation-delay: 0.1s;
}

.chat-action-btn:nth-child(3) {
  animation-delay: 0.15s;
}

.chat-action-btn:nth-child(4) {
  animation-delay: 0.2s;
}

.chat-action-btn:nth-child(5) {
  animation-delay: 0.25s;
}

@keyframes pillFadeIn {
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

/* Style par défaut - Outline discret */
.chat-action-btn-default {
  background: rgba(165, 118, 92, 0.05);
  color: #A5765C;
  color: var(--chat-brown);
  border-color: rgba(165, 118, 92, 0.25);
}

.chat-action-btn-default:hover {
  background: rgba(165, 118, 92, 0.12);
  border-color: #A5765C;
  border-color: var(--chat-brown);
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 2px 8px rgba(165, 118, 92, 0.15);
}

.chat-action-btn-default:active {
  transform: translateY(0) scale(0.98);
}

/* Style success (vert) - Outline */
.chat-action-btn-success {
  background: rgba(82, 196, 26, 0.08);
  color: #52c41a;
  border-color: rgba(82, 196, 26, 0.4);
}

.chat-action-btn-success:hover {
  background: rgba(82, 196, 26, 0.15);
  border-color: #52c41a;
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 2px 10px rgba(82, 196, 26, 0.2);
}

.chat-action-btn-success:active {
  transform: translateY(0) scale(0.98);
}

/* Style danger (rouge) - Outline */
.chat-action-btn-danger {
  background: rgba(255, 77, 79, 0.08);
  color: #ff4d4f;
  border-color: rgba(255, 77, 79, 0.4);
}

.chat-action-btn-danger:hover {
  background: rgba(255, 77, 79, 0.15);
  border-color: #ff4d4f;
  transform: translateY(-1px) scale(1.02);
  box-shadow: 0 2px 10px rgba(255, 77, 79, 0.2);
}

.chat-action-btn-danger:active {
  transform: translateY(0) scale(0.98);
}

/* Effet de "tap" visuel au clic */
.chat-action-btn:active::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: 16px;
  background: rgba(0, 0, 0, 0.05);
  animation: ripple 0.4s ease-out;
}

@keyframes ripple {
  0% {
    transform: scale(0);
    opacity: 1;
  }

  100% {
    transform: scale(1.5);
    opacity: 0;
  }
}

/* Indicateur de scroll horizontal si nécessaire */
.chat-action-buttons::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 30px;
  background: linear-gradient(to right, transparent, rgba(246, 242, 239, 0.8));
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.2s;
}

.chat-action-buttons:hover::after {
  opacity: 1;
}

/* Responsive - Boutons plus petits sur mobile */
@media (max-width: 767px) {
  .chat-action-btn {
    padding: 5px 12px;
    font-size: 12px;
    border-radius: 14px;
  }

  .chat-action-buttons {
    gap: 6px;
  }
}
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-20px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(20px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.05);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes shimmer {
  0% {
    background-position: -100% 0;
  }

  100% {
    background-position: 100% 0;
  }
}

.rintintin-header {
  background: linear-gradient(to right, #F6F2EF, #ffffff);
  background: linear-gradient(to right, var(--light-gray), #ffffff);
  padding: 1.2rem 2.5rem;
  border-bottom: 1px solid rgba(246, 198, 116, 0.3);
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);
  z-index: 1000;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  animation: fadeIn 0.5s ease-out;
}

/* Ajustement du header quand le bandeau promo est présent */
:root {
  --promo-banner-height: 48px;
}

body.has-promo-banner .rintintin-header {
  top: 48px !important;
  top: var(--promo-banner-height) !important;
}

.header-transparent {
  background: transparent;
  border-bottom: none;
  box-shadow: none;
}

.header-scrolled {
  background: rgba(255, 255, 255, 0.95);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(246, 198, 116, 0.3);
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.18);
}

.rintintin-header::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.1%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
  background-size: 100px 100px;
  opacity: 0.5;
  z-index: -1;
}

.header-content {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  max-width: 1200px;
  margin: 0 auto;
  width: 100%;
}

.header-logo {
  font-size: 1.8rem;
  font-weight: 800;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  color: #000000;
  color: var(--black);
  margin: 0;
  cursor: pointer;
  position: relative;
  letter-spacing: 0.5px;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  justify-self: start;
  animation: slideInLeft 0.5s ease-out;
}

.header-pro {
  margin-left: 4px;
  position: relative;
  background: linear-gradient(90deg, #A5765C, #F6C674);
  background: linear-gradient(90deg, var(--brown), var(--gold));
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shimmer 3s linear infinite;
}

.header-logo::after {
  content: ".";
  position: relative;
  color: #F6C674;
  color: var(--gold);
  font-size: 2.2rem;
  font-weight: 900;
  transition: transform 0.3s ease;
}

.header-logo:hover {
  transform: translateY(-2px);
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.header-logo:hover::after {
  animation: pulse 1s infinite;
}

/* Navigation Links */
.header-nav-links {
  display: flex;
  gap: 30px;
  justify-self: center;
  animation: fadeIn 0.7s ease-out;
}

.header-nav-link {
  font-size: 1rem;
  font-weight: 600;
  color: #333333;
  color: var(--text-color);
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position: relative;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  padding: 5px 0;
}

.header-nav-link::after {
  content: '';
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 0;
  height: 2px;
  background: linear-gradient(to right, #F6C674, #EE9F99);
  background: linear-gradient(to right, var(--gold), var(--peach));
  transition: width 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  border-radius: 4px;
}

.header-nav-link:hover {
  color: #A5765C;
  color: var(--brown);
  transform: translateY(-2px);
}

.header-nav-link:hover::after {
  width: 100%;
}

/* Buttons */
.header-buttons {
  display: flex;
  gap: 15px;
  align-items: center;
  justify-self: end;
  animation: slideInRight 0.5s ease-out;
}

.header-login-button,
.header-signup-button {
  border: none;
  padding: 0.7rem 1.5rem;
  border-radius: 12px;
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  position: relative;
  overflow: hidden;
}

.header-primary-button {
  background: linear-gradient(135deg, #A5765C, #8e6651);
  background: linear-gradient(135deg, var(--brown), #8e6651);
  color: #fff;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3);
}

.header-primary-button::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 70%);
  opacity: 0;
  transform: scale(0.5);
  transition: all 0.5s ease-out;
  pointer-events: none;
}

.header-primary-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.4);
}

.header-primary-button:hover::before {
  opacity: 1;
  transform: scale(1);
}

.header-primary-button:active {
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(165, 118, 92, 0.3);
}

.header-secondary-button {
  background: transparent;
  color: #A5765C;
  color: var(--brown);
  border: 2px solid #A5765C;
  border: 2px solid var(--brown);
  position: relative;
  z-index: 1;
}

.header-secondary-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  height: 100%;
  background-color: rgba(165, 118, 92, 0.1);
  transition: width 0.3s ease;
  z-index: -1;
}

.header-secondary-button:hover {
  transform: translateY(-2px);
}

.header-secondary-button:hover::before {
  width: 100%;
}

@media (max-width: 1024px) {
  .header-nav-links {
    gap: 20px;
  }
}

@media (max-width: 920px) {
  .header-content {
    grid-template-columns: auto auto;
    grid-template-rows: auto auto;
    gap: 15px;
  }

  .header-logo {
    grid-column: 1;
    grid-row: 1;
  }

  .header-buttons {
    grid-column: 2;
    grid-row: 1;
  }

  .header-nav-links {
    grid-column: 1 / span 2;
    grid-row: 2;
    justify-self: start;
  }
}

@media (max-width: 768px) {
  :root {
    --promo-banner-height: 44px;
  }

  .rintintin-header {
    padding: 1rem 1.5rem;
  }

  .header-content {
    grid-template-columns: 1fr auto;
    grid-template-rows: auto;
  }

  .header-logo {
    font-size: 1.5rem;
    grid-column: 1;
    grid-row: 1;
  }

  .header-logo::after {
    font-size: 1.8rem;
  }

  .header-buttons {
    grid-column: 2;
    grid-row: 1;
  }

  .header-nav-links {
    display: none;
  }

  .header-login-button,
  .header-signup-button {
    padding: 0.6rem 1.2rem;
    font-size: 0.95rem;
  }
}

@media (max-width: 480px) {
  :root {
    --promo-banner-height: 40px;
  }

  .header-buttons {
    gap: 10px;
  }

  .header-login-button,
  .header-signup-button {
    padding: 0.5rem 1rem;
    font-size: 0.9rem;
  }
}

/* Préférence pour la réduction de mouvement */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
.public-layout-content {
  width: 100%;
}

.public-layout-content.with-header-space {
  padding-top: 80px;
  padding-top: var(--header-height, 80px); /* Utilise la variable CSS si disponible, sinon 80px */
}

@media (max-width: 768px) {
  .public-layout-content.with-header-space {
    padding-top: 60px; /* Hauteur réduite du header sur mobile */
  }
} 
/* Variables de la charte graphique */
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  --sidebar-width: 220px;
}

/* ======================= */
/*  Desktop >= 768px       */
/* ======================= */

/* Sidebar toujours visible en desktop */
.sidebar {
  position: fixed;
  top: 10px;
  /* Slight offset from top */
  left: 10px;
  /* Slight offset from left */
  width: 220px;
  width: var(--sidebar-width);
  height: calc(100vh - 20px);
  /* Floating look */
  background-color: #fff;
  transition: all 0.3s ease;
  box-shadow: 0 4px 25px rgba(0, 0, 0, 0.08);
  /* Slightly stronger shadow */
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  font-family: 'Lato', sans-serif !important;
  font-family: var(--font-family) !important;
  line-height: normal !important;
  border-radius: 24px;
  /* Fully rounded island look */
  z-index: 100;
}

/* Scrollbar personnalisée pour la sidebar */
.sidebar::-webkit-scrollbar {
  width: 4px;
}

.sidebar::-webkit-scrollbar-track {
  background: transparent;
}

.sidebar::-webkit-scrollbar-thumb {
  background: rgba(246, 198, 116, 0.3);
  border-radius: 2px;
}

/* Titre en haut */
.sidebar-title {
  font-size: 1.6rem;
  font-weight: 800;
  text-align: center;
  padding: 1.7rem 0;
  /* Adjusted to approximate 80px total height */
  border-bottom: 1px solid rgba(246, 198, 116, 0.3);
  color: #000000;
  color: var(--black);
  letter-spacing: 0.5px;
  position: relative;
  background: linear-gradient(to right, rgba(246, 198, 116, 0.1), rgba(255, 255, 255, 0));
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: all 0.3s ease;
}

.sidebar-title:hover {
  background: linear-gradient(to right, rgba(246, 198, 116, 0.15), rgba(255, 255, 255, 0));
}

/* .sidebar-title::before {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 3px;
  background-color: var(--gold);
  border-radius: 3px;
} */

/* Bouton premium flashy */
.premium-button-container {
  position: relative;
  overflow: hidden;
  margin: 8px 0 4px 0;
  border-radius: 12px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.profile-dropdown .premium-button-container {
  margin-top: 12px;
}

.premium-button {
  width: 100%;
  padding: 12px 16px;
  background: linear-gradient(45deg, #FFB347, #FFCC33, #FFD700, #FFC125);
  background-size: 300% 300%;
  color: #793e00;
  border: none;
  border-radius: 12px;
  font-weight: 700;
  font-size: 1.05rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position: relative;
  z-index: 1;
  animation: gradientMove 5s ease infinite;
  box-shadow: 0 0 15px rgba(255, 204, 51, 0.5);
}

@keyframes gradientMove {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}

.premium-button-shine {
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right,
      rgba(255, 255, 255, 0) 0%,
      rgba(255, 255, 255, 0.8) 50%,
      rgba(255, 255, 255, 0) 100%);
  transform: skewX(-25deg);
  animation: shine 3s infinite;
  z-index: 2;
  pointer-events: none;
}

@keyframes shine {
  0% {
    left: -100%;
  }

  20%,
  100% {
    left: 200%;
  }
}

.premium-button:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 15px 25px rgba(255, 204, 51, 0.6);
}

.premium-button:active {
  transform: translateY(-1px) scale(1.01);
}

.premium-icon {
  font-size: 1.2rem;
  color: #793e00;
  animation: pulse 2s ease infinite;
}

@keyframes pulse {
  0% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.3);
    opacity: 0.7;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

/* Liste + liens */
.sidebar-list {
  list-style: none;
  margin: 0;
  padding: 0px 0;
  /* espacement vertical uniforme */
  flex: 0 0 auto;
}

/* Ne pas pousser les dernières sections vers le bas */
.sidebar {
  display: flex;
  flex-direction: column;
}

.sidebar-link {
  display: flex;
  align-items: center;
  padding: 10px 10px;
  /* Reduced padding */
  margin: 2px 8px !important;
  color: #333333;
  color: var(--text-color);
  text-decoration: none;
  font-weight: 600;
  border-radius: 12px;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  font-size: 0.95rem;
  /* Slight scale down */
}

.sidebar-link .anticon {
  color: #A5765C;
  color: var(--brown);
  font-size: 16px;
  transition: all 0.3s ease;
}

.sidebar-link:hover {
  background-color: rgba(246, 198, 116, 0.1);
}

.sidebar-link:hover .anticon {
  color: #F6C674;
  color: var(--gold);
}

.sidebar-link.active {
  background: linear-gradient(to right, #A5765C, rgba(165, 118, 92, 0.8));
  background: linear-gradient(to right, var(--brown), rgba(165, 118, 92, 0.8));
  color: #fff;
  font-weight: 700;
}

.sidebar-link.active .anticon {
  color: #F6C674;
  color: var(--gold);
}

.sidebar-link.active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 4px;
  background-color: #F6C674;
  background-color: var(--gold);
  border-top-right-radius: 4px;
  border-bottom-right-radius: 4px;
}

/* Styles pour le menu déroulant des services */
.dropdown-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 10px;
  /* Reduced to match sidebar-link */
  margin: 2px 8px !important;
  cursor: pointer;
  border-radius: 12px;
  font-weight: 600;
  transition: all 0.3s ease;
  color: #333333;
  color: var(--text-color);
  font-size: 0.95rem;
  /* Slight scale down */
}

.dropdown-header:hover {
  background-color: rgba(246, 198, 116, 0.1);
}

.dropdown-title {
  display: flex;
  align-items: center;
}

.dropdown-title .anticon {
  color: #A5765C;
  color: var(--brown);
  font-size: 16px;
  transition: all 0.3s ease;
}

.dropdown-header:hover .dropdown-title .anticon {
  color: #F6C674;
  color: var(--gold);
}

.dropdown-caret {
  font-size: 12px;
  color: #A5765C;
  color: var(--brown);
  transition: all 0.3s ease;
}

.dropdown-header:hover .dropdown-caret {
  color: #F6C674;
  color: var(--gold);
}

.sidebar-dropdown {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;
  opacity: 0;
  padding: 0 16px 0 32px;
}

.sidebar-dropdown.open {
  max-height: 1000px;
  /* assez grand pour tout */
  opacity: 1;
  padding: 4px 12px 6px 28px;
  /* un peu plus d'air interne */
}

.dropdown-link {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 12px;
  /* plus grand */
  margin: 2px 0 !important;
  color: #333333;
  color: var(--text-color);
  text-decoration: none;
  font-weight: 600;
  border-radius: 10px;
  transition: all 0.3s ease;
  position: relative;
}

.dropdown-link .anticon {
  color: #A5765C;
  color: var(--brown);
  font-size: 15px;
  transition: all 0.3s ease;
}

.dropdown-link:hover {
  background-color: rgba(246, 198, 116, 0.1);
}

.dropdown-link:hover .anticon {
  color: #F6C674;
  color: var(--gold);
}

.dropdown-link.active {
  background: linear-gradient(to right, #A5765C, rgba(165, 118, 92, 0.8));
  background: linear-gradient(to right, var(--brown), rgba(165, 118, 92, 0.8));
  color: #fff;
}

.dropdown-link.active .anticon {
  color: #F6C674;
  color: var(--gold);
}

.dropdown-link.active::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 4px;
  background-color: #F6C674;
  background-color: var(--gold);
  border-radius: 2px;
}

/* Suppression des séparateurs visuels */
.separator {
  display: none;
}

/* Section de profil */
.profile-section {
  padding: 16px;
  margin-top: auto;
  margin-bottom: 16px;
  position: relative;
}

.profile-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 16px;
  right: 16px;
  height: 1px;
  background: linear-gradient(to right, rgba(246, 198, 116, 0), rgba(246, 198, 116, 0.3), rgba(246, 198, 116, 0));
}

.profile-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px;
  cursor: pointer;
  border-radius: 12px;
  transition: all 0.3s ease;
  background-color: rgba(246, 198, 116, 0.05);
  border: 1px solid rgba(246, 198, 116, 0.1);
}

.profile-header:hover {
  background-color: rgba(246, 198, 116, 0.1);
}

.profile-info {
  display: flex;
  align-items: center;
}

.profile-pic-wrap {
  position: relative;
  display: inline-block;
}

.profile-pic {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  object-fit: cover;
  margin-right: 12px;
  border: 2px solid #F6C674;
  border: 2px solid var(--gold);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

/* Badge unifié */
.notif-dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  background: #ff3b30;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #fff;
}

.notif-dot--on-avatar {
  position: absolute;
  top: -2px;
  right: 6px;
  animation: badgePulse 1.4s infinite ease-in-out;
}

.notif-dot--inline {
  vertical-align: middle;
  margin-left: 6px;
}

@keyframes badgePulse {
  0% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.25);
    opacity: 0.8;
  }

  100% {
    transform: scale(1);
    opacity: 1;
  }
}

.pro-name {
  font-weight: 600;
  color: #A5765C;
  color: var(--brown);
  margin-right: 8px;
}

.profile-caret {
  font-size: 12px;
  color: #A5765C;
  color: var(--brown);
  transition: transform 0.3s ease;
}

/* Petit point rouge aligné au nom (visible menu ouvert/fermé) */
/* (remplacé par .notif-dot--inline) */

/* Menu déroulant du profil */
.profile-dropdown {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;
  opacity: 0;
  padding: 0 8px;
  margin-top: 0;
}

.profile-dropdown.open {
  /* Augmente la hauteur max pour éviter de couper le bouton "Devenir Premium" */
  max-height: 1000px;
  /* suffisamment grand pour tout le contenu */
  opacity: 1;
  padding: 8px;
  margin-top: 8px;
}

/* Petit badge rouge pour l'onboarding incomplet sur le lien Profil */
/* (remplacé par .notif-dot) */

/* Le bouton bulle est caché en desktop */
.bubble-hamburger {
  display: none;
}

/* L'overlay n'est pas affiché en desktop */
.sidebar-overlay {
  display: none;
}

/* ======================= */
/*  Mobile < 768px         */
/* ======================= */
@media screen and (max-width: 767px) {

  /* Dans le drawer mobile, adapter la sidebar façon "île flottante" */
  .ant-drawer .sidebar {
    position: relative;
    width: auto;
    height: calc(100vh - 32px);
    /* Marges haut/bas */
    margin: 16px;
    transform: translateX(0) !important;
    border-right: none;
    background: #ffffff;
    color: #333333;
    color: var(--text-color);
    border-radius: 24px;
    /* Arrondi complet */
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
    /* Ombre plus douce pour fond blanc */
    overflow-y: auto;
    /* Respecter le scrolling */
    overflow-x: hidden;
  }

  /* Force le logo en noir/gold sur mobile (couleurs standards) */
  .ant-drawer .sidebar .logo-text-main {
    color: #000000 !important;
    color: var(--black) !important;
  }

  .ant-drawer .sidebar .logo-text-pro {
    color: #F6C674 !important;
    color: var(--gold) !important;
  }

  /* Adaptation des couleurs pour le mode clair mobile */
  .ant-drawer .sidebar-title {
    color: #000000;
    color: var(--black);
    background: linear-gradient(to right, rgba(246, 198, 116, 0.1), transparent);
    border-bottom-color: rgba(246, 198, 116, 0.3);
  }

  .ant-drawer .sidebar-link {
    color: #333333;
    color: var(--text-color);
    margin: 4px 12px;
    padding: 12px 16px;
  }

  .ant-drawer .sidebar-link .anticon {
    color: #A5765C;
    color: var(--brown);
    font-size: 18px;
  }

  .ant-drawer .sidebar-link:hover {
    background-color: rgba(246, 198, 116, 0.1);
  }

  .ant-drawer .sidebar-link.active {
    background: linear-gradient(to right, #A5765C, rgba(165, 118, 92, 0.8));
    background: linear-gradient(to right, var(--brown), rgba(165, 118, 92, 0.8));
    color: #fff;
    font-weight: 700;
  }

  .ant-drawer .sidebar-link.active .anticon {
    color: #F6C674;
    color: var(--gold);
  }

  .ant-drawer .dropdown-header {
    color: #333333;
    color: var(--text-color);
  }

  .ant-drawer .dropdown-link {
    color: #333333;
    color: var(--text-color);
  }

  .ant-drawer .separator {
    border-top-color: rgba(246, 198, 116, 0.2);
  }

  .ant-drawer .profile-header {
    background-color: rgba(246, 198, 116, 0.05);
    border-color: rgba(246, 198, 116, 0.1);
  }

  .ant-drawer .pro-name {
    color: #A5765C;
    color: var(--brown);
  }

  /* Badge pour les messages non lus */
  .badge {
    position: relative;
    display: inline-flex;
    align-items: center;
  }

  .unread-badge {
    position: absolute;
    top: -8px;
    right: -12px;
    background: #ff3b30;
    color: white;
    font-size: 11px;
    font-weight: 600;
    min-width: 18px;
    height: 18px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 5px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
  }

  /* Suppression des animations d'entrée pour le drawer */
  .ant-drawer .sidebar-list>li {
    opacity: 1;
  }

  /* Masquer le bouton hamburger old style */
  .bubble-hamburger-max {
    display: none !important;
  }

  /* Premium button adapté pour mobile */
  .ant-drawer .premium-button {
    background: linear-gradient(45deg, #FFB347, #FFCC33, #FFD700, #FFC125);
    color: #793e00;
    font-size: 1rem;
    padding: 14px 20px;
    margin-top: 16px;
  }

  /* Safe area padding pour iOS */
  .ant-drawer .sidebar {
    padding-bottom: env(safe-area-inset-bottom, 20px);
  }

  /* Amélioration du scroll sur mobile */
  .ant-drawer .sidebar {
    -webkit-overflow-scrolling: touch;
    scroll-behavior: smooth;
  }
}

/* Overlay sombre du drawer mobile - géré par Ant Design */
.ant-drawer-mask {
  background: rgba(0, 0, 0, 0.6) !important;
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
}

/* Transition fluide du drawer */
.ant-drawer-content {
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.mobile-drawer .ant-drawer-content,
.mobile-drawer .ant-drawer-wrapper-body,
.mobile-drawer .ant-drawer-body,
.mobile-drawer .ant-drawer-content-wrapper {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border: none !important;
}


/* Style pour les éléments désactivés */
.dropdown-link.disabled {
  opacity: 0.6;
  cursor: not-allowed;
  color: #999;
  pointer-events: none;
}

.dropdown-link.disabled .anticon {
  color: #999;
}

.dropdown-link.disabled:hover {
  background-color: transparent;
}

.dropdown-link.disabled:hover .anticon {
  color: #999;
}

/* Contenu du lien désactivé */
.dropdown-link.disabled .disabled-link-content {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
}

.dropdown-link.disabled .coming-soon-text {
  font-size: 10px;
  color: #bbb;
  font-weight: 400;
  font-style: italic;
}

/* ======================= */
/*  MODE ASSOCIATION       */
/* ======================= */

/* Header association */
.sidebar.association-mode .sidebar-title.association-header {
  padding: 1rem;
  border-bottom: 2px solid rgba(246, 198, 116, 0.3);
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
}

.association-header-link {
  display: block;
  width: 100%;
  text-decoration: none;
  color: inherit;
  transition: all 0.3s ease;
  cursor: pointer;
}

.association-header-link:hover {
  opacity: 0.8;
  transform: translateY(-1px);
}

.association-header-link:active {
  transform: translateY(0);
}

.association-header-content {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: center;
}

.association-logo {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #F6C674;
  border: 3px solid var(--gold);
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.2);
}

.association-logo-icon {
  font-size: 32px;
  color: #A5765C;
  color: var(--brown);
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.2), rgba(238, 159, 153, 0.2));
  border: 3px solid #F6C674;
  border: 3px solid var(--gold);
}

.association-name {
  font-size: 1.1rem;
  font-weight: 700;
  color: #A5765C;
  color: var(--brown);
  text-align: center;
  flex: 1 1;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Bouton retour au compte pro */
.association-back-section {
  padding: 12px 16px;
  border-bottom: 1px solid rgba(246, 198, 116, 0.2);
}

.association-back-button {
  width: 100%;
  padding: 10px 16px;
  background: linear-gradient(135deg, rgba(165, 118, 92, 0.1), rgba(246, 198, 116, 0.1));
  border: 2px solid rgba(165, 118, 92, 0.3);
  border-radius: 12px;
  color: #A5765C;
  color: var(--brown);
  font-weight: 600;
  font-size: 0.95rem;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.association-back-button:hover {
  background: linear-gradient(135deg, rgba(165, 118, 92, 0.2), rgba(246, 198, 116, 0.2));
  border-color: #A5765C;
  border-color: var(--brown);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.2);
}

.association-back-button:active {
  transform: translateY(0);
}

.association-back-button .anticon {
  color: #A5765C;
  color: var(--brown);
  transition: all 0.3s ease;
}

.association-back-button:hover .anticon {
  color: #F6C674;
  color: var(--gold);
  transform: translateX(-3px);
}

/* Styles spécifiques pour le mode association */
.sidebar.association-mode {
  border-right-color: rgba(246, 198, 116, 0.3);
}

.sidebar.association-mode .sidebar-link.active {
  background: linear-gradient(to right, #A5765C, rgba(165, 118, 92, 0.8));
  background: linear-gradient(to right, var(--brown), rgba(165, 118, 92, 0.8));
}

.sidebar.association-mode .sidebar-link:hover {
  background-color: rgba(246, 198, 116, 0.15);
}

/* Responsive pour le mode association */
@media screen and (max-width: 767px) {
  .ant-drawer .sidebar.association-mode .association-header-content {
    flex-direction: column;
    gap: 8px;
  }

  .ant-drawer .sidebar.association-mode .association-name {
    font-size: 1rem;
    text-align: center;
  }

  .ant-drawer .sidebar.association-mode .association-back-button {
    font-size: 0.9rem;
    padding: 12px;
  }
}
.rintintin-logo-container {
    display: inline-flex;
    align-items: baseline;
    font-family: 'Outfit', 'Lato', sans-serif;
    font-weight: 700;
    letter-spacing: -0.02em;
    -webkit-user-select: none;
            user-select: none;
}

.logo-text-main {
    color: #1a1a1a;
}

.logo-text-pro {
    color: #b8977e;
    margin-left: 2px;
}

.logo-dot {
    color: #f6c674;
    font-weight: 900;
    font-size: 1.2em;
    line-height: 0;
}
/* MobileFooter.css */

.mobile-footer {
  position: fixed;
  bottom: 20px;
  /* Légèrement plus haut pour l'ombre */
  left: 20px;
  right: 20px;

  /* Fond de secours (Android anciens / Navigateurs sans blur) */
  background: rgba(255, 255, 255, 0.92);

  /* Glassmorphism Ultra-Premium (Détecté via @supports) */
  @supports ((-webkit-backdrop-filter: blur(1px)) or (backdrop-filter: blur(1px))) or (-webkit-backdrop-filter: blur(1px)) {
    background: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(25px) saturate(200%) contrast(100%);
    -webkit-backdrop-filter: blur(25px) saturate(200%) contrast(100%);
  }

  border-radius: 40px;

  /* Ombre plus forte et multicouche pour l'effet de profondeur */
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15),
  0 1px 3px rgba(0, 0, 0, 0.1),
  inset 0 0 0 1px rgba(255, 255, 255, 0.6),
  inset 0 1px 0 0 rgba(255, 255, 255, 0.8);

  z-index: 1002;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  border: 1px solid rgba(255, 255, 255, 0.2);

  /* Floating adaptation */
  margin-bottom: env(safe-area-inset-bottom);
  padding: 6px;
}

/* Effet de brillance "Liquid" au survol/actif */
.mobile-footer::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 32px;
  background: linear-gradient(125deg, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 40%, rgba(255, 255, 255, 0) 60%, rgba(255, 255, 255, 0.2) 100%);
  pointer-events: none;
}

.mobile-footer-inner {
  display: flex;
  align-items: center;
  justify-content: space-around;
  height: 50px;
  padding: 0 8px;
  position: relative;
}

.mobile-footer-item {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  text-decoration: none;
  color: #8e8e93;
  background: none;
  border: none;
  cursor: pointer;
  position: relative;
  transition: all 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.mobile-footer-item:active {
  transform: scale(0.92);
}

.mobile-footer-item.active {
  color: #F6C674;
}

.mobile-footer-icon {
  font-size: 22px;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.mobile-footer-item.active .mobile-footer-icon {
  transform: scale(1.2);
  filter: drop-shadow(0 0 5px rgba(246, 198, 116, 0.5));
}

/* Bouton central : au milieu maintenant */
.mobile-footer .mobile-footer-add {
  flex: 0 0 auto;
  margin: 0 4px;
  width: 54px;
  height: 54px;
  padding: 0;
  border: none;
  border-radius: 50%;
  background: linear-gradient(135deg, #966d58 0%, #7d5a49 100%) !important;
  box-shadow:
    0 8px 20px rgba(150, 109, 88, 0.4),
    inset 0 1px 1px rgba(255, 255, 255, 0.4),
    inset 0 -1px 1px rgba(0, 0, 0, 0.2);
  transform: translateY(-16px);
  display: flex !important;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  -webkit-tap-highlight-color: transparent;
  outline: none;
  z-index: 5;
}

.mobile-footer .mobile-footer-add:active {
  transform: translateY(-14px) scale(0.92);
  box-shadow: 0 4px 12px rgba(150, 109, 88, 0.3);
}

/* Icône calendrier + petit plus (blanc sur le cercle) */
.mobile-footer-add-icon.calendar-plus {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  color: #fff;
}

.mobile-footer-add-icon.calendar-plus .icon-overlay {
  position: absolute;
  top: -6px;
  right: -8px;
  font-size: 12px;
  color: #fff;
}

/* Badge pour les messages non lus */
.mobile-footer-icon-wrapper {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mobile-footer-badge {
  position: absolute;
  top: -6px;
  right: -8px;
  background: #ff3b30;
  color: white;
  font-size: 10px;
  font-weight: 600;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
  animation: badgePulse 2s infinite;
}

@keyframes badgePulse {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.05);
  }

  100% {
    transform: scale(1);
  }
}

/* Safe area pour les appareils avec encoche - désactivé car géré par padding */
.mobile-footer-safe-area {
  height: 0;
  display: none;
}

/* Animation d'apparition */
@keyframes slideUp {
  from {
    transform: translateY(100%);
  }

  to {
    transform: translateY(0);
  }
}

.mobile-footer {
  animation: slideUp 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Effet de sélection iOS */
.mobile-footer-item::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  background: rgba(246, 198, 116, 0.1);
  border-radius: 50%;
  transition: all 0.3s ease;
}

.mobile-footer-item:active::before {
  width: 48px;
  height: 48px;
}

/* Masquer sur desktop */
@media (min-width: 768px) {
  .mobile-footer {
    display: none;
  }
}

/* Optimisations pour très petits écrans */
@media (max-width: 320px) {
  .mobile-footer-inner {
    padding: 0 4px;
  }

  .mobile-footer-icon {
    font-size: 22px;
  }



  .mobile-footer-add {
    width: 50px;
    height: 50px;
  }

  .mobile-footer-add-icon {
    font-size: 24px;
  }
}
/* MobileHeader.css */

.mobile-header-advanced {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: calc(56px + env(safe-area-inset-top, 0px));
  height: calc(var(--mobile-header-height, 56px) + env(safe-area-inset-top, 0px));
  background: #ffffff;
  border-bottom: 1px solid rgba(246, 198, 116, 0.3);
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 8px;
  z-index: 999;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);

  /* Support pour les appareils avec encoche */
  padding-top: env(safe-area-inset-top, 0px);
}

.mobile-header-left,
.mobile-header-right {
  display: flex;
  align-items: center;
  gap: 4px;
}

.mobile-header-button {
  background: none;
  border: none;
  width: 40px;
  height: 40px;
  font-size: 20px;
  color: #A5765C;
  color: var(--brown, #A5765C);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  transition: all 0.2s ease;
  -webkit-tap-highlight-color: transparent;
  position: relative;
}

.mobile-header-button:active {
  background: rgba(246, 198, 116, 0.1);
  transform: scale(0.95);
}

.mobile-header-button::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
  background: rgba(246, 198, 116, 0.1);
  border-radius: 50%;
  transition: all 0.3s ease;
}

.mobile-header-button:hover::before {
  width: 36px;
  height: 36px;
}

.mobile-header-title {
  flex: 1 1;
  text-align: center;
  font-size: 17px;
  font-weight: 700;
  color: #1a1a1a;
  color: var(--black, #1a1a1a);
  margin: 0;
  letter-spacing: -0.2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 0 8px;
}

/* Force colors on Logo in the white header */
.mobile-header-title .logo-text-main {
  color: #1a1a1a !important;
}

.mobile-header-title .logo-text-pro {
  color: #f6c674 !important;
  /* Gold */
}


.mobile-header-dot {
  color: #F6C674;
  color: var(--primary-color, #F6C674);
  font-size: 20px;
  font-weight: 900;
}

.mobile-header-spacer {
  width: 40px;
  height: 40px;
}

/* Badge pour les notifications */
.mobile-header-badge {
  position: absolute;
  top: -2px;
  right: -2px;
  background: #ff3b30;
  color: white;
  font-size: 10px;
  font-weight: 600;
  min-width: 16px;
  height: 16px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 4px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
  z-index: 10;
  border: 2px solid #ffffff;
  /* Pour détacher le badge du fond s'il y a chevauchement */
}

/* États spéciaux */
.mobile-header-advanced.scrolled {
  background: rgba(255, 255, 255, 0.95);
  box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

.mobile-header-advanced.transparent {
  background: transparent;
  border-bottom: none;
  box-shadow: none;
}

.mobile-header-advanced.transparent .mobile-header-button,
.mobile-header-advanced.transparent .mobile-header-title {
  color: white;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

/* Animation de transition entre pages */
@keyframes slideInFromRight {
  from {
    transform: translateX(100%);
    opacity: 0;
  }

  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes slideInFromLeft {
  from {
    transform: translateX(-100%);
    opacity: 0;
  }

  to {
    transform: translateX(0);
    opacity: 1;
  }
}

.mobile-header-title {
  animation: slideInFromRight 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.mobile-header-button {
  animation: slideInFromLeft 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Responsive pour très petits écrans */
@media (max-width: 320px) {
  .mobile-header-advanced {
    padding: 0 4px;
  }

  .mobile-header-button {
    width: 36px;
    height: 36px;
    font-size: 18px;
  }

  .mobile-header-title {
    font-size: 16px;
  }

  .mobile-header-spacer {
    width: 36px;
  }
}

/* Support pour le mode paysage */
@media (orientation: landscape) and (max-height: 500px) {
  .mobile-header-advanced {
    height: 48px;
  }

  .mobile-header-button {
    width: 36px;
    height: 36px;
  }
}

/* Masquer sur desktop */
@media (min-width: 768px) {
  .mobile-header-advanced {
    display: none;
  }
}
/* PrivateLayout.css */

/* Variables CSS pour une gestion cohérente */
:root {
  --mobile-header-height: 56px;
  --mobile-footer-height: 58px;
  --safe-area-top: env(safe-area-inset-top, 0px);
  --safe-area-bottom: env(safe-area-inset-bottom, 0px);
  --primary-color: #F6C674;
  --sidebar-width: 220px;
}

/* Le conteneur global du layout privé */
.private-layout {
  display: flex;
  flex-direction: row;
  min-height: 100vh;
  background: #f8f9fa;
  position: relative;
}

/* Layout desktop */
.private-layout.desktop {
  flex-direction: row;
}

/* Layout mobile */
.private-layout.mobile {
  flex-direction: column;
  padding-top: calc(56px + env(safe-area-inset-top, 0px));
  padding-top: calc(var(--mobile-header-height) + var(--safe-area-top));
  padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px));
  padding-bottom: calc(var(--mobile-footer-height) + var(--safe-area-bottom));
}

/* Header mobile */
.mobile-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: calc(56px + env(safe-area-inset-top, 0px));
  height: calc(var(--mobile-header-height) + var(--safe-area-top));
  background: linear-gradient(135deg, #A5765C 0%, #C08B6F 100%);
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  padding: 0 16px;
  z-index: 999;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);

  /* Support pour les appareils avec encoche */
  padding-top: env(safe-area-inset-top, 0px);
  padding-top: var(--safe-area-top);
}

.mobile-menu-button {
  background: none;
  border: none;
  font-size: 24px;
  color: #ffffff;
  padding: 8px;
  margin-left: -8px;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  transition: background 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.mobile-menu-button:active {
  background: rgba(255, 255, 255, 0.2);
}

.mobile-header-title {
  flex: 1 1;
  text-align: center;
  font-size: 18px;
  font-weight: 800;
  color: #ffffff;
  margin: 0;
  letter-spacing: 0.5px;
}

.mobile-header-dot {
  color: #F6C674;
  font-size: 24px;
}

.mobile-header-spacer {
  width: 40px;
  /* Même largeur que le bouton menu pour centrer le titre */
}

/* Le conteneur droit (main content) */
.private-layout-right {
  display: flex;
  flex-direction: column;
  flex: 1 1;
  min-height: 100%;
  width: 100%;
}

/* Desktop: décalage pour la sidebar */
.private-layout.desktop .private-layout-right {
  margin-left: calc(220px + 20px);
  margin-left: calc(var(--sidebar-width) + 20px);
  /* 10px left margin + sidebar + 10px gap */
}

/* Mobile: pas de décalage */
.private-layout.mobile .private-layout-right {
  margin-left: 0;
}

/* La partie qui contient le contenu principal des pages */
.private-layout-content {
  flex: 1 1;
  padding: 20px;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
}

@media (min-width: 768px) {
  .private-layout-content {
    padding-top: 80px;
    /* Donne de l'espace pour l'îlot du header desktop fixe */
  }
}

/* Optimisations mobile */
@media (max-width: 767px) {
  .private-layout-content {
    padding: 16px;
    padding-bottom: 20px;
    /* Espace supplémentaire pour le footer */
  }

  /* Gestion du scroll avec le footer fixe */
  .private-layout.mobile {
    height: 100vh;
    overflow: hidden;
  }

  .private-layout.mobile .private-layout-right {
    height: calc(100vh - 56px - 58px - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px));
    height: calc(100vh - var(--mobile-header-height) - var(--mobile-footer-height) - var(--safe-area-top) - var(--safe-area-bottom));
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}

/* Drawer mobile personnalisé */
.ant-drawer.mobile-drawer .ant-drawer-body {
  padding: 0;
  background: #1a1a1a;
}

.ant-drawer.mobile-drawer .ant-drawer-content-wrapper {
  box-shadow: 2px 0 12px rgba(0, 0, 0, 0.15);
}

/* Masquer la sidebar sur mobile */
@media (max-width: 767px) {
  .private-layout .sidebar {
    display: none;
  }
}

/* Animations fluides */
.mobile-header,
.private-layout-content {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* États de chargement */
.private-layout-content.loading {
  opacity: 0.6;
  pointer-events: none;
}

/* Optimisations pour les très petits écrans */
@media (max-width: 374px) {
  .mobile-header-title {
    font-size: 16px;
  }

  .private-layout-content {
    padding: 12px;
  }
}

/* Support pour les écrans larges (tablettes en mode paysage) */
@media (min-width: 768px) and (max-width: 1024px) and (orientation: landscape) {
  .private-layout-content {
    padding: 24px;
    max-width: 800px;
    margin: 0 auto;
  }
}

/* Optimisation pour l'impression */
@media print {

  .mobile-header,
  .mobile-footer,
  .sidebar {
    display: none !important;
  }

  .private-layout-content {
    padding: 0;
    margin: 0;
  }
}

/* Desktop Header */
.desktop-header {
  position: fixed;
  /* Floats over content, taking no space */
  top: 16px;
  right: 24px;
  width: auto;
  height: auto;
  z-index: 1000;
  pointer-events: none;
  /* Let clicks pass through the empty areas */
  background: transparent;
  /* Transparent to create "invisible top bar" effect */
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  border-bottom: none;
  /* No border for island mode */
}

.desktop-header-right {
  display: flex;
  align-items: center;
  gap: 16px;
}
/**
 * iOS-specific fixes - Version minimaliste
 * Seules les corrections essentielles pour éviter les conflits
 */

/* =====================================================
   1. BOUTON DU FOOTER - Ne pas écraser le fond marron (style screen 2)
   ===================================================== */
/* Le bouton central garde son fond marron et son picto blanc définis dans MobileFooter.css */

/* =====================================================
   2. INPUTS - Éviter le zoom sur iOS
   ===================================================== */

/* Font-size minimum 16px pour éviter le zoom automatique */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="date"],
input[type="time"],
input[type="datetime-local"],
textarea,
select {
  font-size: 16px !important;
}

/* =====================================================
   3. SCROLL MOMENTUM
   ===================================================== */

/* Activer le scroll momentum natif iOS sur les conteneurs scrollables */
.private-layout-content,
.private-layout-right {
  -webkit-overflow-scrolling: touch;
}

/* =====================================================
   4. TAP HIGHLIGHT
   ===================================================== */

/* Désactiver le highlight bleu sur les éléments cliquables */
* {
  -webkit-tap-highlight-color: transparent;
}

/* Notification Bell Container */
.notification-bell-container {
    position: relative;
    display: inline-block;
}

/* Bell Button */
.notification-bell {
    position: relative;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 8px;
    border-radius: 50%;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #666;
}

.notification-bell:hover {
    background: rgba(165, 118, 92, 0.1);
    color: #A5765C;
}

.notification-bell.active {
    background: rgba(0, 0, 0, 0.1);
}

.bell-icon {
    font-size: 24px;
    display: block;
    line-height: 1;
}

/* Badge */
.notification-badge {
    position: absolute;
    top: 4px;
    right: 4px;
    background: #F44336;
    color: white;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 6px;
    border-radius: 10px;
    min-width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    animation: badgePulse 2s ease-in-out infinite;
}

@keyframes badgePulse {

    0%,
    100% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.1);
    }
}

/* Dropdown */
.notification-dropdown {
    position: absolute;
    top: calc(100% + 12px);
    right: -10px;
    /* Slight offset adjustment if needed */
    width: 360px;
    max-height: 500px;
    background: white;
    border-radius: 20px;
    /* More rounded */
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.12);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    animation: dropdownSlide 0.2s cubic-bezier(0.2, 0.8, 0.2, 1);
    border: 1px solid rgba(0, 0, 0, 0.04);
    overflow: hidden;
    /* Clips corners */
}

@keyframes dropdownSlide {
    from {
        opacity: 0;
        transform: translateY(-8px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* Header */
.notification-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 20px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
    background: #fff;
}

.notification-header h3 {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: #444;
}

.mark-all-read-btn {
    background: none;
    border: none;
    color: #A5765C;
    /* Brand Color */
    font-size: 12px;
    cursor: pointer;
    padding: 6px 10px;
    border-radius: 20px;
    transition: all 0.2s;
    font-weight: 600;
    background: rgba(165, 118, 92, 0.05);
}

.mark-all-read-btn:hover {
    background: rgba(165, 118, 92, 0.15);
    color: #8c5e45;
}

/* Notification List */
.notification-list {
    flex: 1 1;
    overflow-y: auto;
    max-height: 400px;
}

.notification-list::-webkit-scrollbar {
    width: 5px;
}

.notification-list::-webkit-scrollbar-track {
    background: #F5F5F5;
}

.notification-list::-webkit-scrollbar-thumb {
    background: #BDBDBD;
    border-radius: 3px;
}

.notification-list::-webkit-scrollbar-thumb:hover {
    background: #9E9E9E;
}

/* Notification Item */
.notification-item {
    display: flex;
    gap: 16px;
    /* Increased gap */
    padding: 16px 20px;
    /* Increased padding */
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
    border-left: 4px solid transparent;
    border-bottom: 1px solid rgba(0, 0, 0, 0.03);
}

.notification-item:last-child {
    border-bottom: none;
}

.notification-item:hover {
    background: #FAFAFA;
}

.notification-item.unread {
    background: rgba(246, 198, 116, 0.05);
    /* Light Gold Tint */
    border-left-color: #F6C674;
    /* Gold Border */
}

.notification-item.unread:hover {
    background: rgba(246, 198, 116, 0.1);
}

.notification-icon {
    font-size: 24px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    background: #FFF;
    border-radius: 50%;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    /* White circle with shadow */
    color: #A5765C;
}

.notification-content {
    flex: 1 1;
    min-width: 0;
}

.notification-title {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    margin-bottom: 4px;
    line-height: 1.3;
}

.notification-message {
    font-size: 13px;
    color: #666;
    margin-bottom: 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    line-height: 1.5;
}

.notification-time {
    font-size: 11px;
    color: #999;
    font-weight: 500;
}

.unread-indicator {
    width: 8px;
    height: 8px;
    background: #F6C674;
    border-radius: 50%;
    flex-shrink: 0;
    align-self: center;
    box-shadow: 0 0 0 4px rgba(246, 198, 116, 0.2);
}

/* Loading State */
.notification-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    color: #999;
}

.loading-spinner {
    width: 32px;
    height: 32px;
    border: 3px solid rgba(165, 118, 92, 0.1);
    border-top-color: #A5765C;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin-bottom: 16px;
}

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

/* Empty State */
.notification-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
    color: #999;
    background: linear-gradient(to bottom, white, #fafafa);
}

.empty-icon {
    font-size: 48px;
    opacity: 0.3;
    margin-bottom: 16px;
    color: #A5765C;
}

.notification-empty p {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
}

/* Footer */
.notification-footer {
    padding: 16px;
    border-top: 1px solid rgba(0, 0, 0, 0.05);
    text-align: center;
    background: #fff;
}

.view-all-link {
    color: #A5765C;
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    transition: all 0.2s;
    letter-spacing: 0.5px;
    text-transform: uppercase;
}

.view-all-link:hover {
    color: #8c5e45;
    text-decoration: none;
    opacity: 0.8;
}

/* Responsive - Mobile */
@media (max-width: 768px) {
    .notification-dropdown {
        position: fixed;
        top: auto;
        bottom: 0;
        /* Sheet from bottom on mobile? Or just standard fullscreen? Stick to standard for simplicity if not requested otherwise. top:0 is safe. */
        top: 0;
        right: 0;
        left: 0;
        width: 100%;
        max-height: 100vh;
        border-radius: 0;
        animation: slideUp 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
        z-index: 9999;
    }

    @keyframes slideUp {
        from {
            transform: translateY(100%);
        }

        to {
            transform: translateY(0);
        }
    }

    .notification-header {
        padding: 20px 16px;
        background: #fff;
        /* Ensure bg */
    }

    .notification-list {
        max-height: calc(100vh - 120px);
    }
}

/* Dark Mode Support (Optional) - Removed blue tints */
@media (prefers-color-scheme: dark) {
    /* ... keep simplified or update if critically needed. For now assuming Light Mode priority based on screenshots. */
}
.messages-popover {
    position: absolute;
    top: calc(100% + 15px);
    left: -150px;
    width: 320px;
    background: white;
    border-radius: 20px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15);
    z-index: 1000;
    overflow: hidden;
    animation: slideUp 0.3s ease-out;
    border: 1px solid rgba(165, 118, 92, 0.1);
    display: flex;
    flex-direction: column;
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Header Styles */
.messages-popover-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid #f0f0f0;
    min-height: 52px;
}

.messages-popover-header h3 {
    margin: 0;
    font-size: 1.1rem;
    color: #444;
    font-weight: 700;
}

.popover-header-chat {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 12px;
}

.back-btn,
.full-view-btn {
    background: transparent;
    border: none;
    color: #999;
    cursor: pointer;
    padding: 4px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.2s;
}

.back-btn:hover,
.full-view-btn:hover {
    background: #f5f5f5;
    color: #A5765C;
}

.header-user-info {
    flex: 1 1;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.header-user-info img {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}

.header-user-info .user-name {
    font-weight: 700;
    font-size: 0.95rem;
    color: #333;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Content Area */
.messages-popover-content {
    max-height: 400px;
    overflow-y: auto;
}

.messages-popover-content.chat-view {
    height: 350px;
    background: #fbfbfc;
}

/* List View Styles */
.messages-list {
    display: flex;
    flex-direction: column;
}

.message-item {
    display: flex;
    gap: 12px;
    padding: 12px 16px;
    cursor: pointer;
    transition: background 0.2s;
    border-bottom: 1px solid #f9f9f9;
}

.message-item:hover {
    background: #f8f8f8;
}

.message-item.unread {
    background: rgba(165, 118, 92, 0.03);
}

.message-item-avatar {
    position: relative;
    flex-shrink: 0;
}

.message-item-avatar img {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    object-fit: cover;
    border: 2px solid white;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.unread-dot {
    position: absolute;
    bottom: 2px;
    right: 2px;
    width: 12px;
    height: 12px;
    background: #A5765C;
    border-radius: 50%;
    border: 2px solid white;
}

.message-item-info {
    flex: 1 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.message-item-top {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 2px;
}

.message-item-name {
    font-weight: 700;
    color: #333;
    font-size: 0.9rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.message-item-time {
    font-size: 0.7rem;
    color: #999;
    flex-shrink: 0;
}

.message-item-last {
    margin: 0;
    font-size: 0.85rem;
    color: #666;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.last-msg-you {
    font-weight: 500;
    color: #999;
}

.unread .message-item-last {
    color: #333;
    font-weight: 600;
}

/* Chat View Styles */
.popover-chat-messages {
    padding: 12px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.popover-msg {
    max-width: 85%;
    display: flex;
    flex-direction: column;
}

.popover-msg.sent {
    align-self: flex-end;
}

.popover-msg.received {
    align-self: flex-start;
}

.popover-msg-bubble {
    padding: 8px 12px;
    border-radius: 14px;
    font-size: 0.85rem;
    line-height: 1.4;
    word-break: break-word;
}

.sent .popover-msg-bubble {
    background: #A5765C;
    color: white;
    border-bottom-right-radius: 4px;
}

.received .popover-msg-bubble {
    background: #f0f0f0;
    color: #333;
    border-bottom-left-radius: 4px;
}

.popover-msg-time {
    font-size: 0.65rem;
    color: #999;
    margin-top: 2px;
    padding: 0 4px;
}

.sent .popover-msg-time {
    text-align: right;
}

/* Footer & Input */
.messages-popover-footer {
    padding: 12px;
    text-align: center;
    font-size: 0.85rem;
    color: #A5765C;
    font-weight: 600;
    cursor: pointer;
    background: #fdfdfd;
    border-top: 1px solid #f0f0f0;
}

.popover-chat-input {
    padding: 10px;
    border-top: 1px solid #f0f0f0;
    display: flex;
    gap: 8px;
    background: white;
}

.popover-chat-input input {
    flex: 1 1;
    border: 1px solid #eee;
    border-radius: 20px;
    padding: 6px 14px;
    font-size: 0.85rem;
    outline: none;
}

.popover-chat-input input:focus {
    border-color: #A5765C;
}

.popover-chat-input button {
    background: #A5765C;
    color: white;
    border: none;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.popover-chat-input button:disabled {
    background: #ccc;
}

/* Utilities */
.view-all-btn {
    background: transparent;
    border: none;
    color: #A5765C;
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.spinner {
    width: 20px;
    height: 20px;
    border: 2px solid rgba(165, 118, 92, 0.1);
    border-top-color: #A5765C;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}

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

.messages-popover-empty,
.messages-popover-loading {
    padding: 40px 20px;
    text-align: center;
    color: #999;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
}
.desktop-header-content {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    /* Align island to right */
    height: 100%;
    width: 100%;
    pointer-events: none;
    /* Container is transparent to clicks */
}

/* The floating island */
.header-island {
    background: white;
    border-radius: 32px;
    /* Nicely rounded like a pill */
    padding: 6px 12px;
    /* Reduced inner spacing */
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.28);
    /* Plus d'assombrissement pour faire ressortir l'îlot */
    display: flex;
    align-items: center;
    gap: 12px;
    /* Reduced gap */
    pointer-events: auto;
    /* Re-enable clicks on the island itself */
    border: 1px solid rgba(0, 0, 0, 0.03);
    margin-right: 0;
    height: 48px;
    /* Slightly reduced height */
}

.messages-relative-container {
    position: relative;
    display: flex;
    align-items: center;
}

.desktop-header-link {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    color: #666;
    font-weight: 600;
    transition: color 0.2s;
    padding: 6px;
    /* Reduced padding */
    border-radius: 8px;
    text-decoration: none;
}

.desktop-header-link:hover {
    background-color: #f5f5f5;
    color: #A5765C;
}

.desktop-header-link.active {
    color: #A5765C;
    background-color: rgba(165, 118, 92, 0.1);
}

.icon-wrapper {
    position: relative;
    font-size: 20px;
    display: flex;
    align-items: center;
}

.unread-badge {
    position: absolute;
    top: -8px;
    right: -8px;
    background-color: #ff4d4f;
    color: white;
    border-radius: 10px;
    min-width: 16px;
    height: 16px;
    font-size: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 4px;
}

.link-text {
    font-size: 14px;
}

.desktop-header-item {
    display: flex;
    align-items: center;
}


/* Profile Section */
.desktop-profile-section {
    position: relative;
    border-left: 1px solid rgba(0, 0, 0, 0.05);
    /* Optional: separator if desired, or just space */
    padding-left: 4px;
    /* Slight separation */
}

.desktop-profile-trigger {
    display: flex;
    align-items: center;
    gap: 8px;
    /* Reduced gap */
    cursor: pointer;
    padding: 4px 8px;
    /* Reduced padding */
    border-radius: 24px;
    /* Pill shape */
    border: 1px solid transparent;
    /* Cleaner default */
    background-color: transparent;
    transition: all 0.2s;
}

.desktop-profile-trigger:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

.profile-pic-small {
    width: 28px;
    /* Reduced size */
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
}

.desktop-profile-name {
    font-weight: 600;
    color: #A5765C;
    font-size: 13px;
    /* Increased to be legible but neat */
    max-width: 140px;
    /* Allow more space for long names, island will grow */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.desktop-profile-dropdown {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    width: 240px;
    background: white;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    padding: 8px;
    z-index: 1000;
    border: 1px solid #f0f0f0;
    animation: slideDown 0.2s ease-out;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.dropdown-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    border-radius: 8px;
    cursor: pointer;
    color: #333;
    transition: background 0.2s;
    font-size: 14px;
    position: relative;
}

.dropdown-item:hover {
    background-color: #f9f9f9;
    color: #A5765C;
}

.dropdown-item.disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.premium-item {
    margin-top: 8px;
    border-top: 1px solid #eee;
    padding-top: 12px;
    color: #A5765C;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-radius: 8px;
    cursor: pointer;
}

.premium-item:hover {
    background-color: #fff8f5;
}

.alert-dot {
    width: 8px;
    height: 8px;
    background-color: #ff4d4f;
    border-radius: 50%;
    margin-left: auto;
}
/* src/components/TrustBadges/TrustBadges.css */
/* Intégration dans le thème Rintintin Pro (orange/rose/blanc) */

.trust-badges-section {
    padding: 4rem 1.5rem;
    background-color: #ffffff;
    text-align: center;
    border-top: 1px solid rgba(0, 0, 0, 0.03);
    border-bottom: 1px solid rgba(0, 0, 0, 0.03);
}

.trust-badges-container {
    max-width: 1200px;
    margin: 0 auto;
}

.trust-badges-title {
    font-size: 1.8rem;
    color: #1a1a1a;
    margin-bottom: 3rem;
    font-weight: 700;
}

.trust-badges-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    grid-gap: 2rem;
    gap: 2rem;
    justify-items: center;
}

.trust-badge-card {
    background: white;
    padding: 1.5rem;
    border-radius: 16px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.04);
    display: flex;
    flex-direction: column;
    align-items: center;
    transition: all 0.3s ease;
    width: 100%;
    max-width: 280px;
    border: 1px solid #f0f0f0;
}

.trust-badge-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(255, 159, 130, 0.15);
    /* Ombre avec teinte orange léger */
    border-color: #FFEAE4;
}

.badge-icon-wrapper {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    /* Par défaut un dégradé neutre/bleuté, surchargé plus bas */
    background: linear-gradient(135deg, #f0f9ff 0%, #e0f2fe 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
    color: #0ea5e9;
    font-size: 1.8rem;
}

/* Couleurs spécifiques aux badges */
.badge-stripe .badge-icon-wrapper {
    /* Stripe Purple */
    background: linear-gradient(135deg, #f3e8ff 0%, #d8b4fe 100%);
    color: #7c3aed;
}

.badge-hosting .badge-icon-wrapper {
    /* Tech Blue / Server */
    background: linear-gradient(135deg, #e0f2fe 0%, #bae6fd 100%);
    color: #0284c7;
}

.badge-rgpd .badge-icon-wrapper {
    /* GDPR Green */
    background: linear-gradient(135deg, #f0fdf4 0%, #bbf7d0 100%);
    color: #16a34a;
}

.badge-ssl .badge-icon-wrapper {
    /* SSL Blue */
    background: linear-gradient(135deg, #eff6ff 0%, #bfdbfe 100%);
    color: #2563eb;
}

.badge-title {
    font-size: 1.1rem;
    font-weight: 600;
    color: #1f2937;
    margin-bottom: 0.5rem;
}

.badge-description {
    font-size: 0.9rem;
    color: #6b7280;
    line-height: 1.5;
}

@media (max-width: 768px) {
    .trust-badges-grid {
        grid-template-columns: 1fr;
    }
}
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  --header-height: 80px;
}

/* Animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(50px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes float {
  0% {
    transform: translateY(0px) rotate(2deg);
  }

  50% {
    transform: translateY(-10px) rotate(1deg);
  }

  100% {
    transform: translateY(0px) rotate(2deg);
  }
}

@keyframes zoomInOut {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.05);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes smoothFloat {
  0% {
    transform: translateY(0) scale(1) rotateY(0deg);
  }

  50% {
    transform: translateY(-5px) scale(1.02) rotateY(1deg);
  }

  100% {
    transform: translateY(0) scale(1) rotateY(0deg);
  }
}

@keyframes slideFromRight {
  from {
    transform: translateX(100%) scale(0.7) rotateY(-10deg);
    opacity: 0;
  }

  to {
    transform: translateX(0) scale(1) rotateY(0deg);
    opacity: 1;
  }
}

@keyframes slideToLeft {
  from {
    transform: translateX(0) scale(1) rotateY(0deg);
    opacity: 1;
  }

  to {
    transform: translateX(-100%) scale(0.7) rotateY(10deg);
    opacity: 0;
  }
}

@keyframes blurIn {
  from {
    filter: blur(10px);
    opacity: 0;
  }

  to {
    filter: blur(0);
    opacity: 1;
  }
}

@keyframes pulseDot {
  0% {
    transform: scale(1);
    opacity: 0.7;
  }

  50% {
    transform: scale(1.3);
    opacity: 1;
  }

  100% {
    transform: scale(1);
    opacity: 0.7;
  }
}

@keyframes gradientFlow {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.05);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes shine {
  from {
    background-position: -100% 0;
  }

  to {
    background-position: 100% 0;
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* Animation pour l'effet de zoom */
@keyframes subtle-zoom {
  from {
    transform: scale(1);
  }

  to {
    transform: scale(1.05);
  }
}

/* Animation pour les transitions d'images */
@keyframes mobile-slide-in {
  from {
    opacity: 0;
    transform: scale(1.1);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes mobile-slide-out {
  from {
    opacity: 1;
    transform: scale(1);
  }

  to {
    opacity: 0;
    transform: scale(0.9);
  }
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 80px;
  scroll-padding-top: var(--header-height);
}

.landing-container {
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  color: #333333;
  color: var(--text-color);
  max-width: 100%;
  overflow-x: hidden;
}

/* Hero Section */
.landing-hero {
  display: flex;
  min-height: 100vh;
  padding: 150px 50px 100px;
  background: linear-gradient(135deg, #F6F2EF, #fff);
  background: linear-gradient(135deg, var(--light-gray), #fff);
  position: relative;
  overflow: visible;
  padding-bottom: 120px;
}

.landing-hero::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.15%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
  background-size: 100px 100px;
  opacity: 0.5;
  z-index: 0;
  animation: gradientFlow 15s ease infinite;
}

.landing-content {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  z-index: 100;
  padding-right: 0;
  animation: fadeInLeft 0.8s ease-out forwards;
  position: relative;
}

.landing-title {
  font-size: 3.5rem;
  font-weight: 800;
  margin-bottom: 24px;
  color: #000000;
  color: var(--black);
  line-height: 1.2;
  position: relative;
  opacity: 0;
  animation: fadeInUp 0.8s ease-out forwards 0.2s;
}

.landing-title::after {
  content: ".";
  position: relative;
  color: #F6C674;
  color: var(--gold);
  font-size: 4rem;
  font-weight: 900;
}

.landing-subtitle {
  font-size: 1.25rem;
  line-height: 1.6;
  margin-bottom: 32px;
  max-width: 600px;
  opacity: 0;
  animation: fadeInUp 0.8s ease-out forwards 0.4s;
}

.hero-pricing-info {
  margin-bottom: 40px;
  opacity: 0;
  animation: fadeInUp 0.8s ease-out forwards 0.6s;
}

.free-badge {
  display: inline-block;
  background: linear-gradient(135deg, #F6C674, #FFA351);
  background: linear-gradient(135deg, var(--gold), var(--orange));
  color: #000000;
  color: var(--black);
  padding: 12px 20px;
  border-radius: 15px;
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 12px;
  text-align: center;
  box-shadow: 0 2px 8px rgba(246, 198, 116, 0.2);
  border: 2px solid rgba(246, 198, 116, 0.4);
}

.pricing-details {
  font-size: 1rem;
  color: #333333;
  color: var(--text-color);
  margin: 0;
  opacity: 0.8;
}

.cta-button {
  padding: 16px 32px;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  border: none;
  display: inline-block;
  position: relative;
  overflow: hidden;
  opacity: 0;
  animation: fadeInUp 0.8s ease-out forwards 0.6s;
}

.cta-button.primary {
  background: linear-gradient(135deg, #A5765C, #8e6651);
  background: linear-gradient(135deg, var(--brown), #8e6651);
  color: #fff;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3);
}

.cta-button.primary::before {
  content: '';
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 70%);
  opacity: 0;
  transform: scale(0.5);
  transition: all 0.5s ease-out;
  pointer-events: none;
}

.cta-button.primary:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.4);
}

.cta-button.primary:hover::before {
  opacity: 1;
  transform: scale(1);
}

.cta-button.secondary {
  background: transparent;
  color: #A5765C;
  color: var(--brown);
  border: 2px solid #A5765C;
  border: 2px solid var(--brown);
  position: relative;
  z-index: 1;
}

.cta-button.secondary::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0%;
  height: 100%;
  background-color: rgba(165, 118, 92, 0.1);
  transition: width 0.3s ease;
  z-index: -1;
}

.cta-button.secondary:hover {
  transform: translateY(-5px);
}

.cta-button.secondary:hover::before {
  width: 100%;
}

.cta-button.large {
  padding: 18px 36px;
  font-size: 1.2rem;
}

.landing-image {
  flex: 1 1;
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 1;
  opacity: 0;
  animation: fadeInRight 0.8s ease-out forwards 0.5s;
}

.hero-image {
  max-width: 100%;
  height: auto;
  border-radius: 20px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  transform: rotate(2deg);
  transition: transform 0.5s ease;
  animation: float 6s ease-in-out infinite;
}

.hero-image:hover {
  transform: rotate(0deg) scale(1.05);
  animation-play-state: paused;
}

/* Features Section */
.features-section {
  padding: 100px 50px;
  background: #fff;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.section-title {
  font-size: 2.5rem;
  font-weight: 800;
  margin-bottom: 60px;
  color: #000000;
  color: var(--black);
  position: relative;
  display: inline-block;
  opacity: 0;
  animation: fadeInUp 0.8s ease-out forwards;
}

.section-title::after {
  content: ".";
  display: inline;
  color: #F6C674;
  color: var(--gold);
  font-size: 3rem;
  font-weight: 900;
  margin-left: 2px;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-gap: 40px;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
}

.feature-card {
  background: #fff;
  padding: 40px 30px;
  border-radius: 16px;
  border-radius: var(--border-radius);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(246, 198, 116, 0.2);
  opacity: 0;
  transform: translateY(30px);
  /* Styles pour les liens */
  text-decoration: none;
  color: inherit;
  display: block;
  cursor: pointer;
}

.feature-card:nth-child(1) {
  animation: fadeInUp 0.5s ease-out forwards 0.1s;
}

.feature-card:nth-child(2) {
  animation: fadeInUp 0.5s ease-out forwards 0.2s;
}

.feature-card:nth-child(3) {
  animation: fadeInUp 0.5s ease-out forwards 0.3s;
}

.feature-card:nth-child(4) {
  animation: fadeInUp 0.5s ease-out forwards 0.4s;
}

.feature-card:nth-child(5) {
  animation: fadeInUp 0.5s ease-out forwards 0.5s;
}

.feature-card:nth-child(6) {
  animation: fadeInUp 0.5s ease-out forwards 0.6s;
}

.feature-card:nth-child(7) {
  animation: fadeInUp 0.5s ease-out forwards 0.7s;
}

.feature-card:nth-child(8) {
  animation: fadeInUp 0.5s ease-out forwards 0.8s;
}

.feature-card:nth-child(9) {
  animation: fadeInUp 0.5s ease-out forwards 0.9s;
}

.feature-card:nth-child(10) {
  animation: fadeInUp 0.5s ease-out forwards 1.0s;
}

.feature-card:nth-child(11) {
  animation: fadeInUp 0.5s ease-out forwards 1.1s;
}

.feature-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 8px;
  background: linear-gradient(to right, #F6C674, #EE9F99);
  background: linear-gradient(to right, var(--gold), var(--peach));
  transition: height 0.3s ease;
}

.feature-card:hover {
  transform: translateY(-15px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

.feature-card:hover::before {
  height: 10px;
}

.feature-icon {
  font-size: 2.5rem;
  margin-bottom: 20px;
  transition: transform 0.3s ease;
}

.feature-card:hover .feature-icon {
  transform: scale(1.2);
}

.feature-card h3 {
  font-size: 1.4rem;
  font-weight: 700;
  margin-bottom: 15px;
  color: #A5765C;
  color: var(--brown);
  transition: color 0.3s ease;
}

.feature-card p {
  font-size: 1rem;
  line-height: 1.6;
  color: #333333;
  color: var(--text-color);
}

/* S'assurer que les liens ne changent pas de style */
.feature-card:visited,
.feature-card:link,
.feature-card:active {
  text-decoration: none;
  color: inherit;
}

.feature-card:visited h3,
.feature-card:link h3,
.feature-card:active h3,
.feature-card:hover h3 {
  color: #A5765C;
  color: var(--brown);
}

.feature-card:visited p,
.feature-card:link p,
.feature-card:active p,
.feature-card:hover p {
  color: #333333;
  color: var(--text-color);
}

/* ======================== */
/* Section BENEFITS Storytelling */
/* ======================== */
.benefits-section {
  padding: 0;
  background: #fff;
  position: relative;
  overflow: hidden;
}

.benefits-header {
  padding: 100px 50px 60px;
  text-align: center;
  background: #fff;
}

.benefits-intro {
  max-width: 750px;
  margin: 0 auto;
  font-size: 1.25rem;
  line-height: 1.8;
  color: #333333;
  color: var(--text-color);
  opacity: 0;
  animation: fadeInUp 0.8s ease-out forwards 0.3s;
}

.benefits-intro strong {
  color: #A5765C;
  color: var(--brown);
}

/* ======================== */
/* STORIES                  */
/* ======================== */
.benefits-stories {
  max-width: 100%;
}

.benefit-story {
  display: flex;
  align-items: center;
  padding: 80px 10%;
  gap: 60px;
  background: #fff;
  opacity: 0;
  animation: fadeInUp 0.6s ease-out forwards;
}

.benefit-story:nth-child(1) {
  animation-delay: 0.1s;
}

.benefit-story:nth-child(2) {
  animation-delay: 0.15s;
}

.benefit-story:nth-child(3) {
  animation-delay: 0.2s;
}

.benefit-story:nth-child(4) {
  animation-delay: 0.25s;
}

.benefit-story:nth-child(5) {
  animation-delay: 0.3s;
}

.benefit-story:nth-child(6) {
  animation-delay: 0.35s;
}

/* Alternance de fond */
.benefit-story.story-alt {
  background: #F6F2EF;
  background: var(--light-gray);
  flex-direction: row-reverse;
}

/* Emoji */
.story-emoji {
  font-size: 4rem;
  flex-shrink: 0;
  width: 120px;
  height: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.1));
  border-radius: 32px;
  transition: transform 0.3s ease;
}

.benefit-story:hover .story-emoji {
  transform: scale(1.1) rotate(5deg);
}

/* Contenu */
.story-content {
  flex: 1 1;
  max-width: 600px;
}

.story-content h3 {
  font-size: 1.8rem;
  font-weight: 700;
  color: #A5765C;
  color: var(--brown);
  margin-bottom: 16px;
  line-height: 1.3;
}

.story-content p {
  font-size: 1.15rem;
  line-height: 1.8;
  color: #333333;
  color: var(--text-color);
  margin: 0 0 20px 0;
}

/* Highlight */
.story-highlight {
  display: inline-block;
  padding: 10px 20px;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.25), rgba(238, 159, 153, 0.2));
  border-radius: 24px;
  font-size: 1rem;
  font-weight: 600;
  color: #A5765C;
  color: var(--brown);
  border-left: 4px solid #F6C674;
  border-left: 4px solid var(--gold);
}

/* CTA de la section */
.benefits-cta {
  text-align: center;
  padding: 80px 50px;
  background: linear-gradient(180deg, #F6F2EF 0%, #fff 100%);
  background: linear-gradient(180deg, var(--light-gray) 0%, #fff 100%);
}

.benefits-cta-text {
  font-size: 1.2rem;
  color: #333333;
  color: var(--text-color);
  margin-bottom: 30px;
  opacity: 0.9;
}

.benefits-cta .cta-button {
  opacity: 1;
  animation: none;
}

/* ======================== */
/* RESPONSIVE - Storytelling */
/* ======================== */
@media (max-width: 900px) {
  .benefit-story {
    flex-direction: column !important;
    padding: 60px 30px;
    gap: 30px;
    text-align: center;
  }

  .story-emoji {
    width: 100px;
    height: 100px;
    font-size: 3rem;
  }

  .story-content {
    max-width: 100%;
  }

  .story-content h3 {
    font-size: 1.5rem;
  }

  .story-highlight {
    display: block;
    margin: 0 auto;
    max-width: -webkit-fit-content;
    max-width: fit-content;
  }
}

@media (max-width: 600px) {
  .benefits-header {
    padding: 60px 20px 40px;
  }

  .benefits-intro {
    font-size: 1.1rem;
  }

  .benefit-story {
    padding: 50px 20px;
    gap: 25px;
  }

  .story-emoji {
    width: 80px;
    height: 80px;
    font-size: 2.5rem;
    border-radius: 24px;
  }

  .story-content h3 {
    font-size: 1.3rem;
  }

  .story-content p {
    font-size: 1rem;
  }

  .benefits-cta {
    padding: 50px 20px;
  }
}

/* Pricing Section */
.pricing-section {
  padding: 100px 50px;
  background: linear-gradient(135deg, #fff, #F6F2EF);
  background: linear-gradient(135deg, #fff, var(--light-gray));
  text-align: center;
}

.pricing-intro {
  max-width: 800px;
  margin: 0 auto 50px auto;
  padding: 30px;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.1), rgba(255, 163, 81, 0.1));
  border-radius: 20px;
  border: 2px solid rgba(246, 198, 116, 0.3);
}

.pricing-intro p {
  margin: 8px 0;
  font-size: 1.1rem;
  font-weight: 500;
}

.pricing-intro p:first-child {
  font-size: 1.3rem;
  color: #A5765C;
  color: var(--brown);
}

.pricing-guarantee {
  background: rgba(244, 244, 244, 0.8);
  padding: 12px 16px;
  border-radius: 8px;
  font-size: 0.9rem;
  color: #333333;
  color: var(--text-color);
  margin: 15px 0;
  font-weight: 500;
  border: 1px solid rgba(165, 118, 92, 0.2);
}

.pricing-cards {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Switch pour passer du tarif annuel au tarif mensuel */
.pricing-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 10px 0 20px;
  gap: 10px;
}

.toggle-option {
  font-size: 0.9rem;
  color: #777;
  transition: color 0.3s ease, font-weight 0.3s ease;
}

.toggle-option.active {
  color: #A5765C;
  color: var(--brown);
  font-weight: 700;
}

/* Le switch lui-même */
.switch {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 24px;
}

.switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: #e0e0e0;
  transition: .4s;
}

.slider:before {
  position: absolute;
  content: "";
  height: 18px;
  width: 18px;
  left: 3px;
  bottom: 3px;
  background-color: white;
  transition: .4s;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

input:checked+.slider {
  background-color: #A5765C;
  background-color: var(--brown);
}

input:focus+.slider {
  box-shadow: 0 0 1px #A5765C;
  box-shadow: 0 0 1px var(--brown);
}

input:checked+.slider:before {
  transform: translateX(26px);
}

.slider.round {
  border-radius: 34px;
}

.slider.round:before {
  border-radius: 50%;
}

/* Label pour la réduction */
.pricing-discount {
  background: linear-gradient(135deg, #F6C674, #EE9F99);
  background: linear-gradient(135deg, var(--gold), var(--peach));
  color: white;
  font-size: 0.75rem;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 12px;
  display: inline-block;
  margin-top: 5px;
  animation: pulse 2s infinite;
}

.pricing-card {
  flex: 1 1;
  min-width: 280px;
  max-width: 350px;
  background: #fff;
  border-radius: 16px;
  border-radius: var(--border-radius);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  padding: 40px 30px;
  text-align: center;
  position: relative;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  border: 1px solid rgba(246, 198, 116, 0.2);
  overflow: hidden;
  opacity: 0;
  transform: translateY(30px);
}

.pricing-card:nth-child(1) {
  animation: fadeInUp 0.5s ease-out forwards 0.1s;
}

.pricing-card:nth-child(2) {
  animation: fadeInUp 0.5s ease-out forwards 0.2s;
}

.pricing-card:nth-child(3) {
  animation: fadeInUp 0.5s ease-out forwards 0.3s;
}

.pricing-card-featured {
  transform: translateY(-20px) scale(1.05);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
  border: 1px solid #F6C674;
  border: 1px solid var(--gold);
  z-index: 2;
}

.pricing-card-featured::before {
  content: '';
  position: absolute;
  top: -5px;
  left: -5px;
  right: -5px;
  bottom: -5px;
  background: linear-gradient(90deg, #F6C674, #EE9F99, #F6C674);
  background: linear-gradient(90deg, var(--gold), var(--peach), var(--gold));
  z-index: -1;
  border-radius: calc(16px + 5px);
  border-radius: calc(var(--border-radius) + 5px);
  background-size: 200% 200%;
  animation: gradientFlow 5s ease infinite;
  opacity: 0.5;
}

.pricing-card-featured:hover {
  transform: translateY(-25px) scale(1.05);
}

.pricing-card:hover {
  transform: translateY(-15px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

.pricing-badge {
  position: absolute;
  top: 15px;
  right: 15px;
  background: linear-gradient(135deg, #F6C674, #EE9F99);
  background: linear-gradient(135deg, var(--gold), var(--peach));
  color: white;
  padding: 5px 12px;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 700;
}

.pricing-title {
  font-size: 1.8rem;
  color: #A5765C;
  color: var(--brown);
  margin-bottom: 20px;
  font-weight: 800;
}

.pricing-price {
  margin-bottom: 30px;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 80px;
}

.price-value {
  font-size: 3rem;
  font-weight: 800;
  color: #000000;
  color: var(--black);
  background: linear-gradient(90deg, #A5765C, #F6C674);
  background: linear-gradient(90deg, var(--brown), var(--gold));
  background-size: 200% auto;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  animation: shine 3s linear infinite;
  transition: all 0.3s ease;
}

.price-period {
  font-size: 1.1rem;
  color: #777;
  margin-bottom: 5px;
}

.pricing-features {
  list-style: none;
  margin: 0 0 30px;
  padding: 0;
  text-align: left;
}

.pricing-features li {
  padding: 10px 0;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  position: relative;
  padding-left: 30px;
  transition: transform 0.3s ease;
}

.pricing-features li::before {
  content: "✓";
  position: absolute;
  left: 0;
  color: #A5765C;
  color: var(--brown);
  font-weight: bold;
}

.pricing-features li:hover {
  transform: translateX(5px);
}

.pricing-feature-disabled {
  color: #aaa;
  text-decoration: line-through;
}

.pricing-feature-disabled::before {
  content: "✕" !important;
  color: #ddd !important;
}

.pricing-card .cta-button {
  width: 100%;
  opacity: 1;
  animation: none;
}

/* Testimonials Section */
.testimonials-section {
  padding: 100px 50px;
  background: linear-gradient(135deg, #F6F2EF, #fff);
  background: linear-gradient(135deg, var(--light-gray), #fff);
  text-align: center;
  position: relative;
}

.testimonials-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.1%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
  background-size: 100px 100px;
  opacity: 0.5;
  z-index: 0;
}

.testimonials-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.testimonial-card {
  background: #fff;
  padding: 30px;
  border-radius: 16px;
  border-radius: var(--border-radius);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  max-width: 350px;
  text-align: left;
  position: relative;
  border: 1px solid rgba(246, 198, 116, 0.2);
  flex: 1 1;
  min-width: 280px;
  opacity: 0;
  transform: translateY(30px);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.testimonial-card:nth-child(1) {
  animation: fadeInUp 0.5s ease-out forwards 0.1s;
}

.testimonial-card:nth-child(2) {
  animation: fadeInUp 0.5s ease-out forwards 0.3s;
}

.testimonial-card:nth-child(3) {
  animation: fadeInUp 0.5s ease-out forwards 0.5s;
}

.testimonial-card:nth-child(4) {
  animation: fadeInUp 0.5s ease-out forwards 0.7s;
}

.testimonial-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.1);
}

.testimonial-card::before {
  content: "\201C";
  position: absolute;
  top: 20px;
  left: 20px;
  font-size: 4rem;
  color: #F6C674;
  color: var(--gold);
  font-family: serif;
  opacity: 0.2;
  line-height: 0;
  transition: all 0.3s ease;
}

.testimonial-card:hover::before {
  transform: scale(1.2);
  opacity: 0.3;
}

.testimonial-quote {
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 20px;
  position: relative;
  z-index: 1;
}

.testimonial-quote.truncated {
  max-height: 230px;
  overflow: hidden;
  position: relative;
}

.testimonial-quote.truncated::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 60px;
  background: linear-gradient(transparent, #fff);
}

.testimonial-toggle {
  background: none;
  border: none;
  color: #F6C674;
  color: var(--gold);
  font-weight: 600;
  cursor: pointer;
  padding: 5px 0;
  margin: 10px 0;
  transition: color 0.3s ease;
}

.testimonial-toggle:hover {
  color: #A5765C;
  color: var(--brown);
}

.testimonial-author {
  display: flex;
  align-items: center;
  border-top: 1px solid rgba(246, 198, 116, 0.3);
  padding-top: 20px;
}

.author-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background-color: #EE9F99;
  background-color: var(--peach);
  margin-right: 15px;
  transition: transform 0.3s ease;
}

.testimonial-card:hover .author-avatar {
  transform: scale(1.1);
}

.author-name {
  font-weight: 700;
  margin: 0;
  color: #A5765C;
  color: var(--brown);
}

.author-title {
  font-size: 0.9rem;
  color: #777;
  margin: 0;
}

/* FAQ Section */
.faq-section {
  padding: 100px 50px;
  background: linear-gradient(135deg, #F6F2EF 0%, #fff 100%);
  background: linear-gradient(135deg, var(--light-gray) 0%, #fff 100%);
  text-align: center;
}

.faq-container {
  max-width: 900px;
  margin: 0 auto;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.section-visible {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* FAQ interactive */
.faq-item {
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  margin-bottom: 0;
  overflow: hidden;
  border: 1px solid rgba(0, 0, 0, 0.03);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
  opacity: 0;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.section-visible .faq-item {
  animation: fadeInUp 0.5s ease-out forwards;
}

.faq-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
  border-color: rgba(246, 198, 116, 0.3);
}

.faq-item.faq-open {
  border-color: #F6C674;
  border-color: var(--gold);
  box-shadow: 0 12px 30px rgba(165, 118, 92, 0.1);
  transform: translateY(0);
}

.faq-item:nth-child(1) {
  animation-delay: 0.1s;
}

.faq-item:nth-child(2) {
  animation-delay: 0.2s;
}

.faq-item:nth-child(3) {
  animation-delay: 0.3s;
}

.faq-item:nth-child(4) {
  animation-delay: 0.4s;
}

.faq-item:nth-child(5) {
  animation-delay: 0.5s;
}

.faq-item:nth-child(6) {
  animation-delay: 0.6s;
}

.faq-item:nth-child(7) {
  animation-delay: 0.7s;
}

.faq-item:nth-child(8) {
  animation-delay: 0.8s;
}

.faq-item:nth-child(9) {
  animation-delay: 0.9s;
}

.faq-question {
  font-size: 1.15rem;
  color: #333333;
  color: var(--text-color);
  margin: 0;
  font-weight: 700;
  position: relative;
  cursor: pointer;
  padding: 30px 40px;
  padding-right: 80px;
  transition: all 0.3s ease;
  display: block;
  width: 100%;
  text-align: left;
  background: transparent;
  border: none;
}

.faq-question::after {
  content: "+";
  position: absolute;
  right: 40px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 1.5rem;
  color: #F6C674;
  color: var(--gold);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  font-weight: 500;
  line-height: 1;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(246, 198, 116, 0.1);
  border-radius: 50%;
}

.faq-item.faq-open .faq-question::after {
  content: "−";
  transform: translateY(-50%) rotate(0deg);
  background: #F6C674;
  background: var(--gold);
  color: #fff;
}

.faq-question:hover {
  color: #A5765C;
  color: var(--brown);
}

.faq-question:hover::after {
  background: rgba(246, 198, 116, 0.25);
  transform: translateY(-50%) scale(1.1);
}

.faq-item.faq-open .faq-question:hover {
  background-color: transparent;
}

.faq-item.faq-open .faq-question:hover::after {
  background: #F6C674;
  background: var(--gold);
  transform: translateY(-50%) scale(1.1);
}

.faq-answer {
  font-size: 1.05rem;
  line-height: 1.8;
  color: #333333;
  color: var(--text-color);
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.3s ease 0.1s;
  opacity: 0;
  padding: 0 40px;
}

.faq-answer,
.faq-answer * {
  color: #555 !important;
}

.faq-item.faq-open .faq-answer {
  max-height: 1000px;
  opacity: 1;
  padding: 0 40px 40px 40px;
  visibility: visible;
}

.faq-item.faq-open .faq-answer,
.faq-item.faq-open .faq-answer * {
  color: #333333 !important;
  color: var(--text-color) !important;
  opacity: 1 !important;
}

.faq-answer p {
  margin: 0 0 12px 0;
}

.faq-answer p:last-child {
  margin-bottom: 0;
}

/* Contact Section */
.contact-section {
  padding: 100px 50px;
  background: linear-gradient(135deg, #F6F2EF, #fff);
  background: linear-gradient(135deg, var(--light-gray), #fff);
  text-align: center;
}

.contact-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 50px;
  max-width: 1000px;
  margin: 0 auto;
}

.contact-info {
  flex: 1 1;
  min-width: 280px;
  text-align: left;
  opacity: 0;
  animation: fadeInLeft 0.8s ease-out forwards;
}

.contact-info p {
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 30px;
}

.contact-methods {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.contact-method {
  display: flex;
  align-items: center;
  gap: 15px;
  transition: transform 0.3s ease;
}

.contact-method:hover {
  transform: translateX(5px);
}

.contact-icon {
  font-size: 1.5rem;
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(246, 198, 116, 0.2);
  border-radius: 50%;
  transition: background-color 0.3s ease;
}

.contact-method:hover .contact-icon {
  background-color: rgba(246, 198, 116, 0.4);
}

.contact-cta {
  flex: 1 1;
  min-width: 280px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  opacity: 0;
  animation: fadeInRight 0.8s ease-out forwards 0.2s;
}

.contact-cta .cta-button {
  opacity: 1;
  animation: none;
}

.contact-cta-subtext {
  margin-top: 15px;
  font-size: 0.9rem;
  color: #777;
}

/* CTA Section */
.cta-section {
  padding: 70px 30px;
  background: linear-gradient(135deg, #A5765C, #8e6651);
  background: linear-gradient(135deg, var(--brown), #8e6651);
  color: #fff;
  text-align: center;
}

.cta-section h2 {
  font-size: 2.8rem;
  font-weight: 800;
  margin-bottom: 20px;
}

.cta-section p {
  font-size: 1.2rem;
  margin-bottom: 40px;
  max-width: 700px;
  margin-left: auto;
  margin-right: auto;
}

.cta-section .cta-button.primary {
  background: #F6C674;
  background: var(--gold);
  color: #A5765C;
  color: var(--brown);
  font-weight: 700;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15);
}

.cta-section .cta-button.primary:hover {
  background: #ffda9e;
  transform: translateY(-3px);
  box-shadow: 0 6px 25px rgba(0, 0, 0, 0.25);
}

/* ==========================================
   PROFESSIONS SECTION (Solutions par métier)
   ========================================== */
.professions-section {
  padding: 100px 0;
  background: linear-gradient(135deg, #e8f5e9 0%, #f1f8f4 50%, #ffffff 100%);
}

.professions-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

.professions-subtitle {
  text-align: left;
  font-size: 1.15rem;
  color: #717171;
  margin: 16px 0 24px;
  max-width: 500px;
}

.professions-info-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(135deg, #1B4D3E 0%, #2A7359 100%);
  color: white;
  padding: 12px 24px;
  border-radius: 50px;
  font-size: 0.95rem;
  font-weight: 600;
  margin: 0 auto 50px;
  box-shadow: 0 4px 12px rgba(27, 77, 62, 0.2);
  transition: all 0.3s ease;
}

.professions-info-badge:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(27, 77, 62, 0.3);
}

.info-badge-icon {
  font-size: 1.2rem;
}

.info-badge-text {
  white-space: nowrap;
}

.professions-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-gap: 24px;
  gap: 24px;
}

.profession-card {
  background: white;
  padding: 32px 24px;
  border-radius: 16px;
  text-align: center;
  border: 2px solid #f0f0f0;
  transition: all 0.3s ease;
  text-decoration: none;
  color: inherit;
  display: block;
  position: relative;
}

.profession-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
  border-color: #A5765C;
  border-color: var(--brown);
}

.profession-card.coming-soon {
  opacity: 0.7;
  cursor: default;
}

.profession-card.coming-soon:hover {
  transform: none;
  box-shadow: none;
  border-color: #f0f0f0;
}

.profession-icon {
  font-size: 3rem;
  margin-bottom: 16px;
}

.profession-card h3 {
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0 0 10px;
  color: #1a1a1a;
}

.profession-card p {
  font-size: 0.9rem;
  color: #717171;
  margin: 0 0 16px;
  line-height: 1.5;
}

.profession-link {
  color: #A5765C;
  color: var(--brown);
  font-weight: 600;
  font-size: 0.95rem;
}

.profession-badge {
  display: inline-block;
  background: #f0f0f0;
  color: #717171;
  padding: 6px 14px;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
}

@media (max-width: 1100px) {
  .professions-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .professions-section {
    padding: 70px 0;
  }

  .professions-info-badge {
    padding: 10px 18px;
    font-size: 0.85rem;
    flex-wrap: wrap;
    max-width: 90%;
  }

  .info-badge-text {
    white-space: normal;
    text-align: center;
  }

  .professions-grid {
    grid-template-columns: 1fr;
  }

  .profession-card {
    padding: 24px 20px;
  }
}

/* Responsive Design */
@media (max-width: 768px) {

  /* Ajustement du header pour qu'il reste fixé sous le bandeau */
  body.has-promo-banner .rintintin-header {
    position: fixed;
    top: 48px !important;
    top: var(--promo-banner-height) !important;
    left: 0;
    right: 0;
    z-index: 1000;
    background-color: white !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  }

  .features-section,
  .testimonials-section,
  .pricing-section,
  .faq-section,
  .contact-section,
  .cta-section {
    padding: 70px 30px;
  }

  /* FAQ responsive */
  .faq-container {
    max-width: 100%;
  }

  .faq-question {
    font-size: 1.1rem;
    padding: 20px 24px;
    padding-right: 56px;
  }

  .faq-question::after {
    right: 24px;
    width: 28px;
    height: 28px;
    font-size: 1.6rem;
  }

  .faq-answer {
    font-size: 1rem;
    padding: 0 24px;
  }

  .faq-item.faq-open .faq-answer {
    padding: 0 24px 20px 24px;
  }

  /* Cache UNIQUEMENT le carrousel desktop sur mobile */
  .landing-carousel:not(.mobile-simple-carousel) {
    display: none !important;
  }

  .landing-hero {
    flex-direction: column;
    margin-top: 0 !important;
    padding: 30px 30px 40px !important;
    min-height: auto;
  }

  .landing-content {
    margin-bottom: 0;
    text-align: center;
    align-items: center;
    padding: 0;
  }

  .landing-title {
    font-size: 2.8rem;
  }

  .landing-subtitle {
    font-size: 1.2rem;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 30px;
  }

  .landing-content .cta-button.primary {
    padding: 18px 36px;
    font-size: 1.2rem;
    width: 100%;
    max-width: 300px;
  }

  /* S'assurer que les boutons dans hero-cta-buttons ont le même style */
  .hero-cta-buttons .cta-button {
    width: 100%;
    max-width: 300px;
    padding: 18px 36px;
    font-size: 1.2rem;
  }

  .features-grid {
    grid-template-columns: 1fr;
  }

  .section-title {
    font-size: 2rem;
  }

  .pricing-card-featured {
    transform: translateY(0) scale(1);
  }

  .pricing-card-featured:hover {
    transform: translateY(-10px) scale(1);
  }

  /* Ajustements pour le carrousel mobile avec des marges plus importantes */
  .mobile-simple-carousel {
    width: calc(100% - 30px);
    margin: 30px auto 40px;
    position: relative;
    height: auto;
    display: block;
  }

  .mobile-image-container {
    width: 100%;
    margin-left: 0;
    margin-right: 0;
    position: relative;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    background-color: white;
    aspect-ratio: 16/9;
  }

  .mobile-carousel .carousel-item.active {
    width: 100%;
  }

  .carousel-dots {
    bottom: -15px;
  }
}

@media (max-width: 480px) {
  .landing-hero {
    margin-top: 0 !important;
    padding: 20px 20px 30px !important;
  }

  .landing-content {
    padding: 0 20px;
    margin-bottom: 25px;
  }

  .mobile-simple-carousel {
    width: calc(100% - 20px);
    margin: 20px auto 30px;
  }

  .mobile-image-container {
    border-radius: 10px;
  }

  .mobile-nav-buttons {
    left: 5px;
    right: 5px;
  }

  .mobile-nav-button {
    width: 40px;
    height: 40px;
  }

  .mobile-dots {
    margin: 10px auto 25px;
  }

  .mobile-image-number {
    bottom: 10px;
    right: 10px;
    padding: 4px 10px;
    font-size: 0.8rem;
  }

  .landing-content .cta-button.primary {
    padding: 16px 32px;
    font-size: 1.1rem;
  }

  /* S'assurer que les boutons dans hero-cta-buttons ont le même style sur mobile */
  .hero-cta-buttons .cta-button {
    padding: 16px 32px;
    font-size: 1.1rem;
  }
}

/* Préférence pour la réduction de mouvement */
@media (prefers-reduced-motion: reduce) {
  * {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* Section Fondateur avec Vidéo */
.founder-section {
  padding: 100px 50px;
  background: linear-gradient(135deg, #fff, #F6F2EF);
  background: linear-gradient(135deg, #fff, var(--light-gray));
  position: relative;
  overflow: hidden;
  transition: all 0.5s ease;
}

.founder-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.07%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
  background-size: 100px 100px;
  opacity: 0.5;
  z-index: 0;
}

.founder-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 50px;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.founder-content {
  flex: 1 1;
  min-width: 300px;
  opacity: 0;
  transform: translateY(30px);
  animation: fadeInUp 0.8s ease-out forwards;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.founder-intro {
  font-size: 1.2rem;
  line-height: 1.6;
  margin-bottom: 30px;
  color: #333333;
  color: var(--text-color);
}

.founder-details {
  margin-bottom: 30px;
}

.founder-name {
  font-size: 1.6rem;
  font-weight: 700;
  color: #A5765C;
  color: var(--brown);
  margin-bottom: 5px;
}

.founder-title {
  font-size: 1.1rem;
  color: #777;
}

.founder-video-container {
  flex: 1 1;
  min-width: 300px;
  max-width: 600px;
  position: relative;
  border-radius: 16px;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  opacity: 0;
  transform: translateX(30px);
  animation: fadeInRight 0.8s ease-out forwards 0.3s;
  aspect-ratio: 16 / 9;
  transition: all 0.6s cubic-bezier(0.23, 1, 0.32, 1);
  z-index: 2;
}

/* Overlay cinématique */
.cinema-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  z-index: 9;
  transition: opacity 0.5s ease;
  animation: fadeIn 0.5s ease-out forwards;
}

/* Conteneur vidéo en mode cinéma */
.cinema-video-container {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  width: 80vw;
  max-width: 1000px;
  aspect-ratio: 16 / 9;
  z-index: 10;
  border-radius: 16px;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: 0 0 60px 20px rgba(246, 198, 116, 0.5),
    0 0 100px 40px rgba(238, 159, 153, 0.3);
  animation: scaleUp 0.5s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

@keyframes scaleUp {
  from {
    transform: translate(-50%, -50%) scale(0.7);
    opacity: 0;
  }

  to {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
}

.cinema-iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: background 0.3s ease;
  z-index: 2;
}

.video-overlay:hover {
  background: rgba(0, 0, 0, 0.2);
}

.overlay-text {
  color: white;
  font-weight: 600;
  margin-top: 15px;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8);
  font-size: 1.1rem;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s ease;
}

.video-overlay:hover .overlay-text {
  opacity: 1;
  transform: translateY(0);
}

.play-button svg {
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4));
  transition: transform 0.3s ease, filter 0.3s ease;
}

.video-overlay:hover .play-button svg {
  transform: scale(1.1);
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.6));
}

@media (max-width: 992px) {
  .founder-container {
    flex-direction: column;
    align-items: center;
  }

  .founder-content {
    text-align: center;
    max-width: 600px;
  }

  .founder-video-container.cinema-mode {
    transform: scale(1.05) translateY(0);
  }
}

@media (max-width: 768px) {
  .founder-section {
    padding: 70px 30px;
  }

  .founder-video-container.cinema-mode {
    transform: scale(1) translateY(0);
  }
}

@media (max-width: 480px) {
  .founder-section {
    padding: 50px 20px;
  }

  .founder-intro {
    font-size: 1.1rem;
  }

  .founder-name {
    font-size: 1.4rem;
  }
}

/* Styles pour la carte d'accompagnement à venir */
.coming-soon-label {
  font-size: 1.2rem;
  font-weight: 700;
  color: #EE9F99;
  color: var(--peach);
  margin-bottom: 10px;
  display: inline-block;
  border: 2px dashed #EE9F99;
  border: 2px dashed var(--peach);
  padding: 5px 15px;
  border-radius: 20px;
  background-color: rgba(238, 159, 153, 0.1);
  transform: rotate(-2deg);
}

.pricing-description {
  margin-bottom: 20px;
  color: #333333;
  color: var(--text-color);
  font-style: italic;
}

.pricing-description p {
  font-size: 1rem;
  line-height: 1.5;
}

.pricing-coming-soon-info {
  margin-top: 15px;
  border-top: 1px dashed rgba(165, 118, 92, 0.3);
  padding-top: 15px;
}

.pricing-coming-soon-info p {
  font-size: 0.9rem;
  color: #A5765C;
  color: var(--brown);
  font-weight: 600;
}

/* Style pour le bouton désactivé */
.cta-button.secondary[disabled] {
  background-color: transparent;
  border: 2px dashed #A5765C;
  border: 2px dashed var(--brown);
  color: #A5765C;
  color: var(--brown);
  opacity: 0.7;
  cursor: not-allowed;
  position: relative;
  overflow: hidden;
}

.cta-button.secondary[disabled]:hover {
  transform: none;
  opacity: 0.8;
}

/* Style pour l'iframe YouTube standard */
.youtube-iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

@media (max-width: 992px) {
  .founder-container {
    flex-direction: column;
    align-items: center;
  }

  .founder-content {
    text-align: center;
    max-width: 600px;
  }

  .cinema-video-container {
    width: 90vw;
  }
}

@media (max-width: 768px) {
  .founder-section {
    padding: 70px 30px;
  }

  .cinema-video-container {
    width: 95vw;
  }
}

@media (max-width: 480px) {
  .founder-section {
    padding: 50px 20px;
  }

  .founder-intro {
    font-size: 1.1rem;
  }

  .founder-name {
    font-size: 1.4rem;
  }

  .cinema-video-container {
    width: 100vw;
    height: auto;
    border-radius: 0;
  }

  .cinema-close {
    top: 10px;
    right: 10px;
  }
}

/* Bouton pour quitter le mode cinéma */
.cinema-exit-button {
  position: fixed;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background-color: #F6C674;
  background-color: var(--gold);
  color: #A5765C;
  color: var(--brown);
  border: none;
  padding: 16px 32px;
  border-radius: 50px;
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  transition: all 0.3s ease;
  z-index: 1000;
  animation: bounce 1s ease infinite;
}

.cinema-exit-button:hover,
.cinema-exit-button:focus {
  background-color: #ffda9e;
  transform: translateX(-50%) scale(1.05);
  box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4);
}

.cinema-exit-button svg {
  flex-shrink: 0;
}

@keyframes bounce {

  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }

  50% {
    transform: translateX(-50%) translateY(-5px);
  }
}

@media (max-width: 768px) {
  .cinema-exit-button {
    padding: 14px 28px;
    font-size: 1.1rem;
    width: 80%;
  }
}

@media (max-width: 480px) {
  .cinema-exit-button {
    bottom: 30px;
    padding: 12px 24px;
    font-size: 1rem;
    width: 90%;
  }
}

/* Styles pour le mode cinéma sur le body et le header */
body.cinema-mode-active {
  overflow: hidden;
}

body.cinema-mode-active .rintintin-header {
  background: rgba(0, 0, 0, 0.7) !important;
  border-bottom: 1px solid rgba(246, 198, 116, 0.2) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
  -webkit-backdrop-filter: blur(10px) !important;
          backdrop-filter: blur(10px) !important;
}

body.cinema-mode-active .header-logo,
body.cinema-mode-active .header-nav-link,
body.cinema-mode-active .header-secondary-button {
  color: white !important;
}

body.cinema-mode-active .header-nav-link::after {
  background: linear-gradient(to right, #F6C674, #EE9F99) !important;
  background: linear-gradient(to right, var(--gold), var(--peach)) !important;
}

/* Carrousel d'images Hero */
.landing-carousel {
  flex: 1 1;
  position: relative;
  height: 460px;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: visible;
  z-index: 2;
  margin-left: 30px;
  transform-style: flat;
}

.carousel-item {
  position: absolute;
  width: 60%;
  height: 75%;
  transition: all 0.7s cubic-bezier(0.4, 0, 0.2, 1);
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  opacity: 0;
  pointer-events: none;
  z-index: 0;
  transform: translateX(100px) scale(0.5);
  background-color: white;
}

.carousel-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 20px;
  transition: transform 0.5s ease;
  background-color: white;
}

/* Élément actif du carrousel */
.carousel-item.active {
  position: absolute;
  width: 85%;
  height: 95%;
  opacity: 1;
  transform: translateX(0) scale(1);
  z-index: 100;
  filter: none;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.3);
  pointer-events: auto;
  background-color: white;
}

/* Élément précédent du carrousel */
.carousel-item.prev {
  opacity: 0.5;
  transform: translateX(-80%) scale(0.65);
  z-index: 50;
  filter: brightness(0.85);
  box-shadow: -10px 10px 30px rgba(0, 0, 0, 0.2);
  pointer-events: auto;
  background-color: white;
}

/* Élément suivant du carrousel */
.carousel-item.next {
  opacity: 0.5;
  transform: translateX(80%) scale(0.65);
  z-index: 50;
  filter: brightness(0.85);
  box-shadow: 10px 10px 30px rgba(0, 0, 0, 0.2);
  pointer-events: auto;
  background-color: white;
}

.carousel-dots {
  position: absolute;
  bottom: -20px;
  left: 0;
  right: 0;
  display: flex;
  justify-content: center;
  gap: 12px;
  z-index: 15;
}

.carousel-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.6);
  border: 2px solid #F6C674;
  border: 2px solid var(--gold);
  cursor: pointer;
  transition: all 0.3s ease;
  padding: 0;
  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.2);
}

.carousel-dot.active {
  background: #F6C674;
  background: var(--gold);
  transform: scale(1.2);
  animation: pulseDot 2s infinite;
}

.carousel-dot:hover {
  transform: scale(1.2);
  background: #F6C674;
  background: var(--gold);
}

/* Simplification pour les tablettes et mobiles */
@media (max-width: 768px) {
  .landing-hero {
    flex-direction: column;
    padding: 40px 0 0 0 !important;
    overflow: visible;
  }

  .landing-carousel {
    margin-top: 30px;
    margin-left: 0;
    height: 380px;
    width: 100%;
  }

  .landing-title {
    font-size: 2.5rem;
  }

  .landing-subtitle {
    font-size: 1.1rem;
    margin-left: auto;
    margin-right: auto;
  }

  .carousel-dots {
    bottom: -15px;
  }
}

@media (max-width: 480px) {
  .landing-hero {
    padding: 100px 20px 80px;
  }

  .landing-carousel {
    height: 320px;
  }

  .landing-title {
    font-size: 2.2rem;
  }

  .landing-subtitle {
    font-size: 1rem;
  }

  .mobile-carousel .carousel-item.active {
    width: 100%;
  }

  .carousel-dots {
    bottom: -15px;
  }

  .carousel-dot {
    width: 10px;
    height: 10px;
  }
}

.landing-carousel.loading {
  opacity: 0.3;
  transition: opacity 0.5s ease;
}

.landing-carousel.loading .carousel-item {
  filter: blur(5px);
}

.landing-carousel:not(.loading) {
  opacity: 1;
  transition: opacity 0.5s ease;
}

.carousel-item.prev:hover,
.carousel-item.next:hover {
  opacity: 0.85;
  transform: translateX(-75%) scale(0.7) rotateY(-5deg);
  cursor: pointer;
}

.carousel-item.next:hover {
  transform: translateX(75%) scale(0.7) rotateY(5deg);
}

@media (max-width: 768px) {

  .carousel-item.prev:hover,
  .carousel-item.next:hover {
    opacity: 0.6;
  }

  .carousel-item.prev:hover {
    transform: translateX(-85%) scale(0.75);
  }

  .carousel-item.next:hover {
    transform: translateX(-15%) scale(0.75);
  }

  @media (min-width: 620px) and (max-width: 768px) {
    .carousel-item.prev:hover {
      transform: translateX(-95%) scale(0.75);
    }

    .carousel-item.next:hover {
      transform: translateX(-5%) scale(0.75);
    }
  }
}

.slide-hint {
  position: absolute;
  bottom: -60px;
  left: 50%;
  transform: translateX(-50%);
  color: #A5765C;
  color: var(--brown);
  opacity: 0.7;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  gap: 8px;
  animation: pulse 2s infinite;
  pointer-events: none;
  z-index: 20;
}

.slide-hint-icon {
  width: 24px;
  height: 24px;
  position: relative;
}

.slide-hint-icon::before,
.slide-hint-icon::after {
  content: '';
  position: absolute;
  top: 50%;
  width: 8px;
  height: 2px;
  background-color: #A5765C;
  background-color: var(--brown);
  transition: transform 0.3s ease;
}

.slide-hint-icon::before {
  left: 4px;
  transform: translateY(-50%) rotate(-45deg);
}

.slide-hint-icon::after {
  left: 4px;
  transform: translateY(-50%) rotate(45deg) translateY(5px);
}

.slide-hint-icon::before {
  animation: moveLeft 1.5s ease-in-out infinite;
}

.slide-hint-icon::after {
  animation: moveRight 1.5s ease-in-out infinite;
}

@keyframes moveLeft {
  0% {
    transform: translateY(-50%) rotate(-45deg) translateX(0);
  }

  50% {
    transform: translateY(-50%) rotate(-45deg) translateX(-4px);
  }

  100% {
    transform: translateY(-50%) rotate(-45deg) translateX(0);
  }
}

@keyframes moveRight {
  0% {
    transform: translateY(-50%) rotate(45deg) translateY(5px) translateX(0);
  }

  50% {
    transform: translateY(-50%) rotate(45deg) translateY(5px) translateX(4px);
  }

  100% {
    transform: translateY(-50%) rotate(45deg) translateY(5px) translateX(0);
  }
}

@media (max-width: 768px) {
  .slide-hint {
    bottom: -50px;
    font-size: 0.8rem;
  }
}

.carousel-item.active .carousel-image {
  transform: scale(1);
}

.carousel-item:hover .carousel-image {
  transform: scale(1.05);
}

/* Carrousel Mobile */
.mobile-carousel {
  perspective: 800px !important;
  overflow: hidden;
}

.mobile-carousel .carousel-item {
  position: absolute;
  width: 80%;
  height: 100%;
  left: 50%;
  top: 0;
  transform: translateX(-50%) scale(0.8) !important;
  opacity: 0 !important;
  transition: transform 0.5s ease-out, opacity 0.5s ease-out !important;
  border-radius: 16px;
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.2) !important;
  filter: blur(2px) !important;
  background-color: white !important;
}

.mobile-carousel .carousel-item.active {
  opacity: 1 !important;
  transform: translateX(-50%) scale(1) !important;
  z-index: 100 !important;
  width: 100% !important;
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.25) !important;
  filter: blur(0) !important;
  background-color: white !important;
}

.mobile-carousel .carousel-item.prev,
.mobile-carousel .carousel-item.next {
  opacity: 0.65 !important;
  z-index: 50 !important;
  filter: blur(0.5px) !important;
}

.mobile-carousel .carousel-item.prev {
  transform: translateX(-95%) scale(0.75) !important;
}

.mobile-carousel .carousel-item.next {
  transform: translateX(-5%) scale(0.75) !important;
}

@media (max-width: 768px) {
  .landing-carousel:not(.mobile-simple-carousel) {
    display: none !important;
  }

  .mobile-simple-carousel {
    width: 100%;
    margin: 30px 0 40px;
    position: relative;
    height: auto;
    display: block;
    perspective: none;
    transform-style: flat;
  }

  .mobile-image-container {
    width: calc(100% + 50px);
    margin-left: -25px;
    margin-right: -25px;
    position: relative;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
    margin-bottom: 15px;
    background-color: white;
    aspect-ratio: 16/9;
  }

  .mobile-image {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: opacity 0.3s ease;
  }

  .mobile-nav-buttons {
    display: flex;
    justify-content: space-between;
    margin-top: 15px;
    padding: 0 10px;
  }

  .mobile-nav-button {
    background-color: #A5765C;
    background-color: var(--brown);
    color: white;
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 3px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.2s ease, background-color 0.2s ease;
  }

  .mobile-nav-button:active {
    transform: scale(0.95);
    background-color: #8e6651;
  }

  .mobile-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 15px;
  }

  .mobile-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #ddd;
    transition: background-color 0.3s ease, transform 0.3s ease;
  }

  .mobile-dot.active {
    background-color: #A5765C;
    background-color: var(--brown);
    transform: scale(1.3);
  }

  .mobile-carousel .carousel-item.zoomed,
  .zoom-close-button,
  .zoom-hint {
    display: none !important;
  }
}

@media (max-width: 480px) {
  .mobile-simple-carousel {
    margin: 20px 0 30px;
  }

  .mobile-image-container {
    border-radius: 10px;
  }
}

/* Styles pour le zoom mobile */
.mobile-zoom-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  z-index: 1000;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: zoom-out;
}

.mobile-zoomed-image {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.mobile-zoom-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: none;
  border: none;
  color: white;
  font-size: 24px;
  cursor: pointer;
  padding: 10px;
  z-index: 1001;
}

/* Bandeau Promotionnel */
:root {
  --promo-banner-height: 48px;
}

.promo-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 48px;
  height: var(--promo-banner-height);
  z-index: 10001;
  padding: 12px 20px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}





.promo-banner:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.promo-banner-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: nowrap;
}

.promo-emoji {
  font-size: 1.3rem;
  animation: bounce 1s ease infinite;
}

@keyframes bounce {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-5px);
  }
}

.promo-text {
  color: white;
  font-size: 0.95rem;
  font-weight: 500;
}

.promo-text strong {
  font-weight: 700;
}

.promo-cta {
  background: rgba(255, 255, 255, 0.2);
  color: white;
  padding: 6px 16px;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 600;
  transition: all 0.3s ease;
}

.promo-banner:hover .promo-cta {
  background: rgba(255, 255, 255, 0.3);
  transform: translateX(3px);
}

/* Ajustement global du header quand le bandeau promo est présent */
body.has-promo-banner .rintintin-header {
  top: 48px !important;
  top: var(--promo-banner-height) !important;
}

/* Ajustement du hero pour le bandeau + header */
.landing-container {
  padding-top: 0;
}

.landing-container .landing-hero {
  padding-top: calc(48px + 80px + 50px);
  padding-top: calc(var(--promo-banner-height) + var(--header-height) + 50px);
}

/* Animation de neige */
.snowflakes {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  pointer-events: none;
  z-index: 1;
}

.snowflake {
  position: absolute;
  top: -10%;
  color: rgba(255, 255, 255, 0.8);
  font-size: 1.5rem;
  animation: snowfall linear infinite;
  text-shadow: 0 0 10px rgba(255, 255, 255, 0.5);
}

.snowflake:nth-child(1) {
  left: 5%;
  animation-duration: 10s;
  animation-delay: 0s;
  font-size: 1.2rem;
}

.snowflake:nth-child(2) {
  left: 15%;
  animation-duration: 12s;
  animation-delay: 1s;
  font-size: 1.8rem;
}

.snowflake:nth-child(3) {
  left: 25%;
  animation-duration: 8s;
  animation-delay: 2s;
  font-size: 1rem;
}

.snowflake:nth-child(4) {
  left: 35%;
  animation-duration: 14s;
  animation-delay: 0.5s;
  font-size: 1.5rem;
}

.snowflake:nth-child(5) {
  left: 45%;
  animation-duration: 9s;
  animation-delay: 3s;
  font-size: 1.3rem;
}

.snowflake:nth-child(6) {
  left: 55%;
  animation-duration: 11s;
  animation-delay: 1.5s;
  font-size: 1.6rem;
}

.snowflake:nth-child(7) {
  left: 65%;
  animation-duration: 13s;
  animation-delay: 2.5s;
  font-size: 1.1rem;
}

.snowflake:nth-child(8) {
  left: 75%;
  animation-duration: 10s;
  animation-delay: 0.8s;
  font-size: 1.7rem;
}

.snowflake:nth-child(9) {
  left: 85%;
  animation-duration: 15s;
  animation-delay: 3.5s;
  font-size: 1.4rem;
}

.snowflake:nth-child(10) {
  left: 92%;
  animation-duration: 7s;
  animation-delay: 1.2s;
  font-size: 1.2rem;
}

.snowflake:nth-child(11) {
  left: 10%;
  animation-duration: 16s;
  animation-delay: 4s;
  font-size: 0.9rem;
}

.snowflake:nth-child(12) {
  left: 50%;
  animation-duration: 11s;
  animation-delay: 2s;
  font-size: 1.9rem;
}

@keyframes snowfall {
  0% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
  }

  100% {
    transform: translateY(110vh) rotate(720deg);
    opacity: 0.3;
  }
}

/* Section Offre Prêt-à-Servir */
.ready-to-serve-section {
  padding: 100px 50px;
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  position: relative;
  overflow: hidden;
}

.ready-to-serve-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image:
    radial-gradient(circle at 20% 80%, rgba(246, 198, 116, 0.1) 0%, transparent 50%),
    radial-gradient(circle at 80% 20%, rgba(238, 159, 153, 0.1) 0%, transparent 50%);
  pointer-events: none;
}

.ready-to-serve-container {
  max-width: 700px;
  margin: 0 auto;
  text-align: center;
  position: relative;
  z-index: 1;
  background: rgba(255, 255, 255, 0.03);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  border-radius: 24px;
  padding: 60px 50px;
  border: 1px solid rgba(246, 198, 116, 0.2);
  box-shadow:
    0 25px 50px rgba(0, 0, 0, 0.3),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.ready-to-serve-badge {
  display: inline-block;
  background: linear-gradient(135deg, #F6C674, #FFA351);
  background: linear-gradient(135deg, var(--gold), var(--orange));
  color: #1a1a2e;
  padding: 8px 20px;
  border-radius: 30px;
  font-size: 0.9rem;
  font-weight: 700;
  margin-bottom: 20px;
  text-transform: uppercase;
  letter-spacing: 1px;
  animation: pulse 2s infinite;
}



.ready-to-serve-title {
  font-size: 2.8rem;
  font-weight: 800;
  color: #fff;
  margin-bottom: 20px;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.3);
}

.ready-to-serve-title::after {
  content: none;
}

.ready-to-serve-price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 10px;
  margin-bottom: 30px;
  flex-wrap: wrap;
}

.ready-to-serve-price .price-strikethrough {
  font-size: 2.5rem;
  font-weight: 700;
  color: rgba(255, 255, 255, 0.4);
  text-decoration: line-through;
  text-decoration-thickness: 3px;
  -webkit-text-decoration-color: rgba(255, 255, 255, 0.5);
          text-decoration-color: rgba(255, 255, 255, 0.5);
  position: relative;
}

.ready-to-serve-price .price-amount {
  font-size: 4rem;
  font-weight: 900;
  background: linear-gradient(135deg, #F6C674, #EE9F99);
  background: linear-gradient(135deg, var(--gold), var(--peach));
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-shadow: none;
}

.ready-to-serve-price .price-once {
  font-size: 1.2rem;
  color: rgba(255, 255, 255, 0.6);
  font-weight: 500;
}

.ready-to-serve-intro {
  font-size: 1.3rem;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 35px;
  line-height: 1.6;
}

.ready-to-serve-features {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
  grid-gap: 15px;
  gap: 15px;
  margin-bottom: 35px;
  text-align: left;
}

.ready-to-serve-features .feature-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 12px;
  transition: all 0.3s ease;
}

.ready-to-serve-features .feature-item:hover {
  background: rgba(246, 198, 116, 0.1);
  transform: translateX(5px);
}

.ready-to-serve-features .feature-check {
  color: #F6C674;
  color: var(--gold);
  font-size: 1.2rem;
  font-weight: bold;
  flex-shrink: 0;
}

.ready-to-serve-features .feature-item span:last-child {
  color: rgba(255, 255, 255, 0.9);
  font-size: 1rem;
}

.ready-to-serve-bonus {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.1));
  padding: 25px;
  border-radius: 16px;
  margin-bottom: 25px;
  border: 1px solid rgba(246, 198, 116, 0.3);
  text-align: left;
}

.ready-to-serve-bonus .bonus-icon {
  font-size: 2.5rem;
  flex-shrink: 0;
}

.ready-to-serve-bonus .bonus-text strong {
  display: block;
  color: #F6C674;
  color: var(--gold);
  font-size: 1.1rem;
  margin-bottom: 8px;
}

.ready-to-serve-bonus .bonus-text p {
  color: rgba(255, 255, 255, 0.85);
  font-size: 0.95rem;
  line-height: 1.5;
  margin: 0;
}

.ready-to-serve-guarantee {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 20px;
  background: rgba(76, 175, 80, 0.15);
  border-radius: 12px;
  margin-bottom: 35px;
  border: 1px dashed rgba(76, 175, 80, 0.5);
}

.ready-to-serve-guarantee .guarantee-icon {
  font-size: 1.5rem;
}

.ready-to-serve-guarantee .guarantee-text {
  color: #81c784;
  font-size: 1rem;
}

.ready-to-serve-guarantee .guarantee-text strong {
  color: #a5d6a7;
}

.ready-to-serve-cta {
  display: inline-block;
  background: linear-gradient(135deg, #F6C674, #FFA351);
  background: linear-gradient(135deg, var(--gold), var(--orange));
  color: #1a1a2e;
  padding: 20px 50px;
  border-radius: 50px;
  font-size: 1.3rem;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  box-shadow:
    0 10px 30px rgba(246, 198, 116, 0.3),
    0 0 0 0 rgba(246, 198, 116, 0.5);
  margin-bottom: 20px;
}

.ready-to-serve-cta:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow:
    0 15px 40px rgba(246, 198, 116, 0.4),
    0 0 0 4px rgba(246, 198, 116, 0.2);
}

.ready-to-serve-cta:active {
  transform: translateY(-2px) scale(1);
}

/* Configuration Offer Styles */







/* Configuration Offer Styles - DISTINCT THEME */
.promo-banner.config-banner {
  background: linear-gradient(135deg, #A5765C, #F6C674);
  background: linear-gradient(135deg, var(--brown), var(--gold));
  border-bottom: 3px solid #fff;
  animation: gradientFlow 10s ease infinite;
}

@keyframes shimmer {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}

.ready-to-serve-badge.config-badge {
  background: linear-gradient(135deg, #F6C674, #FFA351);
  color: #1a1a2e;
  border: 2px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 4px 15px rgba(246, 198, 116, 0.4);
}

.ready-to-serve-section.config-theme {
  /* Dark Premium Theme */
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 100%);
  position: relative;
  overflow: hidden;
}

.ready-to-serve-section.config-theme::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(circle at 10% 20%, rgba(79, 70, 229, 0.15) 0%, transparent 40%),
    radial-gradient(circle at 90% 80%, rgba(246, 198, 116, 0.1) 0%, transparent 40%);
}

.ready-to-serve-section.config-theme .ready-to-serve-container {
  background: rgba(255, 255, 255, 0.03);
  -webkit-backdrop-filter: blur(12px);
          backdrop-filter: blur(12px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow:
    0 25px 60px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.ready-to-serve-cta.config-cta {
  background: linear-gradient(135deg, #F6C674, #FFA351);
  color: #1a1a2e;
  box-shadow: 0 8px 25px rgba(246, 198, 116, 0.3);
  animation: pulse 2s infinite;
  border: 2px solid rgba(255, 255, 255, 0.1);
}

.ready-to-serve-cta.config-cta:hover {
  transform: translateY(-5px) scale(1.02);
  box-shadow: 0 15px 35px rgba(246, 198, 116, 0.4);
  background: linear-gradient(135deg, #ffd58a, #ffb36b);
}

/* Override text colors for dark theme */
.ready-to-serve-section.config-theme .ready-to-serve-title {
  color: #ffffff;
  text-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}

.ready-to-serve-section.config-theme .ready-to-serve-intro {
  color: rgba(255, 255, 255, 0.9);
}

.ready-to-serve-section.config-theme .ready-to-serve-price .price-amount {
  background: linear-gradient(135deg, #F6C674, #ffffff);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.ready-to-serve-section.config-theme .ready-to-serve-price .price-once {
  color: rgba(255, 255, 255, 0.6);
}

.ready-to-serve-section.config-theme .feature-item {
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(255, 255, 255, 0.05);
}

.ready-to-serve-section.config-theme .feature-item:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(246, 198, 116, 0.3);
}

.ready-to-serve-section.config-theme .feature-item span:last-child {
  color: rgba(255, 255, 255, 0.9);
}

.ready-to-serve-section.config-theme .feature-check {
  color: #F6C674;
}

.ready-to-serve-section.config-theme .ready-to-serve-bonus {
  background: linear-gradient(135deg, rgba(79, 70, 229, 0.15), rgba(246, 198, 116, 0.05));
  border-color: rgba(79, 70, 229, 0.3);
}

.ready-to-serve-section.config-theme .ready-to-serve-bonus .bonus-text strong {
  color: #ffd58a;
}

.ready-to-serve-section.config-theme .ready-to-serve-bonus .bonus-text p {
  color: rgba(255, 255, 255, 0.85);
}

.ready-to-serve-subtext {
  color: rgba(255, 255, 255, 0.5);
  font-size: 0.9rem;
  font-style: italic;
  margin-top: 20px;
}




















/* Responsive pour la section Prêt-à-Servir */
@media (max-width: 768px) {
  .ready-to-serve-section {
    padding: 70px 20px;
  }

  .ready-to-serve-container {
    padding: 40px 25px;
  }

  .ready-to-serve-title {
    font-size: 2.2rem;
  }

  .ready-to-serve-price .price-strikethrough {
    font-size: 2rem;
  }

  .ready-to-serve-price .price-amount {
    font-size: 3rem;
  }

  .ready-to-serve-intro {
    font-size: 1.1rem;
  }

  .ready-to-serve-features {
    grid-template-columns: 1fr;
  }

  .ready-to-serve-bonus {
    flex-direction: column;
    text-align: center;
  }

  .ready-to-serve-cta {
    padding: 18px 35px;
    font-size: 1.1rem;
    width: 100%;
    max-width: 350px;
  }

  .ready-to-serve-guarantee {
    flex-direction: column;
    text-align: center;
    gap: 8px;
  }
}

@media (max-width: 480px) {
  .ready-to-serve-container {
    padding: 30px 20px;
  }

  .ready-to-serve-title {
    font-size: 1.8rem;
  }

  .ready-to-serve-price .price-strikethrough {
    font-size: 1.5rem;
  }

  .ready-to-serve-price .price-amount {
    font-size: 2.5rem;
  }
}

/* Responsive pour le bandeau promo */
@media (max-width: 768px) {
  :root {
    --promo-banner-height: 44px;
  }

  .promo-banner {
    padding: 8px 15px;
  }

  .promo-banner-content {
    gap: 8px;
  }

  .promo-emoji {
    font-size: 1.1rem;
  }

  .promo-text {
    font-size: 0.8rem;
  }

  .promo-cta {
    padding: 4px 10px;
    font-size: 0.75rem;
  }

  .landing-container .landing-hero {
    padding-top: calc(48px + 80px + 30px) !important;
    padding-top: calc(var(--promo-banner-height) + var(--header-height) + 30px) !important;
  }

  .snowflake {
    font-size: 1rem;
  }

  .snowflake:nth-child(2),
  .snowflake:nth-child(6),
  .snowflake:nth-child(8),
  .snowflake:nth-child(12) {
    font-size: 1.3rem;
  }
}

@media (max-width: 480px) {
  :root {
    --promo-banner-height: 40px;
  }

  .promo-banner {
    padding: 6px 10px;
  }

  .promo-emoji:last-of-type {
    display: none;
  }

  .promo-text {
    font-size: 0.75rem;
  }

  .promo-cta {
    display: none;
  }

  .landing-container .landing-hero {
    padding-top: calc(48px + 80px + 20px) !important;
    padding-top: calc(var(--promo-banner-height) + var(--header-height) + 20px) !important;
  }
}

/* Styles pour les boutons CTA du hero */
.hero-cta-buttons {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  margin-top: 20px;
  opacity: 0;
  animation: fadeInUp 0.8s ease-out forwards 0.6s;
}

@media (max-width: 768px) {
  .hero-cta-buttons {
    flex-direction: column;
    width: 100%;
    justify-content: center;
    align-items: center;
  }

  .hero-cta-buttons .cta-button {
    width: 100%;
    max-width: 300px;
    padding: 18px 36px;
    font-size: 1.2rem;
  }
}

@media (max-width: 480px) {
  .hero-cta-buttons .cta-button {
    padding: 16px 32px;
    font-size: 1.1rem;
  }
}

/* Styles pour le modal de demande de démo */
.demo-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.6);
  display: flex;
  justify-content: center;
  align-items: center;
  z-index: 10000;
  padding: 20px;
  animation: fadeIn 0.3s ease-out;
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
}

.demo-modal-content {
  background: white;
  border-radius: 16px;
  border-radius: var(--border-radius);
  padding: 40px;
  max-width: 600px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  position: relative;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  animation: fadeInUp 0.4s ease-out;
}

.demo-modal-close {
  position: absolute;
  top: 20px;
  right: 20px;
  background: none;
  border: none;
  font-size: 28px;
  color: #666;
  cursor: pointer;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  transition: all 0.2s ease;
  line-height: 1;
}

.demo-modal-close:hover {
  background-color: #f0f0f0;
  color: #333;
  transform: rotate(90deg);
}

.demo-modal-title {
  font-size: 2rem;
  font-weight: 700;
  color: #A5765C;
  color: var(--brown);
  margin: 0 0 10px 0;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

.demo-modal-subtitle {
  font-size: 1rem;
  color: #666;
  margin: 0 0 30px 0;
  line-height: 1.6;
}

.demo-modal-success,
.demo-modal-error {
  padding: 15px 20px;
  border-radius: 8px;
  margin-bottom: 20px;
  font-size: 0.95rem;
  line-height: 1.5;
}

.demo-modal-success {
  background-color: #d4edda;
  color: #155724;
  border: 1px solid #c3e6cb;
}

.demo-modal-error {
  background-color: #f8d7da;
  color: #721c24;
  border: 1px solid #f5c6cb;
}

.demo-modal-form {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.demo-form-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.demo-form-group label {
  font-weight: 600;
  color: #333;
  font-size: 0.95rem;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

.demo-form-group input,
.demo-form-group textarea {
  padding: 12px 16px;
  border: 2px solid #e0e0e0;
  border-radius: 8px;
  font-size: 1rem;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  transition: all 0.3s ease;
  width: 100%;
  box-sizing: border-box;
}

.demo-form-group input:focus,
.demo-form-group textarea:focus {
  outline: none;
  border-color: #A5765C;
  border-color: var(--brown);
  box-shadow: 0 0 0 3px rgba(165, 118, 92, 0.1);
}

.demo-form-group input:disabled,
.demo-form-group textarea:disabled {
  background-color: #f5f5f5;
  cursor: not-allowed;
  opacity: 0.7;
}

.demo-form-group textarea {
  resize: vertical;
  min-height: 100px;
  font-family: inherit;
}

.demo-form-actions {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  margin-top: 10px;
  flex-wrap: wrap;
}

.demo-button-cancel,
.demo-button-submit {
  padding: 12px 24px;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.3s ease;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  border: none;
}

.demo-button-cancel {
  background-color: #f5f5f5;
  color: #666;
}

.demo-button-cancel:hover:not(:disabled) {
  background-color: #e0e0e0;
  transform: translateY(-2px);
}

.demo-button-submit {
  background: linear-gradient(135deg, #A5765C, #8e6651);
  background: linear-gradient(135deg, var(--brown), #8e6651);
  color: white;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3);
}

.demo-button-submit:hover:not(:disabled) {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.4);
}

.demo-button-submit:disabled {
  opacity: 0.6;
  cursor: not-allowed;
  transform: none;
}

.demo-button-cancel:disabled {
  opacity: 0.6;
  cursor: not-allowed;
}

/* Responsive pour le modal */
@media (max-width: 768px) {
  .demo-modal-content {
    padding: 30px 20px;
    max-height: 95vh;
  }

  .demo-modal-title {
    font-size: 1.6rem;
    padding-right: 40px;
  }

  .demo-form-actions {
    flex-direction: column-reverse;
  }

  .demo-button-cancel,
  .demo-button-submit {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .demo-modal-content {
    padding: 25px 15px;
  }

  .demo-modal-title {
    font-size: 1.4rem;
  }

  .demo-modal-subtitle {
    font-size: 0.9rem;
  }
}

/* ==========================================
   Section Applications Mobiles
   ========================================== */

.mobile-apps-section {
  padding: 100px 50px;
  background: linear-gradient(135deg, #fff 0%, #F6F2EF 100%);
  background: linear-gradient(135deg, #fff 0%, var(--light-gray) 100%);
  text-align: center;
  position: relative;
  overflow: hidden;
}

.mobile-apps-section::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(ellipse at center, rgba(246, 198, 116, 0.05) 0%, transparent 70%);
  pointer-events: none;
}

.mobile-apps-container {
  max-width: 1000px;
  margin: 0 auto;
  position: relative;
  z-index: 1;
}

.mobile-apps-subtitle {
  font-size: 1.2rem;
  color: #333333;
  color: var(--text-color);
  margin-bottom: 50px;
  max-width: 600px;
  margin-left: auto;
  margin-right: auto;
  opacity: 0.8;
}

.mobile-apps-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 40px;
  gap: 40px;
  margin-bottom: 50px;
}

.mobile-app-card {
  background: #fff;
  border-radius: 16px;
  border-radius: var(--border-radius);
  padding: 40px 30px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  border: 1px solid rgba(246, 198, 116, 0.2);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 15px;
}

.mobile-app-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
}

.app-store-icon {
  width: 80px;
  height: 80px;
  border-radius: 20px;
  background: linear-gradient(135deg, #000 0%, #333 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
  transition: transform 0.3s ease;
}

.app-store-icon.android {
  background: linear-gradient(135deg, #3DDC84 0%, #2dbc6e 100%);
}

.mobile-app-card:hover .app-store-icon {
  transform: scale(1.1);
}

.app-store-name {
  font-size: 1.5rem;
  font-weight: 700;
  color: #000000;
  color: var(--black);
  margin: 0;
}

.app-store-description {
  font-size: 0.95rem;
  color: #666;
  margin: 0;
}

.app-store-button {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  padding: 14px 28px;
  border-radius: 12px;
  font-weight: 600;
  font-size: 1rem;
  text-decoration: none;
  transition: all 0.3s ease;
  margin-top: 10px;
}

.app-store-button.ios {
  background: linear-gradient(135deg, #000 0%, #333 100%);
  color: #fff;
}

.app-store-button.ios:hover {
  background: linear-gradient(135deg, #222 0%, #444 100%);
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.app-store-button.android {
  background: linear-gradient(135deg, #3DDC84 0%, #2dbc6e 100%);
  color: #fff;
}

.app-store-button.android:hover {
  background: linear-gradient(135deg, #4ee995 0%, #3dcc7e 100%);
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(61, 220, 132, 0.3);
}

.qr-code-container {
  margin-top: 20px;
  padding: 20px;
  background: rgba(246, 198, 116, 0.08);
  border-radius: 16px;
  border: 1px dashed rgba(246, 198, 116, 0.3);
}

.qr-code-label {
  font-size: 0.85rem;
  color: #888;
  margin-bottom: 12px;
  font-weight: 500;
}

/* Cacher les QR codes sur mobile */
.desktop-only {
  display: block;
}

@media (max-width: 768px) {
  .desktop-only {
    display: none !important;
  }
}

.mobile-apps-features {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  padding: 30px;
  background: rgba(246, 198, 116, 0.1);
  border-radius: 16px;
  border: 1px solid rgba(246, 198, 116, 0.2);
}

.mobile-feature {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 20px;
  background: #fff;
  border-radius: 30px;
  font-size: 0.95rem;
  font-weight: 500;
  color: #333333;
  color: var(--text-color);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
}

.mobile-feature:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
}

.mobile-feature-icon {
  font-size: 1.2rem;
}

/* Responsive pour la section apps mobiles */
@media (max-width: 768px) {
  .mobile-apps-section {
    padding: 60px 20px;
  }

  .mobile-apps-subtitle {
    font-size: 1rem;
    margin-bottom: 30px;
  }

  .mobile-apps-grid {
    grid-template-columns: 1fr;
    gap: 25px;
  }

  .mobile-app-card {
    padding: 30px 20px;
  }

  .app-store-icon {
    width: 70px;
    height: 70px;
  }

  .app-store-name {
    font-size: 1.3rem;
  }

  .app-store-button {
    padding: 12px 24px;
    font-size: 0.95rem;
    width: 100%;
    justify-content: center;
  }
}

/* Added this closing brace */


/* ==========================================
   MOBILE APPS SECTION (Redesign)
   ========================================== */
.mobile-apps-section {
  padding: 100px 50px;
  background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%);
  position: relative;
  overflow: hidden;
  color: white;
  text-align: center;
}

/* Background effects */
.mobile-apps-section::before {
  content: '';
  position: absolute;
  top: -100px;
  right: -100px;
  width: 600px;
  height: 600px;
  background: radial-gradient(circle, rgba(246, 198, 116, 0.15) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.mobile-apps-section::after {
  content: '';
  position: absolute;
  bottom: -100px;
  left: -100px;
  width: 500px;
  height: 500px;
  background: radial-gradient(circle, rgba(238, 159, 153, 0.1) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.mobile-apps-section .section-title {
  color: white;
  font-size: 3rem;
  margin-bottom: 20px;
}

.mobile-apps-section .section-subtitle {
  color: rgba(255, 255, 255, 0.8);
  font-size: 1.2rem;
  max-width: 600px;
  margin: 0 auto 60px;
}

.mobile-apps-container {
  display: flex;
  justify-content: center;
  gap: 40px;
  flex-wrap: wrap;
  position: relative;
  z-index: 10;
}

.mobile-app-card {
  background: rgba(255, 255, 255, 0.05);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  padding: 40px;
  border-radius: 24px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  text-align: center;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  width: 320px;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.mobile-app-card:hover {
  transform: translateY(-10px);
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.2);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
}

.app-store-icon {
  width: 80px;
  height: 80px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  font-size: 2.5rem;
  color: white;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.2);
}

.app-store-icon.ios {
  background: linear-gradient(135deg, #000000, #333333);
}

.app-store-icon.android {
  background: linear-gradient(135deg, #3DDC84, #35bf72);
}

.app-store-icon svg {
  width: 40px;
  height: 40px;
  fill: currentColor;
}

.app-store-name {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 8px;
  color: white;
}

.app-store-description {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.95rem;
  margin-bottom: 30px;
}

.app-store-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 24px;
  border-radius: 50px;
  font-weight: 600;
  text-decoration: none;
  transition: all 0.3s ease;
  width: 100%;
}

.app-store-button.ios {
  background: white;
  color: black;
}

.app-store-button.ios:hover {
  background: #f0f0f0;
  transform: scale(1.05);
  box-shadow: 0 5px 15px rgba(255, 255, 255, 0.2);
}

.app-store-button.android {
  background: transparent;
  color: #3DDC84;
  border: 2px solid #3DDC84;
}

.app-store-button.android:hover {
  background: rgba(61, 220, 132, 0.1);
  transform: scale(1.05);
  box-shadow: 0 5px 15px rgba(61, 220, 132, 0.2);
}

.qr-code-container {
  margin-top: 30px;
  padding: 15px;
  background: white;
  border-radius: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
}

.qr-code-label {
  color: #333;
  font-size: 0.8rem;
  margin-bottom: 10px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

/* Animations d'entrée */
.mobile-app-card {
  opacity: 0;
  animation: fadeInUp 0.8s ease-out forwards;
}

.mobile-app-card:nth-child(1) {
  animation-delay: 0.2s;
}

.mobile-app-card:nth-child(2) {
  animation-delay: 0.4s;
}

/* Responsive */
@media (max-width: 768px) {
  .mobile-apps-section {
    padding: 70px 20px;
  }

  .mobile-apps-container {
    flex-direction: column;
    align-items: center;
  }

  .mobile-app-card {
    width: 100%;
    max-width: 320px;
  }

  .qr-code-container.desktop-only {
    display: none;
  }
}
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

* {
  box-sizing: border-box;
}

body {
  margin: 0;
  padding: 0;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

.login-page {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: linear-gradient(135deg, #F6F2EF, #fff);
  background: linear-gradient(135deg, var(--light-gray), #fff);
  padding: 20px;
  position: relative;
  overflow: hidden;
}

/* Ajout d'un fond décoratif avec des motifs de pattes */
.login-page::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.15%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
  background-size: 100px 100px;
  opacity: 0.5;
  z-index: 0;
}

.login-container {
  background-color: #ffffff;
  padding: 40px 30px;
  border-radius: 16px;
  border-radius: var(--border-radius);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  text-align: center;
  max-width: 450px;
  width: 100%;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  z-index: 1;
  border: 1px solid rgba(246, 198, 116, 0.2);
}

.login-banner {
  background: linear-gradient(to right, rgba(246, 198, 116, 0.2), rgba(238, 159, 153, 0.2));
  color: #A5765C;
  color: var(--brown);
  font-size: 0.95rem;
  font-weight: 500;
  border-radius: 12px;
  padding: 14px;
  margin-bottom: 25px;
  line-height: 1.5;
  width: 100%;
  border-left: 4px solid #F6C674;
  border-left: 4px solid var(--gold);
}

.login-title {
  font-size: 2.4rem;
  font-weight: 800;
  margin-bottom: 8px;
  color: #000000;
  color: var(--black);
  position: relative;
  display: inline-block;
}

.login-title::after {
  content: ".";
  position: relative;
  color: #F6C674;
  color: var(--gold);
  font-size: 2.8rem;
  font-weight: 900;
}

.login-subtitle {
  font-size: 1.1rem;
  font-weight: 400;
  margin-bottom: 40px;
  color: #333333;
  color: var(--text-color);
}

.login-form {
  width: 100%;
}

.input-group {
  position: relative;
  margin-bottom: 30px;
}

.input-group input {
  width: 100%;
  padding: 14px 16px;
  font-size: 1rem;
  border: 1px solid rgba(165, 118, 92, 0.2);
  border-radius: 12px;
  outline: none;
  background: transparent;
  transition: all 0.3s;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

.input-group input:focus {
  border-color: #F6C674;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(246, 198, 116, 0.2);
}

.input-group label {
  position: absolute;
  left: 16px;
  top: 14px;
  font-size: 1rem;
  color: #888;
  pointer-events: none;
  transition: all 0.3s;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

.input-group input:focus + label,
.input-group input:not(:placeholder-shown) + label {
  top: -10px;
  left: 12px;
  font-size: 0.85rem;
  background-color: #fff;
  padding: 0 6px;
  color: #A5765C;
  color: var(--brown);
  font-weight: 600;
}

.forgot-password-link {
  text-align: right;
  margin-top: -20px;
  margin-bottom: 20px;
}

.forgot-password-link a {
  color: #A5765C;
  color: var(--brown);
  text-decoration: none;
  font-size: 0.9rem;
  transition: color 0.3s;
}

.forgot-password-link a:hover {
  color: #F6C674;
  color: var(--gold);
  text-decoration: underline;
}

.login-button {
  width: 100%;
  padding: 16px;
  background: linear-gradient(135deg, #A5765C, #8e6651);
  background: linear-gradient(135deg, var(--brown), #8e6651);
  color: #fff;
  border: none;
  border-radius: 12px;
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3);
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

.login-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.4);
}

.login-button:focus {
  outline: none;
}

.signup-link {
  margin-top: 25px;
  font-size: 1rem;
  color: #333333;
  color: var(--text-color);
}

.signup-button {
  background: none;
  border: none;
  color: #A5765C;
  color: var(--brown);
  cursor: pointer;
  font-weight: 600;
  margin-left: 5px;
  transition: color 0.3s;
}

.signup-button:hover {
  color: #F6C674;
  color: var(--gold);
}

@media (max-width: 480px) {
  .login-container {
    padding: 25px 20px;
  }

  .login-title {
    font-size: 2rem;
  }

  .login-subtitle {
    font-size: 1rem;
  }

  .login-banner {
    font-size: 0.9rem;
    padding: 12px;
  }
  
  .login-button {
    padding: 14px;
  }
}

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

.spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: #fff;
  border-radius: 50%;
  margin-right: 8px;
  animation: spin 0.6s linear infinite;
}

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

.login-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 25px 0;
  width: 100%;
}

.login-divider-line {
  flex: 1 1;
  height: 1px;
  width: 100%;
  background: linear-gradient(to right, rgba(165, 118, 92, 0.1), rgba(165, 118, 92, 0.3), rgba(165, 118, 92, 0.1));
  margin-left: 15px;
  margin-right: 15px;
}

.login-divider span {
  color: #A5765C;
  color: var(--brown);
  font-size: 0.9rem;
  font-weight: 500;
}

/* Styles pour le toggle de mode de connexion */
.login-mode-toggle {
  display: flex;
  background-color: #F6F2EF;
  background-color: var(--light-gray);
  border-radius: 12px;
  padding: 4px;
  margin-bottom: 25px;
  width: 100%;
  max-width: 300px;
}

.mode-button {
  flex: 1 1;
  padding: 12px 16px;
  border: none;
  background: transparent;
  color: #333333;
  color: var(--text-color);
  font-size: 0.95rem;
  font-weight: 500;
  cursor: pointer;
  border-radius: 8px;
  transition: all 0.3s;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

.mode-button.active {
  background-color: #fff;
  color: #A5765C;
  color: var(--brown);
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(165, 118, 92, 0.15);
}

.mode-button:hover:not(.active) {
  color: #A5765C;
  color: var(--brown);
}

/* Styles pour les informations employé */
.employee-login-info {
  text-align: center;
  margin-top: -15px;
  margin-bottom: 20px;
}

.employee-login-info small {
  color: #333333;
  color: var(--text-color);
  font-size: 0.85rem;
  font-style: italic;
  opacity: 0.8;
}


.sign-in-with-google-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 5px 10px;
  border-radius: 5px;
  border: 1px solid #000;
  background-color: #fff;
  color: #000;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
	margin-top: 10px;
	margin-bottom: 10px;
}

.google-logo {
  width: 25px;
  height: 25px;
}


/* Sign in with Apple Button Styles - Conforme aux Apple Human Interface Guidelines */

.sign-in-with-apple-button {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    width: 100%;
    padding: 12px 24px;
    background-color: #000000;
    color: #ffffff;
    border: none;
    border-radius: 8px;
    font-size: 16px;
    font-weight: 600;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
    cursor: pointer;
    transition: all 0.2s ease;
    margin-bottom: 12px;
}

.sign-in-with-apple-button:hover {
    background-color: #1a1a1a;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.sign-in-with-apple-button:active {
    transform: translateY(0);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
}

.sign-in-with-apple-button:disabled {
    background-color: #cccccc;
    color: #666666;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.sign-in-with-apple-button .apple-logo {
    width: 20px;
    height: 20px;
    color: #ffffff;
}

.sign-in-with-apple-button:disabled .apple-logo {
    color: #666666;
}

/* Support du mode sombre (optionnel) */
@media (prefers-color-scheme: dark) {
    .sign-in-with-apple-button {
        background-color: #ffffff;
        color: #000000;
    }

    .sign-in-with-apple-button:hover {
        background-color: #f5f5f5;
    }

    .sign-in-with-apple-button .apple-logo {
        color: #000000;
    }
}
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  --error-color: #ff4d4f;
}

.signup-user-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: linear-gradient(135deg, #F6F2EF, #fff);
  background: linear-gradient(135deg, var(--light-gray), #fff);
  padding: 20px;
  position: relative;
  overflow: hidden;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

/* Ajout d'un fond décoratif avec des motifs de pattes */
.signup-user-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.15%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
  background-size: 100px 100px;
  opacity: 0.5;
  z-index: 0;
}

.signup-form-container {
  background-color: #ffffff;
  padding: 40px 30px;
  border-radius: 16px;
  border-radius: var(--border-radius);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  max-width: 450px;
  width: 100%;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 1;
  border: 1px solid rgba(246, 198, 116, 0.2);
}

.signup-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 25px 0;
  width: 100%;
}

.signup-divider-line {
  flex: 1 1;
  height: 1px;
  width: 100%;
  background: linear-gradient(to right, rgba(165, 118, 92, 0.1), rgba(165, 118, 92, 0.3), rgba(165, 118, 92, 0.1));
  margin-left: 15px;
  margin-right: 15px;
}

.signup-divider span {
  color: #A5765C;
  color: var(--brown);
  font-size: 0.9rem;
  font-weight: 500;
}

.signup-form-container h2 {
  font-size: 2.4rem;
  font-weight: 800;
  margin-bottom: 15px;
  color: #000000;
  color: var(--black);
  position: relative;
  display: inline-block;
}

.signup-form-container h2::after {
  content: ".";
  position: relative;
  color: #F6C674;
  color: var(--gold);
  font-size: 2.8rem;
  font-weight: 900;
}

.instructions {
  font-size: 1rem;
  color: #333333;
  color: var(--text-color);
  margin-bottom: 25px;
  line-height: 1.5;
}

.signup-form-container form {
  width: 100%;
}

label {
  display: block;
  margin-bottom: 8px;
  font-weight: 600;
  color: #A5765C;
  color: var(--brown);
  text-align: left;
  font-size: 0.95rem;
}

input {
  width: 100%;
  padding: 14px 16px;
  font-size: 1rem;
  margin-bottom: 20px;
  border: 1px solid rgba(165, 118, 92, 0.2);
  border-radius: 12px;
  transition: all 0.3s;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

input:focus {
  border-color: #F6C674;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(246, 198, 116, 0.2);
  outline: none;
}

.error-message {
  color: #ff4d4f;
  color: var(--error-color);
  font-size: 0.9rem;
  margin-top: -15px;
  margin-bottom: 20px;
  text-align: left;
  padding-left: 5px;
}

.disabled-message {
  font-size: 0.9rem;
  color: #888;
  margin-bottom: 20px;
  text-align: center;
  background: rgba(246, 198, 116, 0.1);
  padding: 10px;
  border-radius: 8px;
  border-left: 3px solid #F6C674;
  border-left: 3px solid var(--gold);
}

.signup-button {
  width: 100%;
  padding: 16px;
  background: linear-gradient(135deg, #A5765C, #8e6651);
  background: linear-gradient(135deg, var(--brown), #8e6651);
  color: #fff;
  border: none;
  border-radius: 12px;
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3);
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  margin-top: 10px;
}

.signup-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.4);
}

.signup-button:disabled {
  background: linear-gradient(135deg, #ccc, #aaa);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.login-link {
  margin-top: 25px;
  text-align: center;
  width: 100%;
}

.login-link p {
  margin-bottom: 15px;
  color: #333333;
  color: var(--text-color);
}

.login-button {
  width: 100%;
  padding: 14px;
  background: transparent;
  color: #A5765C;
  color: var(--brown);
  border: 2px solid #A5765C;
  border: 2px solid var(--brown);
  border-radius: 12px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

.login-button:hover {
  background-color: rgba(165, 118, 92, 0.1);
}

@media (max-width: 480px) {
  .signup-form-container {
    padding: 30px 20px;
  }

  .signup-form-container h2 {
    font-size: 2rem;
  }
  
  input {
    padding: 12px 14px;
  }
  
  .signup-button, .login-button {
    padding: 14px;
  }
}

/* =============================
   FORFAITS PAGE - MODERNISÉ
   Style cohérent avec ServicesPage
============================= */

/* =============================
   CONTENEUR PRINCIPAL VARIABLES
============================= */

.forfaits-page {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-beige: #faf6f2;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --border-radius: 24px;
  --shadow-light: 0 4px 12px rgba(0, 0, 0, 0.03);
  --shadow-medium: 0 8px 16px rgba(0, 0, 0, 0.06);
  --shadow-hover: 0 12px 24px rgba(0, 0, 0, 0.08);
  --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* =============================
   CONTENEUR PRINCIPAL
============================= */

.forfaits-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 24px 16px;
  min-height: 100vh;
  background-color: var(--light-beige);
  font-family: var(--font-family);
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

/* =============================
   HEADER
============================= */

.forfaits-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 100%;
  max-width: 1100px;
  margin-bottom: 32px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(165, 118, 92, 0.15);
}

// ... elsewhere ...

.forfaits-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
}

.forfaits-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--black);
  margin: 0;
  font-family: var(--font-family);
}

/* =============================
   BOUTONS
============================= */

.typeform-button,
.create-forfait-button,
.sell-offline-button {
  background-color: var(--black);
  color: white;
  border: none;
  border-radius: 30px;
  padding: 12px 24px;
  font-size: 1rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: var(--transition);
  cursor: pointer;
  font-family: var(--font-family);
  white-space: nowrap;
}

.typeform-button:hover,
.create-forfait-button:hover {
  background-color: #1a1a1a;
  transform: translateY(-2px);
  box-shadow: var(--shadow-medium);
}

.sell-offline-button {
  background-color: transparent;
  color: var(--brown);
  border: 2px solid var(--brown);
}

.sell-offline-button:hover {
  background-color: var(--brown);
  color: white;
  transform: translateY(-2px);
}

.back-button {
  background: transparent;
  color: var(--brown);
  border: 2px solid var(--brown);
  border-radius: 25px;
  padding: 8px 20px;
  font-weight: 600;
  transition: var(--transition);
  cursor: pointer;
  font-family: var(--font-family);
}

.back-button:hover {
  background: var(--brown);
  color: white;
  transform: translateX(-5px);
}

/* =============================
   ÉTATS DE CHARGEMENT
============================= */

.forfaits-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  gap: 20px;
}

.forfaits-upgrade {
  max-width: 600px;
  margin: 40px auto;
  padding: 40px;
  background: white;
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-medium);
  text-align: center;
}

.forfaits-upgrade-title {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--brown);
  margin-bottom: 20px;
}

.forfaits-upgrade-text {
  font-size: 1.1rem;
  margin-bottom: 30px;
  color: #555;
  line-height: 1.6;
}

.forfaits-upgrade-button {
  background: var(--brown);
  color: white;
  border: none;
  padding: 12px 32px;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: 30px;
  cursor: pointer;
  transition: var(--transition);
}

.forfaits-upgrade-button:hover {
  background: #b5866b;
  transform: translateY(-2px);
  box-shadow: var(--shadow-medium);
}

/* =============================
   LISTE DES FORFAITS
============================= */

.forfaits-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
  max-width: 1200px;
  margin: 0 auto;
}

.forfaits-list h3 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--brown);
  margin: 32px 0 20px 0;
  text-align: center;
}

/* =============================
   CARTES DE FORFAIT
============================= */

.forfait-card {
  background: white;
  border-radius: var(--border-radius);
  padding: 0;
  /* Let children handle padding for more control */
  box-shadow: var(--shadow-light);
  transition: var(--transition);
  border: 1px solid transparent;
  width: 100%;
  overflow: hidden;
}

.forfait-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-hover);
  border-color: rgba(165, 118, 92, 0.1);
}

.forfait-card.archived {
  opacity: 0.7;
  background: #fdfdfd;
  filter: grayscale(0.5);
}

.forfait-card-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 16px;
  gap: 16px;
}

.forfait-name {
  font-size: 1.4rem;
  font-weight: 700;
  color: var(--brown);
  margin: 0;
  flex: 1 1;
}

.forfait-price {
  background: linear-gradient(135deg, var(--gold), var(--orange));
  color: white;
  padding: 8px 16px;
  border-radius: 20px;
  font-weight: 700;
  font-size: 1rem;
  white-space: nowrap;
  box-shadow: 0 2px 8px rgba(246, 198, 116, 0.3);
}

.forfait-description {
  color: #666;
  margin-bottom: 20px;
  line-height: 1.6;
  font-size: 0.95rem;
}

.forfait-visibility {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 0;
  margin: 16px 0;
  border-top: 1px dashed rgba(165, 118, 92, 0.2);
  border-bottom: 1px dashed rgba(165, 118, 92, 0.2);
}

.visibility-label {
  color: #666;
  font-weight: 500;
  font-size: 0.9rem;
}

.forfait-divider {
  margin: 20px 0;
  background-color: rgba(165, 118, 92, 0.1);
  height: 1px;
  border: none;
}

/* Services dans le forfait */
.forfait-services-title {
  font-weight: 700;
  color: var(--brown);
  margin-bottom: 12px;
  font-size: 1rem;
}

.forfait-service-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px;
  margin-bottom: 8px;
  background: rgba(246, 198, 116, 0.05);
  border-radius: 8px;
  transition: var(--transition);
}

.forfait-service-item:hover {
  background: rgba(246, 198, 116, 0.1);
  transform: translateX(4px);
}

.forfait-service-name {
  font-weight: 500;
  color: #333;
}

.forfait-service-quantity {
  background: var(--brown);
  color: white;
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 0.85rem;
  font-weight: 600;
}

/* Actions du forfait */
.forfait-actions {
  display: flex;
  gap: 12px;
  margin-top: 20px;
  justify-content: flex-end;
}

.forfait-edit-button,
.forfait-delete-button {
  padding: 10px 24px;
  border-radius: 25px;
  border: none;
  font-weight: 600;
  cursor: pointer;
  transition: var(--transition);
  font-size: 0.9rem;
}

.forfait-edit-button {
  background: var(--brown);
  color: white;
}

.forfait-edit-button:hover {
  background: #b5866b;
  transform: translateY(-2px);
  box-shadow: var(--shadow-light);
}

.forfait-delete-button {
  background: var(--peach);
  color: white;
}

.forfait-delete-button:hover {
  background: #e08e88;
  transform: translateY(-2px);
  box-shadow: var(--shadow-light);
}

.forfait-chip {
  background-color: rgba(165, 118, 92, 0.1);
  color: var(--brown);
  font-weight: 600;
  border-radius: 16px;
  padding: 6px 12px;
  font-size: 0.85rem;
}

.forfait-chip-archived {
  background-color: rgba(238, 159, 153, 0.1);
  color: var(--peach);
}

/* =============================
   FORFAITS VENDUS
============================= */

.sold-forfaits-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--brown);
  text-align: center;
  margin: 48px 0 24px 0;
}

/* Version Mobile & Desktop Unified Cards */
.sold-forfait-card {
  background: white;
  border-radius: var(--border-radius);
  padding: 24px;
  margin-bottom: 20px;
  box-shadow: var(--shadow-light);
  transition: var(--transition);
  border: 1px solid transparent;
  width: 100%;
}

.sold-forfait-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-hover);
  border-color: rgba(165, 118, 92, 0.1);
}

.sold-forfait-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.sold-forfait-name {
  font-weight: 700;
  color: var(--brown);
  font-size: 1.1rem;
}

.sold-forfait-status {
  padding: 6px 12px;
  border-radius: 12px;
  font-size: 0.8rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.sold-forfait-status.active {
  background: rgba(127, 176, 105, 0.15);
  color: #3e8914;
}

.sold-forfait-status.used {
  background: rgba(238, 159, 153, 0.15);
  color: #c34236;
}

.sold-forfait-status.expired {
  background: rgba(244, 67, 54, 0.15);
  color: #d32f2f;
}

.sold-forfait-client {
  color: #666;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.sold-forfait-details {
  display: flex;
  justify-content: space-between;
  padding: 12px;
  background: rgba(246, 198, 116, 0.08);
  border-radius: 8px;
  margin-bottom: 12px;
  font-size: 0.9rem;
}

.sold-forfait-details-date {
  color: #666;
}

.sold-forfait-details-price {
  font-weight: 700;
  color: var(--brown);
}

.sold-forfait-toggle {
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  padding: 12px 0;
  transition: var(--transition);
  color: var(--brown);
  font-weight: 600;
}

.sold-forfait-toggle:hover {
  background: rgba(165, 118, 92, 0.05);
  border-radius: 8px;
  padding-left: 8px;
  padding-right: 8px;
}

.sold-forfait-service {
  display: flex;
  justify-content: space-between;
  padding: 10px 0;
  border-bottom: 1px solid rgba(165, 118, 92, 0.1);
}

.sold-forfait-service:last-child {
  border-bottom: none;
}

.sold-forfait-service-name {
  color: #666;
}

.sold-forfait-service-usage {
  color: var(--brown);
  font-weight: 600;
  background: rgba(165, 118, 92, 0.1);
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 0.85rem;
}

/* Version Desktop - Tableau */
.forfaits-table {
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: var(--shadow-light);
  border: 1px solid rgba(165, 118, 92, 0.1);
  background: white;
}

.forfaits-table-header {
  background: linear-gradient(to right, rgba(165, 118, 92, 0.08), rgba(246, 198, 116, 0.08));
}

.forfaits-table-header th {
  color: var(--brown);
  font-weight: 700;
  padding: 16px;
  text-transform: uppercase;
  font-size: 0.75rem;
  letter-spacing: 0.5px;
  font-family: var(--font-family);
}

.forfaits-table-row {
  transition: var(--transition);
  border-bottom: 1px solid rgba(165, 118, 92, 0.05);
}

.forfaits-table-row:hover {
  background-color: rgba(246, 198, 116, 0.05);
}

.forfaits-table-row td {
  padding: 16px;
  vertical-align: middle;
  font-family: var(--font-family);
}

/* =============================
   VUE SÉLECTEUR
============================= */

.forfaits-selector-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 24px;
  text-align: center;
  width: 100%;
}

.selector-header {
  margin-bottom: 48px;
}

.selector-header h1 {
  font-size: 2.5rem;
  font-weight: 800;
  color: #333;
  margin-bottom: 16px;
  font-family: var(--font-family);
}

.service-type-main-card {
  height: 100%;
  cursor: pointer;
  transition: var(--transition);
  border-radius: 20px;
  border: 2px solid rgba(165, 118, 92, 0.1);
  background: white;
  box-shadow: var(--shadow-light);
  position: relative;
  overflow: visible;
}

.service-type-main-card:hover {
  transform: translateY(-8px);
  box-shadow: var(--shadow-hover);
  border-color: var(--gold);
}

.recommended-badge {
  position: absolute;
  top: -12px;
  right: 20px;
  background: linear-gradient(45deg, var(--gold), var(--orange));
  padding: 6px 16px;
  border-radius: 20px;
  z-index: 2;
  box-shadow: 0 4px 12px rgba(246, 198, 116, 0.4);
}

.recommended-badge span {
  color: white;
  font-weight: 600;
  font-size: 0.85rem;
}

.service-type-main-card .card-content {
  padding: 32px;
  height: 100%;
  display: flex;
  flex-direction: column;
  min-height: 500px;
}

.service-type-main-card .card-header {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 24px;
}

.service-icon-large {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  color: white;
  font-size: 32px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  transition: var(--transition);
}

.service-type-main-card:hover .service-icon-large {
  transform: scale(1.1) rotate(5deg);
}

.service-type-main-card .service-title {
  font-weight: 700;
  color: #333;
  text-align: center;
  margin-bottom: 12px;
  font-family: var(--font-family);
}

.service-type-main-card .service-description {
  text-align: center;
  margin-bottom: 24px;
  line-height: 1.6;
  color: #666;
  font-size: 1rem;
}

.service-type-main-card .features-list {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 24px;
}

.service-type-main-card .feature-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  text-align: left;
}

.service-type-main-card .feature-icon {
  color: var(--brown);
  font-size: 18px;
  margin-top: 2px;
  flex-shrink: 0;
}

.service-type-main-card .feature-text {
  color: #555;
  line-height: 1.5;
  font-size: 0.95rem;
}

.access-button {
  background: var(--brown);
  color: white;
  border-radius: 30px;
  padding: 12px 32px;
  font-weight: 600;
  text-transform: none;
  font-size: 1rem;
  border: none;
  cursor: pointer;
  transition: var(--transition);
  width: 100%;
}

.access-button:hover {
  background: #b5866b;
  transform: translateY(-2px);
  box-shadow: var(--shadow-medium);
}

/* =============================
   PREMIUM SECTION
============================= */

.forfaits-premium-container {
  max-width: 1200px;
  margin: 40px auto;
  padding: 40px;
  background: white;
  border-radius: 20px;
  box-shadow: var(--shadow-medium);
  border: 1px solid rgba(165, 118, 92, 0.1);
}

.forfaits-premium-content {
  margin-bottom: 32px;
}

.forfaits-premium-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--black);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.forfaits-premium-icon {
  font-size: 2rem;
  color: var(--gold);
}

.forfaits-premium-intro {
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 24px;
  color: #555;
}

.forfaits-premium-feature-icon {
  width: 40px;
  height: 40px;
  background: rgba(246, 198, 116, 0.15);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brown);
  font-size: 1.2rem;
}

.forfaits-premium-feature-title {
  font-weight: 600;
  font-size: 1.05rem;
  color: var(--black);
}

.forfaits-premium-feature-desc {
  color: #666;
}

.forfaits-premium-button {
  background: var(--brown);
  border: none;
  color: white;
  padding: 14px 40px;
  font-size: 1.1rem;
  font-weight: 600;
  border-radius: 30px;
  cursor: pointer;
  transition: var(--transition);
}

.forfaits-premium-button:hover {
  background: #b5866b;
  transform: translateY(-2px);
  box-shadow: var(--shadow-medium);
}

.forfaits-premium-price {
  margin-top: 16px;
  font-size: 0.95rem;
  color: #666;
}

/* Vidéos */
.forfaits-video-container {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--shadow-medium);
  position: relative;
  margin-bottom: 24px;
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: var(--transition);
  z-index: 2;
}

.video-overlay:hover {
  background: rgba(0, 0, 0, 0.2);
}

.overlay-text {
  color: white;
  font-weight: 600;
  margin-top: 15px;
  font-size: 1.1rem;
}

.youtube-iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Mode cinéma */
.cinema-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  z-index: 9999;
}

.cinema-video-container {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90vw;
  max-width: 1200px;
  aspect-ratio: 16 / 9;
  z-index: 10000;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: 0 0 60px rgba(0, 0, 0, 0.5);
}

.cinema-iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.cinema-exit-button {
  position: fixed;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  background-color: var(--gold);
  color: var(--brown);
  border: none;
  padding: 16px 32px;
  border-radius: 50px;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  transition: var(--transition);
  z-index: 10001;
}

.cinema-exit-button:hover {
  background-color: #ffda9e;
  transform: translateX(-50%) scale(1.05);
}

body.cinema-mode-active {
  overflow: hidden;
}

/* =============================
   ONGLETS (TABS)
============================= */

.forfaits-tabs-container {
  width: 100%;
  max-width: 1100px;
  display: flex;
  justify-content: center;
  margin-bottom: 32px;
}

.forfaits-tabs {
  background: transparent;
  padding: 0;
  border-radius: 0;
  box-shadow: none;
  border: none;
  margin: 0;
}

.forfaits-tabs .tabs-nav {
  border-bottom: 1px solid rgba(165, 118, 92, 0.15);
  gap: 48px;
  justify-content: center;
}

.forfaits-tabs .tab-button {
  padding: 12px 16px;
  color: #999;
  font-size: 0.95rem;
  font-weight: 500;
  transition: all 0.3s ease;
  border-bottom: 2px solid transparent;
  background: transparent !important;
}

.forfaits-tabs .tab-button:hover {
  background: rgba(165, 118, 92, 0.05);
  color: var(--brown);
}

.forfaits-tabs .tab-button--active {
  color: var(--brown);
  border-bottom-color: var(--brown);
  font-weight: 700;
}

.forfaits-tabs .tab-badge {
  background: rgba(165, 118, 92, 0.1);
  color: var(--brown);
  margin-left: 8px;
}

.forfaits-tabs .tab-button--active .tab-badge {
  background: var(--brown);
  color: white;
}

/* =============================
   RESPONSIVE
============================= */

@media (max-width: 768px) {
  .forfaits-page {
    padding: 16px 12px;
    min-height: calc(100vh - 56px - 56px);
    min-height: calc(100vh - var(--mobile-header-height, 56px) - var(--mobile-footer-height, 56px));
  }

  .forfaits-header {
    flex-direction: column;
    gap: 16px;
    align-items: flex-start;
  }

  .forfaits-title {
    font-size: 1.6rem;
  }

  .forfait-card {
    padding: 20px;
  }

  .forfait-card-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .forfait-actions {
    flex-direction: column;
    width: 100%;
  }

  .forfait-edit-button,
  .forfait-delete-button {
    width: 100%;
  }

  .selector-header h1 {
    font-size: 1.8rem;
  }

  .service-type-main-card .card-content {
    padding: 24px;
    min-height: 450px;
  }

  .service-icon-large {
    width: 60px;
    height: 60px;
    font-size: 24px;
  }

  .forfaits-premium-container {
    padding: 24px;
  }

  .forfaits-premium-title {
    font-size: 1.6rem;
  }

  .cinema-video-container {
    width: 100vw;
    border-radius: 0;
  }

  .cinema-exit-button {
    bottom: 20px;
    padding: 12px 24px;
    font-size: 1rem;
  }
}

@media (max-width: 480px) {
  .forfaits-title {
    font-size: 1.4rem;
  }

  .typeform-button,
  .create-forfait-button,
  .sell-offline-button {
    font-size: 0.9rem;
    padding: 10px 20px;
  }
}
/* Styles additionnels spécifiques à la page NoPremiumMessaging,
   en cohérence avec ForfaitsPage */

.messaging-features-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.messaging-features-list li {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  background: rgba(246, 198, 116, 0.08);
  border: 1px solid rgba(165, 118, 92, 0.1);
  border-radius: 12px;
  color: #555;
}

.messaging-features-list li .anticon {
  color: var(--brown);
}

@media (max-width: 768px) {
  .messaging-features-list li {
    padding: 10px;
  }
}
.terms-of-use {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    max-width: 800px;
    margin: 0 auto;
    min-height: 80vh;
    margin-top: 2rem;
  }
  
  .terms-of-use h1 {
    font-size: 2rem;
    margin-bottom: 20px;
  }
  
  .terms-of-use h2 {
    font-size: 1.5rem;
    margin-bottom: 10px;
    margin-top: 20px;
  }
  
  .terms-of-use p {
    font-size: 1.2rem;
    line-height: 1.6;
    margin-bottom: 20px;
    text-align: justify;
  }
  
  .terms-of-use ul {
    list-style-type: disc;
    padding-left: 40px;
    margin-bottom: 20px;
  }
  
  .terms-of-use li {
    margin-bottom: 10px;
  }
  
.privacy-policy {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    max-width: 800px;
    margin: 0 auto;
    min-height: 80vh;
    margin-top: 2rem;

  }
  
  .privacy-policy h1 {
    font-size: 2rem;
    margin-bottom: 20px;
  }
  
  .privacy-policy h2 {
    font-size: 1.5rem;
    margin-bottom: 10px;
    margin-top: 20px;
  }
  
  .privacy-policy p {
    font-size: 1.2rem;
    line-height: 1.6;
    margin-bottom: 20px;
    text-align: justify;
  }
  
  .privacy-policy ul {
    list-style-type: disc;
    padding-left: 40px;
    margin-bottom: 20px;
  }
  
  .privacy-policy li {
    margin-bottom: 10px;
  }
  
.data-deletion {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 20px;
  max-width: 800px;
  margin: 0 auto;
  min-height: 80vh;
  margin-top: 2rem;
}

.data-deletion h1 {
  font-size: 2rem;
  margin-bottom: 20px;
  text-align: center;
  color: #2c3e50;
}

.data-deletion h2 {
  font-size: 1.5rem;
  margin-bottom: 10px;
  margin-top: 20px;
  color: #34495e;
}

.data-deletion p {
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 20px;
  text-align: justify;
}

.data-deletion ul {
  list-style-type: disc;
  padding-left: 40px;
  margin-bottom: 20px;
}

.data-deletion ol {
  padding-left: 40px;
  margin-bottom: 20px;
}

.data-deletion li {
  margin-bottom: 10px;
  line-height: 1.5;
}

.data-deletion a {
  color: #A5765C;
  text-decoration: none;
}

.data-deletion a:hover {
  text-decoration: underline;
}

.legal-page {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 20px;
    max-width: 800px;
    margin: 0 auto;
    min-height: 80vh;
    margin-top: 2rem;

  }
  
  .legal-page h1 {
    font-size: 2rem;
    margin-bottom: 20px;
  }
  
  .legal-page h2 {
    font-size: 1.5rem;
    margin-bottom: 10px;
    margin-top: 20px;
  }
  
  .legal-page p {
    font-size: 1.2rem;
    line-height: 1.6;
    margin-bottom: 20px;
    text-align: justify;
  }
  
  .legal-page ul {
    list-style-type: disc;
    padding-left: 40px;
    margin-bottom: 20px;
  }
  
  .legal-page li {
    margin-bottom: 10px;
  }
  
/* PasswordForgottenPage.css */

/* On peut inclure une police depuis Google Fonts ou autre.
   Exemple :
   @import url('https://fonts.googleapis.com/css2?family=Roboto&display=swap');
*/

.password-forgotten-container {
  max-width: 400px;
  margin: 40px auto; /* Centrer sur la page */
  padding: 20px;
  background-color: #fff; /* Fond blanc */
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  text-align: center;
}

.password-forgotten-container h2 {
  margin-bottom: 20px;
  font-size: 1.5em;
  color: #333;
  font-weight: normal;
}

.password-forgotten-container form {
  display: flex;
  flex-direction: column;
}

.password-forgotten-container label {
  text-align: left;
  margin-bottom: 5px;
  font-weight: 500;
  color: #555;
}

.password-forgotten-container input {
  padding: 10px;
  margin-bottom: 15px;
  border: 1px solid #ddd;
  border-radius: 4px;
  font-size: 1em;
}

.reset-button {
  background-color: #333;
  color: #fff;
  padding: 12px;
  border: none;
  margin-top: 10px;
  margin-bottom: 10px;
  cursor: pointer;
  border-radius: 4px;
  font-weight: 600;
  transition: background-color 0.2s ease;
}

.reset-button:hover {
  background-color: #555;
}

/* Petites optimisations sur mobile */
@media (max-width: 480px) {
  .password-forgotten-container {
    margin: 20px auto;
    padding: 15px;
    width: 90%;
  }

  .password-forgotten-container input {
    font-size: 1em;
  }
} 
/**
 * Rintintin Design System - Design Tokens
 * Single source of truth for all design decisions
 * Update values here to reflect changes across the entire application
 */

:root {
    /* ========================================
     COLORS - PRIMARY
     ======================================== */
    --color-primary-brown: #A5765C;
    --color-primary-brown-dark: #8b5e48;
    --color-primary-brown-light: #c9a88a;

    /* ========================================
     COLORS - SEMANTIC
     ======================================== */
    --color-success: #10b981;
    --color-success-light: #d1fae5;
    --color-warning: #f97316;
    --color-warning-light: #ffedd5;
    --color-error: #ef4444;
    --color-error-light: #fee2e2;
    --color-info: #3b82f6;
    --color-info-light: #dbeafe;

    /* ========================================
     COLORS - WIDGET SPECIFIC
     ======================================== */
    --color-widget-revenue: #15803d;
    --color-widget-pending: #c2410c;
    --color-widget-packages: #7e22ce;
    --color-widget-services: #1d4ed8;

    /* ========================================
     COLORS - SLATE SCALE (Neutral)
     ======================================== */
    --color-slate-900: #0f172a;
    --color-slate-800: #1e293b;
    --color-slate-700: #334155;
    --color-slate-600: #475569;
    --color-slate-500: #64748b;
    --color-slate-400: #94a3b8;
    --color-slate-300: #cbd5e1;
    --color-slate-200: #e2e8f0;
    --color-slate-100: #f1f5f9;
    --color-slate-50: #f8fafc;
    --color-white: #ffffff;

    /* ========================================
     TYPOGRAPHY - FONT SIZES
     ======================================== */
    --font-size-xs: 12px;
    --font-size-sm: 14px;
    --font-size-base: 16px;
    --font-size-lg: 18px;
    --font-size-xl: 20px;
    --font-size-2xl: 24px;
    --font-size-3xl: 28px;
    --font-size-4xl: 32px;
    --font-size-5xl: 40px;

    /* ========================================
     TYPOGRAPHY - FONT WEIGHTS
     ======================================== */
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* ========================================
     TYPOGRAPHY - LINE HEIGHTS
     ======================================== */
    --line-height-tight: 1.25;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.75;

    /* ========================================
     SPACING SCALE
     ======================================== */
    --spacing-0: 0;
    --spacing-1: 4px;
    --spacing-2: 8px;
    --spacing-3: 12px;
    --spacing-4: 16px;
    --spacing-5: 20px;
    --spacing-6: 24px;
    --spacing-7: 28px;
    --spacing-8: 32px;
    --spacing-10: 40px;
    --spacing-12: 48px;
    --spacing-16: 64px;
    --spacing-20: 80px;

    /* ========================================
     BORDER RADIUS
     ======================================== */
    --radius-none: 0;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --radius-2xl: 24px;
    --radius-3xl: 32px;
    --radius-full: 9999px;

    /* ========================================
     SHADOWS
     ======================================== */
    --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);

    /* ========================================
     TRANSITIONS
     ======================================== */
    --transition-fast: 150ms ease-in-out;
    --transition-base: 250ms ease-in-out;
    --transition-slow: 350ms ease-in-out;

    /* ========================================
     Z-INDEX SCALE
     ======================================== */
    --z-index-dropdown: 1000;
    --z-index-sticky: 1020;
    --z-index-fixed: 1030;
    --z-index-modal-backdrop: 1040;
    --z-index-modal: 1050;
    --z-index-popover: 1060;
    --z-index-tooltip: 1070;
}
/* =================================================================== */
/* ACCUEIL PAGE - V4 "Premium Peps"                                    */
/* Pro, cool, dynamique — La première impression compte !              */
/* =================================================================== */

/* =========================== */
/* PAGE LAYOUT                 */
/* =========================== */

.accueil-page {
  padding: 24px;
  max-width: 1200px;
  margin: 0 auto;
  background-color: #f8f9fb;
  min-height: 100vh;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* =========================== */
/* WELCOME BANNER — Le hero !  */
/* =========================== */

.welcome-section {
  margin-bottom: 28px;
}

.welcome-banner-v3 {
  background: linear-gradient(135deg, #A5765C 0%, #c9956e 40%, #dba67a 70%, #e8c4a0 100%);
  border-radius: 24px;
  padding: 36px 36px 32px;
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(165, 118, 92, 0.25), 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* Motif décoratif subtil */
.welcome-banner-v3::before {
  content: '';
  position: absolute;
  top: -40px;
  right: -40px;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.15) 0%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
}

.welcome-banner-v3::after {
  content: '';
  position: absolute;
  bottom: -60px;
  left: 30%;
  width: 300px;
  height: 180px;
  background: radial-gradient(ellipse, rgba(255, 255, 255, 0.08) 0%, transparent 70%);
  pointer-events: none;
}

.welcome-content {
  display: flex;
  align-items: center;
  gap: 20px;
  position: relative;
  z-index: 1;
}

.welcome-profile-pic {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  object-fit: cover;
  border: 4px solid rgba(255, 255, 255, 0.5);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.welcome-profile-pic:hover {
  transform: scale(1.08);
  border-color: rgba(255, 255, 255, 0.8);
}

.welcome-profile-placeholder {
  width: 68px;
  height: 68px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.25);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 26px;
  font-weight: 700;
  border: 3px solid rgba(255, 255, 255, 0.4);
  flex-shrink: 0;
  transition: all 0.3s ease;
}

.welcome-profile-placeholder:hover {
  transform: scale(1.08);
  background: rgba(255, 255, 255, 0.35);
}

.welcome-text h1 {
  font-size: 28px;
  font-weight: 800;
  color: #ffffff;
  margin: 0 0 4px 0;
  letter-spacing: -0.5px;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.welcome-text .welcome-subtitle {
  font-size: 15px;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
  font-weight: 500;
  text-transform: capitalize;
}

/* Alert dans banner */
.alert-message-v3 {
  margin-top: 16px;
  position: relative;
  z-index: 1;
}

.alert-message-v3 .ant-alert {
  border-radius: 12px;
  border: none;
  background: rgba(255, 255, 255, 0.92);
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.alert-message-v3 .ant-alert-warning {
  background: rgba(255, 255, 255, 0.92);
}

.alert-message-v3 .ant-alert-success {
  background: rgba(255, 255, 255, 0.92);
}

/* =========================== */
/* DASHBOARD GRID              */
/* =========================== */

.dashboard-grid {
  display: grid;
  grid-template-columns: 1fr 340px;
  grid-gap: 20px;
  gap: 20px;
  align-items: start;
}

/* Right sidebar: Actions + En attente stacked */
.right-sidebar {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* =========================== */
/* CARDS — Fond blanc premium  */
/* =========================== */

/* Planning card: stretch to match right sidebar height */
.dashboard-grid>.dash-card:first-child {
  align-self: stretch;
  display: flex;
  flex-direction: column;
}

.dashboard-grid>.dash-card:first-child .dash-card-body {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.dash-card {
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.03);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  overflow: hidden;
}

.dash-card:hover {
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.07), 0 0 0 1px rgba(0, 0, 0, 0.03);
  transform: translateY(-2px);
}

.dash-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 22px 24px 0;
}

.dash-card-header h2 {
  font-size: 18px;
  font-weight: 800;
  color: #1e293b;
  margin: 0;
  letter-spacing: -0.3px;
}

.dash-card-header .header-link {
  font-size: 14px;
  color: #A5765C;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  text-decoration: none;
  transition: all 0.2s ease;
  background: none;
  border: none;
  padding: 6px 12px;
  border-radius: 8px;
}

.dash-card-header .header-link:hover {
  color: #8b5e48;
  background: rgba(165, 118, 92, 0.06);
  gap: 8px;
}

.dash-card-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.accueil-toggle-personal {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 13px;
  color: #64748b;
  margin: 0;
}

.accueil-toggle-personal .ant-switch {
  flex-shrink: 0;
}

.accueil-toggle-label {
  white-space: nowrap;
}

.dash-card-body {
  padding: 18px 24px 24px;
}

/* =========================== */
/* PLANNING DU JOUR            */
/* =========================== */

.today-schedule {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.schedule-item {
  display: flex;
  align-items: center;
  padding: 14px 16px;
  border-radius: 14px;
  background-color: #f8fafc;
  border-left: 4px solid #cbd5e1;
  transition: all 0.25s ease;
  position: relative;
  gap: 12px;
}

.schedule-item:hover {
  background-color: #ffffff;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.06);
  transform: translateX(4px);
}

/* Cartes cliquables : curseur et accessibilité */
.accueil-page .clickable-card {
  cursor: pointer;
}
.accueil-page .clickable-card:focus-visible {
  outline: 2px solid #A5765C;
  outline: 2px solid var(--color-primary, #A5765C);
  outline-offset: 2px;
}

.schedule-item.confirmed {
  border-left-color: #10b981;
  background: linear-gradient(135deg, #f0fdf4 0%, #f8fafc 100%);
}

.schedule-item.pending {
  border-left-color: #f97316;
  background: linear-gradient(135deg, #fff7ed 0%, #f8fafc 100%);
}

.schedule-item.pending_client {
  border-left-color: #f97316;
  background: linear-gradient(135deg, #fff7ed 0%, #f8fafc 100%);
}

.schedule-item.cancelled {
  border-left-color: #ef4444;
  opacity: 0.6;
}

.schedule-item--unavailability,
.schedule-item--personal {
  cursor: pointer;
}

.schedule-item--unavailability {
  border-left-color: #94a3b8;
  background: linear-gradient(135deg, #f1f5f9 0%, #f8fafc 100%);
}

.schedule-item--personal {
  border-left-color: #a78bfa;
  background: linear-gradient(135deg, #f5f3ff 0%, #f8fafc 100%);
}

.schedule-item-label {
  font-size: 12px;
  color: #64748b;
  margin-top: 2px;
}

.time-slot {
  width: 80px;
  font-weight: 700;
  color: #334155;
  font-size: 14px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}

.time-slot .anticon {
  color: #94a3b8;
  font-size: 14px;
}

.appointment-details {
  flex: 1 1;
  min-width: 0;
}

.client-name {
  font-weight: 700;
  color: #1e293b;
  font-size: 14px;
  margin-bottom: 2px;
}

.client-name a {
  color: #1e293b;
  text-decoration: none;
  transition: color 0.15s ease;
}

.client-name a:hover {
  color: #A5765C;
}

.service-name {
  font-size: 12px;
  color: #64748b;
  font-weight: 500;
}

.animal-name {
  font-size: 12px;
  color: #94a3b8;
  margin-top: 2px;
}

.animal-name a {
  color: #A5765C;
  text-decoration: none;
}

.animal-name a:hover {
  text-decoration: underline;
}

.status-indicator {
  width: 32px;
  text-align: center;
  flex-shrink: 0;
}

.status-indicator .anticon {
  font-size: 18px;
}

.empty-calendar {
  padding: 24px 0;
}

/* =========================== */
/* ACTIONS RAPIDES             */
/* =========================== */

.quick-actions {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.action-button {
  height: 52px !important;
  font-size: 15px !important;
  border-radius: 14px !important;
  background-color: #f8fafc !important;
  border: 1px solid #e2e8f0 !important;
  box-shadow: none !important;
  transition: all 0.25s ease !important;
  font-weight: 600 !important;
  color: #475569 !important;
  position: relative;
  overflow: hidden;
}

.action-button::before {
  display: none;
}

.action-button:hover {
  background-color: #ffffff !important;
  border-color: #c9a88a !important;
  color: #A5765C !important;
  box-shadow: 0 4px 16px rgba(165, 118, 92, 0.12) !important;
  transform: translateY(-2px);
}

.action-button .anticon {
  color: #94a3b8 !important;
  font-size: 16px;
  transition: color 0.15s ease;
}

.action-button:hover .anticon {
  color: #A5765C !important;
}

/* Bouton Programmer — CTA principal */
.action-button.programmer-button,
.action-button.programmer-button:hover,
.action-button.programmer-button:focus {
  background: linear-gradient(135deg, #A5765C 0%, #8b5e48 100%) !important;
  border: none !important;
  color: white !important;
  box-shadow: 0 6px 24px rgba(165, 118, 92, 0.35) !important;
  font-size: 16px !important;
}

.action-button.programmer-button::before {
  display: none;
}

.action-button.programmer-button .anticon {
  color: white !important;
}

.programmer-button-icon.calendar-plus {
  position: relative;
  display: inline-flex;
  align-items: center;
  font-size: 18px;
}

.programmer-button-icon.calendar-plus .icon-overlay {
  position: absolute;
  top: -5px;
  right: -7px;
  font-size: 10px;
}

.action-button.programmer-button:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 32px rgba(165, 118, 92, 0.45) !important;
}

/* =========================== */
/* STATS SECTION               */
/* =========================== */

.stats-section-wrapper {
  grid-column: 1 / -1;
  background: #ffffff;
  border-radius: 20px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.03);
  padding: 22px 24px 24px;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.stats-section-wrapper:hover {
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.07), 0 0 0 1px rgba(0, 0, 0, 0.03);
}

.stats-section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid #f1f5f9;
}

.stats-section-header h2 {
  font-size: 18px;
  font-weight: 800;
  color: #1e293b;
  margin: 0;
  letter-spacing: -0.3px;
}

/* Segmented filter — Pill style */
.stats-section-header .ant-segmented {
  background: #f1f5f9;
  border-radius: 50px;
  padding: 3px;
}

.stats-section-header .ant-segmented-item {
  border-radius: 50px !important;
  font-weight: 600;
  font-size: 14px;
  transition: all 0.15s ease;
}

.stats-section-header .ant-segmented-item-selected {
  background: #ffffff !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  color: #1e293b !important;
}

/* Date range pill */
.date-range-display {
  text-align: center;
  color: #64748b;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 20px;
  padding: 8px 20px;
  background: #f1f5f9;
  border-radius: 50px;
  display: block;
  width: -webkit-fit-content;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

/* =========================== */
/* STAT WIDGETS — Colorful!    */
/* =========================== */

.stats-widgets-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 16px;
  gap: 16px;
  margin-bottom: 24px;
}

.stat-widget {
  background: #ffffff;
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04);
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
  border-left: 4px solid transparent;
  overflow: hidden;
}

.stat-widget::after {
  content: '';
  position: absolute;
  top: 0;
  right: 0;
  width: 100px;
  height: 100px;
  border-radius: 50%;
  opacity: 0.06;
  pointer-events: none;
  transform: translate(30%, -30%);
}

.stat-widget:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
}

/* Green - Revenus */
.stat-widget.green {
  border-left-color: #10b981;
  background: linear-gradient(135deg, #ffffff 0%, #f0fdf4 100%);
}

.stat-widget.green::after {
  background: #10b981;
}

.stat-widget.green .stat-widget-icon {
  background: #dcfce7;
  box-shadow: 0 4px 12px rgba(16, 185, 129, 0.15);
}

.stat-widget.green .stat-widget-value {
  color: #15803d;
}

/* Blue - Réservations */
.stat-widget.blue {
  border-left-color: #3b82f6;
  background: linear-gradient(135deg, #ffffff 0%, #eff6ff 100%);
}

.stat-widget.blue::after {
  background: #3b82f6;
}

.stat-widget.blue .stat-widget-icon {
  background: #dbeafe;
  box-shadow: 0 4px 12px rgba(59, 130, 246, 0.15);
}

.stat-widget.blue .stat-widget-value {
  color: #1d4ed8;
}

/* Orange - Clients */
.stat-widget.orange {
  border-left-color: #f97316;
  background: linear-gradient(135deg, #ffffff 0%, #fff7ed 100%);
}

.stat-widget.orange::after {
  background: #f97316;
}

.stat-widget.orange .stat-widget-icon {
  background: #ffedd5;
  box-shadow: 0 4px 12px rgba(249, 115, 22, 0.15);
}

.stat-widget.orange .stat-widget-value {
  color: #c2410c;
}

.stat-widget-icon {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  background: #f1f5f9;
}

.stat-widget-label {
  font-size: 14px;
  font-weight: 600;
  color: #64748b;
  letter-spacing: 0.2px;
}

.stat-widget-value {
  font-size: 28px;
  font-weight: 800;
  color: #1e293b;
  letter-spacing: -1px;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

/* =========================== */
/* CHART SECTION               */
/* =========================== */

.chart-section-v3 {
  background: #ffffff;
  border-radius: 20px;
  padding: 24px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.04), 0 0 0 1px rgba(0, 0, 0, 0.03);
  margin-bottom: 24px;
}

.chart-section-v3 h3 {
  font-size: 16px;
  font-weight: 800;
  color: #1e293b;
  margin: 0 0 20px 0;
  letter-spacing: -0.3px;
}

/* Service Chart Bars */
.service-chart {
  padding: 0;
}

.service-bar {
  margin-bottom: 16px;
}

.service-bar:last-child {
  margin-bottom: 0;
}

.service-bar .service-name {
  margin-bottom: 8px;
  font-weight: 600;
  color: #334155;
  font-size: 14px;
  display: flex;
  align-items: center;
}

.service-bar .service-name::before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  background: linear-gradient(135deg, #A5765C, #c9956e);
  border-radius: 50%;
  margin-right: 10px;
  flex-shrink: 0;
}

.bar-container {
  position: relative;
  height: 32px;
  background-color: #f1f5f9;
  border-radius: 50px;
  overflow: hidden;
}

.bar-fill {
  background: linear-gradient(90deg, #A5765C, #c9956e, #dba67a);
  height: 100%;
  border-radius: 50px;
  transition: width 0.8s cubic-bezier(0.4, 0, 0.2, 1);
  min-width: 40px;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2);
}

.bar-value {
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-weight: 700;
  font-size: 13px;
  color: #475569;
}

/* View Details Button */
.view-details-v3 {
  text-align: center;
}

.view-details-v3 .ant-btn-primary {
  background: linear-gradient(135deg, #1e293b 0%, #0f172a 100%);
  border: none;
  height: 48px;
  padding: 0 36px;
  font-weight: 700;
  font-size: 15px;
  border-radius: 50px;
  box-shadow: 0 8px 24px rgba(15, 23, 42, 0.2);
  transition: all 0.3s ease;
}

.view-details-v3 .ant-btn-primary:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 32px rgba(15, 23, 42, 0.3);
}

/* =========================== */
/* PENDING SECTION             */
/* =========================== */

.pending-header-v3 {
  display: flex;
  align-items: center;
  gap: 10px;
}

.pending-header-v3 h2 {
  margin: 0;
}

.pending-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.pending-item {
  background: linear-gradient(135deg, #fff7ed 0%, #ffffff 100%);
  border-radius: 14px;
  border-left: 4px solid #f97316;
  padding: 16px;
  transition: all 0.25s ease;
}

.pending-item:hover {
  background: #ffffff;
  box-shadow: 0 6px 20px rgba(249, 115, 22, 0.1);
  transform: translateX(4px);
}

.pending-info {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.pending-client {
  color: #1e293b;
  font-weight: 700;
  font-size: 15px;
}

.pending-service {
  font-size: 13px;
  color: #64748b;
  font-weight: 500;
}

.pending-date {
  font-size: 13px;
  color: #94a3b8;
}

.pending-status {
  display: inline-block;
  margin-top: 6px;
  padding: 4px 12px;
  border-radius: 50px;
  background: rgba(249, 115, 22, 0.1);
  color: #c2410c;
  font-size: 12px;
  font-weight: 600;
}

.pending-action-link {
  display: flex;
  justify-content: flex-end;
  margin-top: 8px;
}

.pending-action-link .ant-btn-link {
  padding: 0 4px;
  color: #A5765C !important;
  font-weight: 600;
  font-size: 13px;
}

.pending-action-link .ant-btn-link:hover {
  color: #8b5e48 !important;
}

.view-all-link {
  text-align: center;
  margin-top: 12px;
}

.view-all-link .ant-btn-link {
  color: #A5765C !important;
  font-weight: 600;
}

/* Loading */
.loading-container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: 48px 24px;
  gap: 24px;
}

.loading-tips {
  max-width: 360px;
  text-align: left;
}

.loading-tips-title {
  font-size: 14px;
  font-weight: 600;
  color: #595959;
  margin: 0 0 8px 0;
}

.loading-tips ul {
  margin: 0;
  padding-left: 20px;
  color: #8c8c8c;
  font-size: 13px;
  line-height: 1.6;
}

.loading-tips ul li {
  margin-bottom: 4px;
}

/* =========================== */
/* ANIMATIONS — Life!          */
/* =========================== */

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(16px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(-12px);
  }

  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }

  to {
    opacity: 1;
    transform: scale(1);
  }
}

.welcome-banner-v3 {
  animation: scaleIn 0.5s cubic-bezier(0.2, 0, 0.2, 1) forwards;
}

.dash-card {
  animation: fadeInUp 0.5s cubic-bezier(0.2, 0, 0.2, 1) backwards;
}

.dash-card:nth-child(1) {
  animation-delay: 0.1s;
}

.dash-card:nth-child(2) {
  animation-delay: 0.15s;
}

.dash-card:nth-child(4) {
  animation-delay: 0.35s;
}

.stats-section-wrapper {
  animation: fadeInUp 0.5s cubic-bezier(0.2, 0, 0.2, 1) 0.2s backwards;
}

.schedule-item {
  animation: slideInRight 0.35s ease backwards;
}

.schedule-item:nth-child(1) {
  animation-delay: 0.1s;
}

.schedule-item:nth-child(2) {
  animation-delay: 0.15s;
}

.schedule-item:nth-child(3) {
  animation-delay: 0.2s;
}

.schedule-item:nth-child(4) {
  animation-delay: 0.25s;
}

.schedule-item:nth-child(5) {
  animation-delay: 0.3s;
}

.stat-widget {
  animation: fadeInUp 0.5s cubic-bezier(0.2, 0, 0.2, 1) backwards;
}

.stat-widget:nth-child(1) {
  animation-delay: 0.15s;
}

.stat-widget:nth-child(2) {
  animation-delay: 0.22s;
}

.stat-widget:nth-child(3) {
  animation-delay: 0.29s;
}

.pending-item {
  animation: slideInRight 0.35s ease backwards;
}

.pending-item:nth-child(1) {
  animation-delay: 0.1s;
}

.pending-item:nth-child(2) {
  animation-delay: 0.15s;
}

.pending-item:nth-child(3) {
  animation-delay: 0.2s;
}

.pending-item:nth-child(4) {
  animation-delay: 0.25s;
}

.pending-item:nth-child(5) {
  animation-delay: 0.3s;
}

/* =========================== */
/* RESPONSIVE - TABLET         */
/* =========================== */

@media (min-width: 768px) and (max-width: 1024px) {
  .accueil-page {
    padding: 20px;
  }

  .dashboard-grid {
    grid-template-columns: 1fr 300px;
    gap: 16px;
  }

  .stats-widgets-grid {
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
  }

  .stat-widget-value {
    font-size: 24px;
  }
}

/* =========================== */
/* RESPONSIVE - MOBILE         */
/* =========================== */

@media (max-width: 767px) {
  .accueil-page {
    padding: 0;
    background-color: #f8f9fb;
    min-height: calc(100vh - 56px);
  }

  /* Welcome Banner - Mobile (plein bord) */
  .welcome-section {
    margin-bottom: 0;
  }

  .welcome-banner-v3 {
    border-radius: 0 0 28px 28px;
    padding: 24px 20px;
    margin: 0 0 16px 0;
  }

  .welcome-content {
    gap: 14px;
  }

  .welcome-profile-pic,
  .welcome-profile-placeholder {
    width: 48px;
    height: 48px;
  }

  .welcome-profile-placeholder {
    font-size: 18px;
  }

  .welcome-text h1 {
    font-size: 22px;
  }

  .welcome-text .welcome-subtitle {
    font-size: 13px;
  }

  /* Grid - Mobile */
  .dashboard-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    padding: 0 12px;
  }

  .stats-section-wrapper {
    grid-column: 1;
  }

  /* Cards - Mobile */
  .dash-card {
    border-radius: 18px;
  }

  .dash-card-header {
    padding: 18px 18px 0;
  }

  .dash-card-header h2 {
    font-size: 16px;
  }

  .dash-card-body {
    padding: 14px 18px 18px;
  }

  /* Stats Header - Mobile */
  .stats-section-header {
    flex-direction: column;
    gap: 12px;
    align-items: stretch;
    padding: 0 4px;
  }

  .stats-section-header h2 {
    text-align: center;
  }

  .stats-section-header .ant-segmented {
    width: 100%;
  }

  .stats-section-header .ant-segmented-group {
    justify-content: stretch;
  }

  .stats-section-header .ant-segmented-item {
    flex: 1 1;
  }

  /* Widgets - Mobile (horizontal) */
  .stats-widgets-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }

  .stat-widget {
    flex-direction: row;
    align-items: center;
    padding: 18px 20px;
    gap: 16px;
  }

  .stat-widget-icon {
    width: 44px;
    height: 44px;
    font-size: 22px;
  }

  .stat-widget-value {
    font-size: 22px;
  }

  /* Schedule - Mobile */
  .schedule-item {
    padding: 12px;
    border-radius: 12px;
  }

  .time-slot {
    width: auto;
    font-size: 12px;
  }

  /* Action buttons - Mobile */
  .action-button {
    height: 48px !important;
    font-size: 14px !important;
    border-radius: 12px !important;
  }

  /* Chart - Mobile */
  .chart-section-v3 {
    border-radius: 18px;
  }

  .bar-container {
    height: 26px;
  }

  .bar-value {
    font-size: 11px;
  }

  .service-bar .service-name {
    font-size: 13px;
  }

  /* Pending - Mobile */
  .pending-item {
    padding: 14px;
    border-radius: 12px;
  }
}

/* =========================== */
/* ANT OVERRIDES               */
/* =========================== */

.dash-card .ant-empty-description {
  color: #94a3b8;
  font-size: 14px;
}
@charset "UTF-8";
.rbc-btn {
  color: inherit;
  font: inherit;
  margin: 0;
}

button.rbc-btn {
  overflow: visible;
  text-transform: none;
  -webkit-appearance: button;
          appearance: button;
  cursor: pointer;
}

button[disabled].rbc-btn {
  cursor: not-allowed;
}

button.rbc-input::-moz-focus-inner {
  border: 0;
  padding: 0;
}

.rbc-calendar {
  box-sizing: border-box;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.rbc-m-b-negative-3 {
  margin-bottom: -3px;
}

.rbc-h-full {
  height: 100%;
}

.rbc-calendar *,
.rbc-calendar *:before,
.rbc-calendar *:after {
  box-sizing: inherit;
}

.rbc-abs-full, .rbc-row-bg {
  overflow: hidden;
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
}

.rbc-ellipsis, .rbc-show-more, .rbc-row-segment .rbc-event-content, .rbc-event-label {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.rbc-rtl {
  direction: rtl;
}

.rbc-off-range {
  color: #999999;
}

.rbc-off-range-bg {
  background: #e6e6e6;
}

.rbc-header {
  overflow: hidden;
  flex: 1 0;
  text-overflow: ellipsis;
  white-space: nowrap;
  padding: 0 3px;
  text-align: center;
  vertical-align: middle;
  font-weight: bold;
  font-size: 90%;
  min-height: 0;
  border-bottom: 1px solid #ddd;
}
.rbc-header + .rbc-header {
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-header + .rbc-header {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}
.rbc-header > a, .rbc-header > a:active, .rbc-header > a:visited {
  color: inherit;
  text-decoration: none;
}

.rbc-button-link {
  color: inherit;
  background: none;
  margin: 0;
  padding: 0;
  border: none;
  cursor: pointer;
  -webkit-user-select: text;
          user-select: text;
}

.rbc-row-content {
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  z-index: 4;
}

.rbc-row-content-scrollable {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.rbc-row-content-scrollable .rbc-row-content-scroll-container {
  height: 100%;
  overflow-y: scroll;
  -ms-overflow-style: none; /* IE and Edge */
  scrollbar-width: none; /* Firefox */
  -ms-overflow-style: none; /* IE and Edge */
  scrollbar-width: none; /* Firefox */
  /* Hide scrollbar for Chrome, Safari and Opera */
}
.rbc-row-content-scrollable .rbc-row-content-scroll-container::-webkit-scrollbar {
  display: none;
}

.rbc-today {
  background-color: #eaf6ff;
}

.rbc-toolbar {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: center;
  margin-bottom: 10px;
  font-size: 16px;
}
.rbc-toolbar .rbc-toolbar-label {
  flex-grow: 1;
  padding: 0 10px;
  text-align: center;
}
.rbc-toolbar button {
  color: #373a3c;
  display: inline-block;
  margin: 0;
  text-align: center;
  vertical-align: middle;
  background: none;
  background-image: none;
  border: 1px solid #ccc;
  padding: 0.375rem 1rem;
  border-radius: 4px;
  line-height: normal;
  white-space: nowrap;
}
.rbc-toolbar button:active, .rbc-toolbar button.rbc-active {
  background-image: none;
  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
  background-color: #e6e6e6;
  border-color: #adadad;
}
.rbc-toolbar button:active:hover, .rbc-toolbar button:active:focus, .rbc-toolbar button.rbc-active:hover, .rbc-toolbar button.rbc-active:focus {
  color: #373a3c;
  background-color: #d4d4d4;
  border-color: #8c8c8c;
}
.rbc-toolbar button:focus {
  color: #373a3c;
  background-color: #e6e6e6;
  border-color: #adadad;
}
.rbc-toolbar button:hover {
  color: #373a3c;
  cursor: pointer;
  background-color: #e6e6e6;
  border-color: #adadad;
}

.rbc-btn-group {
  display: inline-block;
  white-space: nowrap;
}
.rbc-btn-group > button:first-child:not(:last-child) {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.rbc-btn-group > button:last-child:not(:first-child) {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.rbc-rtl .rbc-btn-group > button:first-child:not(:last-child) {
  border-radius: 4px;
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}
.rbc-rtl .rbc-btn-group > button:last-child:not(:first-child) {
  border-radius: 4px;
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}
.rbc-btn-group > button:not(:first-child):not(:last-child) {
  border-radius: 0;
}
.rbc-btn-group button + button {
  margin-left: -1px;
}
.rbc-rtl .rbc-btn-group button + button {
  margin-left: 0;
  margin-right: -1px;
}
.rbc-btn-group + .rbc-btn-group, .rbc-btn-group + button {
  margin-left: 10px;
}

@media (max-width: 767px) {
  .rbc-toolbar {
    flex-direction: column;
  }
}
.rbc-event, .rbc-day-slot .rbc-background-event {
  border: none;
  box-sizing: border-box;
  box-shadow: none;
  margin: 0;
  padding: 2px 5px;
  background-color: #3174ad;
  border-radius: 5px;
  color: #fff;
  cursor: pointer;
  width: 100%;
  text-align: left;
}
.rbc-slot-selecting .rbc-event, .rbc-slot-selecting .rbc-day-slot .rbc-background-event, .rbc-day-slot .rbc-slot-selecting .rbc-background-event {
  cursor: inherit;
  pointer-events: none;
}
.rbc-event.rbc-selected, .rbc-day-slot .rbc-selected.rbc-background-event {
  background-color: #265985;
}
.rbc-event:focus, .rbc-day-slot .rbc-background-event:focus {
  outline: 5px auto #3b99fc;
}

.rbc-event-label {
  font-size: 80%;
}

.rbc-event-overlaps {
  box-shadow: -1px 1px 5px 0px rgba(51, 51, 51, 0.5);
}

.rbc-event-continues-prior {
  border-top-left-radius: 0;
  border-bottom-left-radius: 0;
}

.rbc-event-continues-after {
  border-top-right-radius: 0;
  border-bottom-right-radius: 0;
}

.rbc-event-continues-earlier {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
}

.rbc-event-continues-later {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.rbc-row {
  display: flex;
  flex-direction: row;
}

.rbc-row-segment {
  padding: 0 1px 1px 1px;
}
.rbc-selected-cell {
  background-color: rgba(0, 0, 0, 0.1);
}

.rbc-show-more {
  background-color: rgba(255, 255, 255, 0.3);
  z-index: 4;
  font-weight: bold;
  font-size: 85%;
  height: auto;
  line-height: normal;
  color: #3174ad;
}
.rbc-show-more:hover, .rbc-show-more:focus {
  color: #265985;
}

.rbc-month-view {
  position: relative;
  border: 1px solid #ddd;
  display: flex;
  flex-direction: column;
  flex: 1 0;
  width: 100%;
  user-select: none;
  -webkit-user-select: none;
  height: 100%;
}

.rbc-month-header {
  display: flex;
  flex-direction: row;
}

.rbc-month-row {
  display: flex;
  position: relative;
  flex-direction: column;
  flex: 1 0;
  flex-basis: 0px;
  overflow: hidden;
  height: 100%;
}
.rbc-month-row + .rbc-month-row {
  border-top: 1px solid #ddd;
}

.rbc-date-cell {
  flex: 1 1;
  min-width: 0;
  padding-right: 5px;
  text-align: right;
}
.rbc-date-cell.rbc-now {
  font-weight: bold;
}
.rbc-date-cell > a, .rbc-date-cell > a:active, .rbc-date-cell > a:visited {
  color: inherit;
  text-decoration: none;
}

.rbc-row-bg {
  display: flex;
  flex-direction: row;
  flex: 1 0;
  overflow: hidden;
  right: 1px;
}

.rbc-day-bg {
  flex: 1 0;
}
.rbc-day-bg + .rbc-day-bg {
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-day-bg + .rbc-day-bg {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}

.rbc-overlay {
  position: absolute;
  z-index: 5;
  border: 1px solid #e5e5e5;
  background-color: #fff;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.25);
  padding: 10px;
}
.rbc-overlay > * + * {
  margin-top: 1px;
}

.rbc-overlay-header {
  border-bottom: 1px solid #e5e5e5;
  margin: -10px -10px 5px -10px;
  padding: 2px 10px;
}

.rbc-agenda-view {
  display: flex;
  flex-direction: column;
  flex: 1 0;
  overflow: auto;
}
.rbc-agenda-view table.rbc-agenda-table {
  width: 100%;
  border: 1px solid #ddd;
  border-spacing: 0;
  border-collapse: collapse;
}
.rbc-agenda-view table.rbc-agenda-table tbody > tr > td {
  padding: 5px 10px;
  vertical-align: top;
}
.rbc-agenda-view table.rbc-agenda-table .rbc-agenda-time-cell {
  padding-left: 15px;
  padding-right: 15px;
  text-transform: lowercase;
}
.rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-agenda-view table.rbc-agenda-table tbody > tr > td + td {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}
.rbc-agenda-view table.rbc-agenda-table tbody > tr + tr {
  border-top: 1px solid #ddd;
}
.rbc-agenda-view table.rbc-agenda-table thead > tr > th {
  padding: 3px 5px;
  text-align: left;
  border-bottom: 1px solid #ddd;
}
.rbc-rtl .rbc-agenda-view table.rbc-agenda-table thead > tr > th {
  text-align: right;
}

.rbc-agenda-time-cell {
  text-transform: lowercase;
}
.rbc-agenda-time-cell .rbc-continues-after:after {
  content: " »";
}
.rbc-agenda-time-cell .rbc-continues-prior:before {
  content: "« ";
}

.rbc-agenda-date-cell,
.rbc-agenda-time-cell {
  white-space: nowrap;
}

.rbc-agenda-event-cell {
  width: 100%;
}

.rbc-time-column {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}
.rbc-time-column .rbc-timeslot-group {
  flex: 1 1;
}

.rbc-timeslot-group {
  border-bottom: 1px solid #ddd;
  min-height: 40px;
  display: flex;
  flex-flow: column nowrap;
}

.rbc-time-gutter,
.rbc-header-gutter {
  flex: none;
}

.rbc-label {
  padding: 0 5px;
}

.rbc-day-slot {
  position: relative;
}
.rbc-day-slot .rbc-events-container {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  margin-right: 10px;
  top: 0;
}
.rbc-day-slot .rbc-events-container.rbc-rtl {
  left: 10px;
  right: 0;
}
.rbc-day-slot .rbc-event, .rbc-day-slot .rbc-background-event {
  border: 1px solid #265985;
  display: flex;
  max-height: 100%;
  min-height: 20px;
  flex-flow: column wrap;
  align-items: flex-start;
  overflow: hidden;
  position: absolute;
}
.rbc-day-slot .rbc-background-event {
  opacity: 0.75;
}
.rbc-day-slot .rbc-event-label {
  flex: none;
  padding-right: 5px;
  width: auto;
}
.rbc-day-slot .rbc-event-content {
  width: 100%;
  flex: 1 1;
  word-wrap: break-word;
  line-height: 1;
  height: 100%;
  min-height: 1em;
}
.rbc-day-slot .rbc-time-slot {
  border-top: 1px solid #f7f7f7;
}

.rbc-time-view-resources .rbc-time-gutter,
.rbc-time-view-resources .rbc-time-header-gutter {
  position: -webkit-sticky;
  position: sticky;
  left: 0;
  background-color: white;
  border-right: 1px solid #ddd;
  z-index: 10;
  margin-right: -1px;
}
.rbc-time-view-resources .rbc-time-header {
  overflow: hidden;
}
.rbc-time-view-resources .rbc-time-header-content {
  min-width: auto;
  flex: 1 0;
  flex-basis: 0px;
}
.rbc-time-view-resources .rbc-time-header-cell-single-day {
  display: none;
}
.rbc-time-view-resources .rbc-day-slot {
  min-width: 140px;
}
.rbc-time-view-resources .rbc-header,
.rbc-time-view-resources .rbc-day-bg {
  width: 140px;
  flex: 1 1;
  flex-basis: 0 px;
}

.rbc-time-header-content + .rbc-time-header-content {
  margin-left: -1px;
}

.rbc-time-slot {
  flex: 1 0;
}
.rbc-time-slot.rbc-now {
  font-weight: bold;
}

.rbc-day-header {
  text-align: center;
}

.rbc-slot-selection {
  z-index: 10;
  position: absolute;
  background-color: rgba(0, 0, 0, 0.5);
  color: white;
  font-size: 75%;
  width: 100%;
  padding: 3px;
}

.rbc-slot-selecting {
  cursor: move;
}

.rbc-time-view {
  display: flex;
  flex-direction: column;
  flex: 1 1;
  width: 100%;
  border: 1px solid #ddd;
  min-height: 0;
}
.rbc-time-view .rbc-time-gutter {
  white-space: nowrap;
  text-align: right;
}
.rbc-time-view .rbc-allday-cell {
  box-sizing: content-box;
  width: 100%;
  height: 100%;
  position: relative;
}
.rbc-time-view .rbc-allday-cell + .rbc-allday-cell {
  border-left: 1px solid #ddd;
}
.rbc-time-view .rbc-allday-events {
  position: relative;
  z-index: 4;
}
.rbc-time-view .rbc-row {
  box-sizing: border-box;
  min-height: 20px;
}

.rbc-time-header {
  display: flex;
  flex: 0 0 auto;
  flex-direction: row;
}
.rbc-time-header.rbc-overflowing {
  border-right: 1px solid #ddd;
}
.rbc-rtl .rbc-time-header.rbc-overflowing {
  border-right-width: 0;
  border-left: 1px solid #ddd;
}
.rbc-time-header > .rbc-row:first-child {
  border-bottom: 1px solid #ddd;
}
.rbc-time-header > .rbc-row.rbc-row-resource {
  border-bottom: 1px solid #ddd;
}

.rbc-time-header-cell-single-day {
  display: none;
}

.rbc-time-header-content {
  flex: 1 1;
  display: flex;
  min-width: 0;
  flex-direction: column;
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-time-header-content {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}
.rbc-time-header-content > .rbc-row.rbc-row-resource {
  border-bottom: 1px solid #ddd;
  flex-shrink: 0;
}

.rbc-time-content {
  display: flex;
  flex: 1 0;
  align-items: flex-start;
  width: 100%;
  border-top: 2px solid #ddd;
  overflow-y: auto;
  position: relative;
}
.rbc-time-content > .rbc-time-gutter {
  flex: none;
}
.rbc-time-content > * + * > * {
  border-left: 1px solid #ddd;
}
.rbc-rtl .rbc-time-content > * + * > * {
  border-left-width: 0;
  border-right: 1px solid #ddd;
}
.rbc-time-content > .rbc-day-slot {
  width: 100%;
  user-select: none;
  -webkit-user-select: none;
}

.rbc-current-time-indicator {
  position: absolute;
  z-index: 3;
  left: 0;
  right: 0;
  height: 1px;
  background-color: #74ad31;
  pointer-events: none;
}

.rbc-resource-grouping.rbc-time-header-content {
  display: flex;
  flex-direction: column;
}
.rbc-resource-grouping .rbc-row .rbc-header {
  width: 141px;
}


/* 🚨 FORCE ABSOLUE POUR LES EMPLOYÉS */
.rbc-event.with-employee {
  position: relative;
}

/* Désactivé: on utilise box-shadow interne pour éviter tout déplacement */
.rbc-event.with-employee .employee-color-bar {
  display: none;
}

/* Variables de la charte graphique */
.calendar-container {
  /* Couleurs de base Rintintin */
  --brown: #A5765C;
  --brown-light: rgba(165, 118, 92, 0.15);
  --brown-lighter: rgba(165, 118, 92, 0.05);
  --gold: #F6C674;
  --gold-light: rgba(246, 198, 116, 0.2);
  --gold-lighter: rgba(246, 198, 116, 0.05);
  --peach: #EE9F99;
  --peach-light: rgba(238, 159, 153, 0.2);
  --orange: #FFA351;
  --orange-light: rgba(255, 163, 81, 0.2);
  --light-gray: #F6F2EF;
  --white: #FFFFFF;
  --black: #000000;
  --text-color: #333333;

  /* Nouvelles couleurs douces pour les événements */
  --sage: #8BAB8D;
  --sage-light: rgba(139, 171, 141, 0.2);
  --sage-dark: #7A9A7C;

  --lavender: #A593C2;
  --lavender-light: rgba(165, 147, 194, 0.2);
  --lavender-dark: #8A7AAC;

  --sky: #77A6B6;
  --sky-light: rgba(119, 166, 182, 0.2);
  --sky-dark: #5D8A9A;

  /* Rouge plus agréable pour les indisponibilités */
  --soft-red: #E07A7A;
  --soft-red-light: rgba(224, 122, 122, 0.2);
  --soft-red-dark: #C96262;

  /* Violet pour les indisponibilités (cohérent avec la barre de couleur) */
  --unavailable-purple: #722ED1;
  --unavailable-purple-light: rgba(114, 46, 209, 0.15);
  --unavailable-purple-dark: #531DAB;

  /* Vert calme pour les réservations confirmées */
  --calm-green: #7FB069;
  --calm-green-light: rgba(127, 176, 105, 0.2);
  --calm-green-dark: #6A9757;

  --mint: #9ACDAB;
  --mint-light: rgba(154, 205, 171, 0.2);
  --mint-dark: #7BB38C;

  --coral: #F3A683;
  --coral-light: rgba(243, 166, 131, 0.2);
  --coral-dark: #E8926F;

  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 10px 30px rgba(0, 0, 0, 0.05);
  --shadow-subtle: 0 5px 15px rgba(165, 118, 92, 0.08);
  --shadow-hover: 0 12px 25px rgba(165, 118, 92, 0.15);
}

.calendar-planning-component,
.calendar-container {
  padding: 24px;
  background-color: var(--white);
  border-radius: var(--border-radius);
  box-shadow: var(--shadow);
  font-family: var(--font-family);
  margin-bottom: 24px;
}

/* Masquer les heures automatiques en haut des événements */
.rbc-event-label {
  display: none !important;
}

.rbc-calendar {
  border: none;
  border-radius: var(--border-radius);
  font-family: var(--font-family);
  overflow: hidden;
  background-color: var(--white);
  box-shadow: var(--shadow-subtle);
}

/* Barre du haut (navigation, titres) */
.rbc-toolbar {
  margin-bottom: 20px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 15px 20px;
  background: var(--light-gray);
  border-radius: var(--border-radius) var(--border-radius) 0 0;
  position: relative;
}

.rbc-toolbar::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 60%;
  height: 3px;
  background: linear-gradient(to right, var(--gold-lighter), var(--gold), var(--gold-lighter));
  border-radius: 3px;
}

.rbc-btn-group {
  display: flex;
  gap: 8px;
}

.rbc-btn-group button {
  background-color: var(--white);
  border: 1px solid rgba(165, 118, 92, 0.2);
  border-radius: 30px;
  margin: 0;
  padding: 8px 16px;
  color: var(--brown);
  font-weight: 500;
  font-size: 0.95rem;
  transition: all 0.3s ease;
  cursor: pointer;
  box-shadow: var(--shadow-subtle);
}

.rbc-btn-group button:hover {
  background-color: var(--gold-lighter);
  transform: translateY(-1px);
  box-shadow: var(--shadow-hover);
  border-color: var(--gold);
}

.rbc-btn-group button.rbc-active {
  background: var(--gold-light);
  color: var(--brown);
  border-color: var(--gold);
  box-shadow: 0 3px 10px rgba(246, 198, 116, 0.25);
  font-weight: 600;
}

.rbc-toolbar-label {
  font-weight: 700;
  font-size: 1.4rem;
  color: var(--brown);
  position: relative;
  padding-bottom: 5px;
}

/* Vue agenda */
.rbc-agenda-view table.rbc-agenda-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: var(--shadow-subtle);
  background-color: var(--white);
}

.rbc-agenda-view td,
.rbc-agenda-view th {
  border: none;
  border-bottom: 1px solid rgba(165, 118, 92, 0.08);
  padding: 14px 18px;
}

.rbc-agenda-view th {
  background-color: var(--gold-lighter);
  color: var(--brown);
  font-weight: 600;
  font-size: 0.9rem;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.rbc-agenda-view tr:last-child td {
  border-bottom: none;
}

.rbc-agenda-view td {
  transition: background-color 0.2s ease;
}

.rbc-agenda-view tr:hover td {
  background-color: var(--light-gray);
}

/* Vue du temps */
.rbc-time-view {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--shadow-subtle);
  border: 1px solid rgba(165, 118, 92, 0.05);
}

.rbc-time-view .rbc-time-header {
  background-color: var(--light-gray);
  border-bottom: 1px solid rgba(165, 118, 92, 0.08);
}

.rbc-time-view .rbc-time-content {
  border-top: 1px solid rgba(165, 118, 92, 0.08);
}

.rbc-time-view .rbc-header {
  padding: 12px 8px;
  font-weight: 600;
  color: var(--brown);
  border-bottom: 1px solid rgba(165, 118, 92, 0.08);
  text-transform: capitalize;
  font-size: 0.9rem;
}

.rbc-time-view .rbc-header.rbc-today {
  background-color: var(--gold-lighter);
  color: var(--brown);
  font-weight: 700;
  position: relative;
}

.rbc-time-view .rbc-header.rbc-today::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 2px;
  background-color: var(--gold);
  border-radius: 1px;
}

.rbc-time-view .rbc-time-gutter {
  color: var(--brown);
  font-weight: 500;
}

/* Labels des heures */
.rbc-time-gutter .rbc-label {
  color: var(--brown);
  font-size: 0.85rem;
  font-weight: 500;
  padding: 5px;
}

.rbc-timeslot-group {
  border-bottom: 1px solid rgba(165, 118, 92, 0.05);
  min-height: 50px;
  min-height: var(--calendar-slot-height, 50px);
}

/* Mise en évidence du jour actuel */
.rbc-time-view .rbc-today,
.rbc-day-slot.rbc-today {
  background-color: var(--gold-lighter);
  border: none !important;
  position: relative;
}

/* Pour la colonne du jour actuel */
.rbc-time-header-cell.rbc-today {
  border: none !important;
  background-color: var(--gold-lighter) !important;
  position: relative;
}

/* Arrière-plan des jours */
.rbc-day-bg {
  background-color: var(--white);
  transition: background-color 0.2s ease;
}

/* Survol d'une cellule */
.rbc-day-bg:hover {
  background-color: rgba(246, 244, 241, 0.8);
}

.rbc-today {
  background-color: var(--gold-lighter);
}

/* Style pour les événements */
.rbc-event {
  border-radius: 12px;
  padding: 8px 10px;
  font-size: 0.95rem;
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08);
  transition: all 0.2s ease;
  border: none;
  /* Retiré !important pour permettre au borderLeft inline de fonctionner */
  margin: 2px 1px;
  line-height: 1.4;
  white-space: normal;
  word-wrap: break-word;
}

/* Surligner l'event au survol */
.rbc-event:hover {
  opacity: 1;
  transform: translateY(-2px);
  box-shadow: 0 5px 12px rgba(0, 0, 0, 0.12);
  z-index: 10;
}

.rbc-selected {
  box-shadow: 0 0 0 2px var(--gold) !important;
}

/* Style pour les événements - avec nouvelles couleurs */
/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.rbc-event.event {
  background: linear-gradient(45deg, var(--sky), rgba(135, 190, 205, 0.95));
  color: white;
  /* border-left retiré pour permettre à la barre colorée inline de fonctionner */
  border-bottom: 3px solid var(--sky-dark);
}

/* Style pour les réservations - utilisation du vert calme */
/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.rbc-event.booking {
  background: linear-gradient(45deg, var(--calm-green), rgba(143, 186, 125, 0.95));
  color: white;
  /* border-left retiré pour permettre à la barre colorée inline de fonctionner */
  border-bottom: 3px solid var(--calm-green-dark);
}

/* Style pour les indisponibilités - fond rouge par défaut, barre violette (statut) */
/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.rbc-event.unavailability {
  background: linear-gradient(45deg, var(--soft-red), rgba(233, 150, 150, 0.95));
  color: white;
  /* border-left retiré pour permettre à la barre colorée inline de fonctionner */
  border-bottom: 3px solid var(--soft-red-dark);
}

/* Style pour les réservations en attente */
/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.rbc-event.booking.pending {
  background: linear-gradient(45deg, var(--gold), rgba(248, 210, 145, 0.95));
  color: var(--text-color);
  border-bottom: 3px solid rgba(229, 185, 111, 0.7);
}

/* Style pour les réservations confirmées */
/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.rbc-event.booking.confirmed {
  background: linear-gradient(45deg, var(--calm-green), rgba(143, 186, 125, 0.95));
  color: white;
  border-bottom: 3px solid var(--calm-green-dark);
}

/* Style pour les réservations refusées */
/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.rbc-event.booking.declined {
  background: linear-gradient(45deg, var(--soft-red), rgba(233, 150, 150, 0.95));
  color: white;
  border-bottom: 3px solid var(--soft-red-dark);
}

/* Style pour les réservations annulées */
/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.rbc-event.booking.cancelled {
  background: linear-gradient(45deg, var(--peach), rgba(242, 179, 174, 0.95));
  color: white;
  border-bottom: 3px solid rgba(219, 136, 130, 0.7);
  opacity: 0.8;
}

/* Permettre au background inline de prendre le dessus sur le background gradient */
/* Note: Le style inline background écrase automatiquement le gradient CSS */
.rbc-event.has-service-color {
  /* Le style inline background sera appliqué et écrasera le gradient */
}

/* Style pour les événements spéciaux qu'on pourrait ajouter */
.rbc-event.special-event {
  background: linear-gradient(45deg, var(--lavender), rgba(180, 165, 204, 0.95));
  color: white;
  /* border-left retiré pour permettre à la barre colorée inline de fonctionner */
  border-bottom: 3px solid var(--lavender-dark);
}

.rbc-event.workshop {
  background: linear-gradient(45deg, var(--mint), rgba(170, 215, 185, 0.95));
  color: white;
  /* border-left retiré pour permettre à la barre colorée inline de fonctionner */
  border-bottom: 3px solid var(--mint-dark);
}

.rbc-event.group-session {
  background: linear-gradient(45deg, var(--coral), rgba(246, 185, 155, 0.95));
  color: white;
  /* border-left retiré pour permettre à la barre colorée inline de fonctionner */
  border-bottom: 3px solid var(--coral-dark);
}

/* Style des items de légende avec les nouvelles couleurs */
.event-item.event {
  background-color: var(--sky-light);
  border-left: 4px solid var(--sky);
}

.event-item.booking {
  background-color: var(--calm-green-light);
  border-left: 4px solid var(--calm-green);
}

.event-item.unavailability {
  background-color: var(--soft-red-light);
  border-left: 4px solid var(--soft-red);
}

.event-item.special-event {
  background-color: var(--lavender-light);
  border-left: 4px solid var(--lavender);
}

.event-item.workshop {
  background-color: var(--mint-light);
  border-left: 4px solid var(--mint);
}

.event-item.group-session {
  background-color: var(--coral-light);
  border-left: 4px solid var(--coral);
}

/* Style spécifique pour les indisponibilités all-day */
.unavailability-allday {
  background: linear-gradient(45deg, var(--soft-red), rgba(233, 150, 150, 0.95)) !important;
  color: white !important;
  font-weight: 600 !important;
  border: none !important;
  text-align: center !important;
  border-radius: 10px !important;
  box-shadow: 0 4px 10px rgba(224, 122, 122, 0.3) !important;
  border-bottom: 3px solid var(--soft-red-dark) !important;
}

/* Style pour les cellules "Off Range" */
.rbc-off-range-bg {
  background-color: rgba(0, 0, 0, 0.02);
}

/* Vue Month */
.rbc-month-view {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--shadow-subtle);
  border: 1px solid rgba(165, 118, 92, 0.05);
}

.rbc-month-header {
  background-color: var(--light-gray);
}

.rbc-month-row {
  border-top: 1px solid rgba(165, 118, 92, 0.05);
}

.rbc-day-bg+.rbc-day-bg {
  border-left: 1px solid rgba(165, 118, 92, 0.05);
}

.rbc-header+.rbc-header {
  border-left: 1px solid rgba(165, 118, 92, 0.08);
}

.rbc-month-row+.rbc-month-row {
  border-top: 1px solid rgba(165, 118, 92, 0.08);
}

.rbc-date-cell {
  padding: 5px 8px;
  text-align: center;
  font-weight: 500;
  color: var(--text-color);
}

.rbc-date-cell.rbc-now {
  font-weight: 700;
  color: var(--brown);
}

.rbc-date-cell>a {
  color: inherit;
  text-decoration: none;
}

/* Effet sur les jours du mois */
.rbc-month-view .rbc-day-bg:hover {
  background-color: var(--gold-lighter);
}

/* Effet "patte de chien" sur le jour actuel en vue mois */
.rbc-month-view .rbc-day-bg.rbc-today {
  position: relative;
  overflow: hidden;
}

.rbc-month-view .rbc-day-bg.rbc-today::after {
  content: "";
  position: absolute;
  bottom: 5px;
  right: 5px;
  width: 16px;
  height: 16px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 512 512%27%3E%3Cpath fill=%27%23F6C674%27 d=%27M256 224c-79.41 0-192 122.76-192 200.25 0 34.9 26.81 55.75 71.74 55.75 48.84 0 81.09-25.08 120.26-25.08 39.51 0 71.85 25.08 120.26 25.08 44.93 0 71.74-20.85 71.74-55.75C448 346.76 335.41 224 256 224zm-147.28-12.61c-10.4-34.65-42.44-57.09-71.56-50.13-29.12 6.96-44.29 40.69-33.89 75.34 10.4 34.65 42.44 57.09 71.56 50.13 29.12-6.96 44.29-40.69 33.89-75.34zm84.72-20.78c30.94-8.14 46.42-49.94 34.58-93.36s-46.52-72.01-77.46-63.87-46.42 49.94-34.58 93.36c11.84 43.42 46.53 72.02 77.46 63.87zm281.39-29.34c-29.12-6.96-61.15 15.48-71.56 50.13-10.4 34.65 4.77 68.38 33.89 75.34 29.12 6.96 61.15-15.48 71.56-50.13 10.4-34.65-4.77-68.38-33.89-75.34zm-156.27 29.34c30.94 8.14 65.62-20.45 77.46-63.87 11.84-43.42-3.64-85.21-34.58-93.36s-65.62 20.45-77.46 63.87c-11.84 43.42 3.64 85.22 34.58 93.36z%27%3E%3C/path%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: center;
  opacity: 0.5;
}

/* Adaptation mobile */
@media (max-width: 768px) {

  .calendar-planning-component,
  .calendar-container {
    padding: 8px;
    margin-bottom: 8px;
  }

  /* Toolbar compacte et collante */
  .rbc-toolbar {
    flex-direction: column;
    gap: 4px;
    padding: 6px 4px;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 2;
    background: var(--light-gray);
    border-radius: 0;
    margin-bottom: 8px;
  }

  /* Réduire l'effet after de la toolbar sur mobile */
  .rbc-toolbar::after {
    height: 2px;
    width: 40%;
  }

  .rbc-toolbar-label {
    order: -1;
    margin-bottom: 4px;
    font-size: 1rem;
  }

  .rbc-btn-group {
    justify-content: center;
    flex-wrap: wrap;
    gap: 3px;
  }

  .rbc-btn-group button {
    padding: 4px 8px;
    font-size: 0.75rem;
    min-width: auto;
    height: 28px;
    border-radius: 20px;
    font-weight: 500;
  }

  /* Réduire spécifiquement les boutons de navigation */
  .rbc-toolbar button.rbc-btn-primary {
    padding: 4px 6px;
    font-size: 0.7rem;
  }

  /* Boutons Précédent/Aujourd'hui/Suivant */
  .rbc-toolbar .rbc-btn-group:first-child button {
    padding: 3px 8px;
    font-size: 0.7rem;
  }

  /* Boutons de vue (Mois/Semaine/Jour/Agenda) */
  .rbc-toolbar .rbc-btn-group:last-child button {
    padding: 4px 10px;
    font-size: 0.72rem;
  }

  /* Améliorer la visibilité du bouton actif sur mobile */
  .rbc-toolbar button.rbc-active {
    background: var(--gold);
    color: var(--white);
    font-weight: 600;
    box-shadow: 0 2px 6px rgba(246, 198, 116, 0.4);
  }

  /* Améliorer le hover sur mobile (pour les appareils qui le supportent) */
  .rbc-toolbar button:active {
    transform: scale(0.95);
    transition: transform 0.1s ease;
  }

  /* Gouttière avec largeur automatique */
  .rbc-time-gutter {
    width: auto;
    min-width: 50px;
  }

  .rbc-time-gutter .rbc-label {
    font-size: 0.75rem;
    padding: 2px 4px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    line-height: 1.2;
    font-weight: 500;
    color: var(--brown) !important;
    background: transparent;
    border: none;
    white-space: nowrap;
  }

  .rbc-timeslot-group {
    min-height: 50px;
  }

  .rbc-time-slot {
    min-height: 25px;
  }



  .rbc-time-view .rbc-header {
    padding: 8px 6px;
    font-size: 0.9rem;
  }

  .rbc-event {
    padding: 6px 6px;
    font-size: 0.85rem;
    border-radius: 6px;
    line-height: 1.3;
  }

  /* Utiliser plus de hauteur disponible pour le calendrier */
  .calendar-container .rbc-calendar {
    height: 75vh !important;
    min-height: 500px;
  }

  /* Permettre le scroll pour voir toutes les heures */
  .rbc-time-view .rbc-time-content {
    overflow-y: auto !important;
  }

  /* Retirer toute contrainte de hauteur sur les slots */
  .rbc-time-view .rbc-time-slots {
    height: auto !important;
  }

  /* Corrections supplémentaires pour l'alignement mobile */
  .rbc-time-view .rbc-time-header {
    display: flex;
    align-items: stretch;
  }

  .rbc-time-view .rbc-time-header .rbc-time-header-gutter {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  /* Assurer que les colonnes d'événements sont parfaitement alignées */
  .rbc-day-slot {
    position: relative;
  }

  /* Améliorer la visibilité des lignes de séparation en mobile */
  .rbc-timeslot-group:nth-child(2n) {
    border-bottom: 2px solid rgba(165, 118, 92, 0.08);
  }



  .ReactModal__Content {
    padding: 20px !important;
    width: 92% !important;
  }
}

.event-badge {
  background-color: rgba(255, 255, 255, 0.3);
  padding: 2px 6px;
  border-radius: 20px;
  font-size: 0.75rem;
  margin-right: 4px;
  font-weight: 500;
}

/* Styles pour la modale */
.ReactModal__Overlay {
  background-color: rgba(0, 0, 0, 0.4) !important;
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  z-index: 9999 !important;
  transition: opacity 0.3s ease !important;
  opacity: 0;
}

.ReactModal__Overlay--after-open {
  opacity: 1;
}

.ReactModal__Overlay--before-close {
  opacity: 0;
}

.ReactModal__Content {
  border: none !important;
  border-radius: 24px !important;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15) !important;
  opacity: 0;
  transform: scale(0.9) translate(-50%, -50%) !important;
  transition: all 0.3s ease !important;
  padding: 30px !important;
}

.ReactModal__Content--after-open {
  opacity: 1;
  transform: scale(1) translate(-50%, -50%) !important;
}

.ReactModal__Content--before-close {
  opacity: 0;
  transform: scale(0.9) translate(-50%, -50%) !important;
}

.ReactModal__Content h2 {
  color: var(--brown);
  margin-top: 0;
  margin-bottom: 24px;
  padding-bottom: 12px;
  border-bottom: 2px solid var(--gold);
  font-weight: 700;
  font-size: 1.5rem;
  text-align: center;
}

.ReactModal__Content p {
  margin: 10px 0;
  line-height: 1.7;
  font-size: 1rem;
}

.ReactModal__Content strong {
  color: var(--brown);
  font-weight: 600;
}

.ReactModal__Content hr {
  border: none;
  border-top: 1px solid rgba(165, 118, 92, 0.1);
  margin: 24px 0;
}

/* Style pour les boutons */
.ReactModal__Content .ant-btn {
  border-radius: 30px;
  font-weight: 600;
  transition: all 0.25s ease;
  margin-left: 10px;
  padding: 6px 18px;
  height: auto;
  font-size: 0.95rem;
}

.ReactModal__Content .ant-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
}

.ReactModal__Content .ant-btn-primary {
  background: linear-gradient(to right, var(--brown), #b5866b);
  border-color: var(--brown);
}

.ReactModal__Content .ant-btn-primary:hover {
  background: linear-gradient(to right, #b5866b, var(--brown));
  border-color: #b5866b;
}

/* Liste d'événements */
.event-item {
  padding: 14px;
  border-radius: 16px;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 12px;
  transition: all 0.25s ease;
  background-color: var(--light-gray);
}

.event-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}

.event-time {
  font-weight: 600;
  font-size: 0.9rem;
  color: var(--brown);
  white-space: nowrap;
  background-color: rgba(255, 255, 255, 0.7);
  padding: 4px 10px;
  border-radius: 20px;
}

.event-title {
  flex: 1 1;
  font-weight: 500;
  color: var(--text-color);
}

.event-participants {
  font-size: 0.8em;
  background-color: rgba(255, 255, 255, 0.6);
  color: var(--brown);
  padding: 2px 8px;
  border-radius: 20px;
  margin-left: 6px;
  font-weight: 500;
}

/* Liste des participants */
.attendees-list {
  list-style: none;
  padding: 0;
  margin: 20px 0;
  background-color: var(--light-gray);
  border-radius: 16px;
  overflow: hidden;
}

.attendee-item {
  padding: 15px 18px;
  border-bottom: 1px solid rgba(165, 118, 92, 0.08);
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: background-color 0.2s ease;
}

.attendee-item:last-child {
  border-bottom: none;
}

.attendee-item:hover {
  background-color: rgba(246, 198, 116, 0.1);
}

.attendee-name {
  font-weight: 600;
  color: var(--brown);
}

.attendee-email {
  color: #666;
  font-size: 0.9em;
}

/* Style pour les créneaux disponibles */
.rbc-time-slot.available-slot {
  background-color: rgba(92, 184, 92, 0.1);
  border-color: rgba(92, 184, 92, 0.05);
  position: relative;
}

.rbc-time-slot.available-slot::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 3px;
  background-color: rgba(92, 184, 92, 0.3);
}

/* Styles pour les événements all-day */
.rbc-allday-cell {
  background-color: var(--light-gray);
  border-bottom: 1px solid rgba(165, 118, 92, 0.1);
  padding: 4px;
}

.rbc-allday-cell .rbc-event {
  margin: 2px 0;
  padding: 4px 8px;
  border-radius: 10px;
}

/* Ajout de la légende du calendrier */
.calendar-legend {
  margin-top: 25px;
  padding: 15px 20px;
  background-color: var(--white);
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-subtle);
  margin-bottom: 30px;
}

.calendar-legend-title {
  font-weight: 700;
  font-size: 1.1rem;
  color: var(--brown);
  margin-bottom: 15px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(165, 118, 92, 0.1);
}

.calendar-legend-items {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

.calendar-legend-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  border-radius: 8px;
  background-color: var(--light-gray);
  transition: all 0.2s ease;
}

.calendar-legend-item:hover {
  transform: translateY(-2px);
  box-shadow: var(--shadow-subtle);
}

.calendar-legend-color {
  width: 16px;
  height: 16px;
  border-radius: 4px;
}

.calendar-legend-color.event {
  background: linear-gradient(45deg, var(--sky), rgba(135, 190, 205, 0.95));
  box-shadow: 0 2px 4px rgba(119, 166, 182, 0.3);
}

.calendar-legend-color.booking {
  background: linear-gradient(45deg, var(--calm-green), rgba(143, 186, 125, 0.95));
  box-shadow: 0 2px 4px rgba(127, 176, 105, 0.3);
}

.calendar-legend-color.booking-pending {
  background: linear-gradient(45deg, var(--gold), rgba(248, 210, 145, 0.95));
  box-shadow: 0 2px 4px rgba(246, 198, 116, 0.3);
}

.calendar-legend-color.booking-confirmed {
  background: linear-gradient(45deg, var(--calm-green), rgba(143, 186, 125, 0.95));
  box-shadow: 0 2px 4px rgba(127, 176, 105, 0.3);
}

.calendar-legend-color.unavailability {
  background: linear-gradient(45deg, var(--soft-red), rgba(233, 150, 150, 0.95));
  box-shadow: 0 2px 4px rgba(224, 122, 122, 0.3);
}

.calendar-legend-color.availability {
  background-color: rgba(40, 167, 69, 0.15);
  border: 1px solid rgba(40, 167, 69, 0.3);
  box-shadow: 0 2px 4px rgba(40, 167, 69, 0.1);
}

.calendar-legend-color.employee-availability {
  background-color: rgba(54, 162, 235, 0.15);
  border: 1px solid rgba(54, 162, 235, 0.3);
  box-shadow: 0 2px 4px rgba(54, 162, 235, 0.1);
}

.calendar-legend-color.special-event {
  display: none;
}

.calendar-legend-color.personal-event {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  box-shadow: 0 2px 4px rgba(102, 126, 234, 0.3);
}

.calendar-legend-text {
  font-size: 0.9rem;
  font-weight: 500;
  color: var(--text-color);
}

/* Adaptation mobile pour la légende */
@media (max-width: 768px) {
  .calendar-legend-items {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 10px;
    gap: 10px;
  }

  .calendar-legend-item {
    padding: 6px 10px;
  }
}

.booking-event-content {
  display: flex;
  flex-direction: column;
  height: 100%;
  justify-content: flex-start;
  min-height: 48px;
  /* ou adapte selon la taille de la carte */
  position: relative;
}

.booking-time {
  margin-top: auto;
  font-size: 0.8em;
  color: #fff;
  opacity: 0.85;
  text-align: right;
  padding-top: 4px;
}

/* Styles pour les informations d'équipe */
.team-calendar-info {
  display: inline-flex;
  align-items: center;
  background-color: rgba(54, 162, 235, 0.1);
  border: 1px solid rgba(54, 162, 235, 0.2);
  border-radius: 20px;
  padding: 4px 12px;
  margin-left: 10px;
  font-size: 0.85rem;
}

.team-info-header {
  display: flex;
  align-items: center;
  gap: 6px;
}

.team-icon {
  font-size: 0.9rem;
}

.team-text {
  font-weight: 500;
  color: var(--text-color);
}

@media (max-width: 768px) {
  .team-calendar-info {
    margin-left: 0;
    margin-top: 4px;
    font-size: 0.8rem;
    padding: 3px 10px;
  }
}

/* Styles pour la modal moderne */
.modern-event-modal {
  max-width: 800px !important;
  width: 90% !important;
  max-height: 90vh !important;
  overflow-y: auto !important;
  border-radius: 16px !important;
  padding: 0 !important;
  background: var(--white) !important;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15) !important;
}

.modern-event-modal-overlay {
  background-color: rgba(0, 0, 0, 0.6) !important;
  -webkit-backdrop-filter: blur(8px) !important;
          backdrop-filter: blur(8px) !important;
  z-index: 10000 !important;
}

.modern-event-details {
  padding: 0;
  border-radius: 16px;
  overflow: hidden;
}

.modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 32px;
  background: linear-gradient(135deg, var(--gold-lighter), var(--light-gray));
  border-bottom: 1px solid rgba(165, 118, 92, 0.1);
}

.modal-header h3 {
  margin: 0;
  color: var(--brown);
  font-weight: 700;
  font-size: 1.5rem;
}

.close-button {
  color: var(--brown) !important;
  font-size: 20px !important;
  padding: 8px !important;
  border-radius: 50% !important;
  transition: all 0.2s ease !important;
}

.close-button:hover {
  background-color: rgba(165, 118, 92, 0.1) !important;
  transform: scale(1.1) !important;
}

.modal-content {
  padding: 32px;
}

.booking-main-info {
  display: flex;
  gap: 24px;
  margin-bottom: 24px;
}

.booking-photos {
  display: flex;
  gap: 12px;
  flex-shrink: 0;
}

.user-photo-container,
.animal-photo-container {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid var(--gold);
  box-shadow: 0 4px 12px rgba(246, 198, 116, 0.3);
}

.user-photo,
.animal-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.booking-details {
  flex: 1 1;
}

.event-info {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding: 12px 16px;
  background-color: var(--light-gray);
  border-radius: 12px;
  border-left: 4px solid var(--gold);
}

.event-info:last-child {
  margin-bottom: 0;
}

.payment-info {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
  padding: 16px;
  background: linear-gradient(135deg, rgba(82, 196, 26, 0.05), rgba(82, 196, 26, 0.1));
  border-radius: 12px;
  border-left: 4px solid #52c41a;
}

.payment-status {
  font-size: 1rem;
  font-weight: 600;
}

.client-message {
  margin-top: 16px;
  padding: 16px;
  background-color: var(--light-gray);
  border-radius: 12px;
  border-left: 4px solid var(--gold);
}

.event-time {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 24px;
  padding: 16px 20px;
  background: linear-gradient(135deg, var(--gold-lighter), rgba(246, 198, 116, 0.1));
  border-radius: 12px;
  border: 1px solid var(--gold);
}

.event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
  padding-top: 24px;
  border-top: 1px solid rgba(165, 118, 92, 0.1);
}

.event-attendees {
  margin-top: 24px;
  padding: 20px;
  background-color: var(--light-gray);
  border-radius: 12px;
  border-left: 4px solid var(--sky);
}

.attendees-list {
  list-style: none;
  padding: 0;
  margin: 16px 0 0 0;
}

.attendee-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  margin-bottom: 8px;
  background-color: var(--white);
  border-radius: 8px;
  border: 1px solid rgba(165, 118, 92, 0.1);
  transition: all 0.2s ease;
}

.attendee-item:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-color: var(--gold);
}

.attendee-item:last-child {
  margin-bottom: 0;
}

.attendee-name {
  font-weight: 600;
  color: var(--brown);
  font-size: 1rem;
}

.attendee-email {
  color: #666;
  font-size: 0.9rem;
}

/* Responsive pour la modal moderne */
@media (max-width: 768px) {
  .modern-event-modal {
    width: 95% !important;
    max-height: 95vh !important;
  }

  .modal-header {
    padding: 16px 20px;
  }

  .modal-header h3 {
    font-size: 1.2rem;
  }

  .modal-content {
    padding: 20px;
  }

  .booking-main-info {
    flex-direction: column;
    gap: 16px;
  }

  .booking-photos {
    justify-content: center;
  }

  .user-photo-container,
  .animal-photo-container {
    width: 50px;
    height: 50px;
  }

  .event-info {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .event-actions {
    flex-direction: column;
  }

  .event-actions .ant-btn {
    width: 100%;
    margin: 4px 0;
  }
}
/* Styles pour les contrôles de densité */
.density-controls {
    display: flex;
    gap: 4px;
    align-items: center;
    border-left: 1px solid rgba(0, 0, 0, 0.1);
    padding-left: 12px;
    margin-left: 12px;
}

.density-controls .ant-btn {
    border-radius: 6px;
    transition: all 0.2s ease;
}

.density-controls .ant-btn-primary {
    background: linear-gradient(45deg, #A5765C, #b5866b);
    border-color: #A5765C;
    box-shadow: 0 2px 4px rgba(165, 118, 92, 0.2);
}

.density-controls .ant-btn-primary:hover {
    background: linear-gradient(45deg, #b5866b, #c5967b);
    box-shadow: 0 2px 6px rgba(165, 118, 92, 0.3);
}

.density-controls .ant-btn-default {
    background: white;
    border: 1px solid rgba(165, 118, 92, 0.3);
    color: #A5765C;
}

.density-controls .ant-btn-default:hover {
    background: rgba(165, 118, 92, 0.05);
    border-color: #A5765C;
    color: #A5765C;
}

@media (max-width: 768px) {
    .density-controls {
        border-left: none;
        padding-left: 0;
        margin-left: 0;
        flex-wrap: wrap;
    }
}
/* Styles pour les événements Google Calendar personnels */

.personal-event {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  opacity: 0.85;
  font-style: italic;
  border-left: 4px solid #5a67d8 !important;
  color: white !important;
}

.personal-event:hover {
  opacity: 1;
  transform: scale(1.02);
  transition: all 0.2s ease;
}

.personal-mobile {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  border-left: 4px solid #5a67d8 !important;
  color: white !important;
}

.personal-card {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important;
  border-left: 4px solid #5a67d8 !important;
  color: white !important;
}

/* Toggle pour afficher/masquer les événements personnels */
.personal-events-toggle {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px;
  background: #f8f9fa;
  border-radius: 6px;
  border: 1px solid #e9ecef;
}

.personal-events-toggle span {
  font-size: 12px;
  color: #495057;
  font-weight: 500;
}

/* Badge pour indiquer événement personnel */
.event-badge-personal {
  background: #667eea;
  color: white;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  margin-left: 6px;
}

/* Styles spécifiques pour react-big-calendar */
.rbc-event.personal-event .rbc-event-content {
  color: white !important;
}

.rbc-event.personal-event .rbc-event-label {
  color: rgba(255, 255, 255, 0.9) !important;
}

/* Style pour les événements toute la journée */
.rbc-allday-cell .personal-event {
  background: linear-gradient(90deg, #667eea 0%, #764ba2 100%) !important;
}
.session-booking-details {
  display: flex;
  flex-direction: column;
  gap: 20px;
  width: 100%;
}

@media (min-width: 720px) {
  .session-booking-details {
    flex-direction: row;
  }
}

.session-summary {
  flex: 0 0 260px;
  background: #fefaf6;
  border: 1px solid rgba(165, 118, 92, 0.18);
  border-radius: 18px;
  padding: 20px 22px;
  display: flex;
  flex-direction: column;
  gap: 14px;
  font-size: 15px;
  color: #4c3629;
  box-shadow: 0 12px 24px rgba(165, 118, 92, 0.12);
}

.session-summary-header {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(165, 118, 92, 0.15);
}

.session-summary-title {
  font-weight: 700;
  font-size: 16px;
  color: #3b2b22;
}

.session-summary-subtitle {
  font-size: 12px;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #b3957f;
}

.session-summary-row {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px 0;
  border-bottom: 1px dashed rgba(165, 118, 92, 0.15);
}

@media (min-width: 720px) {
  .session-summary-row {
    flex-direction: row;
    align-items: center;
    gap: 10px;
  }

  .session-summary-label {
    flex: 0 0 96px;
  }

  .session-summary-value {
    flex: 1 1;
  }
}

.session-summary-label {
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 11px;
  color: #b07c60;
}

.session-summary-value {
  font-weight: 600;
  font-size: 14px;
}

.session-counter {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 15px;
  font-weight: 700;
  color: #4c3629;
}

.session-counter-current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 32px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(8, 160, 108, 0.12);
  color: #08916c;
}

.session-counter-max {
  color: #9b9289;
}

.session-counter-separator {
  color: #c7b9ad;
}

.session-participants {
  flex: 1 1;
  background: #fff;
  border-radius: 18px;
  border: 1px solid #e6e6e6;
  box-shadow: 0 18px 28px rgba(61, 34, 16, 0.08);
  padding: 22px 24px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.session-participants-header {
  font-weight: 700;
  font-size: 17px;
  color: #3b2b22;
  display: flex;
  align-items: center;
  gap: 10px;
}

.session-participants-placeholder {
  font-size: 13px;
  color: #8d837c;
  background: #f6efe9;
  border-radius: 12px;
  padding: 12px;
  text-align: center;
}

.session-participants-list {
  max-height: 320px;
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding-right: 6px;
}

.session-participants-list::-webkit-scrollbar {
  width: 6px;
}

.session-participants-list::-webkit-scrollbar-thumb {
  background-color: rgba(165, 118, 92, 0.3);
  border-radius: 6px;
}

.session-participant-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 14px;
  background: linear-gradient(135deg, #ffffff 0%, #fdf7f2 100%);
  border: 1px solid rgba(165, 118, 92, 0.15);
  transition: transform 0.15s ease, box-shadow 0.15s ease, background 0.2s ease;
}

.session-participant-row--clickable {
  cursor: pointer;
}

.session-participant-row--clickable:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 22px rgba(163, 110, 82, 0.14);
  background: linear-gradient(135deg, #fffdfa 0%, #fbf1e7 100%);
}

.session-participant-main {
  display: flex;
  flex-direction: column;
  gap: 4px;
  color: #4a3a30;
}

.session-participant-name {
  font-weight: 600;
  font-size: 15px;
}

.session-participant-date {
  font-size: 12px;
  color: #9b9289;
}

.session-participant-tags .ant-tag {
  border-radius: 999px;
  font-weight: 600;
  font-size: 12px;
}

.session-participants-pill {
  background: rgba(165, 118, 92, 0.08);
  border-radius: 999px;
  padding: 4px 12px;
  font-size: 13px;
  font-weight: 600;
  color: #6d4c3a;
}

.session-pill-separator {
  margin: 0 4px;
  color: #b7a093;
}

.session-participant-tag.ant-tag-green {
  background: rgba(0, 170, 120, 0.12);
  color: #00925c;
  border: none;
}

.session-participant-tag.ant-tag-orange {
  background: rgba(255, 153, 0, 0.15);
  color: #c76b00;
  border: none;
}

.session-participant-tag.ant-tag-red {
  background: rgba(214, 69, 69, 0.15);
  color: #a82020;
  border: none;
}

.session-status-tag.ant-tag {
  border-radius: 10px;
  padding: 2px 10px;
  font-weight: 600;
  font-size: 12px;
}

@media (max-width: 719px) {
  .session-booking-details {
    gap: 16px;
  }

  .session-summary {
    padding: 18px;
    font-size: 14px;
  }

  .session-summary-row {
    padding: 6px 0;
  }

  .session-summary-header {
    gap: 2px;
  }

  .session-participants {
    padding: 18px 16px;
  }

  .session-participant-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .session-participant-tags {
    width: 100%;
    justify-content: flex-start;
    flex-wrap: wrap;
  }
}


.modern-event-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.4);
    -webkit-backdrop-filter: blur(4px);
            backdrop-filter: blur(4px);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.modern-event-modal {
    position: relative;
    background: white;
    border-radius: 24px;
    width: 90%;
    max-width: 600px;
    max-height: 90vh;
    outline: none;
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
    overflow: hidden;
    animation: modalFadeIn 0.3s ease-out;
}

@keyframes modalFadeIn {
    from {
        opacity: 0;
        transform: scale(0.95);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.modern-event-details .modal-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 24px 32px;
    background: #FBF7F2;
    border-bottom: 1px solid #F0E6DB;
}

.modern-event-details .modal-header h3 {
    margin: 0;
    color: var(--brown);
}

.modern-event-details .close-button {
    font-size: 24px;
    color: #8c8c8c;
}

.modern-event-details .modal-content {
    padding: 32px;
    overflow-y: auto;
    max-height: calc(90vh - 80px);
}

.booking-main-info {
    display: flex;
    gap: 24px;
}

.booking-photos {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.user-photo-container,
.animal-photo-container {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    overflow: hidden;
    border: 2px solid #F6C674;
}

.user-photo,
.animal-photo {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.booking-details {
    flex: 1 1;
}

.event-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
}

.event-info:last-child {
    border-bottom: none;
}

.payment-info {
    margin-top: 12px;
    display: flex;
    justify-content: space-between;
}

.location-chip {
    color: #A5765C;
    font-weight: 600;
    background-color: rgba(165, 118, 92, 0.08);
    padding: 4px 12px;
    border-radius: 20px;
    border: 1px solid rgba(165, 118, 92, 0.2);
    text-decoration: none;
    font-size: 13px;
    transition: all 0.2s ease;
}

.location-chip:hover {
    background-color: rgba(165, 118, 92, 0.15);
    text-decoration: underline;
}

.client-message {
    margin-top: 20px;
}

.message-content {
    background-color: #f9f9f9;
    padding: 15px;
    borderRadius: 8px;
    border-left: 4px solid #F6C674;
    margin-top: 8px;
    white-space: pre-wrap;
    font-style: italic;
}

/* Event Type Details */
.event-time-box {
    border: 1px solid rgba(165, 118, 92, 0.2);
    border-radius: 12px;
    padding: 16px;
    background-color: #FDF8F3;
    display: flex;
    align-items: center;
    gap: 12px;
}

.event-time-box .label {
    color: #A5765C;
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.event-time-box .value {
    color: #262626;
    font-weight: 500;
    font-size: 15px;
}

.info-chips-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.info-chip {
    padding: 8px 16px;
    border-radius: 12px;
    background: #FFF;
    border: 1px solid #F0F0F0;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.02);
    display: flex;
    align-items: center;
    gap: 8px;
    border-left: 4px solid #F5E6D3;
    flex: 1 1 45%;
}

.event-attendees-list .list-title {
    color: #262626;
    font-size: 16px;
    margin-bottom: 12px;
    display: block;
}

.attendees-container {
    background: #fff;
    border: 1px solid #f0f0f0;
    border-radius: 12px;
    max-height: 200px;
    overflow-y: auto;
}

.attendee-row {
    padding: 12px 16px;
    border-bottom: 1px solid #f5f5f5;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.attendee-email {
    font-size: 12px;
    color: #8c8c8c;
}

.event-time-default {
    margin-top: 16px;
    padding: 16px;
    background: #FDF8F3;
    border-radius: 12px;
    border-left: 3px solid #F6C674;
}

/* Actions */
.event-actions {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
}

.status-actions {
    width: 100%;
    justify-content: center;
    margin-bottom: 16px;
}

.cancel-btn {
    width: 100%;
    margin-bottom: 16px;
}

.main-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.view-details-btn,
.duplicate-btn,
.view-event-btn,
.delete-btn {
    width: 100%;
    height: 40px;
    font-weight: 500;
}

.view-event-btn {
    height: 48px;
    border-radius: 24px;
    background-color: #A5765C;
    border-color: #A5765C;
    box-shadow: 0 4px 14px rgba(165, 118, 92, 0.3);
    font-size: 16px;
}

/* Responsive */
@media (max-width: 768px) {
    .modern-event-modal {
        width: 95%;
    }

    .booking-main-info {
        flex-direction: column;
    }

    .booking-photos {
        flex-direction: row;
        justify-content: center;
    }

    .modal-content {
        padding: 16px;
    }

    .view-details-btn,
    .duplicate-btn,
    .view-event-btn,
    .delete-btn {
        height: 44px;
        font-size: 16px;
    }
}
/* ModernPlanningComponent.css */

.modern-planning-container {
  /* Palette moderne et chaleureuse - inspirée de la charte */
  --warm-cream: #FDF8F3;
  --soft-gold: #F5E6D3;
  --honey-glow: #E8D5B7;
  --wheat-field: #D4B896;
  --golden-sand: #C19A6B;
  --warm-earth: #B08D57;

  /* Couleurs événements - Version plus moderne et attractive */
  --event-blue: var(--gold, #F6C674);
  /* Aligné brand - use fallback if --gold is not available, though it might be inherited or not */
  /* Wait, if I scope this, var(--gold) might not be available if it was expected to be on :root */
  /* But --gold is usually global. If it was defined in :root in CalendarPlanningComponent.css, it is GONE now. */
  /* Use explicit color to be safe */
  --event-blue: #F6C674;

  --event-blue-light: rgba(246, 198, 116, 0.15);
  --event-blue-dark: #b5866b;

  --booking-green: #52C41A;
  /* Vert vif pour confirmé */
  --booking-green-light: #F6FFED;
  --booking-green-dark: #389E0D;

  --pending-orange: #FA8C16;
  /* Orange moderne pour en attente */
  --pending-orange-light: #FFF7E6;
  --pending-orange-dark: #D46B08;

  --cancelled-red: #FF4D4F;
  /* Rouge moderne pour annulé */
  --cancelled-red-light: #FFF1F0;
  --cancelled-red-dark: #CF1322;

  --unavailable-purple: #722ED1;
  /* Violet pour indisponibilités */
  --unavailable-purple-light: #F9F0FF;
  --unavailable-purple-dark: #531DAB;

  --special-teal: #13C2C2;
  /* Turquoise pour événements spéciaux */
  --special-teal-light: #E6FFFB;
  --special-teal-dark: #08979C;

  /* Text & Shadows */
  --text-primary: #262626;
  --text-secondary: #595959;
  --text-light: #8C8C8C;
  --shadow-soft: 0 2px 8px rgba(0, 0, 0, 0.04);
  --shadow-medium: 0 4px 12px rgba(0, 0, 0, 0.08);
  --shadow-hover: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.modern-planning-container {
  width: 100%;
  height: 100%;
  background: var(--warm-cream);
  position: relative;
}

.modern-planning-container::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background:
    radial-gradient(circle at 20% 30%, var(--soft-gold) 0%, transparent 40%),
    radial-gradient(circle at 80% 70%, var(--honey-glow) 0%, transparent 40%);
  opacity: 0.4;
  pointer-events: none;
}

/* Container mobile sans débordement */
@media (max-width: 768px) {

  html,
  body {
    overflow-x: hidden !important;
    width: 100vw !important;
    max-width: 100vw !important;
  }

  .mobile-infinite-view,
  .mobile-infinite-view *,
  .modern-planning-container,
  .modern-planning-container * {
    max-width: 100vw !important;
    box-sizing: border-box !important;
    -webkit-tap-highlight-color: transparent;
    /* Supprimer le highlight bleu sur mobile au clic */
  }

  .modern-planning-container {
    padding: 0 !important;
    margin: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
    position: relative;
  }

  /* Titre mobile pour le planning */
  .mobile-planning-title {
    padding: 16px 16px 0 16px;
    background: linear-gradient(135deg, #F8F9FA 0%, var(--soft-gold) 100%);
    border-radius: 16px 16px 0 0;
    margin: -16px -16px 0 -16px;
    border-bottom: 1px solid rgba(165, 118, 92, 0.1);
  }

  .mobile-planning-title h4 {
    margin: 0 !important;
    padding: 0 !important;
  }
}

.modern-planning-card {
  border-radius: 24px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(0, 0, 0, 0.05);
  overflow: hidden;
  background: linear-gradient(135deg, #FFFFFF 0%, #FEFEFE 100%);
  transition: all 0.4s cubic-bezier(0.23, 1, 0.320, 1);
  position: relative;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.modern-planning-card::after {
  content: none;
  /* Supprime le trait multicolore supérieur */
}

.modern-planning-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
  border-color: rgba(74, 144, 226, 0.2);
}

/* Card mobile pleine largeur */
@media (max-width: 768px) {
  .modern-planning-card {
    border-radius: 0 !important;
    border: none !important;
    margin: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    box-shadow: none !important;
    overflow-x: hidden !important;
  }

  .modern-planning-card .ant-card-body {
    padding: 0 !important;
    margin: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    overflow-x: hidden !important;
  }
}

.modern-planning-card .ant-card-body {
  padding: 24px;
  background: transparent;
}

.modern-calendar-wrapper {
  padding: 0;
  background: transparent;
}

/* Styles pour les onglets modernes */
.modern-planning-card .ant-tabs {
  margin-bottom: 0;
}

/* Navigation unifiée sur une ligne */
.modern-planning-card .ant-tabs-nav {
  background: linear-gradient(135deg, #F8F9FA 0%, var(--soft-gold) 100%);
  padding: 6px 12px;
  /* réduit la hauteur */
  border-radius: 14px;
  margin-bottom: 10px;
  /* réduit l'espace sous les onglets */
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04);
  border: 1px solid rgba(0, 0, 0, 0.03);
}

.modern-planning-card .ant-tabs-nav-list {
  flex: 0 0 auto;
  margin-right: 20px;
}

.modern-planning-card .ant-tabs-tab {
  background: transparent;
  border: none;
  border-radius: 10px;
  margin: 0 2px;
  padding: 6px 12px;
  /* onglets plus fins */
  transition: all 0.3s ease;
  font-weight: 500;
  color: var(--text-secondary);
  position: relative;
}

.modern-planning-card .ant-tabs-tab:hover {
  color: var(--text-primary);
  background: rgba(255, 255, 255, 0.5);
}

.modern-planning-card .ant-tabs-tab-active {
  background: white;
  color: var(--text-primary);
  box-shadow: 0 2px 8px rgba(193, 154, 107, 0.15);
  font-weight: 600;
}

.modern-planning-card .ant-tabs-ink-bar {
  display: none;
}

.modern-planning-card .ant-tabs-content-holder {
  background: transparent;
  padding: 0;
}

/* Navigation de la semaine intégrée */
.modern-navigation {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  /* plus compact */
  flex: 1 1;
  margin: 0;
  padding: 0;
  /* aucun padding vertical */
  border: none;
  font-size: 13px;
  color: var(--text-primary);
}

/* Bouton Programmer pour mobile dans le planning moderne */
.modern-navigation .ant-btn-primary {
  background: linear-gradient(45deg, #A5765C, #b5866b) !important;
  border: none !important;
  border-radius: 20px !important;
  padding: 4px 12px !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  margin-right: 8px !important;
  box-shadow: 0 2px 8px rgba(165, 118, 92, 0.2) !important;
  transition: all 0.3s ease !important;
  height: auto !important;
  line-height: 1.2 !important;
}

.modern-navigation .ant-btn-primary:hover {
  background: linear-gradient(45deg, #b5866b, #c5967b) !important;
  transform: translateY(-1px) !important;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3) !important;
}

.modern-navigation .ant-btn-primary:active {
  transform: translateY(0) !important;
  box-shadow: 0 2px 6px rgba(165, 118, 92, 0.2) !important;
}

.modern-navigation h5 {
  font-size: 14px !important;
  font-weight: 600;
  color: var(--text-primary);
  margin: 0 16px !important;
  white-space: nowrap;
}

.modern-navigation button {
  background: white;
  border: 1px solid rgba(193, 154, 107, 0.2);
  color: var(--text-secondary);
  padding: 0;
  width: 26px;
  /* boutons plus petits */
  height: 26px;
  border-radius: 50%;
  transition: all 0.2s ease;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.modern-navigation button:hover {
  background: var(--honey-glow);
  border-color: var(--golden-sand);
  color: white;
  transform: scale(1.05);
}

/* Styles pour les événements modernes */
.modern-event {
  display: flex;
  flex-direction: column;
  height: 100%;
  padding: 10px;
  border-radius: 12px;
  background: white;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  transition: all 0.2s ease;
  cursor: pointer;
  position: relative;
  border: 1px solid rgba(232, 213, 183, 0.2);
}

.modern-event:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-soft);
  border-color: var(--honey-glow);
}

.modern-event .event-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 4px;
}

.modern-event .event-content {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.modern-event .event-title {
  font-weight: 600;
  font-size: 13px;
  line-height: 1.3;
  margin-bottom: 4px;
  overflow: hidden;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  word-break: break-word;
}

.modern-event .event-time {
  font-size: 11px;
  opacity: 0.8;
  font-weight: 500;
}

/* Styles pour les cellules de date */
.date-cell-events {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 2px;
}

.date-cell-events .ant-badge {
  font-size: 10px;
}

/* Modal moderne */
.modern-event-modal {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  background: white;
  border-radius: 16px;
  padding: 0;
  border: none;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  max-width: 600px;
  width: 90%;
  max-height: 80vh;
  overflow: hidden;
  z-index: 100001 !important;
  /* Assurer que le contenu est au-dessus de l'overlay */
}

.modern-event-modal-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.5);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  z-index: 100000 !important;
  /* Supérieur à la bottom nav bar (9999) */
  display: flex;
  align-items: center;
  justify-content: center;
}

.modern-event-details {
  display: flex;
  flex-direction: column;
  height: 100%;
}

.modern-event-details .modal-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 24px 24px 16px 24px;
  border-bottom: 1px solid rgba(193, 154, 107, 0.2);
  background: var(--soft-gold);
  color: var(--text-primary);
}

.modern-event-details .modal-header h3 {
  color: var(--text-primary);
  margin: 0;
  font-weight: 600;
}

.modern-event-details .close-button {
  color: var(--text-secondary);
  border: none;
  background: transparent;
  font-size: 18px;
  border-radius: 8px;
  padding: 4px 8px;
  transition: all 0.2s ease;
}

.modern-event-details .close-button:hover {
  background: rgba(193, 154, 107, 0.1);
  color: var(--text-primary);
}

.modern-event-details .modal-content {
  padding: 24px;
  flex: 1 1;
  overflow-y: auto;
}

/* Nouvelles sections pour les informations détaillées */
.booking-main-info {
  display: flex;
  gap: 20px;
  margin-bottom: 20px;
}

.booking-photos {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex-shrink: 0;
}

.user-photo-container,
.animal-photo-container {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid var(--honey-glow);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.user-photo,
.animal-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.booking-details {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.payment-info {
  background: #f8f9fa;
  padding: 16px;
  border-radius: 12px;
  border-left: 4px solid var(--honey-glow);
  margin: 8px 0;
}

.payment-status {
  margin-top: 8px;
}

.client-message {
  margin-top: 16px;
}

.modern-event-details .event-info {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px solid #f0f0f0;
}

.modern-event-details .event-info:last-child {
  border-bottom: none;
}

.modern-event-details .event-actions {
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #f0f0f0;
}

.modern-event-details .event-time {
  margin-top: 16px;
  padding: 16px;
  background: var(--warm-cream);
  border-radius: 12px;
  border-left: 3px solid var(--honey-glow);
}

/* Responsive design */
@media (max-width: 768px) {
  .modern-planning-card .ant-card-head {
    padding: 12px 16px;
  }

  .modern-calendar-wrapper {
    padding: 8px;
  }

  .modern-event-modal {
    width: 95%;
    max-height: 90vh;
    max-width: 95%;
  }

  .modern-event-details .modal-header {
    padding: 16px;
  }

  .modern-event-details .modal-content {
    padding: 16px;
  }

  .booking-main-info {
    flex-direction: column;
    gap: 16px;
  }

  .booking-photos {
    flex-direction: row;
    justify-content: center;
    gap: 16px;
  }

  .user-photo-container,
  .animal-photo-container {
    width: 50px;
    height: 50px;
  }

  /* Styles spécifiques pour le bouton de détail de session sur mobile */
  .modern-event-details .event-actions .ant-btn {
    min-height: 44px;
    font-size: 16px;
    font-weight: 500;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  }

  .modern-event-details .event-actions .ant-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  }
}

/* Animations */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.modern-planning-container {
  animation: fadeIn 0.3s ease-out;
}

/* Styles pour les badges dans les cellules de date */
.rbc-date-cell .ant-badge {
  margin-bottom: 2px;
}

.rbc-date-cell .ant-badge .ant-badge-status-dot {
  width: 6px;
  height: 6px;
}

/* Amélioration des styles du calendrier */
.rbc-calendar {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

.rbc-header {
  background: linear-gradient(135deg, #F8F9FA 0%, var(--soft-gold) 100%);
  border-bottom: 1px solid rgba(0, 0, 0, 0.06);
  font-weight: 600;
  color: var(--text-primary);
  padding: 16px 12px;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 1px;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.03);
}

.rbc-today {
  background: linear-gradient(135deg, var(--event-blue-light), rgba(74, 144, 226, 0.08)) !important;
  position: relative;
  border-radius: 4px;
}

.rbc-today::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--event-blue), var(--booking-green));
  border-radius: 0 0 4px 4px;
}

.rbc-off-range-bg {
  background-color: #f8f9fa;
}

.rbc-off-range {
  color: #adb5bd;
}

/* Styles pour les événements dans le calendrier */
.rbc-event {
  border-radius: 10px !important;
  border: none;
  /* Retiré !important pour permettre au borderLeft inline de fonctionner */
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08) !important;
  font-weight: 600 !important;
  font-size: 13px !important;
  padding: 8px 12px !important;
  margin: 2px 0 !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
  position: relative;
  overflow: visible;
  line-height: 1.4 !important;
  white-space: normal !important;
  word-wrap: break-word !important;
}

/* Barre colorée sur le côté gauche pour les services */
/* Note: La barre est maintenant appliquée directement via le style inline dans eventPropGetter */
.rbc-event.service-color-bar {
  position: relative;
}

.rbc-event:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15) !important;
  transform: translateY(-2px) scale(1.02);
}

/* Styles pour les créneaux horaires */
.rbc-time-slot {
  border-top: 1px solid #f0f0f0;
  min-height: 50px;
  min-height: var(--calendar-slot-height, 50px);
}

.rbc-time-header-content {
  border-left: 1px solid #e9ecef;
}

.rbc-time-content {
  border-left: 1px solid #e9ecef;
}

/* Styles pour la toolbar personnalisée */
.rbc-toolbar {
  background: linear-gradient(135deg, #FFFFFF 0%, #F8F9FA 100%);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 24px;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.05);
  border: 1px solid rgba(0, 0, 0, 0.03);
}

.rbc-toolbar button {
  border-radius: 12px;
  font-weight: 600;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  border: 1px solid rgba(0, 0, 0, 0.08);
  color: var(--text-secondary);
  background: white;
  padding: 10px 20px;
}

.rbc-toolbar button:hover {
  background: var(--event-blue-light);
  border-color: var(--event-blue);
  color: var(--event-blue-dark);
  box-shadow: 0 2px 8px rgba(74, 144, 226, 0.15);
}

.rbc-toolbar button.rbc-active {
  background: linear-gradient(135deg, var(--event-blue), var(--event-blue-dark));
  border-color: var(--event-blue);
  color: white;
  box-shadow: 0 4px 16px rgba(74, 144, 226, 0.25);
}

/* Styles pour les vues */
.rbc-month-view {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.rbc-time-view {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.rbc-agenda-view {
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

/* Loading state */
.modern-planning-card.ant-card-loading .ant-card-body {
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Vue en blocs moderne */
.modern-navigation {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 0;
  /* supprime l'espace vertical supplémentaire */
  border-bottom: none;
  /* enlève la ligne inutile */
  margin-bottom: 8px;
  /* espace minimal */
}

/* Styles responsives pour le bouton Programmer sur mobile */
@media (max-width: 768px) {
  .modern-navigation {
    flex-wrap: wrap;
    gap: 6px;
    justify-content: space-between;
  }

  .modern-navigation .ant-btn-primary {
    order: -1;
    /* Place le bouton en premier */
    flex-shrink: 0;
    margin-right: 0;
    margin-bottom: 4px;
  }

  .modern-navigation h5 {
    font-size: 12px !important;
    margin: 0 8px !important;
  }

  .modern-navigation button {
    width: 24px;
    height: 24px;
    font-size: 14px;
  }
}

.modern-week-view {
  background: transparent;
}

.modern-fourdays-view {
  background: transparent;
}

.week-header {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-gap: 12px;
  gap: 12px;
  background: transparent;
  color: var(--text-primary);
  position: relative;
  padding: 0 0 8px 0;
}

.fourdays-header {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 12px;
  gap: 12px;
  background: transparent;
  color: var(--text-primary);
  position: relative;
  padding: 0 0 8px 0;
}

.day-header {
  padding: 12px 10px;
  text-align: center;
  background: #FBF7F2;
  border: 1px solid #F0E6DB;
  border-radius: 14px;
}

.day-header:last-child {
  border-right: none;
}

.day-name {
  font-weight: 700;
  font-size: 12px;
  margin-bottom: 2px;
  text-transform: none;
  letter-spacing: 0;
  color: #9f6b3d;
  /* teinte brune douce */
}

.day-date {
  font-size: 12px;
  opacity: 0.85;
  color: #9f6b3d;
}

.week-content {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-gap: 12px;
  gap: 12px;
  min-height: 420px;
}

.fourdays-content {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 12px;
  gap: 12px;
  min-height: 420px;
}

.day-column {
  padding: 12px 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  background: #FFFFFF;
  border: 1px solid #F0F0F0;
  border-radius: 16px;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

/* Contour discret pour la journée actuelle */
.day-column.today {
  border: 2px solid #F6C674;
  box-shadow: 0 2px 8px rgba(246, 198, 116, 0.2);
  background: linear-gradient(135deg, #FFFFFF 0%, #FDF8F3 100%);
}

.day-column:last-child {
  border-right: none;
}

/* Blocs d'événements */
.event-block {
  border-radius: 8px;
  padding: 12px;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  min-height: 80px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.event-block:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.block-time {
  font-weight: 600;
  font-size: 12px;
  margin-bottom: 4px;
}

.block-title {
  font-weight: 500;
  font-size: 11px;
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

.block-duration {
  font-size: 10px;
  margin-top: 4px;
  opacity: 0.8;
}

.block-label {
  font-size: 10px;
  font-weight: 500;
  text-align: center;
  margin-top: 4px;
}

/* Couleurs des blocs selon le type - Palette moderne et attractive */
/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.availability-block {
  background: #E9FBE6;
  /* vert clair proche de la maquette */
  color: #135200;
  border: 1px solid #C6F6C1;
  /* border-left retiré pour permettre au style inline de fonctionner */
  box-shadow: var(--shadow-soft);
  position: relative;
  overflow: hidden;
}

.availability-block:hover {
  box-shadow: var(--shadow-medium);
  transform: translateY(-1px);
}

.booking-block {
  color: white;
  position: relative;
  border: none;
  box-shadow: var(--shadow-soft);
  transition: all 0.2s ease;
}

.booking-block:hover {
  box-shadow: var(--shadow-medium);
  transform: translateY(-1px);
}

/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.booking-block.confirmed-status {
  background: linear-gradient(135deg, var(--booking-green), var(--booking-green-dark));
  /* border-left retiré pour permettre au style inline de fonctionner */
}

.booking-block.pending-status {
  background: linear-gradient(135deg, var(--pending-orange), var(--pending-orange-dark));
  /* border-left retiré pour permettre au style inline de fonctionner */
  color: white;
}

.booking-block.cancelled-status {
  background: linear-gradient(135deg, var(--cancelled-red), var(--cancelled-red-dark));
  /* border-left retiré pour permettre au style inline de fonctionner */
  opacity: 0.85;
}

.booking-block:not(.confirmed-status):not(.pending-status):not(.cancelled-status) {
  background: linear-gradient(135deg, var(--booking-green), var(--booking-green-dark));
  /* border-left retiré pour permettre au style inline de fonctionner */
}

/* Permettre au background inline de prendre le dessus sur le background gradient */
/* Note: Le style inline background écrase automatiquement le gradient CSS */
.booking-block.has-service-color,
.availability-block.has-service-color,
.unavailability-block.has-service-color,
.event-block.has-service-color {
  /* Le style inline background sera appliqué et écrasera le gradient */
}

/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.unavailability-block {
  background: linear-gradient(135deg, var(--unavailable-purple), var(--unavailable-purple-dark));
  color: white;
  border: none;
  /* border-left retiré pour permettre au style inline de fonctionner */
  box-shadow: var(--shadow-soft);
  position: relative;
}

.unavailability-block:hover {
  box-shadow: var(--shadow-medium);
  transform: translateY(-1px);
}

/* NOTE: Les backgrounds par défaut sont utilisés si le service n'a pas de couleur */
.event-block.event-type {
  background: linear-gradient(135deg, var(--event-blue), var(--event-blue-dark));
  color: white;
  border: none;
  /* border-left retiré pour permettre au style inline de fonctionner */
  box-shadow: var(--shadow-soft);
  position: relative;
}

.event-block.event-type:hover {
  box-shadow: var(--shadow-medium);
  transform: translateY(-1px);
}

/* Responsive pour vue mobile */
@media (max-width: 768px) {
  .modern-planning-card .ant-tabs-nav {
    flex-direction: column;
    align-items: stretch;
    padding: 8px;
  }

  .modern-planning-card .ant-tabs-nav-list {
    margin-right: 0;
    margin-bottom: 12px;
    width: 100%;
    justify-content: center;
  }

  .modern-navigation {
    width: 100%;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
  }

  .modern-navigation h5 {
    width: 100%;
    text-align: center;
    font-size: 14px;
    order: -1;
  }

  .modern-navigation button {
    width: 28px;
    height: 28px;
    font-size: 16px;
  }

  .week-header {
    font-size: 12px;
  }

  .fourdays-header {
    font-size: 12px;
  }

  .day-header {
    padding: 12px 4px;
  }

  .day-name {
    font-size: 12px;
  }

  .day-date {
    font-size: 10px;
  }

  .day-column {
    padding: 8px 4px;
  }

  .event-block {
    min-height: 60px;
    padding: 8px;
  }

  .block-title {
    font-size: 10px;
    -webkit-line-clamp: 1;
  }
}

/* Animation d'apparition */
.event-block {
  animation: fadeInUp 0.3s ease-out;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Amélioration visuelle */
.modern-week-view {
  border: 1px solid #e8e8e8;
}

/* Note: "No events" message is now handled by React component with i18n */


/* Vue jour */
.modern-day-view {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.day-header-single {
  background: var(--soft-gold);
  color: var(--text-primary);
  padding: 24px;
  text-align: center;
  border-bottom: 1px solid rgba(193, 154, 107, 0.2);
  position: relative;
}

.day-title {
  font-size: 18px;
  font-weight: 600;
}

.day-content-single {
  padding: 20px;
  max-height: 600px;
  overflow-y: auto;
}

.no-events {
  text-align: center;
  color: #bfbfbf;
  font-style: italic;
  padding: 40px;
  font-size: 16px;
}

/* Cartes événements pour la vue jour */
.day-event-card {
  display: flex;
  align-items: center;
  padding: 16px;
  margin-bottom: 12px;
  border-radius: 12px;
  background: white;
  border: 1px solid #e8e8e8;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.day-event-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  border-color: #d9d9d9;
}

.event-time-column {
  flex-shrink: 0;
  width: 80px;
  text-align: left;
  margin-right: 16px;
}

.event-time-hour {
  font-size: 18px;
  font-weight: 700;
  color: #1890ff;
  line-height: 1.2;
}

.event-duration {
  font-size: 12px;
  color: #666;
  margin-top: 2px;
}

.event-content-column {
  flex: 1 1;
  min-width: 0;
}

.event-title-day {
  font-size: 16px;
  font-weight: 600;
  color: #262626;
  margin-bottom: 4px;
  line-height: 1.3;
}

.event-details {
  font-size: 14px;
  color: #666;
  line-height: 1.4;
  display: flex;
  align-items: center;
}

.event-icon-column {
  flex-shrink: 0;
  width: 24px;
  text-align: center;
  font-size: 16px;
  color: #8c8c8c;
  margin-left: 12px;
}

/* Couleurs pour les différents types de cartes - Palette moderne */
.availability-card {
  background: var(--booking-green-light);
  border-left: 4px solid var(--booking-green);
  border-radius: 12px;
  transition: all 0.2s ease;
}

.availability-card:hover {
  box-shadow: 0 4px 12px rgba(82, 196, 26, 0.15);
  transform: translateY(-1px);
}

.availability-card .event-time-hour {
  color: var(--booking-green-dark);
  font-weight: 600;
}

.booking-card {
  background: var(--booking-green-light);
  border-left: 4px solid var(--booking-green);
  border-radius: 12px;
  transition: all 0.2s ease;
}

.booking-card:hover {
  box-shadow: 0 4px 12px rgba(82, 196, 26, 0.15);
  transform: translateY(-1px);
}

.booking-card .event-time-hour {
  color: var(--booking-green-dark);
  font-weight: 600;
}

.booking-card.confirmed-status {
  background: var(--booking-green-light);
  border-left: 4px solid var(--booking-green);
}

.booking-card.confirmed-status .event-time-hour {
  color: var(--booking-green-dark);
}

.booking-card.pending-status {
  background: var(--pending-orange-light);
  border-left: 4px solid var(--pending-orange);
}

.booking-card.pending-status:hover {
  box-shadow: 0 4px 12px rgba(250, 140, 22, 0.15);
}

.booking-card.pending-status .event-time-hour {
  color: var(--pending-orange-dark);
}

.booking-card.cancelled-status {
  background: var(--cancelled-red-light);
  border-left: 4px solid var(--cancelled-red);
  opacity: 0.85;
}

.booking-card.cancelled-status:hover {
  box-shadow: 0 4px 12px rgba(255, 77, 79, 0.15);
}

.booking-card.cancelled-status .event-time-hour {
  color: var(--cancelled-red-dark);
}

.unavailability-card {
  background: var(--unavailable-purple-light);
  border-left: 4px solid var(--unavailable-purple);
  border-radius: 12px;
  transition: all 0.2s ease;
}

.unavailability-card:hover {
  box-shadow: 0 4px 12px rgba(114, 46, 209, 0.15);
  transform: translateY(-1px);
}

.unavailability-card .event-time-hour {
  color: var(--unavailable-purple-dark);
  font-weight: 600;
}

.event-card {
  background: var(--event-blue-light);
  border-left: 4px solid var(--event-blue);
  border-radius: 12px;
  transition: all 0.2s ease;
}

.event-card:hover {
  box-shadow: 0 4px 12px rgba(74, 144, 226, 0.15);
  transform: translateY(-1px);
}

.event-card .event-time-hour {
  color: var(--event-blue-dark);
  font-weight: 600;
}

/* Vue mois */
.modern-month-view {
  background: white;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  min-width: 0;
}

.month-header {
  background: var(--soft-gold);
  color: var(--text-primary);
  padding: 24px;
  text-align: center;
  border-bottom: 1px solid rgba(193, 154, 107, 0.2);
  position: relative;
}

.month-title {
  font-size: 20px;
  font-weight: 600;
}

.month-grid {
  padding: 0;
  overflow: hidden;
  min-width: 0;
}

/* Colonnes à largeur égale : minmax(0, 1fr) évite que le contenu n'élargisse les cases */
.month-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  background: #f8f9fa;
  border-bottom: 2px solid #e9ecef;
}

.month-weekday {
  padding: 12px 8px;
  text-align: center;
  font-weight: 600;
  color: #495057;
  font-size: 14px;
  border-right: 1px solid #e9ecef;
  min-width: 0;
  overflow: hidden;
}

.month-weekday:last-child {
  border-right: none;
}

.month-days {
  display: flex;
  flex-direction: column;
}

.month-week {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  border-bottom: 1px solid #e9ecef;
  min-width: 0;
}

.month-week:last-child {
  border-bottom: none;
}

.month-day {
  min-height: 140px;
  min-width: 0;
  padding: 8px;
  border-right: 1px solid #e9ecef;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  background: white;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.month-day:hover {
  background: #f0f9ff;
}

.month-day:last-child {
  border-right: none;
}

.month-day.other-month {
  background: #f8f9fa;
  color: #adb5bd;
}

.month-day.today {
  background: #e6f7ff;
  border-left: 4px solid #1890ff;
}

.day-number {
  font-weight: 600;
  font-size: 14px;
  margin-bottom: 4px;
}

.day-events-compact {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  align-items: center;
}

.event-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
}

.availability-dot {
  background: #52c41a;
}

.booking-dot {
  background: #1890ff;
}

.booking-dot.confirmed-dot {
  background: #52c41a;
}

.booking-dot.pending-dot {
  background: #faad14;
}

.booking-dot.cancelled-dot {
  background: #ff4d4f;
}

.unavailability-dot {
  background: #722ed1;
}

.event-dot.event-type {
  background: #13c2c2;
}

.event-more {
  font-size: 10px;
  color: #666;
  font-weight: 500;
  margin-left: 2px;
}

/* Styles pour les événements détaillés dans la vue mois */
.month-availability-block {
  background: linear-gradient(135deg, #a8e6cf 0%, #88d8a3 100%);
  color: #2d5a41;
  border-radius: 6px;
  padding: 5px 8px;
  margin: 0 0 6px 0;
  font-size: 10px;
  font-weight: 600;
  text-align: center;
  flex-shrink: 0;
  min-width: 0;
  overflow: hidden;
}

.availability-text {
  font-size: 10px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.day-events-detailed {
  flex: 1 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 5px;
  min-height: 0;
  min-width: 0;
}

.month-event-item {
  background: #1890ff;
  color: white;
  border-radius: 6px;
  padding: 5px 8px;
  margin: 0;
  font-size: 10px;
  line-height: 1.35;
  cursor: pointer;
  transition: all 0.2s ease;
  position: relative;
  overflow: hidden;
  flex-shrink: 0;
  min-height: 32px;
  min-width: 0;
  box-sizing: border-box;
  border-left: 3px solid rgba(255, 255, 255, 0.4);
}

.month-event-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  z-index: 10;
}

.month-event-item .event-time-month {
  display: block;
  font-weight: 700;
  font-size: 10px;
  margin-bottom: 2px;
  opacity: 0.95;
}

.month-event-item .event-title-month {
  display: block;
  font-size: 10px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  line-height: 1.25;
  min-width: 0;
}

.event-time-month {
  font-weight: 600;
  font-size: 8px;
  margin-bottom: 1px;
}

.event-title-month {
  font-size: 8px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Couleurs spécifiques pour chaque type d'événement en vue mois */
.month-event-item.booking-block.confirmed-status {
  background: linear-gradient(135deg, #52c41a 0%, #73d13d 100%);
}

.month-event-item.booking-block.pending-status {
  background: linear-gradient(135deg, #faad14 0%, #ffc53d 100%);
}

.month-event-item.booking-block.cancelled-status {
  background: linear-gradient(135deg, #ff4d4f 0%, #ff7875 100%);
}

.month-event-item.unavailability-block {
  background: linear-gradient(135deg, #722ed1 0%, #9254de 100%);
}

.month-event-item.event-type {
  background: linear-gradient(135deg, #13c2c2 0%, #36cfc9 100%);
}

/* Événements personnels (agenda Google / perso) en vue mois */
.month-event-item.personal-block {
  background: linear-gradient(135deg, #597ef7 0%, #85a5ff 100%);
}

.event-more-detailed {
  font-size: 9px;
  color: #666;
  text-align: center;
  margin-top: 4px;
  padding-top: 4px;
  font-style: italic;
  flex-shrink: 0;
  border-top: 1px dashed #e0e0e0;
}

/* Types spécifiques pour les cours */
.month-event-item.booking-block {
  background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%);
}

/* Cours collectifs */
.month-event-item[title*="collectif"] {
  background: linear-gradient(135deg, #1890ff 0%, #40a9ff 100%);
}

/* Styles pour la superposition des sessions collectives dans la vue semaine */
.event-time-group.collective-sessions {
  display: flex;
  flex-direction: row;
  gap: 4px;
  margin-bottom: 8px;
  flex-wrap: wrap;
}

.event-time-group.collective-sessions .collective-event {
  flex: 1 1;
  min-width: 0;
  max-width: calc(50% - 2px);
  font-size: 10px;
  padding: 6px 8px;
  min-height: 60px;
}

.event-time-group.collective-sessions .collective-event .block-time {
  font-size: 9px;
  margin-bottom: 2px;
}

.event-time-group.collective-sessions .collective-event .block-title {
  font-size: 9px;
  line-height: 1.2;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
}

.event-time-group.collective-sessions .collective-event .block-duration {
  font-size: 8px;
  margin-top: 2px;
}

.event-time-group.collective-sessions .collective-event .block-label {
  font-size: 8px;
  margin-top: 2px;
}

/* Responsive pour les sessions collectives */
@media (max-width: 768px) {
  .event-time-group.collective-sessions {
    flex-direction: column;
    gap: 2px;
  }

  .event-time-group.collective-sessions .collective-event {
    max-width: 100%;
    min-height: 50px;
  }
}

/* Cours individuels */
.month-event-item[title*="individuel"] {
  background: linear-gradient(135deg, #52c41a 0%, #73d13d 100%);
}

/* Balades canines */
.month-event-item[title*="Balade"] {
  background: linear-gradient(135deg, #fa8c16 0%, #ffa940 100%);
}

/* Responsive pour vues jour et mois */
@media (max-width: 768px) {
  .day-header-single {
    padding: 16px;
  }

  .day-title {
    font-size: 16px;
  }

  .day-content-single {
    padding: 16px;
  }

  .day-event-card {
    padding: 12px;
    margin-bottom: 8px;
  }

  .event-time-column {
    width: 60px;
    margin-right: 12px;
  }

  .event-time-hour {
    font-size: 16px;
  }

  .event-title-day {
    font-size: 14px;
  }

  .event-details {
    font-size: 12px;
  }

  .event-icon-column {
    width: 20px;
    font-size: 14px;
    margin-left: 8px;
  }

  .month-day {
    min-height: 120px;
    padding: 4px;
  }

  .month-availability-block {
    padding: 2px 4px;
    font-size: 8px;
  }

  .month-event-item {
    padding: 2px 4px;
    font-size: 8px;
  }

  .event-time-month {
    font-size: 7px;
  }

  .event-title-month {
    font-size: 7px;
  }

  .day-number {
    font-size: 12px;
  }

  .event-dot {
    width: 6px;
    height: 6px;
  }

  .month-weekday {
    padding: 8px 4px;
    font-size: 12px;
  }
}

/* Vue mobile avec défilement infini optimisé */
.mobile-infinite-view {
  padding: 0;
  background: #f8f9fa;
  height: 100vh;
  overflow-y: auto;
  overflow-x: hidden;
  position: relative;
  width: 100%;
  margin: 0;
  box-sizing: border-box;
  /* Optimisations critiques pour un scroll stable */
  contain: layout style paint;
  scroll-behavior: auto;
  /* Changé de smooth à auto pour éviter les conflits */
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  /* Évite le bounce sur iOS */
  /* Amélioration de la performance */
  will-change: scroll-position;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

/* Barre de navigation mobile comme sur l'image */
.mobile-nav-bar {
  position: fixed;
  top: 56px;
  /* Juste sous le header principal */
  left: 0;
  right: 0;
  z-index: 1000;
  background: white;
  border-bottom: 1px solid #e5e7eb;
  padding: 6px 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  background: rgba(255, 255, 255, 0.95);
  transition: all 0.3s ease;
  animation: slideDown 0.3s ease-out;
}

/* Bouton flottant Programmer pour mobile (FAB circulaire calendrier+) */
.mobile-floating-program-button {
  position: fixed;
  bottom: 24px;
  left: 50%;
  /* Centré en bas */
  transform: translateX(-50%);
  z-index: 2000;
  animation: floatIn 0.3s ease-out forwards;
  pointer-events: auto;
  touch-action: manipulation;
  -webkit-touch-callout: none;
}

@keyframes floatIn {
  from {
    transform: translateX(-50%) translateY(100px) scale(0.8);
    opacity: 0;
  }

  to {
    transform: translateX(-50%) translateY(0) scale(1);
    opacity: 1;
  }
}

.mobile-floating-program-button .ant-btn.mobile-floating-program-fab,
.mobile-floating-program-button .ant-btn {
  background: linear-gradient(135deg, #c9a86c 0%, #d4a574 100%) !important;
  border: none !important;
  border-radius: 50% !important;
  width: 56px !important;
  height: 56px !important;
  min-width: 56px !important;
  box-shadow: 0 4px 20px rgba(201, 168, 108, 0.45) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: all 0.3s ease !important;
  color: white !important;
  padding: 0 !important;
}

.mobile-floating-program-button .ant-btn:hover {
  background: linear-gradient(135deg, #d4a574 0%, #dfb07e 100%) !important;
  transform: translateY(-2px) scale(1.05) !important;
  box-shadow: 0 6px 24px rgba(201, 168, 108, 0.5) !important;
}

.mobile-floating-program-button .ant-btn:active {
  transform: translateY(0) scale(0.95) !important;
  box-shadow: 0 2px 12px rgba(201, 168, 108, 0.4) !important;
}

/* Halo discret autour du FAB */
.mobile-floating-program-button .ant-btn::before {
  content: '';
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(201, 168, 108, 0.35) 0%, rgba(212, 165, 116, 0.25) 100%);
  z-index: -1;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% {
    transform: scale(1);
    opacity: 0.3;
  }

  50% {
    transform: scale(1.1);
    opacity: 0.1;
  }

  100% {
    transform: scale(1);
    opacity: 0.3;
  }
}

/* Menu Programmer mobile : icônes marron, texte gris foncé (comme le screenshot) */
.programmer-dropdown-mobile.ant-dropdown .ant-dropdown-menu-item,
.programmer-dropdown-mobile.ant-dropdown .ant-dropdown-menu-item .anticon {
  color: rgba(0, 0, 0, 0.88) !important;
}

.programmer-dropdown-mobile.ant-dropdown .ant-dropdown-menu-item:hover,
.programmer-dropdown-mobile.ant-dropdown .ant-dropdown-menu-item:hover .anticon {
  color: rgba(0, 0, 0, 0.88) !important;
}

@keyframes slideDown {
  from {
    transform: translateY(-100%);
    opacity: 0;
  }

  to {
    transform: translateY(0);
    opacity: 1;
  }
}

.mobile-nav-buttons {
  display: flex;
  gap: 0;
  background: #f5f5f5;
  border-radius: 18px;
  padding: 2px;
}

.mobile-nav-button {
  flex: 1 1;
  background: transparent;
  border: none;
  padding: 6px 12px;
  border-radius: 16px;
  font-size: 13px;
  font-weight: 500;
  color: #666;
  cursor: pointer;
  transition: all 0.2s ease;
  white-space: nowrap;
}

.mobile-nav-button.active {
  background: #8B4513;
  /* Couleur marron comme sur l'image */
  color: white;
  box-shadow: 0 2px 4px rgba(139, 69, 19, 0.2);
}

.mobile-nav-button:not(.active):hover {
  color: #333;
  background: rgba(139, 69, 19, 0.1);
}

.mobile-scrollable-content {
  padding-top: 120px;
  /* Espace pour header principal (56px) + nav bar (40px) + marge (24px) */
  padding-bottom: 80px;
  width: 100%;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  height: calc(100vh - 56px);
  /* 56px est la hauteur du header principal */
  position: relative;
  /* Optimisations critiques pour un scroll stable */
  scroll-behavior: auto;
  /* Auto au lieu de smooth pour éviter les conflits */
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-y: contain;
  /* Évite le bounce sur iOS */
  scroll-snap-type: none;
  /* Désactive le scroll snap automatique */
  /* Performance optimizations améliorées */
  contain: layout style;
  will-change: scroll-position;
  transform: translateZ(0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  /* Éviter les conflits avec les position sticky */
  isolation: isolate;
}

.mobile-current-date {
  font-size: 14px;
  opacity: 0.9;
  margin-top: 2px;
}

.mobile-header-card {
  background: var(--honey-glow);
  color: var(--text-primary);
  padding: 24px 20px 20px 20px;
  margin: 0;
  position: relative;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-radius: 0 0 24px 24px;
  width: 100%;
  box-sizing: border-box;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(193, 154, 107, 0.15);
}

/* Animation quand l'en-tête change */
.mobile-header-card.day-changing {
  animation: headerPulse 0.6s ease-out;
}

@keyframes headerPulse {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.02);
    box-shadow: 0 4px 20px rgba(102, 126, 234, 0.3);
  }

  100% {
    transform: scale(1);
  }
}

.mobile-date-header {
  flex: 1 1;
}

.mobile-day-title {
  font-size: 24px;
  font-weight: 700;
  margin-bottom: 4px;
}

.mobile-date-number {
  font-size: 48px;
  font-weight: 800;
  line-height: 1;
  margin-bottom: 2px;
}

.mobile-month {
  font-size: 16px;
  opacity: 0.9;
}

.today-badge {
  background: rgba(255, 255, 255, 0.2);
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 12px;
  font-weight: 600;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
}

.mobile-summary {
  padding: 16px;
  text-align: center;
  color: #666;
  font-size: 14px;
  background: white;
  margin: 16px 16px 16px 16px;
  /* Marges équilibrées */
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  width: calc(100% - 32px);
  /* Largeur calculée pour éviter débordement */
  box-sizing: border-box;
}

.mobile-events-list {
  padding: 0 16px;
  margin-bottom: 80px;
}

.mobile-no-events {
  text-align: center;
  padding: 40px 20px;
  background: white;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.no-events-icon {
  font-size: 48px;
  margin-bottom: 16px;
}

.no-events-text {
  color: #666;
  font-size: 16px;
  margin-bottom: 20px;
}

.program-button {
  background: var(--wheat-field);
  border: none;
  border-radius: 20px;
  padding: 14px 28px;
  height: auto;
  font-weight: 600;
  color: white;
  box-shadow: var(--shadow-soft);
  transition: all 0.3s ease;
}

.program-button:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-medium);
  background: var(--golden-sand);
}

.mobile-event-card {
  background: white;
  border-radius: 16px;
  padding: 16px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border-left: 4px solid #e8e8e8;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  /* Transition simplifiée */
  width: calc(100% - 16px);
  /* Largeur relative au conteneur parent */
  max-width: 100%;
  box-sizing: border-box;
  word-wrap: break-word;
  overflow: hidden;
  /* Optimisations pour éviter les reflows */
  contain: layout style paint;
  will-change: auto;
  /* Laisser le navigateur décider */
  transform: translate3d(0, 0, 0);
  /* Force GPU mais stable */
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.mobile-event-card:active {
  transform: scale(0.98);
}

.availability-mobile {
  border-left-color: #52c41a;
  background: linear-gradient(135deg, #f6ffed 0%, #ffffff 100%);
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.mobile-time-badge {
  background: #52c41a;
  color: white;
  padding: 4px 8px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  margin-bottom: 8px;
}

.mobile-event-content {
  flex: 1 1;
  margin: 0 12px;
}

.mobile-event-title {
  font-size: 16px;
  font-weight: 600;
  color: #262626;
  margin-bottom: 2px;
}

.mobile-event-subtitle {
  font-size: 12px;
  color: #52c41a;
  font-weight: 500;
}

.mobile-action-button {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: #52c41a;
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20px;
  font-weight: 300;
}

.mobile-event-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}

.mobile-event-type {
  font-size: 16px;
  font-weight: 700;
  color: inherit;
  flex: 1 1;
}

.mobile-event-time {
  font-size: 18px;
  font-weight: 800;
  color: inherit;
  min-width: 60px;
  text-align: right;
}

.mobile-event-details {
  margin-bottom: 12px;
}

.mobile-event-location,
.mobile-event-client,
.mobile-event-info,
.mobile-event-reason,
.mobile-event-animal,
.mobile-event-participants {
  font-size: 14px;
  color: inherit;
  margin-bottom: 4px;
  display: flex;
  align-items: center;
}

.mobile-message-section {
  background: #f8f9fa;
  padding: 12px;
  border-radius: 8px;
  margin-top: 12px;
  font-size: 12px;
  color: #666;
}

.mobile-message-preview {
  color: #262626;
  margin: 8px 0;
  font-style: italic;
  line-height: 1.4;
}

.mobile-message-link {
  color: #1890ff;
  font-weight: 600;
  text-decoration: underline;
}

/* Couleurs pour les différents types mobiles */
.booking-mobile {
  border-left-color: #1890ff;
}

.booking-mobile.confirmed-status {
  border-left-color: #52c41a;
}

.booking-mobile.pending-status {
  border-left-color: #faad14;
}

.booking-mobile.cancelled-status {
  border-left-color: #ff4d4f;
  opacity: 0.7;
}

.unavailability-mobile {
  border-left-color: #722ed1;
  background: linear-gradient(135deg, #f9f0ff 0%, #ffffff 100%);
}

.event-mobile {
  border-left-color: #13c2c2;
}

/* Navigation par onglets en bas */
.mobile-day-navigation {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: white;
  padding: 12px 16px 20px 16px;
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.1);
  display: flex;
  justify-content: space-between;
  z-index: 100;
}

.mobile-day-tab {
  flex: 1 1;
  text-align: center;
  padding: 8px 4px;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.3s ease;
  margin: 0 2px;
}

.mobile-day-tab:active {
  transform: scale(0.95);
}

.mobile-day-tab.active {
  background: var(--wheat-field);
  color: white;
  box-shadow: var(--shadow-soft);
  transform: scale(1.02);
}

.mobile-day-tab.today:not(.active) {
  background: var(--soft-gold);
  color: var(--text-primary);
}

.mobile-day-name {
  font-size: 10px;
  font-weight: 600;
  margin-bottom: 2px;
  text-transform: uppercase;
}

.mobile-day-number {
  font-size: 16px;
  font-weight: 700;
}

/* Animation d'apparition */
.mobile-event-card {
  animation: slideInUp 0.3s ease-out;
}

@keyframes slideInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Nouvelles sections pour le défilement infini optimisées */
.mobile-day-section {
  margin-bottom: 24px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  /* Optimisations pour des performances stables */
  contain: layout style paint;
  /* Éviter les changements de layout inattendus */
  min-height: 120px;
  /* Hauteur minimale pour éviter les sauts */
  will-change: auto;
  transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

/* Supprimé - remplacé par le nouveau style sticky ci-dessous */

.mobile-day-header.today {
  border-left-color: #1890ff;
  background: linear-gradient(135deg, #e6f7ff 0%, #ffffff 100%);
}

.mobile-day-info {
  margin-bottom: 8px;
}

.mobile-day-name-large {
  font-size: 20px;
  font-weight: 700;
  color: #262626;
  margin-bottom: 2px;
}

.mobile-day-header.today .mobile-day-name-large {
  color: #1890ff;
}

.mobile-day-date {
  font-size: 14px;
  color: #666;
}

.mobile-day-summary {
  font-size: 12px;
  color: #666;
  background: #f8f9fa;
  padding: 6px 12px;
  border-radius: 12px;
  display: inline-block;
}

.mobile-day-header.today .mobile-day-summary {
  background: rgba(24, 144, 255, 0.1);
  color: #1890ff;
}

/* En-têtes de jour normaux (détectés par JavaScript) */
.mobile-day-header {
  background: white;
  padding: 16px;
  margin: 0 8px 12px 8px;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border-left: 4px solid #e8e8e8;
  width: calc(100vw - 16px);
  box-sizing: border-box;
}

.mobile-day-events {
  padding: 0 8px;
  /* Padding réduit */
}

.mobile-no-events-day {
  text-align: center;
  padding: 20px;
  background: white;
  border-radius: 12px;
  margin-bottom: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  width: 100%;
  box-sizing: border-box;
}

.no-events-text-small {
  color: #999;
  font-size: 14px;
  margin-bottom: 12px;
}

.program-button-small {
  color: #1890ff;
  font-size: 12px;
  padding: 4px 12px;
  height: auto;
  border-radius: 16px;
}

.program-button-small:hover {
  background: #e6f7ff;
}

.mobile-day-separator {
  height: 1px;
  background: linear-gradient(90deg, transparent 0%, #e8e8e8 20%, #e8e8e8 80%, transparent 100%);
  margin: 24px 32px;
}

.mobile-loading-more {
  text-align: center;
  padding: 16px 20px;
  color: #999;
  background: rgba(255, 255, 255, 0.9);
  margin: 0 16px;
  border-radius: 12px;
  -webkit-backdrop-filter: blur(10px);
          backdrop-filter: blur(10px);
  animation: fadeInUp 0.3s ease-out;
  width: calc(100% - 32px);
  box-sizing: border-box;
  /* Éviter les problèmes de layout */
  contain: layout style;
  height: 60px;
  /* Hauteur fixe pour éviter les sauts */
  display: flex;
  align-items: center;
  justify-content: center;
  /* Optimisations pour éviter les reflows */
  transform: translate3d(0, 0, 0);
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
}

.mobile-loading-more.top {
  animation: fadeInDown 0.3s ease-out;
  margin-bottom: 16px;
}

.loading-text {
  font-size: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  font-weight: 500;
}

.loading-text::before {
  content: "⏳";
  animation: rotate 1s linear infinite;
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
  }

  50% {
    opacity: 0.5;
  }
}

@keyframes rotate {
  from {
    transform: rotate(0deg);
  }

  to {
    transform: rotate(360deg);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Plus de bouton flottant - navigation en haut maintenant */

/* Styles pour la vue jour unique mobile */
.mobile-single-day-view {
  padding: 16px;
}

.mobile-day-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: white;
  padding: 16px;
  margin: 0 -16px 16px -16px;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.mobile-nav-arrow {
  background: #f5f5f5;
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  cursor: pointer;
  color: #666;
}

.mobile-nav-arrow:hover {
  background: #e8e8e8;
}

.mobile-current-day-header {
  text-align: center;
}

.mobile-day-name {
  font-size: 18px;
  font-weight: 600;
  color: #333;
}

.mobile-day-date {
  font-size: 14px;
  color: #666;
  margin-top: 4px;
}

.mobile-day-events-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mobile-no-events {
  text-align: center;
  padding: 60px 20px;
  color: #999;
}

.mobile-no-events-icon {
  font-size: 48px;
  margin-bottom: 16px;
}

.mobile-no-events-text {
  font-size: 16px;
}

/* Styles pour les cartes d'événements dans la vue jour */
.mobile-event-card {
  background: white;
  border-radius: 12px;
  padding: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  cursor: pointer;
  transition: all 0.2s ease;
  border-left: 4px solid;
  pointer-events: auto;
  position: relative;
  z-index: 5;
}

.mobile-event-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.mobile-event-card.availability-mobile {
  border-left-color: #10b981;
  background: #f0fdf4;
}

.mobile-event-card.availability-block-mobile {
  border-left-color: #10b981;
  background: linear-gradient(135deg, #f0fdf4 0%, #dcfce7 100%);
  border: 1px solid #bbf7d0;
}

.mobile-availability-slots {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 8px;
}

.mobile-slot-item {
  background: rgba(16, 185, 129, 0.1);
  color: #059669;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.mobile-event-card.booking-mobile {
  border-left-color: #3b82f6;
  background: #eff6ff;
}

.mobile-event-card.unavailability-mobile {
  border-left-color: #ef4444;
  background: #fef2f2;
}

.mobile-event-card.event-mobile {
  border-left-color: #8b5cf6;
  background: #f3f0ff;
}

.mobile-event-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 12px;
}

.mobile-event-type {
  font-size: 16px;
  font-weight: 600;
  color: inherit;
}

.mobile-event-time {
  font-size: 14px;
  color: inherit;
  font-weight: 500;
  white-space: nowrap;
}

.mobile-event-details {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mobile-event-location,
.mobile-event-client,
.mobile-event-animal,
.mobile-event-duration,
.mobile-event-reason,
.mobile-event-description {
  font-size: 14px;
  color: inherit;
  display: flex;
  align-items: center;
  gap: 8px;
}

.mobile-event-availability-info,
.mobile-event-unavailability-info {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mobile-event-action {
  margin-top: 8px;
}

/* Icône calendrier + plus (bouton Programmer) */
.planning-tab-icon.calendar-plus {
  position: relative;
  display: inline-flex;
  align-items: center;
  font-size: 16px;
}

.planning-tab-icon.calendar-plus .icon-overlay {
  position: absolute;
  top: -4px;
  right: -6px;
  font-size: 10px;
}

.mobile-floating-program-button .planning-tab-icon.calendar-plus {
  font-size: 22px;
  color: #000;
}

.mobile-floating-program-button .planning-tab-icon.calendar-plus .icon-overlay {
  top: -6px;
  right: -8px;
  font-size: 12px;
  color: #000;
}

.mobile-add-booking-btn {
  background: #10b981;
  color: white;
  border: none;
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  width: 100%;
  transition: all 0.2s ease;
}

.mobile-add-booking-btn:hover {
  background: #059669;
  transform: translateY(-1px);
}

/* Styles pour la vue semaine mobile */
/* Styles pour la vue mobile 4 jours */
.mobile-fourdays-view {
  padding: 16px;
}

.mobile-fourdays-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 8px;
  gap: 8px;
  grid-template-rows: 1fr;
  /* Toutes les lignes ont la même hauteur */
  min-height: 200px;
  /* Hauteur minimale pour la grille */
}

.mobile-week-view {
  padding: 16px;
}

.mobile-week-navigation,
.mobile-fourdays-navigation,
.mobile-month-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: white;
  padding: 16px;
  margin: 0 -16px 16px -16px;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.mobile-week-header,
.mobile-fourdays-header,
.mobile-month-header {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  text-align: center;
}

.mobile-week-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  grid-gap: 8px;
  gap: 8px;
  grid-template-rows: 1fr;
  /* Toutes les lignes ont la même hauteur */
  min-height: 200px;
  /* Hauteur minimale pour la grille */
}

.mobile-week-day,
.mobile-fourdays-day {
  background: white;
  border-radius: 12px;
  padding: 12px 8px;
  text-align: center;
  cursor: pointer;
  border: 2px solid transparent;
  transition: all 0.2s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
  min-height: 120px;
  /* Hauteur minimale */
  display: flex;
  flex-direction: column;
  overflow: hidden;
  /* Cache le débordement */
}

.mobile-week-day:hover,
.mobile-fourdays-day:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.mobile-week-day.today,
.mobile-fourdays-day.today {
  border-color: #1890ff;
  background: rgba(24, 144, 255, 0.05);
}

.mobile-week-day-header,
.mobile-fourdays-day-header {
  margin-bottom: 8px;
}

.mobile-week-day-name,
.mobile-fourdays-day-name {
  font-size: 12px;
  color: #666;
  text-transform: uppercase;
}

.mobile-week-day-number,
.mobile-fourdays-day-number {
  font-size: 18px;
  font-weight: 600;
  color: #333;
  margin-top: 4px;
}

.mobile-week-events,
.mobile-fourdays-events {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 20px;
  flex: 1 1;
  /* Prend l'espace restant */
  overflow-y: auto;
  /* Scrollable si trop d'événements */
  overflow-x: hidden;
  /* Scrollbar plus discrète */
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
  /* Utilise tout l'espace disponible */
  justify-content: flex-start;
  /* Aligne les événements en haut */
}

.mobile-week-events::-webkit-scrollbar,
.mobile-fourdays-events::-webkit-scrollbar {
  width: 3px;
}

.mobile-week-events::-webkit-scrollbar-track,
.mobile-fourdays-events::-webkit-scrollbar-track {
  background: transparent;
}

.mobile-week-events::-webkit-scrollbar-thumb,
.mobile-fourdays-events::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 3px;
}

.mobile-week-no-events,
.mobile-fourdays-no-events {
  font-size: 11px;
  color: #9ca3af;
  text-align: center;
  padding: 8px 4px;
  font-style: italic;
}

.mobile-week-event,
.mobile-fourdays-event {
  background: #f9fafb;
  border-radius: 6px;
  padding: 3px 5px;
  /* Plus compact */
  cursor: pointer;
  transition: all 0.2s ease;
  border-left: 3px solid;
  text-align: left;
  min-height: 0;
  /* Permet une hauteur plus petite */
  flex-shrink: 0;
  /* Évite que les événements se contractent */
}

.mobile-week-event:hover,
.mobile-fourdays-event:hover {
  background: #f3f4f6;
}

.mobile-week-event.availability,
.mobile-fourdays-event.availability {
  border-left-color: #10b981;
}

.mobile-week-event.booking,
.mobile-fourdays-event.booking {
  border-left-color: #3b82f6;
}

.mobile-week-event.unavailability,
.mobile-fourdays-event.unavailability {
  border-left-color: #ef4444;
}

.mobile-week-event.event,
.mobile-fourdays-event.event {
  border-left-color: #8b5cf6;
}

.mobile-week-event-time,
.mobile-fourdays-event-time {
  font-size: 10px;
  color: #6b7280;
  font-weight: 500;
}

.mobile-week-event-title,
.mobile-fourdays-event-title {
  font-size: 11px;
  color: #374151;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.mobile-week-more {
  font-size: 10px;
  color: #666;
  font-weight: 500;
  text-align: center;
  font-style: italic;
}

/* Styles pour la vue mois mobile */
.mobile-month-view {
  padding: 12px;
  max-width: 100vw;
  overflow-x: hidden;
  box-sizing: border-box;
}

.mobile-month-weekdays {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-gap: 4px;
  gap: 4px;
  margin-bottom: 8px;
  width: 100%;
  box-sizing: border-box;
}

.mobile-weekday-header {
  text-align: center;
  font-size: 10px;
  font-weight: 600;
  color: #666;
  padding: 6px 2px;
  text-transform: uppercase;
  box-sizing: border-box;
  overflow: hidden;
  text-overflow: ellipsis;
}

.mobile-month-grid {
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  box-sizing: border-box;
}

.mobile-month-week {
  display: grid;
  grid-template-columns: repeat(7, minmax(0, 1fr));
  grid-gap: 4px;
  gap: 4px;
  width: 100%;
  box-sizing: border-box;
}

.mobile-month-day {
  background: white;
  border-radius: 6px;
  padding: 6px 2px;
  text-align: center;
  cursor: pointer;
  border: 1px solid transparent;
  transition: all 0.2s ease;
  min-height: 60px;
  display: flex;
  flex-direction: column;
  align-items: center;
  box-sizing: border-box;
  min-width: 0;
  overflow: hidden;
}

.mobile-month-day:hover {
  background: #f8f9fa;
}

.mobile-month-day.today {
  border-color: #1890ff;
  background: rgba(24, 144, 255, 0.05);
}

.mobile-month-day.other-month {
  opacity: 0.3;
}

.mobile-month-day-number {
  font-size: 12px;
  font-weight: 600;
  color: #333;
  margin-bottom: 2px;
  flex-shrink: 0;
}

.mobile-month-events {
  display: flex;
  flex-direction: column;
  gap: 2px;
  width: 100%;
  box-sizing: border-box;
  overflow: hidden;
}

.mobile-month-event {
  background: #f9fafb;
  border-radius: 3px;
  padding: 2px 3px;
  cursor: pointer;
  transition: all 0.2s ease;
  border-left: 2px solid;
  font-size: 9px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
  overflow: hidden;
  box-sizing: border-box;
}

.mobile-month-event:hover {
  background: #f3f4f6;
}

.mobile-month-event.availability {
  border-left-color: #10b981;
}

.mobile-month-event.booking {
  border-left-color: #3b82f6;
}

.mobile-month-event.unavailability {
  border-left-color: #ef4444;
}

.mobile-month-event.event {
  border-left-color: #8b5cf6;
}

.mobile-month-event-time {
  font-size: 8px;
  color: #6b7280;
  font-weight: 500;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.mobile-month-event-title {
  font-size: 8px;
  color: #374151;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  line-height: 1.2;
}

.mobile-month-more {
  font-size: 7px;
  color: #666;
  font-weight: 500;
  text-align: center;
  font-style: italic;
  margin-top: 2px;
}

/* ============== STYLES POUR LA VUE MOBILE 4 JOURS ============== */

.mobile-fourdays-view {
  padding: 16px;
}

.mobile-fourdays-navigation {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: white;
  padding: 16px;
  margin: 0 -16px 16px -16px;
  border-radius: 16px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.mobile-fourdays-header {
  font-size: 16px;
  font-weight: 600;
  color: #333;
  text-align: center;
}

.mobile-fourdays-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 8px;
  gap: 8px;
  grid-template-rows: 1fr;
  min-height: 200px;
}

.mobile-fourdays-day {
  background: white;
  border-radius: 12px;
  padding: 12px 8px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  border: 1px solid #f0f0f0;
  display: flex;
  flex-direction: column;
  overflow: hidden;
}

.mobile-fourdays-day:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.mobile-fourdays-day.today {
  border-color: #1890ff;
  background: rgba(24, 144, 255, 0.05);
}

.mobile-fourdays-day-header {
  margin-bottom: 8px;
}

.mobile-fourdays-day-name {
  font-size: 12px;
  color: #666;
  text-transform: uppercase;
}

.mobile-fourdays-day-number {
  font-size: 18px;
  font-weight: 600;
  color: #333;
  margin-top: 4px;
}

.mobile-fourdays-events {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 20px;
  flex: 1 1;
  overflow-y: auto;
  overflow-x: hidden;
  scrollbar-width: thin;
  scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
  justify-content: flex-start;
}

.mobile-fourdays-events::-webkit-scrollbar {
  width: 3px;
}

.mobile-fourdays-events::-webkit-scrollbar-track {
  background: transparent;
}

.mobile-fourdays-events::-webkit-scrollbar-thumb {
  background: rgba(0, 0, 0, 0.2);
  border-radius: 3px;
}

.mobile-fourdays-no-events {
  font-size: 11px;
  color: #9ca3af;
  text-align: center;
  padding: 8px 4px;
  font-style: italic;
}

.mobile-fourdays-event {
  background: #f9fafb;
  border-radius: 6px;
  padding: 3px 5px;
  cursor: pointer;
  transition: all 0.2s ease;
  border-left: 3px solid;
  text-align: left;
  min-height: 0;
  flex-shrink: 0;
}

.mobile-fourdays-event:hover {
  background: #f3f4f6;
}

.mobile-fourdays-event.availability {
  border-left-color: #10b981;
}

.mobile-fourdays-event.booking {
  border-left-color: #3b82f6;
}

.mobile-fourdays-event.unavailability {
  border-left-color: #ef4444;
}

.mobile-fourdays-event.event {
  border-left-color: #8b5cf6;
}

.mobile-fourdays-event-time {
  font-size: 10px;
  color: #6b7280;
  font-weight: 500;
}

.mobile-fourdays-event-title {
  font-size: 11px;
  color: #374151;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
/* AddOccurrencesModal - Mobile First */

.add-occurrences-modal .ant-modal {
  max-width: calc(100vw - 32px) !important;
  margin: 16px auto !important;
  padding-bottom: 0;
}

/* Mobile : modale contrainte à la hauteur de l'écran pour que le bouton d'action reste visible */
@media (max-width: 767px) {
  .add-occurrences-modal .ant-modal {
    /* On laisse plus d'espace en bas pour le footer de l'app mobile,
       afin que le bouton "Confirmer" soit entièrement visible */
    max-height: calc(100vh - 96px) !important;
    display: flex !important;
    align-items: center;
  }

  .add-occurrences-modal .ant-modal-content {
    max-height: calc(100vh - 96px) !important;
    display: flex !important;
    flex-direction: column !important;
  }

  .add-occurrences-modal .ant-modal-body {
    flex: 1 1 !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  .add-occurrences-modal .ant-modal-footer {
    flex-shrink: 0 !important;
  }
}

/* Safe area pour appareils avec encoche */
@supports (padding: max(0px)) {
  .add-occurrences-modal .ant-modal-body {
    padding-left: max(16px, env(safe-area-inset-left));
    padding-right: max(16px, env(safe-area-inset-right));
  }
}

.add-occurrences-modal .ant-modal-content {
  border-radius: 16px;
  overflow: hidden;
}

.add-occurrences-modal .ant-modal-body {
  padding: 16px;
  max-height: calc(100vh - 140px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.add-occurrences-modal .ant-modal-footer {
  padding: 12px 16px 16px;
  padding-bottom: max(16px, env(safe-area-inset-bottom));
  border-top: 1px solid #f0f0f0;
}

.add-occurrences-modal .ant-modal-footer > div {
  width: 100%;
}

.add-occurrences-modal .ant-modal-footer .ant-btn {
  min-height: 48px;
  padding: 12px 24px;
  font-size: 16px;
  width: 100%;
}

@media (min-width: 768px) {
  .add-occurrences-modal .ant-modal-footer .ant-btn {
    width: auto;
  }
}

/* Conteneur principal : 1 colonne sur mobile */
.add-occurrences-modal-content {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

/* Grille : 1 colonne mobile, 2 colonnes desktop */
.add-occurrences-modal-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 20px;
  gap: 20px;
  align-items: start;
}

/* Blocs carte - même hauteur sur desktop */
.add-occurrences-modal-card {
  padding: 16px;
  background-color: #fff;
  border-radius: 12px;
  border: 1px solid #e8e8e8;
}

/* Calendrier - cellules tactiles plus grandes sur mobile */
.add-occurrences-modal .ant-picker-calendar {
  padding: 0;
}

.add-occurrences-modal .ant-picker-calendar-date {
  min-height: 44px !important;
  padding: 8px 0 !important;
}

.add-occurrences-modal .ant-picker-cell-inner {
  min-height: 40px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* Boutons de navigation du calendrier - zone tactile 44px min */
.add-occurrences-modal-nav-btn {
  min-width: 44px;
  min-height: 44px;
  padding: 12px 16px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

/* TimePicker - hauteur tactile */
.add-occurrences-modal .ant-picker {
  min-height: 48px !important;
}

/* Bouton principal */
.add-occurrences-modal-add-btn {
  min-height: 48px !important;
  font-size: 16px !important;
}

/* Liste occurrences */
.add-occurrences-modal-occurrence-item {
  min-height: 52px;
  padding: 12px 16px !important;
}

.add-occurrences-modal-occurrence-item .ant-btn {
  min-width: 44px;
  min-height: 44px;
}

/* Desktop : 2 colonnes */
@media (min-width: 768px) {
  .add-occurrences-modal .ant-modal {
    max-width: 720px !important;
  }

  .add-occurrences-modal .ant-modal-body {
    padding: 24px;
  }

  .add-occurrences-modal-card {
    padding: 20px;
  }

  .add-occurrences-modal-grid {
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }

  /* La carte de droite : même hauteur que la gauche (remplit le vide), scroll si trop de contenu */
  .add-occurrences-modal-card-right {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    min-height: 0;
  }

  .add-occurrences-modal-nav-btn {
    min-width: 36px;
    min-height: 36px;
    padding: 6px 12px !important;
  }
}

/* Sur mobile : boutons "Ajouter des dates" / "Inscrire un client" au-dessus des onglets À venir / Passés */
@media (max-width: 767px) {
  .service-sessions-actions-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .service-sessions-tabs {
    order: 2;
  }

  .service-sessions-buttons {
    order: 1;
    justify-content: stretch;
  }
}

/* Variables de la charte graphique */
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

/* Fix for Google Places Autocomplete appearing behind MUI Dialog */
.pac-container {
  z-index: 2000 !important;
}

/* Custom styles for the MUI components to match the brand */
.MuiDialog-paper {
  border: 1px solid rgba(165, 118, 92, 0.1);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
}

.MuiDialogTitle-root {
  color: #A5765C;
  color: var(--brown);
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.1), rgba(255, 255, 255, 0));
}

/* Override MUI active/focused colors to match brand gold */
.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {
  border-color: #F6C674 !important;
  border-color: var(--gold) !important;
}

.MuiInputLabel-root.Mui-focused {
  color: #A5765C !important;
  color: var(--brown) !important;
}

.MuiButton-containedPrimary {
  background: linear-gradient(45deg, #A5765C, #b5866b) !important;
  background: linear-gradient(45deg, var(--brown), #b5866b) !important;
  text-transform: none !important;
}

.MuiButton-containedPrimary:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58) !important;
}

.MuiSwitch-switchBase.Mui-checked {
  color: #A5765C !important;
  color: var(--brown) !important;
}

.MuiSwitch-switchBase.Mui-checked+.MuiSwitch-track {
  background-color: #A5765C !important;
  background-color: var(--brown) !important;
}
.planning-page {
  padding: 20px 0;
  /* Reduced vertical padding, no horizontal here */
  min-height: 100vh;
  width: 100%;
  max-width: 100%;
  /* Fill available space */
  font-family: 'Poppins', sans-serif;
  position: relative;
  z-index: 1;
  /* Use a consistent background that blends with the layout and modern planning */
  background-color: #fcfaf8;
}

/* Titre principal plus élégant */
.planning-page h1,
.planning-page .page-title {
  font-size: 2.2rem;
  font-weight: 700;
  margin-bottom: 1.2rem;
  color: #333;
  position: relative;
  padding-bottom: 8px;
}

/* Effet soulignement pour les titres */
.planning-page h1:after,
.planning-page .page-title:after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 3px;
  background-color: #F6C674;
  border-radius: 3px;
}

/* Sous-titres stylisés */
.planning-page h2,
.planning-page .page-subtitle {
  font-size: 1.6rem;
  font-weight: 600;
  margin-bottom: 1rem;
  color: #A5765C;
  position: relative;
}

/* Container de l'en-tête */
.header-container {
  display: flex;
  justify-content: flex-end;
  /* Align buttons to the right, or space-between if title existed */
  align-items: center;
  margin-bottom: 10px;
  padding: 0 240px 0 10px;
  background: transparent;
  border: none;
  box-shadow: none;
}

.header-container h2 {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--black);
  margin: 0;
  padding: 0;
}

/* Style screen 2 : titre à gauche, onglets à droite - une seule ligne (comme page Réservations) */
.planning-header-screen2 {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 24px;
  width: 100% !important;
  flex-wrap: nowrap !important;
}

.planning-page-title {
  margin: 0 !important;
  font-size: 2.2rem !important;
  font-weight: 700 !important;
  color: #333 !important;
  color: var(--black, #333) !important;
  flex-shrink: 0 !important;
  text-align: left !important;
  position: relative;
  padding-bottom: 8px;
  align-self: flex-start !important;
}

.planning-page-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 3px;
  background-color: #F6C674;
  border-radius: 3px;
}

.planning-header-tabs {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 20px;
  /* Augmenté de 12px à 20px pour plus d'espacement */
  flex-wrap: nowrap;
  flex-shrink: 0;
}

.planning-tab {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 18px;
  border: none;
  border-radius: 25px;
  font-size: 14px;
  font-weight: 500;
  font-family: 'Poppins', sans-serif;
  cursor: pointer;
  transition: all 0.2s ease;
}

.planning-tab-active {
  background: #a0816b;
  color: white;
}

.planning-tab-active:hover {
  background: #8b6f5a;
}

.planning-tab-inactive {
  background: #f5f0eb;
  color: #5D3B2B;
}

.planning-tab-inactive:hover {
  background: #ebe4dd;
}

.planning-tab-options {
  background: transparent;
  color: #5D3B2B;
}

.planning-tab-options:hover {
  color: #a0816b;
}

.planning-tab-icon {
  display: inline-flex;
  align-items: center;
  font-size: 16px;
}

.planning-tab-icon.calendar-plus {
  position: relative;
}

.planning-tab-icon.calendar-plus .icon-overlay {
  position: absolute;
  top: -4px;
  right: -6px;
  font-size: 10px;
}

.planning-tab-label {
  white-space: nowrap;
}

.planning-tab-chevron {
  font-size: 12px;
  margin-left: 4px;
}

.header-buttons {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 15px;
  margin-left: auto;
}

.header-buttons .typeform-button {
  margin-right: 8px;
}

.header-buttons .button-row {
  display: contents;
}

.action-buttons-group {
  display: flex;
  align-items: center;
  gap: 12px;
}

/* Styles pour le toggle de vue */
.view-toggle-container {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #f8f9fa;
  padding: 8px 16px;
  border-radius: 25px;
  border: 1px solid #e9ecef;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
  transition: all 0.3s ease;
}

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

.view-toggle-label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-weight: 500;
  color: #495057;
  font-size: 14px;
}

.view-toggle-switch {
  min-width: 60px;
}

.view-toggle-switch .ant-switch-inner {
  font-size: 11px;
  font-weight: 600;
}

/* Responsive pour le toggle - garder sur une ligne comme Réservations */
@media (max-width: 768px) {
  .planning-header-screen2 {
    flex-wrap: nowrap;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 8px;
    -webkit-overflow-scrolling: touch;
  }

  .planning-page-title {
    font-size: 1.4rem !important;
    text-align: left;
    white-space: nowrap;
  }

  .planning-header-tabs {
    gap: 6px;
    flex-shrink: 0;
  }

  .planning-tab {
    padding: 6px 12px;
    font-size: 12px;
  }

  .planning-tab-label {
    white-space: nowrap;
  }

  .planning-tab-icon.calendar-plus .icon-overlay {
    font-size: 9px;
  }

  .view-toggle-container {
    padding: 6px 12px;
    gap: 8px;
  }

  .view-toggle-label {
    font-size: 12px;
  }

  .view-toggle-switch {
    min-width: 50px;
  }

  /* Styles pour le dropdown Programmer sur mobile */
  .ant-dropdown-menu {
    border-radius: 12px !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.15) !important;
    padding: 8px !important;
  }

  .ant-dropdown-menu-item {
    border-radius: 8px !important;
    margin: 2px 0 !important;
    padding: 12px 16px !important;
    font-size: 14px !important;
    font-weight: 500 !important;
  }

  .ant-dropdown-menu-item:hover {
    background-color: rgba(165, 118, 92, 0.08) !important;
  }
}

/* Section de synchronisation mobile en bas */
.mobile-sync-section {
  margin-top: 20px;
  padding: 16px;
  background: var(--white);
  border-radius: var(--border-radius);
  box-shadow: var(--shadow-subtle);
  border: 1px solid rgba(165, 118, 92, 0.08);
}

.mobile-sync-section .google-sync-container {
  width: 100%;
  flex-direction: column;
  gap: 12px;
  padding: 12px;
}

.mobile-sync-section .sync-status-display {
  width: 100%;
  justify-content: center;
}

.mobile-sync-section .sync-controls {
  width: 100%;
}

.mobile-sync-section .sync-controls .ant-btn {
  width: 100%;
  justify-content: center;
}

/* Style du bouton Exporter sur mobile */
.mobile-sync-section .typeform-button {
  width: 100%;
  justify-content: center;
  margin: 0;
}

/* Améliorer l'affichage de l'image Google Calendar sur mobile */
.mobile-sync-section .sync-status-display img {
  max-width: 120px;
  margin: 0 auto;
}

.right-tools {
  display: flex;
  gap: 12px;
  margin-left: auto;
}

.planning-header-tool-btn {
  width: 44px;
  height: 44px;
  border-radius: 50% !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 0;
  font-size: 20px;
  border: 1px solid rgba(165, 118, 92, 0.15);
  background: white;
  color: #A5765C;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.planning-header-tool-btn:active {
  background: #fdf8f3;
  transform: scale(0.95);
}

@media (max-width: 768px) {
  .planning-page {
    padding: 16px;
    padding-bottom: 24px;
    /* Extra padding pour éviter le rognage */
    min-height: auto;
    /* Laisser le contenu définir la hauteur */
    /* Retirer les backgrounds complexes sur mobile pour la performance */
    background: #f8f9fa;
    box-shadow: none;
    /* S'assurer que le contenu n'est pas rogné */
    overflow: visible;
  }

  .unified-planning-header {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: white;
    padding: 12px 16px;
    border-bottom: 1px solid rgba(165, 118, 92, 0.1);
    margin-bottom: 12px;
  }

  .unified-planning-header .button-row {
    display: flex;
    flex-direction: column;
    gap: 12px;
    width: 100%;
  }

  .view-mode-selector.mobile-center {
    display: flex;
    justify-content: center;
    width: 100%;
  }

  .action-buttons-group {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
  }

  .right-tools {
    display: flex;
    gap: 12px;
    margin-left: auto;
  }

  .planning-header-tool-btn {
    width: 44px;
    height: 44px;
    border-radius: 50% !important;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    font-size: 20px;
    border: 1px solid rgba(165, 118, 92, 0.15);
    background: white;
    color: #A5765C;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  }

  .planning-header-tool-btn:active {
    background: #fdf8f3;
    transform: scale(0.95);
  }

  /* Calendar container - utiliser toute la largeur disponible */
  .calendar-container {
    margin: 0 -8px;
    width: calc(100% + 16px);
    border-radius: 12px;
    overflow: hidden;
  }
}

/* Styles pour très petits écrans (moins de 480px) */
@media (max-width: 480px) {
  .header-buttons .button-row {
    flex-direction: column !important;
    gap: 8px;
  }

  .header-buttons .typeform-button {
    width: 100% !important;
    font-size: 0.9rem;
    padding: 14px 16px;
    flex: none !important;
  }

  .header-buttons .ant-dropdown-button {
    width: 100% !important;
    flex: none !important;
  }

  .header-buttons .ant-dropdown-button .ant-btn {
    width: 100% !important;
    font-size: 0.9rem;
    padding: 14px 16px;
  }

  .view-toggle-container {
    padding: 8px 12px;
    margin-top: 8px;
  }

  .view-toggle-label {
    font-size: 13px;
  }
}

/* Amélioration du dropdown sur mobile */
@media (max-width: 768px) {
  .ant-dropdown-menu {
    min-width: 200px !important;
    max-width: 90vw !important;
  }

  .ant-dropdown-menu-item {
    padding: 14px 16px !important;
    font-size: 15px !important;
    font-weight: 500 !important;
  }

  .ant-dropdown-menu-item .anticon {
    font-size: 16px !important;
    margin-right: 12px !important;
  }
}

/* Conteneur principal du planning */
.calendar-container {
  border-radius: 20px;
  background-color: #fff;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06);
  overflow: hidden;
  margin-bottom: 40px;
  border: 1px solid rgba(165, 118, 92, 0.08);
}

/* =============================
   BOUTONS AMÉLIORÉS
============================= */

.typeform-button {
  background: linear-gradient(45deg, #A5765C, #b5866b);
  color: #fff;
  border: none;
  border-radius: 30px;
  padding: 12px 24px;
  font-size: 1rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(165, 118, 92, 0.25);
}

.typeform-button:hover {
  background: linear-gradient(45deg, #b5866b, #A5765C);
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.3);
}

.typeform-button:active {
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(165, 118, 92, 0.3);
}

.typeform-button .anticon {
  font-size: 1.25rem;
}

.typeform-button:focus {
  outline: none;
}

/* Synchronisation avec Google Agenda */
.google-sync-container {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #52c41a;
  background-color: rgba(82, 196, 26, 0.1);
  padding: 8px 15px;
  border-radius: 30px;
  box-shadow: 0 3px 10px rgba(82, 196, 26, 0.15);
  border: 1px solid rgba(82, 196, 26, 0.2);
}

/* =============================
   MODAL STYLES AMÉLIORÉS
============================= */

.planning-modal-overlay {
  background-color: rgba(0, 0, 0, 0.6) !important;
  z-index: 9999 !important;
  display: flex;
  align-items: center;
  justify-content: center;
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
}

.planning-modal-content {
  background-color: #fff;
  border-radius: 16px;
  padding: 30px;
  width: 600px;
  max-width: 90%;
  position: relative;
  outline: none;
  box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
  max-height: 90%;
  overflow-y: auto;
  z-index: 99999;
  margin: auto;
  animation: fadeInScale 0.3s ease;
}

@keyframes fadeInScale {
  0% {
    opacity: 0;
    transform: scale(0.95);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

.planning-modal-title {
  font-size: 1.8rem;
  font-weight: 700;
  margin-bottom: 20px;
  color: #A5765C;
  text-align: left;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(246, 198, 116, 0.3);
  position: relative;
}

.planning-modal-title::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 80px;
  height: 3px;
  background-color: #F6C674;
  border-radius: 3px;
}

.planning-modal-body {
  margin-top: 20px;
}

.planning-modal-body p {
  margin-bottom: 15px;
  color: #555;
  line-height: 1.7;
  font-size: 1.05rem;
}

.planning-modal-body ol {
  margin: 20px 0;
  padding-left: 25px;
  list-style-type: decimal;
  color: #555;
  line-height: 1.7;
  font-size: 1.05rem;
}

.planning-modal-body li {
  margin-bottom: 12px;
  position: relative;
}

.planning-modal-link {
  width: 100%;
  padding: 15px;
  font-size: 1rem;
  border: 1px solid rgba(165, 118, 92, 0.2);
  border-radius: 12px;
  margin: 25px 0;
  background-color: #f9f9f9;
  color: #444;
  transition: all 0.2s ease;
  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.05);
  font-family: monospace;
  font-size: 0.9rem;
}

.planning-modal-link:hover {
  background-color: #f4f4f4;
  border-color: rgba(165, 118, 92, 0.3);
}

.planning-modal-buttons {
  display: flex;
  gap: 12px;
  justify-content: flex-end;
  margin-top: 30px;
}

.planning-modal-buttons button {
  background: linear-gradient(45deg, #A5765C, #b5866b);
  color: #fff;
  border: none;
  border-radius: 12px;
  padding: 12px 24px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.2);
}

.planning-modal-buttons button:hover {
  background: linear-gradient(45deg, #b5866b, #A5765C);
  transform: translateY(-2px);
  box-shadow: 0 8px 16px rgba(165, 118, 92, 0.25);
}

.planning-modal-buttons button:active {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(165, 118, 92, 0.2);
}

.planning-modal-buttons button:nth-child(2) {
  background: #f4f4f4;
  color: #666;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.planning-modal-buttons button:nth-child(2):hover {
  background: #eaeaea;
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
}

/* =============================
   FIN PLANNING PAGE
============================= */


/* Modal de resynchronisation */
.resync-results {
  padding: 16px 0;
}

.resync-results h4 {
  margin-bottom: 16px;
  color: #2c3e50;
  font-weight: 600;
}

.resync-stats {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 20px;
}

.stat-item {
  display: flex;
  align-items: center;
  padding: 8px 12px;
  border-radius: 6px;
  border: 1px solid #e1e5e9;
  background: #f8f9fa;
}

.stat-item.success {
  background: #d4edda;
  border-color: #c3e6cb;
  color: #155724;
}

.stat-item.info {
  background: #d1ecf1;
  border-color: #bee5eb;
  color: #0c5460;
}

.stat-item.error {
  background: #f8d7da;
  border-color: #f5c6cb;
  color: #721c24;
}

.stat-item.warning {
  background: #fff3cd;
  border-color: #ffeaa7;
  color: #856404;
}

.stat-icon {
  font-size: 16px;
  margin-right: 8px;
  min-width: 20px;
}

.stat-label {
  flex: 1 1;
  font-weight: 500;
}

.stat-value {
  font-weight: 600;
  font-size: 16px;
}

.resync-message {
  padding: 12px;
  background: #d4edda;
  border: 1px solid #c3e6cb;
  border-radius: 6px;
  color: #155724;
}

.resync-message p {
  margin: 0;
  font-weight: 500;
}

/* Améliorations google-sync-container */
.google-sync-container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 8px 16px;
  background: linear-gradient(135deg, #f0f8ff 0%, #e6f3ff 100%);
  border: 1px solid #d1e7dd;
  border-radius: 8px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.sync-status-display {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1 1;
}

.sync-controls {
  display: flex;
  align-items: center;
  gap: 8px;
}

.sync-controls .ant-btn {
  display: flex;
  align-items: center;
  gap: 6px;
}

.sync-controls .ant-btn:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Boutons informatifs de resynchronisation */
.sync-controls .ant-btn:disabled {
  cursor: not-allowed;
  border-color: #d9d9d9;
  color: #00000040;
  background: #f5f5f5;
}

.sync-controls .ant-btn:disabled:hover {
  transform: none;
  box-shadow: none;
  border-color: #d9d9d9;
}

/* Animation du bouton de resynchronisation */
@keyframes pulse {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.05);
  }

  100% {
    transform: scale(1);
  }
}

.sync-controls .ant-btn.ant-btn-loading {
  animation: pulse 1.5s ease-in-out infinite;
}

/* Responsive pour mobile */
/* Bouton de toggle dans le header mobile */
.mobile-header-toggle-button {
  background: #8b4513;
  color: white;
  border: none;
  border-radius: 16px;
  padding: 6px 10px;
  font-size: 12px;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 4px;
  cursor: pointer;
  transition: all 0.2s ease;
  height: 28px;
}

.mobile-header-toggle-button:hover {
  background: #a0522d;
  transform: translateY(-1px);
}

.mobile-header-toggle-button:active {
  transform: translateY(0);
}

.mobile-header-toggle-button .anticon {
  font-size: 12px;
}

@media (max-width: 768px) {
  .google-sync-container {
    flex-direction: column;
    gap: 8px;
    padding: 8px 12px;
  }

  .sync-controls {
    flex-direction: column;
    gap: 8px;
    width: 100%;
  }

  .sync-controls .ant-btn {
    width: 100%;
    justify-content: center;
  }

  .resync-stats {
    gap: 8px;
  }

  .stat-item {
    padding: 6px 10px;
    font-size: 14px;
  }

  .stat-icon {
    font-size: 14px;
  }
}
/* src/pages/ReservationsPage.css */

/* =============================
   RÉSERVATIONS PAGE
============================= */

.reservations-page {
  padding: 40px 20px;
  min-height: 100vh;
  max-width: 1100px;
  margin: 0 auto;
  font-family: 'Poppins', sans-serif;
  position: relative;
  z-index: 1;
  background-image: linear-gradient(to bottom right, #fafafa, #f6f2ef);
  box-shadow: inset 0 0 100px rgba(246, 198, 116, 0.05);
}

.reservations-page-header {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  margin-bottom: 0px;
  padding-bottom: 0px;
  background: transparent;
  padding: 10px 20px;
}



.reservations-page-title {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--black);
  position: relative;
  padding-bottom: 8px;
  margin: 0;
}

.reservations-page-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 60px;
  height: 3px;
  background-color: #F6C674;
  border-radius: 3px;
}

/* =============================
   FILTRES AMÉLIORÉS
============================= */

.reservations-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 20px;
  padding: 0 20px;
  background-color: transparent;
}

.reservations-filter-chip {
  transition: all 0.3s ease;
  border-radius: 30px !important;
  font-weight: 600 !important;
  padding: 5px 15px !important;
}

.reservations-filter-chip:hover {
  transform: translateY(-2px);
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08);
}

.reservations-filter-chip.active {
  background: linear-gradient(to right, #A5765C, #b5866b) !important;
  color: white !important;
  box-shadow: 0 3px 8px rgba(165, 118, 92, 0.25) !important;
}

/* =============================
   CARTES DE RÉSERVATION
============================= */

.reservations-date-card {
  margin-bottom: 25px;
  padding: 20px;
  border-radius: 16px;
  background-color: #fff;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(165, 118, 92, 0.08);
  overflow: hidden;
}

.reservations-date-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: #A5765C;
  margin-bottom: 20px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(246, 198, 116, 0.2);
  text-transform: capitalize;
  position: relative;
}

.reservations-date-title::after {
  content: "";
  position: absolute;
  bottom: -1px;
  left: 0;
  width: 80px;
  height: 3px;
  background: linear-gradient(to right, #F6C674, #EE9F99);
  border-radius: 3px;
}

.reservation-item {
  padding: 20px;
  border-radius: 12px;
  background-color: #fff;
  border: 1px solid rgba(165, 118, 92, 0.1);
  margin-bottom: 15px;
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.04);
}

.reservation-item:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.12);
  border-color: rgba(246, 198, 116, 0.3);
}

.reservation-item.cancelled,
.reservation-item.declined {
  opacity: 0.7;
  background-color: #f9f9f9;
}

.reservation-item-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 15px;
}

.reservation-item-details {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.reservation-client-name {
  font-weight: 600;
  color: #333;
  text-decoration: none;
  transition: color 0.2s ease;
}

.reservation-client-name:hover {
  color: #A5765C;
  text-decoration: underline;
}

.reservation-animal-name {
  font-weight: 600;
  color: #555;
  text-decoration: none;
  transition: color 0.2s ease;
}

.reservation-animal-name:hover {
  color: #A5765C;
  text-decoration: underline;
}

.reservation-service {
  display: inline-block;
  background-color: rgba(246, 198, 116, 0.1);
  padding: 4px 10px;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 600;
  color: #A5765C;
  margin-top: 5px;
}

.reservation-time {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 0.9rem;
  color: #555;
}

.reservation-time-icon {
  color: #A5765C;
  font-size: 1rem;
}

.reservation-message {
  margin-top: 10px;
  padding: 12px;
  background-color: #f9f9f9;
  border-radius: 10px;
  font-size: 0.9rem;
  color: #555;
  border-left: 3px solid #F6C674;
}

.reservation-message-empty {
  font-style: italic;
  color: #999;
}

.reservation-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 15px;
}

.reservation-status-tag {
  border-radius: 20px !important;
  font-weight: 600 !important;
}

.reservation-payment-tag {
  border-radius: 20px !important;
  font-weight: 600 !important;
}

.reservation-actions {
  display: flex;
  gap: 10px;
  margin-top: 20px;
  justify-content: flex-end;
}

.reservation-action-button {
  padding: 6px 15px !important;
  border-radius: 25px !important;
  font-weight: 600 !important;
  transition: all 0.3s ease !important;
  text-transform: none !important;
}

.reservation-action-button:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}

.reservation-detail-button {
  padding: 8px 20px !important;
  border-radius: 25px !important;
  background: linear-gradient(to right, #A5765C, #b5866b) !important;
  color: white !important;
  font-weight: 600 !important;
  box-shadow: 0 4px 10px rgba(165, 118, 92, 0.2) !important;
  transition: all 0.3s ease !important;
  margin-top: 10px !important;
  text-transform: none !important;
}

.reservation-detail-button:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 15px rgba(165, 118, 92, 0.3) !important;
  background: linear-gradient(to right, #b5866b, #A5765C) !important;
}

/* =============================
   TABLE POUR DESKTOP
============================= */

.reservations-table {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
}

.reservations-table th {
  background: linear-gradient(to right, rgba(246, 198, 116, 0.1), rgba(255, 255, 255, 0.8));
  color: #A5765C;
  font-weight: 600;
  padding: 15px;
  text-align: left;
  border-bottom: 1px solid rgba(165, 118, 92, 0.1);
}

.reservations-table td {
  padding: 12px 15px;
  vertical-align: middle;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.reservations-table tr:last-child td {
  border-bottom: none;
}

.reservations-table tr {
  transition: background-color 0.2s ease;
}

.reservations-table tr:hover {
  background-color: rgba(246, 198, 116, 0.05);
}

.reservations-table tr.cancelled,
.reservations-table tr.declined {
  opacity: 0.7;
  background-color: #f9f9f9;
}

/* =============================
   ALERTE PREMIUM
============================= */

.premium-alert {
  margin-bottom: 20px;
  border-radius: 12px;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
  overflow: hidden;
  border-left: 4px solid #F6C674 !important;
}

/* =============================
   BOUTON D'AJOUT
============================= */

.typeform-button {
  background: linear-gradient(45deg, #A5765C, #b5866b);
  color: #fff;
  border: none;
  border-radius: 30px;
  padding: 12px 24px;
  font-size: 1rem;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  transition: all 0.3s ease;
  box-shadow: 0 4px 15px rgba(165, 118, 92, 0.25);
}

.typeform-button:hover {
  background: linear-gradient(45deg, #b5866b, #A5765C);
  transform: translateY(-3px);
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.3);
}

.typeform-button:active {
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(165, 118, 92, 0.3);
}

.typeform-button .anticon {
  font-size: 1.25rem;
}

.typeform-button:focus {
  outline: none;
}

/* =============================
   RESPONSIVE
============================= */

@media (max-width: 768px) {
  .reservations-page {
    padding: 16px;
    min-height: calc(100vh - 56px - 56px);
    min-height: calc(100vh - var(--mobile-header-height, 56px) - var(--mobile-footer-height, 56px));
  }

  .reservations-page-header {
    display: none;
    /* Masquer complètement le header sur mobile */
  }

  .reservations-page-title {
    font-size: 1.5rem;
    text-align: left;
  }

  .reservations-page-title::after {
    display: none;
  }

  /* Filtres dans le drawer mobile */
  .ant-drawer-content-wrapper {
    border-radius: 16px 16px 0 0 !important;
  }

  .ant-drawer-header {
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    padding: 16px 24px;
  }

  .ant-drawer-title {
    font-size: 18px;
    font-weight: 600;
    color: var(--brown);
  }

  /* Filtres dans le drawer */
  .ant-drawer-body .reservations-filters {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 0;
    background: transparent;
    box-shadow: none;
    border: none;
  }

  .ant-drawer-body .reservations-filter-chip {
    width: 100%;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
  }

  .reservations-date-card {
    padding: 15px;
    margin-bottom: 16px;
  }

  .reservations-date-title {
    font-size: 1.2rem;
    margin-bottom: 16px;
  }

  .reservation-item {
    padding: 15px;
    margin-bottom: 12px;
  }

  .reservation-item-header {
    flex-direction: column;
    gap: 10px;
  }

  .reservation-tags {
    justify-content: flex-start;
  }

  .reservation-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .add-booking-button {
    width: 100%;
  }
}

/* =============================
   FIN RESERVATIONS PAGE
============================= */

/* =============================
   BOUTON RELANCER - DISPONIBLE BIENTÔT
============================= */

.relancer-button-disabled {
  position: relative;
  opacity: 0.6 !important;
  cursor: not-allowed !important;
  background-color: #f5f5f5 !important;
  color: #999 !important;
  border-color: #d9d9d9 !important;
  transition: all 0.3s ease;
}

.relancer-button-disabled:hover {
  opacity: 0.7 !important;
  transform: none !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1) !important;
}

.relancer-button-disabled::after {
  content: "disponible bientôt";
  position: absolute;
  top: -40px;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.8);
  color: white;
  padding: 6px 12px;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  z-index: 1000;
  pointer-events: none;
}

.relancer-button-disabled::before {
  content: "";
  position: absolute;
  top: -8px;
  left: 50%;
  transform: translateX(-50%);
  border: 4px solid transparent;
  border-top-color: rgba(0, 0, 0, 0.8);
  opacity: 0;
  visibility: hidden;
  transition: all 0.3s ease;
  z-index: 1000;
  pointer-events: none;
}

.relancer-button-disabled:hover::after {
  opacity: 1;
  visibility: visible;
  top: -45px;
}


.relancer-button-disabled:hover::before {
  opacity: 1;
  visibility: visible;
  top: -13px;
}

/* =============================
   SECONDARY BUTTON
============================= */

.btn-secondary {
  /* Match .typeform-button shape */
  border-radius: 30px !important;
  padding: 12px 24px !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
  transition: all 0.3s ease !important;

  /* Visuals */
  background: transparent !important;
  border: 1px solid #A5765C !important;
  border: 1px solid var(--color-primary-brown, #A5765C) !important;
  color: #A5765C !important;
  color: var(--color-primary-brown, #A5765C) !important;
  box-shadow: none !important;
}

.btn-secondary:hover {
  background-color: #f8fafc !important;
  background-color: var(--color-slate-50, #f8fafc) !important;
  border-color: #8b5e48 !important;
  border-color: var(--color-primary-brown-dark, #8b5e48) !important;
  color: #8b5e48 !important;
  color: var(--color-primary-brown-dark, #8b5e48) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.1) !important;
}

.btn-secondary:active {
  transform: translateY(-1px) !important;
}
/* =============================================
   PROFILE PAGE - DESIGN HARMONISÉ & PREMIUM
   ============================================= */

/* Variables CSS locales */
.profile-page-container {
  --primary-gold: #F6C674;
  --primary-gold-hover: #f0b254;
  --text-dark: #333;
  --text-secondary: #666;
  --bg-light: #f8f9fa;
  --surface-white: #ffffff;
  --border-subtle: rgba(0, 0, 0, 0.08);
  --shadow-soft: 0 2px 8px rgba(0, 0, 0, 0.06);
  --shadow-medium: 0 4px 16px rgba(0, 0, 0, 0.1);
  --shadow-strong: 0 8px 32px rgba(0, 0, 0, 0.12);
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --transition-fast: all 0.2s ease;
  --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Container principal */
.profile-page-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 24px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
  background: var(--bg-light);
  min-height: 100vh;
}

/* Titre */
.profile-title {
  font-size: 1.75rem;
  font-weight: 700;
  text-align: left;
  margin-bottom: 24px;
  color: var(--text-dark);
  letter-spacing: -0.02em;
}

/* États de chargement */
.profile-loading,
.profile-not-found {
  text-align: center;
  margin-top: 80px;
  padding: 40px 20px;
  color: var(--text-secondary);
  font-size: 1.1rem;
}

.profile-loading::before {
  content: '';
  display: block;
  width: 40px;
  height: 40px;
  margin: 0 auto 20px;
  border: 3px solid var(--border-subtle);
  border-top-color: var(--primary-gold);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

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

/* Formulaire et détails */
.profile-form,
.profile-details {
  background: var(--surface-white);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-soft);
  padding: 24px;
  margin-bottom: 20px;
  border: 1px solid var(--border-subtle);
  transition: var(--transition-smooth);
}

.profile-form:hover,
.profile-details:hover {
  box-shadow: var(--shadow-medium);
}

.profile-form .form-group,
.profile-details p {
  margin-bottom: 20px;
}

/* Labels */
.form-group label {
  display: block;
  font-weight: 600;
  margin-bottom: 8px;
  color: var(--text-dark);
  font-size: 0.9rem;
}

/* Inputs */
.profile-form input,
.profile-form textarea,
.profile-form select {
  width: 100%;
  padding: 12px 16px;
  border-radius: var(--radius-sm);
  border: 1.5px solid var(--border-subtle);
  font-size: 0.95rem;
  background: var(--surface-white);
  transition: var(--transition-fast);
  color: var(--text-dark);
}

.profile-form input:hover,
.profile-form textarea:hover,
.profile-form select:hover {
  border-color: rgba(0, 0, 0, 0.15);
}

.profile-form input:focus,
.profile-form textarea:focus,
.profile-form select:focus {
  border-color: var(--primary-gold);
  outline: none;
  box-shadow: 0 0 0 3px rgba(246, 198, 116, 0.15);
}

/* Sections photos */
.profile-photo-section,
.secondary-photos-section,
.contacts-section {
  margin-bottom: 24px;
}

.profile-photo-preview,
.secondary-photo {
  width: 100px;
  height: 100px;
  object-fit: cover;
  border-radius: var(--radius-md);
  margin-right: 12px;
  margin-bottom: 12px;
  border: 2px solid var(--border-subtle);
  transition: var(--transition-fast);
}

.profile-photo-preview:hover,
.secondary-photo:hover {
  border-color: var(--primary-gold);
  transform: scale(1.02);
}

/* Photos secondaires */
.secondary-photos-section .photo-item {
  position: relative;
  display: inline-block;
  margin-right: 12px;
  margin-bottom: 12px;
}

.photo-item button {
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  padding: 4px 8px;
  cursor: pointer;
  font-size: 0.75rem;
  transition: var(--transition-fast);
  -webkit-backdrop-filter: blur(4px);
          backdrop-filter: blur(4px);
}

.photo-item button:hover {
  background: rgba(0, 0, 0, 0.8);
  transform: scale(1.05);
}

/* Contacts / Réseaux sociaux */
.contact-item {
  background: var(--bg-light);
  border-radius: var(--radius-md);
  padding: 12px 16px;
  margin-bottom: 12px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid var(--border-subtle);
  transition: var(--transition-fast);
}

.contact-item:hover {
  background: #f0f2f5;
  border-color: rgba(0, 0, 0, 0.12);
}

.contact-item button {
  background: linear-gradient(135deg, #e74c3c 0%, #c0392b 100%);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  padding: 6px 12px;
  font-size: 0.8rem;
  font-weight: 500;
  cursor: pointer;
  transition: var(--transition-fast);
}

.contact-item button:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(231, 76, 60, 0.3);
}

.contact-form {
  margin-top: 20px;
}

/* Inline form group */
.form-group-inline {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.form-group-inline label {
  margin-right: 0;
  margin-bottom: 0;
  white-space: nowrap;
}

/* Bouton ajouter contact */
.add-contact-button {
  background: linear-gradient(135deg, var(--text-dark) 0%, #555 100%);
  color: #fff;
  border: none;
  border-radius: var(--radius-sm);
  padding: 10px 18px;
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 500;
  transition: var(--transition-fast);
}

.add-contact-button:hover {
  transform: translateY(-1px);
  box-shadow: var(--shadow-medium);
}

/* Groupe de boutons */
.button-group {
  text-align: center;
  margin-top: 24px;
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
}

/* Boutons */
.primary-button,
.secondary-button {
  padding: 12px 24px;
  font-size: 0.95rem;
  font-weight: 600;
  border: none;
  border-radius: var(--radius-sm);
  cursor: pointer;
  margin: 0;
  transition: var(--transition-fast);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.primary-button {
  background: linear-gradient(135deg, var(--primary-gold) 0%, var(--primary-gold-hover) 100%);
  color: var(--text-dark);
}

.primary-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(246, 198, 116, 0.4);
}

.secondary-button {
  background: var(--surface-white);
  color: var(--text-dark);
  border: 1.5px solid var(--border-subtle);
}

.secondary-button:hover {
  background: var(--bg-light);
  border-color: rgba(0, 0, 0, 0.15);
}

/* =============================================
   LIEN PROFIL PUBLIC
   ============================================= */
.public-profile-link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  background: linear-gradient(135deg, #f8f9fa 0%, #fff 100%);
  border-radius: var(--radius-md);
  border: 1.5px solid var(--primary-gold);
  margin-bottom: 20px;
  transition: var(--transition-smooth);
}

.public-profile-link:hover {
  box-shadow: 0 4px 16px rgba(246, 198, 116, 0.25);
  transform: translateY(-1px);
}

.public-profile-link .link-icon {
  width: 40px;
  height: 40px;
  background: var(--primary-gold);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-size: 1.2rem;
}

.public-profile-link .link-content {
  flex: 1 1;
}

.public-profile-link .link-label {
  font-weight: 600;
  color: var(--text-dark);
  font-size: 0.9rem;
  margin-bottom: 2px;
}

.public-profile-link .link-url {
  color: var(--primary-gold-hover);
  font-size: 0.85rem;
  text-decoration: none;
  word-break: break-all;
}

.public-profile-link .link-url:hover {
  text-decoration: underline;
}

.public-profile-link .copy-btn {
  background: var(--surface-white);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-sm);
  padding: 8px 14px;
  cursor: pointer;
  font-size: 0.8rem;
  color: var(--text-secondary);
  transition: var(--transition-fast);
}

.public-profile-link .copy-btn:hover {
  background: var(--bg-light);
  color: var(--text-dark);
}

/* =============================================
   RESPONSIVE
   ============================================= */
@media (max-width: 768px) {
  .profile-page-container {
    padding: 16px;
  }

  .profile-form,
  .profile-details {
    padding: 20px;
  }
}

@media (max-width: 480px) {
  .profile-page-container {
    padding: 12px;
  }

  .profile-photo-preview,
  .secondary-photo {
    width: 80px;
    height: 80px;
  }

  .contact-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }

  .form-group-inline {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }

  .form-group-inline label {
    margin-bottom: 0;
  }

  .button-group {
    flex-direction: column;
  }

  .primary-button,
  .secondary-button {
    width: 100%;
  }

  .public-profile-link {
    flex-direction: column;
    text-align: center;
    gap: 10px;
  }

  .public-profile-link .link-content {
    width: 100%;
  }
}
/* src/components/VisibilityBanner.css */
.visibility-banner {
    padding: 15px 20px;
    margin-bottom: 20px;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: space-between;
  }
  
  .visibility-banner p {
    margin: 0;
    font-size: 1rem;
  }
  
  .visibility-banner.error {
    background-color: #ffdddd; /* Rouge pâle */
    border-left: 4px solid #f44336; /* Rouge vif */
    color: #a94442; /* Rouge foncé */
  }
  
  .visibility-banner.success {
    background-color: #ddffdd; /* Vert pâle */
    border-left: 4px solid #4CAF50; /* Vert vif */
    color: #3c763d; /* Vert foncé */
  }
  
  .visibility-banner a {
    color: #4CAF50; /* Vert vif */
    text-decoration: none;
    font-weight: bold;
  }
  
  .visibility-banner a:hover {
    text-decoration: underline;
  }
  
/**
 * Rintintin Design System - Design Tokens
 * Single source of truth for all design decisions
 * Update values here to reflect changes across the entire application
 */

:root {
    /* ========================================
     COLORS - PRIMARY
     ======================================== */
    --color-primary-brown: #A5765C;
    --color-primary-brown-dark: #8b5e48;
    --color-primary-brown-light: #c9a88a;

    /* ========================================
     COLORS - SEMANTIC
     ======================================== */
    --color-success: #10b981;
    --color-success-light: #d1fae5;
    --color-warning: #f97316;
    --color-warning-light: #ffedd5;
    --color-error: #ef4444;
    --color-error-light: #fee2e2;
    --color-info: #3b82f6;
    --color-info-light: #dbeafe;

    /* ========================================
     COLORS - WIDGET SPECIFIC
     ======================================== */
    --color-widget-revenue: #15803d;
    --color-widget-pending: #c2410c;
    --color-widget-packages: #7e22ce;
    --color-widget-services: #1d4ed8;

    /* ========================================
     COLORS - SLATE SCALE (Neutral)
     ======================================== */
    --color-slate-900: #0f172a;
    --color-slate-800: #1e293b;
    --color-slate-700: #334155;
    --color-slate-600: #475569;
    --color-slate-500: #64748b;
    --color-slate-400: #94a3b8;
    --color-slate-300: #cbd5e1;
    --color-slate-200: #e2e8f0;
    --color-slate-100: #f1f5f9;
    --color-slate-50: #f8fafc;
    --color-white: #ffffff;

    /* ========================================
     TYPOGRAPHY - FONT SIZES
     ======================================== */
    --font-size-xs: 12px;
    --font-size-sm: 14px;
    --font-size-base: 16px;
    --font-size-lg: 18px;
    --font-size-xl: 20px;
    --font-size-2xl: 24px;
    --font-size-3xl: 28px;
    --font-size-4xl: 32px;
    --font-size-5xl: 40px;

    /* ========================================
     TYPOGRAPHY - FONT WEIGHTS
     ======================================== */
    --font-weight-normal: 400;
    --font-weight-medium: 500;
    --font-weight-semibold: 600;
    --font-weight-bold: 700;

    /* ========================================
     TYPOGRAPHY - LINE HEIGHTS
     ======================================== */
    --line-height-tight: 1.25;
    --line-height-normal: 1.5;
    --line-height-relaxed: 1.75;

    /* ========================================
     SPACING SCALE
     ======================================== */
    --spacing-0: 0;
    --spacing-1: 4px;
    --spacing-2: 8px;
    --spacing-3: 12px;
    --spacing-4: 16px;
    --spacing-5: 20px;
    --spacing-6: 24px;
    --spacing-7: 28px;
    --spacing-8: 32px;
    --spacing-10: 40px;
    --spacing-12: 48px;
    --spacing-16: 64px;
    --spacing-20: 80px;

    /* ========================================
     BORDER RADIUS
     ======================================== */
    --radius-none: 0;
    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 16px;
    --radius-xl: 20px;
    --radius-2xl: 24px;
    --radius-3xl: 32px;
    --radius-full: 9999px;

    /* ========================================
     SHADOWS
     ======================================== */
    --shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    --shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
    --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1);
    --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25);

    /* ========================================
     TRANSITIONS
     ======================================== */
    --transition-fast: 150ms ease-in-out;
    --transition-base: 250ms ease-in-out;
    --transition-slow: 350ms ease-in-out;

    /* ========================================
     Z-INDEX SCALE
     ======================================== */
    --z-index-dropdown: 1000;
    --z-index-sticky: 1020;
    --z-index-fixed: 1030;
    --z-index-modal-backdrop: 1040;
    --z-index-modal: 1050;
    --z-index-popover: 1060;
    --z-index-tooltip: 1070;
}
/* =========================== */
/* DESIGN SYSTEM PAGE - V3    */
/* Complete Reference Guide    */
/* =========================== */

/* Import Design Tokens - Single Source of Truth */

.design-system-page {
    padding: 24px;
    max-width: 1400px;
    margin: 0 auto;
    background-color: #f8f9fa;
    min-height: 100vh;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* =========================== */
/* HEADER                      */
/* =========================== */

.ds-header {
    text-align: center;
    margin-bottom: 40px;
    padding: 40px 20px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    border-radius: 24px;
    border: 1px solid #e2e8f0;
}

.ds-header h1 {
    margin: 0 0 12px 0;
    font-size: 36px;
    font-weight: 800;
    color: #1e293b;
    letter-spacing: -1px;
}

.ds-subtitle {
    font-size: 16px;
    color: #64748b;
    margin: 0;
    font-weight: 500;
}

/* =========================== */
/* NAVIGATION                  */
/* =========================== */

.ds-nav {
    display: flex;
    gap: 12px;
    padding: 16px;
    margin-bottom: 40px;
    background: white;
    border-radius: 20px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.ds-nav::-webkit-scrollbar {
    display: none;
}

.ds-nav a {
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.3s;
    background: #f8fafc;
}

.ds-nav a:hover {
    background: #e2e8f0;
    color: #1e293b;
    transform: translateY(-2px);
}

/* =========================== */
/* CATEGORY NAVIGATION         */
/* =========================== */

.category-navigation {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-gap: 20px;
    gap: 20px;
    margin-bottom: 60px;
}

.category-card {
    background: white;
    border-radius: 24px;
    padding: 32px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    border: 2px solid transparent;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 20px;
    position: relative;
    overflow: hidden;
}

.category-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(165, 118, 92, 0.03), transparent);
    transition: left 0.5s ease;
}

.category-card:hover::before {
    left: 100%;
}

.category-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
    border-color: rgba(165, 118, 92, 0.2);
}

.category-icon {
    font-size: 48px;
    flex-shrink: 0;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.1));
    transition: transform 0.3s ease;
}

.category-card:hover .category-icon {
    transform: scale(1.1);
}

.category-content {
    flex: 1 1;
}

.category-content h3 {
    font-size: 20px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 4px 0;
}

.category-content p {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 8px 0;
}

.category-count {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
    background: #f8fafc;
    padding: 4px 12px;
    border-radius: 8px;
    display: inline-block;
}

.category-arrow {
    color: #cbd5e1;
    font-size: 20px;
    transition: all 0.3s ease;
}

.category-card:hover .category-arrow {
    color: #A5765C;
    transform: translateX(4px);
}

/* =========================== */
/* CATEGORY SECTIONS           */
/* =========================== */

.ds-category {
    margin-bottom: 80px;
    scroll-margin-top: 80px;
}

.category-title {
    text-align: center;
    margin-bottom: 48px;
    padding: 40px 24px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    border-radius: 24px;
    border: 1px solid #e2e8f0;
}

.category-number {
    font-size: 14px;
    font-weight: 700;
    color: #A5765C;
    letter-spacing: 2px;
    text-transform: uppercase;
    display: block;
    margin-bottom: 12px;
}

.category-title h2 {
    font-size: 32px;
    font-weight: 800;
    color: #1e293b;
    margin: 0 0 8px 0;
    letter-spacing: -1px;
}

.category-title p {
    font-size: 16px;
    color: #64748b;
    margin: 0;
}

/* =========================== */
/* SECTIONS                    */
/* =========================== */

.ds-section {
    margin-bottom: 60px;
    scroll-margin-top: 80px;
}

.section-header {
    margin-bottom: 32px;
    text-align: center;
}

.section-header h3 {
    font-size: 22px;
    font-weight: 800;
    color: #1e293b;
    margin: 0 0 8px 0;
    letter-spacing: -0.5px;
}

.section-header p {
    font-size: 15px;
    color: #64748b;
    margin: 0;
}

.ds-subsection {
    margin-bottom: 40px;
    background: white;
    padding: 32px;
    border-radius: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.ds-subsection h3 {
    font-size: 20px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 8px 0;
}

.ds-subsection h4 {
    font-size: 16px;
    font-weight: 700;
    color: #475569;
    margin: 0 0 16px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 13px;
}

.component-description {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 24px 0;
    line-height: 1.6;
}

/* =========================== */
/* 1. COLORS                   */
/* =========================== */

.color-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    grid-gap: 16px;
    gap: 16px;
}

.color-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.color-swatch {
    width: 100%;
    height: 80px;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.color-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.color-info strong {
    font-size: 14px;
    font-weight: 700;
    color: #1e293b;
}

.color-info code {
    font-size: 13px;
    font-family: 'Monaco', monospace;
    color: #64748b;
    background: #f8fafc;
    padding: 4px 8px;
    border-radius: 6px;
    width: -webkit-fit-content;
    width: fit-content;
}

.color-usage {
    font-size: 12px;
    color: #94a3b8;
    font-style: italic;
}

/* =========================== */
/* 2. TYPOGRAPHY               */
/* =========================== */

.typography-showcase {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.typo-example {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px;
    background: white;
    border-radius: 16px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.typo-example code {
    font-size: 12px;
    color: #64748b;
    background: #f8fafc;
    padding: 8px 12px;
    border-radius: 8px;
    font-family: 'Monaco', monospace;
}

.typo-h1 {
    font-size: 28px;
    font-weight: 800;
    color: #1e293b;
    letter-spacing: -0.5px;
    margin: 0;
}

.typo-h2 {
    font-size: 24px;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: -0.4px;
    margin: 0;
}

.typo-h3 {
    font-size: 20px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

.typo-h4 {
    font-size: 18px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

.typo-body {
    font-size: 15px;
    font-weight: 400;
    color: #64748b;
    line-height: 1.6;
    margin: 0;
}

.typo-small {
    font-size: 13px;
    font-weight: 500;
    color: #94a3b8;
    margin: 0;
}

.typo-label {
    font-size: 14px;
    font-weight: 600;
    color: #475569;
    margin: 0;
}

.typo-number {
    font-size: 28px;
    font-weight: 800;
    color: #1e293b;
    letter-spacing: -1px;
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
    margin: 0;
}

/* =========================== */
/* 3. SPACING                  */
/* =========================== */

.spacing-showcase {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.spacing-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.spacing-box {
    height: 40px;
    background: linear-gradient(135deg, #A5765C 0%, #8b5e48 100%);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(165, 118, 92, 0.3);
}

.spacing-item code {
    font-size: 12px;
    font-weight: 700;
    color: #1e293b;
    font-family: 'Monaco', monospace;
}

.spacing-item span {
    font-size: 11px;
    color: #94a3b8;
}

.radius-showcase {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.radius-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.radius-box {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #A5765C 0%, #8b5e48 100%);
    box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3);
}

.radius-item code {
    font-size: 12px;
    font-weight: 700;
    color: #1e293b;
    font-family: 'Monaco', monospace;
}

.radius-item span {
    font-size: 11px;
    color: #94a3b8;
}

.shadow-showcase {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    grid-gap: 24px;
    gap: 24px;
}

.shadow-card {
    padding: 24px;
    background: white;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.shadow-card strong {
    font-size: 14px;
    font-weight: 700;
    color: #1e293b;
}

.shadow-card code {
    font-size: 11px;
    color: #64748b;
    background: #f8fafc;
    padding: 6px 8px;
    border-radius: 6px;
    font-family: 'Monaco', monospace;
}

.shadow-card span {
    font-size: 12px;
    color: #94a3b8;
    font-style: italic;
}

/* =========================== */
/* 4. WIDGET CARDS             */
/* =========================== */

.widgets-grid-demo {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    grid-gap: 16px;
    gap: 16px;
    margin-bottom: 24px;
}

.widget-card {
    background: white;
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid transparent;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 140px;
}

.widget-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08);
    border-color: #f1f5f9;
}

.widget-header-inline {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}

.widget-icon-wrapper {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: #f8fafc;
}

.widget-content {
    flex: 1 1;
}

.widget-title {
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 4px;
}

.widget-value {
    font-size: 20px;
    font-weight: 800;
    color: #1e293b;
    margin-bottom: 4px;
    letter-spacing: -0.5px;
}

.widget-subtext {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
}

.widget-action-icon {
    color: #cbd5e1;
    font-size: 16px;
    opacity: 0.5;
    transition: all 0.3s;
}

.widget-card:hover .widget-action-icon {
    opacity: 1;
    color: #A5765C;
    transform: translateX(2px);
}

/* Widget color variants */
.widget-card.green .widget-icon-wrapper {
    background: #f0fdf4;
    color: #15803d;
}

.widget-card.orange .widget-icon-wrapper {
    background: #fff7ed;
    color: #c2410c;
}

.widget-card.purple .widget-icon-wrapper {
    background: #f5f3ff;
    color: #7e22ce;
}

.widget-card.blue .widget-icon-wrapper {
    background: #eff6ff;
    color: #1d4ed8;
}

.widget-card.red .widget-icon-wrapper {
    background: #fef2f2;
    color: #b91c1c;
}

.widget-card.grey .widget-icon-wrapper {
    background: #f8fafc;
    color: #64748b;
}

/* =========================== */
/* 5. COMPONENTS               */
/* =========================== */

.stat-badges-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* =========================== */
/* 6. PATTERNS                 */
/* =========================== */

/* Settings Widget Card Demo */
.settings-widget-card-demo {
    background: white;
    border-radius: 24px;
    padding: 32px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    border: 1px solid #e2e8f0;
}

.widget-header {
    display: flex;
    align-items: center;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid #f8fafc;
}

.widget-icon-wrapper.green {
    background: #f0fdf4;
    color: #15803d;
}

.widget-title-container {
    flex: 1 1;
}

.widget-title {
    font-size: 18px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
    letter-spacing: -0.3px;
}

.widget-subtitle {
    font-size: 13px;
    color: #94a3b8;
    margin-top: 2px;
    font-weight: 500;
}

/* Info Boxes */
.info-box-modern {
    padding: 16px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.6;
}

.info-box-modern.info {
    background: #eff6ff;
    color: #1e40af;
    border: 1px solid #bfdbfe;
}

.info-box-modern.success {
    background: #f0fdf4;
    color: #166534;
    border: 1px solid #bbf7d0;
}

.info-box-modern.warning {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
}

.info-box-modern.error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

/* Client Card Modern */
.client-card-modern {
    background: white;
    border-radius: 20px;
    padding: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    border: 1px solid #e2e8f0;
    transition: all 0.3s;
}

.client-card-modern:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
}

.client-header {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 16px;
}

.client-avatar-modern {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #A5765C 0%, #8b5e48 100%);
}

.client-initials-modern {
    font-size: 18px;
    font-weight: 700;
    color: white;
}

.client-name-modern {
    font-size: 18px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 8px 0;
}

.client-contact-modern {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.contact-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #64748b;
}

.contact-row svg {
    color: #94a3b8;
    flex-shrink: 0;
}

.divider-modern {
    height: 1px;
    background: #e2e8f0;
    margin: 16px 0;
}

.animals-section-modern {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.animal-tag {
    padding: 10px 14px;
    background: #f8fafc;
    border-radius: 12px;
    font-size: 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.animal-tag strong {
    color: #1e293b;
    font-weight: 600;
}

.animal-details {
    font-size: 12px;
    color: #94a3b8;
}

/* =========================== */
/* 7. FORMS                    */
/* =========================== */

.form-showcase {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

/* =========================== */
/* CODE EXAMPLES               */
/* =========================== */

.code-example {
    margin-top: 24px;
    padding: 20px;
    background: #1e293b;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.code-example strong {
    display: block;
    color: #94a3b8;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
}

.code-example pre {
    margin: 0;
    padding: 0;
    font-family: 'Monaco', 'Courier New', monospace;
    font-size: 13px;
    line-height: 1.6;
    color: #e2e8f0;
    overflow-x: auto;
}

/* =========================== */
/* FOOTER                      */
/* =========================== */

.ds-footer {
    text-align: center;
    padding: 40px 20px;
    margin-top: 60px;
    background: white;
    border-radius: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.ds-footer p {
    color: #64748b;
    margin: 0;
}

/* =========================== */
/* RESPONSIVE                  */
/* =========================== */

@media (max-width: 768px) {
    .design-system-page {
        padding: 16px;
    }

    .ds-header {
        padding: 24px 16px;
    }

    .ds-header h1 {
        font-size: 28px;
    }

    .section-header h2 {
        font-size: 24px;
    }

    .ds-subsection {
        padding: 20px;
    }

    .color-grid {
        grid-template-columns: 1fr 1fr;
    }

    .widgets-grid-demo {
        grid-template-columns: 1fr;
    }
}
/**
 * ProfilePageV2 - Built using Rintintin Design System
 * This file imports the Design System styles
 */

/* Import Design System Tokens */

/* Import Design System Page styles - This gives us all widget-card, typography, etc. */

/* Profile-specific overrides only if absolutely needed */
.profile-page-container {
  padding: var(--spacing-6);
  max-width: 1200px;
  margin: 0 auto;
  background: var(--color-slate-50);
  min-height: 100vh;
}
/* ClientsChiensPage.css */

.clients-chiens-container {
  padding: 24px;
  max-width: 1200px;
  margin: 0 auto;
}

/* Page title */
.page-title {
  margin: 0;
  color: #2C2C2C;
  font-size: 28px;
  font-weight: 700;
  letter-spacing: -0.5px;
}

/* Section headers */
.section-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid rgba(165, 118, 92, 0.1);
}

/* Search section */
.search-section {
  margin-bottom: 24px;
}

/* Validation filters */
.validation-filters {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  align-items: center;
}

.validation-filters .ant-btn {
  transition: all 0.2s ease;
}

.validation-filters .ant-btn-primary {
  background: linear-gradient(135deg, #a5765c, #f6c674);
  border: none;
}

.alphabet-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 16px;
}

.alphabet-filter .ant-btn {
  border-radius: 6px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.alphabet-filter .ant-btn-primary {
  background: linear-gradient(135deg, #a5765c, #f6c674);
  border-color: #a5765c;
}

/* Loading */
.loading-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 20px;
  text-align: center;
}

.loading-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid rgba(165, 118, 92, 0.1);
  border-left: 4px solid #a5765c;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 16px;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

/* Clients section */
.clients-section {
  animation: fadeIn 0.5s ease;
}

.clients-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-gap: 20px;
  gap: 20px;
  margin-bottom: 24px;
  align-items: stretch;
  /* Les cartes d'une même rangée ont la même hauteur */
}

/* Effet de redimensionnement : par défaut les cartes sont réduites */
.clients-grid:not(:hover) .client-card-modern {
  transform: scale(0.90) !important;
  opacity: 0.90;
}

/* Au survol du grid, toutes les cartes sont réduites sauf celle survolée */
.clients-grid:hover .client-card-modern {
  transform: scale(0.90) !important;
  opacity: 0.90;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* La carte survolée reprend sa taille normale avec l'effet translateY et les effets visuels */
.clients-grid:hover .client-card-modern:hover {
  transform: scale(1) translateY(-8px) !important;
  opacity: 1;
  z-index: 10;
  box-shadow: 0 20px 60px -15px rgba(0, 0, 0, 0.15);
  border-color: rgba(165, 118, 92, 0.15);
}

.client-card {
  background: white;
  border-radius: 20px;
  /* Plus arrondi pour style premium */
  padding: 20px;
  box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.08);
  /* L'ombre signature du Design System */
  border: 1px solid rgba(255, 255, 255, 0.5);
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  cursor: pointer;
  overflow: hidden;
}

.client-card:hover {
  transform: translateY(-8px);
  /* Animation plus prononcée */
  box-shadow: 0 20px 50px -12px rgba(0, 0, 0, 0.12);
  /* Ombre plus prononcée au hover */
  border-color: rgba(165, 118, 92, 0.2);
}

/* Avatar avec initiales */
.client-avatar {
  position: absolute;
  top: 16px;
  left: 16px;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #f6c674, #a5765c);
  border: 2px solid #f6c674;
  flex-shrink: 0;
}

.client-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.client-initials {
  color: white;
  font-weight: 700;
  font-size: 18px;
  text-transform: uppercase;
}

/* Informations principales */
.client-main-info {
  flex: 1 1;
  min-width: 0;
  padding-left: 72px;
  /* Espace pour l'avatar (16px left + 48px width + 8px gap) */
  padding-right: 0;
  padding-top: 0;
  margin-top: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  text-align: left;
  width: 100%;
  box-sizing: border-box;
}

.client-name {
  margin: -4px 0 12px 0;
  /* -4px pour compenser la différence entre top: 16px de l'avatar et padding: 20px de la carte */
  color: #2C2C2C;
  font-size: 18px;
  font-weight: 600;
  line-height: 1.3;
  width: 100%;
  display: flex;
  align-items: center;
  height: 48px;
  /* Hauteur exacte de l'avatar pour alignement vertical parfait */
  padding: 0;
}

/* Liste des chiens */
.client-animals-list {
  margin: 12px 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.animal-item {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 0;
  font-size: 14px;
  color: #4A4A4A;
}

.paw-icon {
  font-size: 16px;
  flex-shrink: 0;
  line-height: 1;
  display: flex;
  align-items: center;
}

.animal-name-breed {
  flex: 1 1;
  line-height: 1.4;
}

.no-animals-warning {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  color: #f44336;
  font-size: 13px;
  font-style: italic;
}

/* Contact */
.client-contact {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 13px;
  color: #666;
}

.contact-item {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* Actions */
.client-actions {
  display: flex;
  flex-direction: row;
  gap: 8px;
  margin-top: auto;
  padding-top: 16px;
  border-top: 1px solid rgba(165, 118, 92, 0.1);
  justify-content: center;
}

.action-btn {
  width: 100%;
  border-radius: 6px;
  font-size: 13px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-color: rgba(165, 118, 92, 0.2);
  color: #666;
  transition: all 0.2s ease;
}

.action-btn:hover {
  border-color: #a5765c;
  color: #a5765c;
  background: rgba(165, 118, 92, 0.05);
}

.message-btn {
  background: linear-gradient(135deg, #a5765c, #f6c674);
  border: none;
  color: white;
  font-weight: 500;
}

.message-btn:hover {
  background: linear-gradient(135deg, #8B5D3F, #E8B85C);
  color: white;
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(165, 118, 92, 0.3);
}

/* Chiens section */
.chiens-section {
  animation: fadeIn 0.5s ease;
}

.animals-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  grid-gap: 20px;
  gap: 20px;
  margin-bottom: 24px;
}

.animal-card {
  background: white;
  border-radius: 12px;
  padding: 20px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(165, 118, 92, 0.1);
  transition: all 0.3s ease;
  text-align: center;
}

.animal-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
  border-color: rgba(165, 118, 92, 0.3);
}

.animal-photo {
  margin-bottom: 16px;
  display: inline-block;
  border: none;
  outline: none;
  box-shadow: none;
  background: transparent;
  position: relative;
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #f6c674;
  box-sizing: border-box;
}

.animal-photo img {
  width: 100%;
  height: 100%;
  border-radius: 0;
  object-fit: cover;
  border: none;
  box-sizing: border-box;
  /* Supprime l'effet de double encadré en évitant une ombre colorée qui ressemble à un second anneau */
  box-shadow: none;
  outline: none;
  transition: all 0.3s ease;
  display: block;
  margin: 0;
  padding: 0;
  background-color: transparent;
  position: relative;
  z-index: 1;
  /* Force le découpage selon le border-radius pour éviter les bordures blanches de l'image par défaut */
  clip-path: circle(calc(50% - 3px));
  -webkit-clip-path: circle(calc(50% - 3px));
  transform: scale(1.1);
}

.animal-card:hover .animal-photo {
  border-color: #a5765c;
}

.animal-card:hover .animal-photo img {
  transform: scale(1.15);
}

.animal-info h3 {
  margin: 0 0 8px 0;
  color: #a5765c;
  font-size: 18px;
  font-weight: 600;
}

.breed {
  color: #666;
  font-size: 14px;
  margin: 4px 0;
}

.owner {
  color: #f6c674;
  font-size: 13px;
  font-weight: 500;
  margin: 8px 0 16px 0;
}

.animal-actions {
  margin-top: 16px;
}

/* Pagination */
.pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 32px;
}

.pagination .ant-btn {
  border-radius: 6px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.pagination .ant-btn-primary {
  background: linear-gradient(135deg, #a5765c, #f6c674);
  border-color: #a5765c;
}

/* Animations */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Responsive design */
@media (max-width: 768px) {
  .clients-chiens-container {
    padding: 16px;
  }

  .section-header {
    flex-direction: column;
    gap: 16px;
    align-items: stretch;
  }

  .page-title {
    font-size: 24px;
    text-align: center;
  }

  .clients-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .animals-grid {
    grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
    gap: 16px;
  }

  .client-card {
    padding: 16px;
    gap: 12px;
  }

  .client-avatar {
    position: static;
    width: 56px;
    height: 56px;
    margin: 0 auto 8px;
  }

  .client-main-info {
    padding-right: 0;
    text-align: center;
  }

  .client-name {
    text-align: center;
  }

  .client-animals-list {
    align-items: center;
  }

  .client-actions {
    width: 100%;
  }

  .alphabet-filter {
    justify-content: center;
  }

  .pagination {
    flex-wrap: wrap;
  }
}

@media (max-width: 480px) {
  .animals-grid {
    grid-template-columns: 1fr;
  }

  .tabs-header {
    margin: 0 8px;
  }

  .tab-button {
    padding: 12px 14px;
    font-size: 13px;
  }
}

/* Styles pour les cartes cliquables */
.client-card-link,
.animal-card-link {
  text-decoration: none;
  color: inherit;
  display: block;
  cursor: pointer;
}

.client-card-link:hover,
.animal-card-link:hover {
  text-decoration: none;
  color: inherit;
}

.client-card-link:focus,
.animal-card-link:focus {
  outline: none;
}

.client-card-link:focus .client-card,
.animal-card-link:focus .animal-card {
  box-shadow: 0 0 0 3px rgba(165, 118, 92, 0.3);
}

/* ========================================= */
/* NOUVEAU DESIGN MODERNE DES CARTES CLIENTS */
/* ========================================= */

.client-card-modern {
  background: white;
  border-radius: 16px;
  padding: 20px 18px;
  box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(241, 245, 249, 1);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 0;
  position: relative;
  overflow: hidden;
  height: 100%;
}

/* Le hover de .client-card-modern est maintenant géré par .clients-grid:hover plus haut */
/* .client-card-modern:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 60px -15px rgba(0, 0, 0, 0.15);
  border-color: rgba(165, 118, 92, 0.15);
} */

/* Header avec avatar */
.client-header {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  margin-bottom: 14px;
}

.client-avatar-modern {
  width: 72px;
  height: 72px;
  border-radius: 50%;
  flex-shrink: 0;
  position: relative;
  background: linear-gradient(135deg, #f6c674, #a5765c);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
  overflow: hidden;
  transition: all 0.3s ease;
}

.client-avatar-modern:hover {
  transform: scale(1.05);
  box-shadow: 0 6px 24px rgba(0, 0, 0, 0.18);
}

.client-avatar-modern img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.client-initials-modern {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 700;
  font-size: 24px;
  text-transform: uppercase;
}

/* Nom du client */
.client-name-modern {
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 8px 0;
  line-height: 1.3;
}

/* Section contact */
.client-contact-modern {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 0;
}

.contact-row {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 14px;
  color: #64748b;
  padding: 6px 10px;
  background: #f8fafc;
  border-radius: 8px;
  transition: all 0.2s ease;
}

.contact-row svg {
  flex-shrink: 0;
  color: #94a3b8;
}

.contact-row span {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  flex: 1 1;
  min-width: 0;
}

.contact-row:hover {
  background: #f1f5f9;
}

/* Séparateur élégant */
.divider-modern {
  height: 1px;
  background: linear-gradient(to right, transparent, #e2e8f0, transparent);
  margin: 12px 0;
}

/* Section animaux */
.animals-section-modern {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.animals-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 13px;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.animals-icon {
  font-size: 16px;
}

.animals-count {
  flex: 1 1;
}

.animal-tag {
  background: linear-gradient(135deg, #fef3ed 0%, #fff7ed 100%);
  border: 1px solid #fed7aa;
  border-radius: 8px;
  padding: 8px 12px;
  font-size: 14px;
  line-height: 1.4;
  transition: all 0.2s ease;
}

.animal-tag:hover {
  background: linear-gradient(135deg, #fff7ed 0%, #fef3ed 100%);
  border-color: #fdba74;
  transform: translateX(2px);
}

.animal-tag strong {
  color: #1e293b;
  font-weight: 600;
  display: block;
  margin-bottom: 2px;
}

.animal-details {
  color: #64748b;
  font-size: 13px;
  font-weight: 400;
}

.more-animals {
  text-align: center;
  font-size: 13px;
  color: #94a3b8;
  font-style: italic;
  padding: 6px;
}

.no-animals-modern {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 14px;
  background: #fef2f2;
  border: 1px solid #fecaca;
  border-radius: 10px;
  color: #dc2626;
  font-size: 14px;
  font-weight: 500;
}

.warning-icon {
  font-size: 18px;
}

/* Section co-propriétaires */
.coowners-section-modern {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.coowners-header {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 12px;
  font-weight: 600;
  color: #64748b;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 4px;
}

.coowners-header svg {
  color: #94a3b8;
}

.coowner-item {
  font-size: 14px;
  color: #475569;
  padding: 6px 12px;
  background: #f8fafc;
  border-radius: 8px;
  font-weight: 500;
}

.more-coowners {
  text-align: center;
  font-size: 13px;
  color: #94a3b8;
  font-style: italic;
  padding: 6px;
}

/* Responsive pour le nouveau design */
@media (max-width: 768px) {
  .client-card-modern {
    padding: 24px 20px;
  }

  .client-avatar-modern {
    width: 64px;
    height: 64px;
  }

  .client-initials-modern {
    font-size: 20px;
  }

  .client-name-modern {
    font-size: 16px;
  }

  .contact-row,
  .animal-tag,
  .coowner-item {
    font-size: 13px;
  }
}
/* =============================
   SYSTÈME DE BOUTONS GLOBAL
   Différenciation Actions vs Filtres/Affichage
============================= */

/* RÈGLE ABSOLUE - FORCER LE STYLE MARRON ET LA MÊME TAILLE SUR TOUS LES BOUTONS D'ACTION */
/* Cette règle doit être en premier pour garantir qu'elle s'applique */
/* Dimensions uniformes pour TOUS les boutons d'action */
.ant-btn-primary.action-button-primary,
.ant-btn-primary.action-button.action-button-primary,
.ant-btn-primary.typeform-button,
.ant-btn-primary.billing-action-primary,
.ant-btn-primary.billing-action-button.billing-action-primary,
.ant-btn-primary.create-forfait-button,
.ant-btn-primary.create-client-button,
button.ant-btn.ant-btn-primary.action-button-primary,
button.ant-btn.ant-btn-primary.action-button.action-button-primary,
button.ant-btn.ant-btn-primary.typeform-button,
button.ant-btn.ant-btn-primary.billing-action-primary,
button.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary,
button.ant-btn.ant-btn-primary.create-forfait-button,
button.ant-btn.ant-btn-primary.create-client-button,
.ant-dropdown-trigger.ant-btn-primary.action-button-primary,
.ant-dropdown-trigger.ant-btn-primary.action-button.action-button-primary,
span.ant-btn-primary.action-button-primary,
span.ant-btn-primary.action-button.action-button-primary,
a.ant-btn.ant-btn-primary.action-button-primary,
a.ant-btn.ant-btn-primary.action-button.action-button-primary,
/* Forcer la même taille pour toutes les variantes - RÈGLE ULTIME */
.ant-btn-small.ant-btn-primary.action-button-primary,
.ant-btn-small.ant-btn-primary.action-button.action-button-primary,
.ant-btn-small.ant-btn-primary.typeform-button,
.ant-btn-small.ant-btn-primary.billing-action-primary,
.ant-btn-small.ant-btn-primary.billing-action-button.billing-action-primary,
.ant-btn-small.ant-btn-primary.create-forfait-button,
.ant-btn-small.ant-btn-primary.create-client-button,
.ant-btn-middle.ant-btn-primary.action-button-primary,
.ant-btn-middle.ant-btn-primary.action-button.action-button-primary,
.ant-btn-middle.ant-btn-primary.typeform-button,
.ant-btn-middle.ant-btn-primary.billing-action-primary,
.ant-btn-middle.ant-btn-primary.billing-action-button.billing-action-primary,
.ant-btn-middle.ant-btn-primary.create-forfait-button,
.ant-btn-middle.ant-btn-primary.create-client-button,
.ant-btn-large.ant-btn-primary.action-button-primary,
.ant-btn-large.ant-btn-primary.action-button.action-button-primary,
.ant-btn-large.ant-btn-primary.typeform-button,
.ant-btn-large.ant-btn-primary.billing-action-primary,
.ant-btn-large.ant-btn-primary.billing-action-button.billing-action-primary,
.ant-btn-large.ant-btn-primary.create-forfait-button,
.ant-btn-large.ant-btn-primary.create-client-button {
  background: linear-gradient(135deg, #A5765C, #b5866b) !important;
  background-color: #A5765C !important;
  border: none !important;
  border-color: transparent !important;
  color: #ffffff !important;
  border-radius: 30px !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.25) !important;
  /* DIMENSIONS UNIFORMES - FORCÉES */
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 10px 24px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  font-size: 15px !important;
  line-height: 1.5715 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
}

.ant-btn-primary.action-button-primary:hover,
.ant-btn-primary.action-button.action-button-primary:hover,
.ant-btn-primary.typeform-button:hover,
.ant-btn-primary.billing-action-primary:hover,
.ant-btn-primary.billing-action-button.billing-action-primary:hover,
.ant-btn-primary.create-forfait-button:hover,
.ant-btn-primary.create-client-button:hover,
button.ant-btn.ant-btn-primary.action-button-primary:hover,
button.ant-btn.ant-btn-primary.action-button.action-button-primary:hover,
button.ant-btn.ant-btn-primary.typeform-button:hover,
button.ant-btn.ant-btn-primary.billing-action-primary:hover,
button.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary:hover,
button.ant-btn.ant-btn-primary.create-forfait-button:hover,
button.ant-btn.ant-btn-primary.create-client-button:hover,
.ant-dropdown-trigger.ant-btn-primary.action-button-primary:hover,
.ant-dropdown-trigger.ant-btn-primary.action-button.action-button-primary:hover,
span.ant-btn-primary.action-button-primary:hover,
span.ant-btn-primary.action-button.action-button-primary:hover,
a.ant-btn.ant-btn-primary.action-button-primary:hover,
a.ant-btn.ant-btn-primary.action-button.action-button-primary:hover {
  background: linear-gradient(135deg, #b5866b, #c07b58) !important;
  background-color: #b5866b !important;
  border: none !important;
  border-color: transparent !important;
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.35) !important;
}

/* =============================
   BOUTONS D'ACTION (Principaux)
   Style proéminent pour les actions importantes
============================= */

/* Règle globale pour tous les boutons Ant Design type="primary" avec nos classes d'action */
/* Spécificité maximale pour forcer l'application des styles */
.ant-btn-primary.action-button-primary,
.ant-btn-primary.typeform-button,
.ant-btn-primary.create-forfait-button,
.ant-btn-primary.create-client-button,
.ant-btn-primary.billing-action-primary,
.ant-btn.action-button-primary[class*="ant-btn-primary"],
.ant-btn.typeform-button[class*="ant-btn-primary"],
.ant-btn.create-forfait-button[class*="ant-btn-primary"],
.ant-btn.create-client-button[class*="ant-btn-primary"],
/* Cibler aussi les boutons dans les Dropdowns avec spécificité maximale */
.ant-dropdown-trigger.action-button-primary,
.ant-dropdown-trigger.typeform-button,
.ant-dropdown-trigger.billing-action-primary,
.ant-dropdown-trigger.create-forfait-button,
.ant-dropdown-trigger.create-client-button,
/* Cibler tous les boutons avec type="primary" ET nos classes - Spécificité maximale */
button.ant-btn.ant-btn-primary.action-button-primary,
button.ant-btn.ant-btn-primary.typeform-button,
button.ant-btn.ant-btn-primary.billing-action-primary,
button.ant-btn.ant-btn-primary.create-forfait-button,
button.ant-btn.ant-btn-primary.create-client-button,
/* Cibler les boutons avec les deux classes action-button ET action-button-primary */
button.ant-btn.ant-btn-primary.action-button.action-button-primary,
button.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary,
.ant-dropdown-trigger.ant-btn.ant-btn-primary.action-button.action-button-primary,
.ant-dropdown-trigger.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary {
  background: linear-gradient(135deg, #A5765C, #b5866b) !important;
  border: none !important;
  color: white !important;
  border-radius: 30px !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.25) !important;
}

/* Classe de base pour tous les boutons d'action - DIMENSIONS UNIFORMES */
.action-button,
.billing-action-button,
.typeform-button,
.create-forfait-button,
.create-client-button,
.ant-btn.action-button,
.ant-btn.billing-action-button,
.ant-btn.typeform-button,
.ant-btn.create-forfait-button,
.ant-btn.create-client-button,
/* Cibler aussi les boutons dans les Dropdowns */
.ant-dropdown-trigger.action-button,
.ant-dropdown-trigger.billing-action-button,
.ant-dropdown-trigger.typeform-button,
.ant-dropdown-trigger.create-forfait-button,
.ant-dropdown-trigger.create-client-button,
/* Cibler avec une spécificité maximale */
button.ant-btn.action-button,
button.ant-btn.billing-action-button,
button.ant-btn.typeform-button,
button.ant-btn.create-forfait-button,
button.ant-btn.create-client-button,
/* Forcer la même taille pour toutes les variantes de taille Ant Design */
.ant-btn-small.action-button,
.ant-btn-small.billing-action-button,
.ant-btn-small.typeform-button,
.ant-btn-small.create-forfait-button,
.ant-btn-small.create-client-button,
.ant-btn-middle.action-button,
.ant-btn-middle.billing-action-button,
.ant-btn-middle.typeform-button,
.ant-btn-middle.create-forfait-button,
.ant-btn-middle.create-client-button,
.ant-btn-large.action-button,
.ant-btn-large.billing-action-button,
.ant-btn-large.typeform-button,
.ant-btn-large.create-forfait-button,
.ant-btn-large.create-client-button {
  border-radius: 30px !important;
  font-weight: 700 !important;
  /* DIMENSIONS UNIFORMES - FORCÉES */
  height: 44px !important;
  min-height: 44px !important;
  max-height: 44px !important;
  padding: 10px 24px !important;
  padding-top: 10px !important;
  padding-bottom: 10px !important;
  padding-left: 24px !important;
  padding-right: 24px !important;
  font-size: 15px !important;
  line-height: 1.5715 !important;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
  position: relative;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.25) !important;
  letter-spacing: 0.3px;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
}

.action-button::before,
.billing-action-button::before,
.typeform-button::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.3) 0%, rgba(255, 255, 255, 0) 80%);
  transition: transform 0.5s ease;
  transform: translate(-100%, -100%);
  opacity: 0;
  pointer-events: none;
}

.action-button:hover::before,
.billing-action-button:hover::before,
.typeform-button:hover::before {
  transform: translate(0, 0);
  opacity: 1;
}

/* Variante primaire (bouton principal) - Spécificité maximale */
.action-button-primary,
.billing-action-primary,
.typeform-button,
.create-forfait-button,
.create-client-button,
.action-button.action-button-primary,
.action-button-primary.ant-btn-primary,
.ant-btn.action-button-primary,
.ant-btn.typeform-button,
.ant-btn.create-forfait-button,
.ant-btn.create-client-button,
/* Cibler les boutons dans les Dropdowns avec spécificité maximale */
button.ant-btn.ant-btn-primary.action-button.action-button-primary,
button.ant-btn.ant-btn-primary.typeform-button,
button.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary,
button.ant-btn.ant-btn-primary.create-forfait-button,
button.ant-btn.ant-btn-primary.create-client-button,
.ant-dropdown-trigger.ant-btn.ant-btn-primary.action-button-primary,
.ant-dropdown-trigger.ant-btn.ant-btn-primary.typeform-button,
.ant-dropdown-trigger.ant-btn.ant-btn-primary.billing-action-primary {
  background: linear-gradient(135deg, #A5765C, #b5866b) !important;
  border: none !important;
  color: white !important;
}

.action-button-primary:hover,
.billing-action-primary:hover,
.typeform-button:hover,
.create-forfait-button:hover,
.create-client-button:hover,
.action-button.action-button-primary:hover,
.action-button-primary.ant-btn-primary:hover,
.ant-btn.action-button-primary:hover,
.ant-btn.typeform-button:hover,
.ant-btn.create-forfait-button:hover,
.ant-btn.create-client-button:hover,
/* Cibler les boutons dans les Dropdowns avec spécificité maximale */
button.ant-btn.ant-btn-primary.action-button.action-button-primary:hover,
button.ant-btn.ant-btn-primary.typeform-button:hover,
button.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary:hover,
button.ant-btn.ant-btn-primary.create-forfait-button:hover,
button.ant-btn.ant-btn-primary.create-client-button:hover,
.ant-dropdown-trigger.ant-btn.ant-btn-primary.action-button-primary:hover,
.ant-dropdown-trigger.ant-btn.ant-btn-primary.typeform-button:hover,
.ant-dropdown-trigger.ant-btn.ant-btn-primary.billing-action-primary:hover {
  background: linear-gradient(135deg, #b5866b, #c07b58) !important;
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.35) !important;
}

.action-button-primary:active,
.billing-action-primary:active,
.typeform-button:active {
  transform: translateY(-1px) scale(0.98) !important;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3) !important;
}

/* Variante secondaire (bouton d'action secondaire) */
.action-button-secondary {
  background: white !important;
  border: 2px solid #A5765C !important;
  color: #A5765C !important;
}

.action-button-secondary:hover {
  background: rgba(165, 118, 92, 0.05) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 15px rgba(165, 118, 92, 0.2) !important;
}

/* Variante danger (suppression, annulation) */
.action-button-danger {
  background: linear-gradient(135deg, #E07A7A, #e66767) !important;
  border: none !important;
  color: white !important;
}

.action-button-danger:hover {
  background: linear-gradient(135deg, #e66767, #d55a5a) !important;
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 8px 20px rgba(224, 122, 122, 0.35) !important;
}

/* Variante success (validation, confirmation) */
.action-button-success {
  background: linear-gradient(135deg, #7FB069, #6fa159) !important;
  border: none !important;
  color: white !important;
}

.action-button-success:hover {
  background: linear-gradient(135deg, #6fa159, #5f9050) !important;
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 8px 20px rgba(127, 176, 105, 0.35) !important;
}

/* =============================
   BOUTONS DE FILTRE/AFFICHAGE
   Style discret pour les contrôles d'interface
============================= */

/* Conteneurs de toggle/switch d'affichage - Style uniforme */
.view-toggle-container,
.personal-events-toggle,
.filter-toggle-container,
.display-toggle-container {
  display: flex !important;
  align-items: center !important;
  gap: 8px !important;
  padding: 8px 16px !important;
  background: white !important;
  border-radius: 8px !important;
  border: 1px solid #d9d9d9 !important;
  box-shadow: none !important;
  transition: all 0.2s ease !important;
}

.view-toggle-container:hover,
.personal-events-toggle:hover,
.filter-toggle-container:hover,
.display-toggle-container:hover {
  border-color: #A5765C !important;
  background: rgba(165, 118, 92, 0.05) !important;
  transform: translateY(-1px) !important;
}

.view-toggle-label,
.personal-events-toggle span,
.filter-toggle-container span,
.display-toggle-container span {
  font-size: 14px !important;
  color: #666 !important;
  font-weight: 500 !important;
}

/* Classe de base pour tous les boutons de filtre/affichage */
.filter-button,
.billing-display-filter-button {
  border-radius: 8px !important;
  font-weight: 500 !important;
  height: auto !important;
  padding: 4px 12px !important;
  transition: all 0.2s ease !important;
  border: 1px solid #d9d9d9 !important;
  background: transparent !important;
  color: #666 !important;
  box-shadow: none !important;
}

.filter-button:hover {
  border-color: #A5765C !important;
  color: #A5765C !important;
  background: rgba(165, 118, 92, 0.05) !important;
  transform: translateY(-1px) !important;
}

.filter-button:active {
  transform: translateY(0) !important;
}

/* Groupe de filtres (Radio.Group ou Checkbox.Group) */
.filter-group,
.billing-display-filter-group {
  border-radius: 8px !important;
  overflow: hidden;
  background: #f5f5f5 !important;
  padding: 2px !important;
}

.filter-group .ant-radio-button-wrapper,
.filter-group .ant-checkbox-wrapper {
  border: none !important;
  border-radius: 6px !important;
  background: transparent !important;
  color: #666 !important;
  font-weight: 500 !important;
  padding: 4px 12px !important;
  transition: all 0.2s ease !important;
  margin: 0 !important;
}

.filter-group .ant-radio-button-wrapper:hover,
.filter-group .ant-checkbox-wrapper:hover {
  background: rgba(165, 118, 92, 0.08) !important;
  color: #A5765C !important;
}

.filter-group .ant-radio-button-wrapper-checked,
.filter-group .ant-checkbox-wrapper-checked {
  background: white !important;
  color: #A5765C !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08) !important;
}

.filter-group .ant-radio-button-wrapper-checked:hover,
.filter-group .ant-checkbox-wrapper-checked:hover {
  background: white !important;
  color: #A5765C !important;
}

/* Select de filtre */
.filter-select {
  border-radius: 8px !important;
}

.filter-select .ant-select-selector {
  border-radius: 8px !important;
  border-color: #d9d9d9 !important;
}

.filter-select:hover .ant-select-selector,
.filter-select.ant-select-focused .ant-select-selector {
  border-color: #A5765C !important;
  box-shadow: 0 0 0 2px rgba(165, 118, 92, 0.1) !important;
}

/* =============================
   BOUTONS DANS LES CARTES/MODALES
   Style intermédiaire pour les actions contextuelles
============================= */

.card-action-button {
  border-radius: 25px !important;
  font-weight: 600 !important;
  height: auto !important;
  padding: 8px 16px !important;
  transition: all 0.3s ease !important;
  margin-top: 8px !important;
  position: relative;
  overflow: hidden;
}

.card-action-button::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 80%);
  transition: transform 0.5s ease;
  transform: translate(-100%, -100%);
  opacity: 0;
  pointer-events: none;
}

.card-action-button:hover::before {
  transform: translate(0, 0);
  opacity: 1;
}

.card-action-button-primary {
  background: linear-gradient(to right, #A5765C, #b5866b) !important;
  border: none !important;
  color: white !important;
}

.card-action-button-primary:hover {
  background: linear-gradient(to right, #b5866b, #c07b58) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 15px rgba(165, 118, 92, 0.25) !important;
}

.card-action-button-default {
  border-color: rgba(165, 118, 92, 0.2) !important;
  color: #666 !important;
}

.card-action-button-default:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1) !important;
  border-color: #A5765C !important;
  color: #A5765C !important;
}

/* =============================
   RESPONSIVE
============================= */

@media (max-width: 768px) {
  .action-button {
    padding: 8px 20px !important;
    font-size: 14px !important;
  }

  .filter-button {
    padding: 4px 10px !important;
    font-size: 13px !important;
  }

  .card-action-button {
    padding: 6px 14px !important;
    font-size: 13px !important;
  }
}

@media (max-width: 480px) {
  .action-button {
    padding: 6px 16px !important;
    font-size: 13px !important;
  }

  .filter-button {
    padding: 3px 8px !important;
    font-size: 12px !important;
  }
}

/* =============================
   RÈGLES DE SURCHARGE FINALES
   Pour garantir que tous les boutons d'action ont le même style
============================= */

/* Forcer le style marron sur TOUS les boutons d'action, même dans les Dropdowns */
.planning-page button.ant-btn.ant-btn-primary.action-button.action-button-primary,
.planning-page .ant-dropdown-trigger.ant-btn.ant-btn-primary.action-button.action-button-primary,
.reservations-page button.ant-btn.ant-btn-primary.action-button.action-button-primary,
.billing-page button.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary,
.services-page button.ant-btn.ant-btn-primary.action-button.action-button-primary,
.clients-page button.ant-btn.ant-btn-primary.action-button.action-button-primary,
button.ant-btn.ant-btn-primary.action-button.action-button-primary,
button.ant-btn.ant-btn-primary.typeform-button,
button.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary,
button.ant-btn.ant-btn-primary.create-forfait-button,
button.ant-btn.ant-btn-primary.create-client-button {
  background: linear-gradient(135deg, #A5765C, #b5866b) !important;
  border: none !important;
  color: white !important;
  border-radius: 30px !important;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.25) !important;
  padding: 10px 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  gap: 8px !important;
}

.planning-page button.ant-btn.ant-btn-primary.action-button.action-button-primary:hover,
.planning-page .ant-dropdown-trigger.ant-btn.ant-btn-primary.action-button.action-button-primary:hover,
.reservations-page button.ant-btn.ant-btn-primary.action-button.action-button-primary:hover,
.billing-page button.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary:hover,
.services-page button.ant-btn.ant-btn-primary.action-button.action-button-primary:hover,
.clients-page button.ant-btn.ant-btn-primary.action-button.action-button-primary:hover,
button.ant-btn.ant-btn-primary.action-button.action-button-primary:hover,
button.ant-btn.ant-btn-primary.typeform-button:hover,
button.ant-btn.ant-btn-primary.billing-action-button.billing-action-primary:hover,
button.ant-btn.ant-btn-primary.create-forfait-button:hover,
button.ant-btn.ant-btn-primary.create-client-button:hover {
  background: linear-gradient(135deg, #b5866b, #c07b58) !important;
  transform: translateY(-3px) scale(1.02) !important;
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.35) !important;
}


:root {
  --primary-color: #FFA351;
  --secondary-color: #A5765C;
  --tertiary-color: #F6C674;
  --accent-color: #EE9F99;
  --light-color: #F6F2EF;
  --success-color: #7FB069;
  --danger-color: #E63946;
  --border-radius: 12px;
  --gold: #F6C674;
  --brown: #A5765C;
}

.chien-detail-page {
  font-family: 'Poppins', sans-serif;
  background-color: #fff;
  min-height: 100vh;
  padding: 20px;
  box-sizing: border-box;
  max-width: 1100px;
  margin: 0 auto;
}

/* Bannière simple, s'inspire de vos .services-banner ou .feedback-section */
.chien-banner {
  background: #fef7e0;
  border: 1px solid #f5daa6;
  padding: 15px 20px;
  border-radius: 8px;
  margin-bottom: 20px;
  color: #a36b00;
  font-weight: 500;
  font-size: 0.95rem;
}

/* Bouton retour */
.back-arrow {
  display: inline-flex;
  align-items: center;
  margin-bottom: 20px;
  cursor: pointer;
  color: #A5765C;
  color: var(--secondary-color);
  font-weight: 500;
  transition: color 0.2s;
}

.back-arrow:hover {
  color: #FFA351;
  color: var(--primary-color);
}

/* Carte principale (entête du chien) */
.animal-card {
  margin-bottom: 20px;
  border-radius: 12px;
  border-radius: var(--border-radius);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

/* Header dans la card : photo + nom */
.animal-card-header {
  display: flex;
  align-items: center;
  gap: 16px;
}

.animal-photo-container {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  overflow: hidden;
  border: 3px solid #FFA351;
  border: 3px solid var(--primary-color);
  box-sizing: border-box;
  flex-shrink: 0;
  background-color: #fff;
}

.animal-photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  border: none;
  outline: none;
  box-shadow: none;
  margin: 0;
  padding: 0;
}

.animal-header-info {
  display: flex;
  flex-direction: column;
}

.animal-name {
  margin: 0;
  font-weight: 600;
}

.animal-breed {
  font-weight: 400;
  font-size: 0.8em;
  margin-left: 8px;
  color: #777;
}

.animal-birthdate {
  font-size: 0.9rem;
  color: #777;
  margin-top: 4px;
}

/* Cartes de section "Propriétaire", "Informations", etc. */
.animal-section-card {
  margin-bottom: 20px;
  border-radius: 12px;
  border-radius: var(--border-radius);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.animal-section-card .ant-card-head {
  background-color: #F6F2EF;
  background-color: var(--light-color);
  border-top-left-radius: 12px;
  border-top-left-radius: var(--border-radius);
  border-top-right-radius: 12px;
  border-top-right-radius: var(--border-radius);
}

.animal-section-card .ant-card-head-title {
  color: #A5765C;
  color: var(--secondary-color);
  font-weight: 600;
}

.animal-information {
  font-size: 0.95rem;
  color: #555;
  line-height: 1.5;
}

/* Caractéristiques */
.animal-characteristics {
  font-size: 0.95rem;
  color: #444;
}

.characteristics-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  grid-gap: 12px;
  gap: 12px;
}

.characteristic-item {
  padding: 8px;
  border-radius: 8px;
  background-color: #F6F2EF;
  background-color: var(--light-color);
  display: flex;
  flex-direction: column;
}

.characteristic-label {
  font-weight: 600;
  color: #A5765C;
  color: var(--secondary-color);
  margin-bottom: 4px;
}

.characteristic-value {
  color: #555;
}

/* Propriétaire */
.owner-info {
  margin-top: 8px;
}

.owner-name {
  font-weight: 500;
  color: #333;
  margin-bottom: 4px;
}

.owner-email {
  color: #666;
  font-size: 0.9rem;
}

.owner-link {
  text-decoration: none;
  color: #FFA351;
  color: var(--primary-color);
  transition: color 0.2s;
}

.owner-link:hover {
  color: #A5765C;
  color: var(--secondary-color);
}

.owner-link:hover .owner-name {
  text-decoration: underline;
}

.owner-name-link {
  text-decoration: none;
  color: inherit;
  display: block;
  padding: 8px;
  border-radius: 6px;
  transition: all 0.2s ease;
  border: 1px solid transparent;
}

.owner-name-link:hover {
  background-color: #f5f5f5;
  border-color: #FFA351;
  border-color: var(--primary-color);
  transform: translateY(-1px);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.owner-name-link:hover .owner-name {
  color: #FFA351;
  color: var(--primary-color);
}

/* Réservations */
.booking-filters {
  margin-bottom: 20px;
}

.filter-container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
}

.booking-legend {
  display: flex;
  align-items: center;
}

.legend-item {
  display: flex;
  align-items: center;
  margin-left: 10px;
  font-size: 0.8rem;
}

.legend-color {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  margin-right: 5px;
}

.booking-has-notes {
  background-color: rgba(255, 163, 81, 0.1);
  /* Couleur primaire avec opacité */
}

.has-notes-button {
  position: relative;
}

.has-notes-button:after {
  content: '';
  position: absolute;
  top: -4px;
  right: -4px;
  width: 8px;
  height: 8px;
  background-color: #7FB069;
  background-color: var(--success-color);
  border-radius: 50%;
}

/* Premium Notice */
.premium-upgrade-notice {
  display: flex;
  flex-direction: column;
  align-items: center;
  background-color: #feecec;
  border-radius: 8px;
  padding: 8px;
}

.premium-upgrade-notice p {
  margin: 0 0 4px 0;
  color: #e63946;
  font-size: 0.8rem;
}

.premium-link {
  color: #FFA351;
  color: var(--primary-color);
  font-weight: 600;
  text-decoration: none;
  font-size: 0.9rem;
  transition: color 0.2s;
}

.premium-link:hover {
  color: #A5765C;
  color: var(--secondary-color);
  text-decoration: underline;
}

/* Pagination */
.pagination-container {
  margin-top: 20px;
  display: flex;
  justify-content: center;
}

.ant-table {
  margin-top: 10px;
}

.ant-table-thead>tr>th {
  background-color: #F6F2EF;
  background-color: var(--light-color);
  font-weight: 500;
  color: #A5765C;
  color: var(--secondary-color);
}

.ant-table-row:hover>td {
  background-color: rgba(246, 198, 116, 0.1) !important;
}

.ant-pagination-item-active {
  background: #fff;
  border-color: #F6C674;
  border-color: var(--gold);
}

.ant-pagination-item-active a {
  color: #A5765C;
  color: var(--brown);
}

.ant-select-item-option-selected:not(.ant-select-item-option-disabled) {
  background-color: rgba(255, 163, 81, 0.1);
  color: #FFA351;
  color: var(--primary-color);
}

/* Messages d'erreur et de chargement */
.chien-detail-loading,
.chien-detail-error {
  text-align: center;
  margin-top: 40px;
  font-size: 1rem;
  color: #999;
}

/* Responsive */
@media (max-width: 768px) {
  .animal-card-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .animal-photo-container {
    margin-bottom: 10px;
  }

  .characteristics-grid {
    grid-template-columns: 1fr;
  }

  .filter-container {
    flex-direction: column;
    align-items: stretch;
  }

  .filter-container>* {
    width: 100%;
    margin-bottom: 10px;
  }
}

/* Styles pour les notes de chien */
.animal-notes-section {
  margin-top: 20px;
  padding: 20px;
  background-color: #fff;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.animal-notes-section h2 {
  font-size: 1.6rem;
  margin-bottom: 20px;
  color: #A5765C;
  color: var(--brown);
}

.animal-notes-section h3 {
  font-size: 1.2rem;
  margin-bottom: 15px;
  color: #333;
}

.create-animal-note-form {
  margin-bottom: 30px;
  padding: 15px;
  background-color: #f9f9f9;
  border-radius: 8px;
  border: 1px solid #eee;
}

.note-privacy-toggle {
  margin: 10px 0;
  display: flex;
  align-items: center;
}

.note-privacy-toggle label {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 0.9rem;
  color: #555;
}

.note-privacy-toggle input[type="checkbox"] {
  cursor: pointer;
}

.animal-notes-list {
  margin-top: 20px;
}

.loading-notes {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 20px;
  color: #888;
}

.no-notes {
  text-align: center;
  padding: 20px;
  color: #888;
  font-style: italic;
}

.notes-list {
  display: flex;
  flex-direction: column;
  gap: 15px;
}

.note-card {
  background-color: #fff;
  border-radius: 8px;
  padding: 15px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
  border-left: 4px solid #F6C674;
  border-left: 4px solid var(--tertiary-color);
}

.note-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid #eee;
}

.note-info {
  display: flex;
  align-items: center;
  gap: 10px;
}

.note-date {
  font-size: 0.8rem;
  color: #777;
}

.note-actions {
  display: flex;
  gap: 5px;
}

.note-content {
  font-size: 0.95rem;
  line-height: 1.5;
  color: #333;
}

.note-content p {
  margin-bottom: 10px;
}

.edit-note-form {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.edit-buttons {
  display: flex;
  gap: 10px;
  margin-top: 10px;
}

/* Styles pour les notes de chien intégrées */
.animal-notes-container {
  margin: 20px 0;
  padding: 20px;
  background-color: #fff;
  border-radius: 12px;
  border-radius: var(--border-radius);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  border: 1px solid #e8e8e8;
}

.create-animal-note-form {
  margin-bottom: 15px;
}

.create-animal-note-form h3 {
  font-size: 1.2rem;
  margin-bottom: 15px;
  color: #A5765C;
  color: var(--secondary-color);
  font-weight: 600;
}

.note-title {
  font-size: 1.1rem;
  font-weight: 600;
  color: #A5765C;
  color: var(--secondary-color);
  margin-right: 10px;
}

.note-card {
  background-color: #fff;
  border-radius: 8px;
  padding: 15px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
  border-left: 4px solid #F6C674;
  border-left: 4px solid var(--tertiary-color);
}

/* Styles pour les champs éditables d'animal */
.animal-info-card .editable-fields-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  grid-gap: 16px;
  gap: 16px;
  margin-top: 16px;
}

@media (max-width: 768px) {
  .animal-info-card .editable-fields-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
}
/*!
 * Quill Editor v1.3.7
 * https://quilljs.com/
 * Copyright (c) 2014, Jason Chen
 * Copyright (c) 2013, salesforce.com
 */
.ql-container {
  box-sizing: border-box;
  font-family: Helvetica, Arial, sans-serif;
  font-size: 13px;
  height: 100%;
  margin: 0px;
  position: relative;
}
.ql-container.ql-disabled .ql-tooltip {
  visibility: hidden;
}
.ql-container.ql-disabled .ql-editor ul[data-checked] > li::before {
  pointer-events: none;
}
.ql-clipboard {
  left: -100000px;
  height: 1px;
  overflow-y: hidden;
  position: absolute;
  top: 50%;
}
.ql-clipboard p {
  margin: 0;
  padding: 0;
}
.ql-editor {
  box-sizing: border-box;
  line-height: 1.42;
  height: 100%;
  outline: none;
  overflow-y: auto;
  padding: 12px 15px;
  tab-size: 4;
  -moz-tab-size: 4;
  text-align: left;
  white-space: pre-wrap;
  word-wrap: break-word;
}
.ql-editor > * {
  cursor: text;
}
.ql-editor p,
.ql-editor ol,
.ql-editor ul,
.ql-editor pre,
.ql-editor blockquote,
.ql-editor h1,
.ql-editor h2,
.ql-editor h3,
.ql-editor h4,
.ql-editor h5,
.ql-editor h6 {
  margin: 0;
  padding: 0;
  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol,
.ql-editor ul {
  padding-left: 1.5em;
}
.ql-editor ol > li,
.ql-editor ul > li {
  list-style-type: none;
}
.ql-editor ul > li::before {
  content: '\2022';
}
.ql-editor ul[data-checked=true],
.ql-editor ul[data-checked=false] {
  pointer-events: none;
}
.ql-editor ul[data-checked=true] > li *,
.ql-editor ul[data-checked=false] > li * {
  pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before,
.ql-editor ul[data-checked=false] > li::before {
  color: #777;
  cursor: pointer;
  pointer-events: all;
}
.ql-editor ul[data-checked=true] > li::before {
  content: '\2611';
}
.ql-editor ul[data-checked=false] > li::before {
  content: '\2610';
}
.ql-editor li::before {
  display: inline-block;
  white-space: nowrap;
  width: 1.2em;
}
.ql-editor li:not(.ql-direction-rtl)::before {
  margin-left: -1.5em;
  margin-right: 0.3em;
  text-align: right;
}
.ql-editor li.ql-direction-rtl::before {
  margin-left: 0.3em;
  margin-right: -1.5em;
}
.ql-editor ol li:not(.ql-direction-rtl),
.ql-editor ul li:not(.ql-direction-rtl) {
  padding-left: 1.5em;
}
.ql-editor ol li.ql-direction-rtl,
.ql-editor ul li.ql-direction-rtl {
  padding-right: 1.5em;
}
.ql-editor ol li {
  counter-reset: list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
  counter-increment: list-0;
}
.ql-editor ol li:before {
  content: counter(list-0, decimal) '. ';
}
.ql-editor ol li.ql-indent-1 {
  counter-increment: list-1;
}
.ql-editor ol li.ql-indent-1:before {
  content: counter(list-1, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-1 {
  counter-reset: list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-2 {
  counter-increment: list-2;
}
.ql-editor ol li.ql-indent-2:before {
  content: counter(list-2, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-2 {
  counter-reset: list-3 list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-3 {
  counter-increment: list-3;
}
.ql-editor ol li.ql-indent-3:before {
  content: counter(list-3, decimal) '. ';
}
.ql-editor ol li.ql-indent-3 {
  counter-reset: list-4 list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-4 {
  counter-increment: list-4;
}
.ql-editor ol li.ql-indent-4:before {
  content: counter(list-4, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-4 {
  counter-reset: list-5 list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-5 {
  counter-increment: list-5;
}
.ql-editor ol li.ql-indent-5:before {
  content: counter(list-5, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-5 {
  counter-reset: list-6 list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-6 {
  counter-increment: list-6;
}
.ql-editor ol li.ql-indent-6:before {
  content: counter(list-6, decimal) '. ';
}
.ql-editor ol li.ql-indent-6 {
  counter-reset: list-7 list-8 list-9;
}
.ql-editor ol li.ql-indent-7 {
  counter-increment: list-7;
}
.ql-editor ol li.ql-indent-7:before {
  content: counter(list-7, lower-alpha) '. ';
}
.ql-editor ol li.ql-indent-7 {
  counter-reset: list-8 list-9;
}
.ql-editor ol li.ql-indent-8 {
  counter-increment: list-8;
}
.ql-editor ol li.ql-indent-8:before {
  content: counter(list-8, lower-roman) '. ';
}
.ql-editor ol li.ql-indent-8 {
  counter-reset: list-9;
}
.ql-editor ol li.ql-indent-9 {
  counter-increment: list-9;
}
.ql-editor ol li.ql-indent-9:before {
  content: counter(list-9, decimal) '. ';
}
.ql-editor .ql-indent-1:not(.ql-direction-rtl) {
  padding-left: 3em;
}
.ql-editor li.ql-indent-1:not(.ql-direction-rtl) {
  padding-left: 4.5em;
}
.ql-editor .ql-indent-1.ql-direction-rtl.ql-align-right {
  padding-right: 3em;
}
.ql-editor li.ql-indent-1.ql-direction-rtl.ql-align-right {
  padding-right: 4.5em;
}
.ql-editor .ql-indent-2:not(.ql-direction-rtl) {
  padding-left: 6em;
}
.ql-editor li.ql-indent-2:not(.ql-direction-rtl) {
  padding-left: 7.5em;
}
.ql-editor .ql-indent-2.ql-direction-rtl.ql-align-right {
  padding-right: 6em;
}
.ql-editor li.ql-indent-2.ql-direction-rtl.ql-align-right {
  padding-right: 7.5em;
}
.ql-editor .ql-indent-3:not(.ql-direction-rtl) {
  padding-left: 9em;
}
.ql-editor li.ql-indent-3:not(.ql-direction-rtl) {
  padding-left: 10.5em;
}
.ql-editor .ql-indent-3.ql-direction-rtl.ql-align-right {
  padding-right: 9em;
}
.ql-editor li.ql-indent-3.ql-direction-rtl.ql-align-right {
  padding-right: 10.5em;
}
.ql-editor .ql-indent-4:not(.ql-direction-rtl) {
  padding-left: 12em;
}
.ql-editor li.ql-indent-4:not(.ql-direction-rtl) {
  padding-left: 13.5em;
}
.ql-editor .ql-indent-4.ql-direction-rtl.ql-align-right {
  padding-right: 12em;
}
.ql-editor li.ql-indent-4.ql-direction-rtl.ql-align-right {
  padding-right: 13.5em;
}
.ql-editor .ql-indent-5:not(.ql-direction-rtl) {
  padding-left: 15em;
}
.ql-editor li.ql-indent-5:not(.ql-direction-rtl) {
  padding-left: 16.5em;
}
.ql-editor .ql-indent-5.ql-direction-rtl.ql-align-right {
  padding-right: 15em;
}
.ql-editor li.ql-indent-5.ql-direction-rtl.ql-align-right {
  padding-right: 16.5em;
}
.ql-editor .ql-indent-6:not(.ql-direction-rtl) {
  padding-left: 18em;
}
.ql-editor li.ql-indent-6:not(.ql-direction-rtl) {
  padding-left: 19.5em;
}
.ql-editor .ql-indent-6.ql-direction-rtl.ql-align-right {
  padding-right: 18em;
}
.ql-editor li.ql-indent-6.ql-direction-rtl.ql-align-right {
  padding-right: 19.5em;
}
.ql-editor .ql-indent-7:not(.ql-direction-rtl) {
  padding-left: 21em;
}
.ql-editor li.ql-indent-7:not(.ql-direction-rtl) {
  padding-left: 22.5em;
}
.ql-editor .ql-indent-7.ql-direction-rtl.ql-align-right {
  padding-right: 21em;
}
.ql-editor li.ql-indent-7.ql-direction-rtl.ql-align-right {
  padding-right: 22.5em;
}
.ql-editor .ql-indent-8:not(.ql-direction-rtl) {
  padding-left: 24em;
}
.ql-editor li.ql-indent-8:not(.ql-direction-rtl) {
  padding-left: 25.5em;
}
.ql-editor .ql-indent-8.ql-direction-rtl.ql-align-right {
  padding-right: 24em;
}
.ql-editor li.ql-indent-8.ql-direction-rtl.ql-align-right {
  padding-right: 25.5em;
}
.ql-editor .ql-indent-9:not(.ql-direction-rtl) {
  padding-left: 27em;
}
.ql-editor li.ql-indent-9:not(.ql-direction-rtl) {
  padding-left: 28.5em;
}
.ql-editor .ql-indent-9.ql-direction-rtl.ql-align-right {
  padding-right: 27em;
}
.ql-editor li.ql-indent-9.ql-direction-rtl.ql-align-right {
  padding-right: 28.5em;
}
.ql-editor .ql-video {
  display: block;
  max-width: 100%;
}
.ql-editor .ql-video.ql-align-center {
  margin: 0 auto;
}
.ql-editor .ql-video.ql-align-right {
  margin: 0 0 0 auto;
}
.ql-editor .ql-bg-black {
  background-color: #000;
}
.ql-editor .ql-bg-red {
  background-color: #e60000;
}
.ql-editor .ql-bg-orange {
  background-color: #f90;
}
.ql-editor .ql-bg-yellow {
  background-color: #ff0;
}
.ql-editor .ql-bg-green {
  background-color: #008a00;
}
.ql-editor .ql-bg-blue {
  background-color: #06c;
}
.ql-editor .ql-bg-purple {
  background-color: #93f;
}
.ql-editor .ql-color-white {
  color: #fff;
}
.ql-editor .ql-color-red {
  color: #e60000;
}
.ql-editor .ql-color-orange {
  color: #f90;
}
.ql-editor .ql-color-yellow {
  color: #ff0;
}
.ql-editor .ql-color-green {
  color: #008a00;
}
.ql-editor .ql-color-blue {
  color: #06c;
}
.ql-editor .ql-color-purple {
  color: #93f;
}
.ql-editor .ql-font-serif {
  font-family: Georgia, Times New Roman, serif;
}
.ql-editor .ql-font-monospace {
  font-family: Monaco, Courier New, monospace;
}
.ql-editor .ql-size-small {
  font-size: 0.75em;
}
.ql-editor .ql-size-large {
  font-size: 1.5em;
}
.ql-editor .ql-size-huge {
  font-size: 2.5em;
}
.ql-editor .ql-direction-rtl {
  direction: rtl;
  text-align: inherit;
}
.ql-editor .ql-align-center {
  text-align: center;
}
.ql-editor .ql-align-justify {
  text-align: justify;
}
.ql-editor .ql-align-right {
  text-align: right;
}
.ql-editor.ql-blank::before {
  color: rgba(0,0,0,0.6);
  content: attr(data-placeholder);
  font-style: italic;
  left: 15px;
  pointer-events: none;
  position: absolute;
  right: 15px;
}
.ql-snow.ql-toolbar:after,
.ql-snow .ql-toolbar:after {
  clear: both;
  content: '';
  display: table;
}
.ql-snow.ql-toolbar button,
.ql-snow .ql-toolbar button {
  background: none;
  border: none;
  cursor: pointer;
  display: inline-block;
  float: left;
  height: 24px;
  padding: 3px 5px;
  width: 28px;
}
.ql-snow.ql-toolbar button svg,
.ql-snow .ql-toolbar button svg {
  float: left;
  height: 100%;
}
.ql-snow.ql-toolbar button:active:hover,
.ql-snow .ql-toolbar button:active:hover {
  outline: none;
}
.ql-snow.ql-toolbar input.ql-image[type=file],
.ql-snow .ql-toolbar input.ql-image[type=file] {
  display: none;
}
.ql-snow.ql-toolbar button:hover,
.ql-snow .ql-toolbar button:hover,
.ql-snow.ql-toolbar button:focus,
.ql-snow .ql-toolbar button:focus,
.ql-snow.ql-toolbar button.ql-active,
.ql-snow .ql-toolbar button.ql-active,
.ql-snow.ql-toolbar .ql-picker-label:hover,
.ql-snow .ql-toolbar .ql-picker-label:hover,
.ql-snow.ql-toolbar .ql-picker-label.ql-active,
.ql-snow .ql-toolbar .ql-picker-label.ql-active,
.ql-snow.ql-toolbar .ql-picker-item:hover,
.ql-snow .ql-toolbar .ql-picker-item:hover,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected {
  color: #06c;
}
.ql-snow.ql-toolbar button:hover .ql-fill,
.ql-snow .ql-toolbar button:hover .ql-fill,
.ql-snow.ql-toolbar button:focus .ql-fill,
.ql-snow .ql-toolbar button:focus .ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-fill,
.ql-snow.ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button:focus .ql-stroke.ql-fill,
.ql-snow.ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar button.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke.ql-fill,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke.ql-fill {
  fill: #06c;
}
.ql-snow.ql-toolbar button:hover .ql-stroke,
.ql-snow .ql-toolbar button:hover .ql-stroke,
.ql-snow.ql-toolbar button:focus .ql-stroke,
.ql-snow .ql-toolbar button:focus .ql-stroke,
.ql-snow.ql-toolbar button.ql-active .ql-stroke,
.ql-snow .ql-toolbar button.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke,
.ql-snow.ql-toolbar button:hover .ql-stroke-miter,
.ql-snow .ql-toolbar button:hover .ql-stroke-miter,
.ql-snow.ql-toolbar button:focus .ql-stroke-miter,
.ql-snow .ql-toolbar button:focus .ql-stroke-miter,
.ql-snow.ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar button.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-label.ql-active .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item:hover .ql-stroke-miter,
.ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter,
.ql-snow .ql-toolbar .ql-picker-item.ql-selected .ql-stroke-miter {
  stroke: #06c;
}
@media (pointer: coarse) {
  .ql-snow.ql-toolbar button:hover:not(.ql-active),
  .ql-snow .ql-toolbar button:hover:not(.ql-active) {
    color: #444;
  }
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-fill,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-fill,
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke.ql-fill {
    fill: #444;
  }
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke,
  .ql-snow.ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter,
  .ql-snow .ql-toolbar button:hover:not(.ql-active) .ql-stroke-miter {
    stroke: #444;
  }
}
.ql-snow {
  box-sizing: border-box;
}
.ql-snow * {
  box-sizing: border-box;
}
.ql-snow .ql-hidden {
  display: none;
}
.ql-snow .ql-out-bottom,
.ql-snow .ql-out-top {
  visibility: hidden;
}
.ql-snow .ql-tooltip {
  position: absolute;
  transform: translateY(10px);
}
.ql-snow .ql-tooltip a {
  cursor: pointer;
  text-decoration: none;
}
.ql-snow .ql-tooltip.ql-flip {
  transform: translateY(-10px);
}
.ql-snow .ql-formats {
  display: inline-block;
  vertical-align: middle;
}
.ql-snow .ql-formats:after {
  clear: both;
  content: '';
  display: table;
}
.ql-snow .ql-stroke {
  fill: none;
  stroke: #444;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2;
}
.ql-snow .ql-stroke-miter {
  fill: none;
  stroke: #444;
  stroke-miterlimit: 10;
  stroke-width: 2;
}
.ql-snow .ql-fill,
.ql-snow .ql-stroke.ql-fill {
  fill: #444;
}
.ql-snow .ql-empty {
  fill: none;
}
.ql-snow .ql-even {
  fill-rule: evenodd;
}
.ql-snow .ql-thin,
.ql-snow .ql-stroke.ql-thin {
  stroke-width: 1;
}
.ql-snow .ql-transparent {
  opacity: 0.4;
}
.ql-snow .ql-direction svg:last-child {
  display: none;
}
.ql-snow .ql-direction.ql-active svg:last-child {
  display: inline;
}
.ql-snow .ql-direction.ql-active svg:first-child {
  display: none;
}
.ql-snow .ql-editor h1 {
  font-size: 2em;
}
.ql-snow .ql-editor h2 {
  font-size: 1.5em;
}
.ql-snow .ql-editor h3 {
  font-size: 1.17em;
}
.ql-snow .ql-editor h4 {
  font-size: 1em;
}
.ql-snow .ql-editor h5 {
  font-size: 0.83em;
}
.ql-snow .ql-editor h6 {
  font-size: 0.67em;
}
.ql-snow .ql-editor a {
  text-decoration: underline;
}
.ql-snow .ql-editor blockquote {
  border-left: 4px solid #ccc;
  margin-bottom: 5px;
  margin-top: 5px;
  padding-left: 16px;
}
.ql-snow .ql-editor code,
.ql-snow .ql-editor pre {
  background-color: #f0f0f0;
  border-radius: 3px;
}
.ql-snow .ql-editor pre {
  white-space: pre-wrap;
  margin-bottom: 5px;
  margin-top: 5px;
  padding: 5px 10px;
}
.ql-snow .ql-editor code {
  font-size: 85%;
  padding: 2px 4px;
}
.ql-snow .ql-editor pre.ql-syntax {
  background-color: #23241f;
  color: #f8f8f2;
  overflow: visible;
}
.ql-snow .ql-editor img {
  max-width: 100%;
}
.ql-snow .ql-picker {
  color: #444;
  display: inline-block;
  float: left;
  font-size: 14px;
  font-weight: 500;
  height: 24px;
  position: relative;
  vertical-align: middle;
}
.ql-snow .ql-picker-label {
  cursor: pointer;
  display: inline-block;
  height: 100%;
  padding-left: 8px;
  padding-right: 2px;
  position: relative;
  width: 100%;
}
.ql-snow .ql-picker-label::before {
  display: inline-block;
  line-height: 22px;
}
.ql-snow .ql-picker-options {
  background-color: #fff;
  display: none;
  min-width: 100%;
  padding: 4px 8px;
  position: absolute;
  white-space: nowrap;
}
.ql-snow .ql-picker-options .ql-picker-item {
  cursor: pointer;
  display: block;
  padding-bottom: 5px;
  padding-top: 5px;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label {
  color: #ccc;
  z-index: 2;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {
  fill: #ccc;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
  stroke: #ccc;
}
.ql-snow .ql-picker.ql-expanded .ql-picker-options {
  display: block;
  margin-top: -1px;
  top: 100%;
  z-index: 1;
}
.ql-snow .ql-color-picker,
.ql-snow .ql-icon-picker {
  width: 28px;
}
.ql-snow .ql-color-picker .ql-picker-label,
.ql-snow .ql-icon-picker .ql-picker-label {
  padding: 2px 4px;
}
.ql-snow .ql-color-picker .ql-picker-label svg,
.ql-snow .ql-icon-picker .ql-picker-label svg {
  right: 4px;
}
.ql-snow .ql-icon-picker .ql-picker-options {
  padding: 4px 0px;
}
.ql-snow .ql-icon-picker .ql-picker-item {
  height: 24px;
  width: 24px;
  padding: 2px 4px;
}
.ql-snow .ql-color-picker .ql-picker-options {
  padding: 3px 5px;
  width: 152px;
}
.ql-snow .ql-color-picker .ql-picker-item {
  border: 1px solid transparent;
  float: left;
  height: 16px;
  margin: 2px;
  padding: 0px;
  width: 16px;
}
.ql-snow .ql-picker:not(.ql-color-picker):not(.ql-icon-picker) svg {
  position: absolute;
  margin-top: -9px;
  right: 0;
  top: 50%;
  width: 18px;
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-font .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-label[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-label]:not([data-label=''])::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-label]:not([data-label=''])::before {
  content: attr(data-label);
}
.ql-snow .ql-picker.ql-header {
  width: 98px;
}
.ql-snow .ql-picker.ql-header .ql-picker-label::before,
.ql-snow .ql-picker.ql-header .ql-picker-item::before {
  content: 'Normal';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="1"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
  content: 'Heading 1';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="2"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
  content: 'Heading 2';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="3"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
  content: 'Heading 3';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="4"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
  content: 'Heading 4';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="5"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
  content: 'Heading 5';
}
.ql-snow .ql-picker.ql-header .ql-picker-label[data-value="6"]::before,
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
  content: 'Heading 6';
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="1"]::before {
  font-size: 2em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="2"]::before {
  font-size: 1.5em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="3"]::before {
  font-size: 1.17em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="4"]::before {
  font-size: 1em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="5"]::before {
  font-size: 0.83em;
}
.ql-snow .ql-picker.ql-header .ql-picker-item[data-value="6"]::before {
  font-size: 0.67em;
}
.ql-snow .ql-picker.ql-font {
  width: 108px;
}
.ql-snow .ql-picker.ql-font .ql-picker-label::before,
.ql-snow .ql-picker.ql-font .ql-picker-item::before {
  content: 'Sans Serif';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=serif]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
  content: 'Serif';
}
.ql-snow .ql-picker.ql-font .ql-picker-label[data-value=monospace]::before,
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
  content: 'Monospace';
}
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=serif]::before {
  font-family: Georgia, Times New Roman, serif;
}
.ql-snow .ql-picker.ql-font .ql-picker-item[data-value=monospace]::before {
  font-family: Monaco, Courier New, monospace;
}
.ql-snow .ql-picker.ql-size {
  width: 98px;
}
.ql-snow .ql-picker.ql-size .ql-picker-label::before,
.ql-snow .ql-picker.ql-size .ql-picker-item::before {
  content: 'Normal';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=small]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
  content: 'Small';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=large]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
  content: 'Large';
}
.ql-snow .ql-picker.ql-size .ql-picker-label[data-value=huge]::before,
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
  content: 'Huge';
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=small]::before {
  font-size: 10px;
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=large]::before {
  font-size: 18px;
}
.ql-snow .ql-picker.ql-size .ql-picker-item[data-value=huge]::before {
  font-size: 32px;
}
.ql-snow .ql-color-picker.ql-background .ql-picker-item {
  background-color: #fff;
}
.ql-snow .ql-color-picker.ql-color .ql-picker-item {
  background-color: #000;
}
.ql-toolbar.ql-snow {
  border: 1px solid #ccc;
  box-sizing: border-box;
  font-family: 'Helvetica Neue', 'Helvetica', 'Arial', sans-serif;
  padding: 8px;
}
.ql-toolbar.ql-snow .ql-formats {
  margin-right: 15px;
}
.ql-toolbar.ql-snow .ql-picker-label {
  border: 1px solid transparent;
}
.ql-toolbar.ql-snow .ql-picker-options {
  border: 1px solid transparent;
  box-shadow: rgba(0,0,0,0.2) 0 2px 8px;
}
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {
  border-color: #ccc;
}
.ql-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
  border-color: #ccc;
}
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item.ql-selected,
.ql-toolbar.ql-snow .ql-color-picker .ql-picker-item:hover {
  border-color: #000;
}
.ql-toolbar.ql-snow + .ql-container.ql-snow {
  border-top: 0px;
}
.ql-snow .ql-tooltip {
  background-color: #fff;
  border: 1px solid #ccc;
  box-shadow: 0px 0px 5px #ddd;
  color: #444;
  padding: 5px 12px;
  white-space: nowrap;
}
.ql-snow .ql-tooltip::before {
  content: "Visit URL:";
  line-height: 26px;
  margin-right: 8px;
}
.ql-snow .ql-tooltip input[type=text] {
  display: none;
  border: 1px solid #ccc;
  font-size: 13px;
  height: 26px;
  margin: 0px;
  padding: 3px 5px;
  width: 170px;
}
.ql-snow .ql-tooltip a.ql-preview {
  display: inline-block;
  max-width: 200px;
  overflow-x: hidden;
  text-overflow: ellipsis;
  vertical-align: top;
}
.ql-snow .ql-tooltip a.ql-action::after {
  border-right: 1px solid #ccc;
  content: 'Edit';
  margin-left: 16px;
  padding-right: 8px;
}
.ql-snow .ql-tooltip a.ql-remove::before {
  content: 'Remove';
  margin-left: 8px;
}
.ql-snow .ql-tooltip a {
  line-height: 26px;
}
.ql-snow .ql-tooltip.ql-editing a.ql-preview,
.ql-snow .ql-tooltip.ql-editing a.ql-remove {
  display: none;
}
.ql-snow .ql-tooltip.ql-editing input[type=text] {
  display: inline-block;
}
.ql-snow .ql-tooltip.ql-editing a.ql-action::after {
  border-right: 0px;
  content: 'Save';
  padding-right: 0px;
}
.ql-snow .ql-tooltip[data-mode=link]::before {
  content: "Enter link:";
}
.ql-snow .ql-tooltip[data-mode=formula]::before {
  content: "Enter formula:";
}
.ql-snow .ql-tooltip[data-mode=video]::before {
  content: "Enter video:";
}
.ql-snow a {
  color: #06c;
}
.ql-container.ql-snow {
  border: 1px solid #ccc;
}

.editable-field {
  margin-bottom: 16px;
  padding: 12px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  background: #fafafa;
  transition: all 0.3s;
}

.editable-field:hover {
  border-color: #FFA351;
}

.editable-field.field-overridden {
  border-color: #FFA351;
  background: #fff7f0;
  box-shadow: 0 0 0 2px rgba(255, 163, 81, 0.1);
}

.field-header {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.override-indicator {
  color: #FFA351;
  font-size: 12px;
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% { opacity: 1; }
  50% { opacity: 0.5; }
  100% { opacity: 1; }
}

.field-content {
  position: relative;
}

.display-mode {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 32px;
}

.field-value {
  flex: 1 1;
  padding: 4px 0;
}

.field-actions {
  display: flex;
  gap: 4px;
  opacity: 0;
  transition: opacity 0.2s;
}

.editable-field:hover .field-actions {
  opacity: 1;
}

.edit-mode {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.edit-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.original-value {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid #e0e0e0;
}

/* Styles spécifiques pour les différents types de champs */
.editable-field .ant-input,
.editable-field .ant-select,
.editable-field .ant-input-number,
.editable-field .ant-picker {
  border-radius: 4px;
}

.editable-field .ant-switch {
  margin: 4px 0;
}

/* Animation pour les champs modifiés */
.field-overridden .field-value {
  position: relative;
}

.field-overridden .field-value::before {
  content: '';
  position: absolute;
  left: -8px;
  top: 50%;
  transform: translateY(-50%);
  width: 3px;
  height: 100%;
  background: #FFA351;
  border-radius: 2px;
}

/* Responsive */
@media (max-width: 768px) {
  .display-mode {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  
  .field-actions {
    opacity: 1;
    align-self: flex-end;
  }
  
  .edit-actions {
    flex-direction: column;
    width: 100%;
  }
  
  .edit-actions .ant-btn {
    width: 100%;
  }
} 
.animal-follow-up-page {
  padding: 20px;
  background-color: #f6f2ef;
  min-height: 100vh;
}

.back-arrow {
  display: flex;
  align-items: center;
  cursor: pointer;
  margin-bottom: 20px;
  color: #a5765c;
  font-weight: 500;
  transition: color 0.3s ease;
}

.back-arrow:hover {
  color: #ffa351;
}

.follow-up-card {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  margin-bottom: 20px;
}

.follow-up-loading,
.follow-up-error {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  text-align: center;
}

.follow-up-loading span {
  margin-top: 16px;
  color: #a5765c;
  font-size: 16px;
}

.follow-up-error {
  color: #e63946;
  font-size: 16px;
}

.no-sessions {
  text-align: center;
  padding: 40px 20px;
  background-color: #f9f9f9;
  border-radius: 8px;
  border: 2px dashed #d9d9d9;
}

.editable-cell {
  cursor: pointer;
  padding: 8px 12px;
  border-radius: 6px;
  transition: all 0.3s ease;
  min-height: 40px;
  display: flex;
  align-items: flex-start;
  border: 1px solid transparent;
  line-height: 1.5;
}

.editable-cell div {
  width: 100%;
}

.editable-cell p {
  margin: 0 0 8px 0;
}

.editable-cell p:last-child {
  margin-bottom: 0;
}

.editable-cell ul, .editable-cell ol {
  margin: 8px 0;
  padding-left: 20px;
}

.editable-cell li {
  margin-bottom: 4px;
}

.editable-cell strong {
  font-weight: 600;
}

.editable-cell em {
  font-style: italic;
}

.editable-cell:hover {
  background-color: #f6f2ef;
  border-color: #ffa351;
}

.editable-cell:empty::before {
  content: "Cliquez pour ajouter...";
  color: #ccc;
  font-style: italic;
}

/* Style pour le tableau */
.ant-table-thead > tr > th {
  background-color: #ffa351;
  color: white;
  font-weight: bold;
  border: none;
}

.ant-table-tbody > tr > td {
  border-bottom: 1px solid #e8e8e8;
  vertical-align: top;
  padding: 16px 12px;
}

.ant-table-tbody > tr:hover > td {
  background-color: #fef8f0;
}

/* Responsive design */
@media (max-width: 768px) {
  .animal-follow-up-page {
    padding: 10px;
  }
  
  .editable-cell {
    padding: 6px 8px;
    min-height: 35px;
  }
  
  .ant-table-tbody > tr > td {
    padding: 12px 8px;
  }
}

/* Style pour le modal ReactQuill */
.ant-modal-body .ql-container {
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
}

.ant-modal-body .ql-toolbar {
  border-top-left-radius: 4px;
  border-top-right-radius: 4px;
}

/* Style pour les boutons du modal */
.ant-modal-footer .ant-btn-primary {
  background-color: #ffa351;
  border-color: #ffa351;
}

.ant-modal-footer .ant-btn-primary:hover {
  background-color: #f6c674;
  border-color: #f6c674;
} 
.proprio-detail-v2-page {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--space-lg);
    background-color: var(--bg-section);
    min-height: 100vh;
}

/* Header avec bouton retour */
.page-header-v2 {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-lg);
}

.back-button-v2 {
    font-size: var(--font-size-base);
    font-weight: 600;
    color: #8b7d6b !important;
    transition: all 0.3s ease;
}

.back-button-v2:hover {
    color: #A5765C !important;
}

.header-actions-v2 {
    display: flex;
    gap: var(--space-sm);
}

/* Boutons d'action personnalisés - Style moderne */
.header-actions-v2 .ant-btn {
    border-radius: 16px;
    font-weight: 600;
    border: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    height: auto;
    padding: 12px 24px;
}

/* Bouton "Envoyer un message" - Bleu doux moderne avec gradient */
.header-actions-v2 .ant-btn-default {
    background: linear-gradient(135deg, #4f8adb 0%, #77a5e8 100%);
    color: white;
    border: none;
}

.header-actions-v2 .ant-btn-default:hover {
    background: linear-gradient(135deg, #3d7acc 0%, #5f93e0 100%);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(79, 138, 219, 0.3);
    color: white;
}

.header-actions-v2 .ant-btn-default:active {
    transform: translateY(0);
}

/* Bouton "Supprimer" - Rouge doux moderne avec gradient */
.header-actions-v2 .ant-btn-primary.ant-btn-dangerous,
.header-actions-v2 .delete-client-button {
    background: linear-gradient(135deg, #e96a6a 0%, #f39292 100%);
    color: white;
    border: none;
}

.header-actions-v2 .ant-btn-primary.ant-btn-dangerous:hover,
.header-actions-v2 .delete-client-button:hover {
    background: linear-gradient(135deg, #e35555 0%, #ea7d7d 100%);
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(233, 106, 106, 0.3);
    color: white;
}

.header-actions-v2 .ant-btn-primary.ant-btn-dangerous:active,
.header-actions-v2 .delete-client-button:active {
    transform: translateY(0);
}

/* Style "rouge mort" pour le bouton désactivé */
.header-actions-v2 .delete-client-button:disabled,
.header-actions-v2 .ant-btn-primary.ant-btn-dangerous:disabled {
    background: #e96a6a !important;
    opacity: 0.3 !important;
    color: white !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    background-image: none !important;
}

/* Icônes dans les boutons */
.header-actions-v2 .ant-btn .anticon {
    font-size: 16px;
}

/* Banner statut client */
.client-status-banner {
    padding: var(--space-md);
    border-radius: var(--border-radius);
    margin-bottom: var(--space-lg);
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: var(--font-size-sm);
    font-weight: 500;
}

.client-status-banner.warning {
    background-color: var(--warning-light);
    color: var(--warning);
    border: 1px solid var(--warning);
}

/* Header Client */
.client-header-v2 {
    display: flex;
    gap: var(--space-lg);
    background: var(--bg-card);
    padding: var(--space-xl);
    border-radius: var(--border-radius);
    margin-bottom: var(--space-lg);
    box-shadow: var(--shadow-subtle);
}

.client-avatar-v2 {
    flex-shrink: 0;
    width: 100px;
    height: 100px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--light-gray);
}

.client-avatar-v2 img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.avatar-placeholder {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    font-weight: 700;
    background: var(--brown-300);
    color: var(--brown-700);
}

.client-main-info-v2 {
    flex: 1 1;
    min-width: 0;
}

.client-main-info-v2 h1 {
    font-size: var(--font-size-2xl);
    font-weight: 600;
    margin: 0 0 var(--space-sm) 0;
    color: var(--text-color);
}

.client-main-info-v2 h1 strong {
    font-weight: 800;
    text-transform: uppercase;
}

.client-contact-v2 {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    margin-bottom: var(--space-sm);
}

.client-contact-v2 a,
.client-contact-v2 span {
    font-size: var(--font-size-sm);
    color: var(--gray-500);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.client-contact-v2 a:hover {
    color: var(--brown);
}

.client-status-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: 4px 12px;
    border-radius: 12px;
    font-size: var(--font-size-xs);
    font-weight: 600;
}

.client-status-badge.validated {
    background-color: var(--success-light);
    color: var(--success);
}

/* Stats Cards Row */
.stats-cards-row-v2 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    grid-gap: var(--space-md);
    gap: var(--space-md);
    margin-bottom: var(--space-lg);
}

/* Animals Grid */
.animals-grid-v2 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-gap: var(--space-md);
    gap: var(--space-md);
}

/* Stats Section */
.stats-section-v2 {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    grid-gap: var(--space-md);
    gap: var(--space-md);
}

.stat-item-v2 {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    padding: var(--space-md);
    background: var(--bg-section);
    border-radius: var(--border-radius);
}

.stat-label-v2 {
    font-size: var(--font-size-xs);
    color: var(--gray-500);
    font-weight: 500;
}

.stat-value-v2 {
    font-size: var(--font-size-xl);
    font-weight: 700;
    color: var(--text-color);
}

/* Loading & Error States */
.proprio-detail-v2-loading,
.proprio-detail-v2-error {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    gap: var(--space-md);
}

.proprio-detail-v2-loading p {
    font-size: var(--font-size-base);
    color: var(--gray-500);
}

/* Mobile Responsive */
@media (max-width: 768px) {
    .proprio-detail-v2-page {
        padding: var(--space-md);
    }

    .page-header-v2 {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-sm);
    }

    .header-actions-v2 {
        width: 100%;
    }

    .header-actions-v2 button {
        flex: 1 1;
    }

    .client-header-v2 {
        flex-direction: column;
        align-items: center;
        text-align: center;
        padding: var(--space-lg);
    }

    .client-avatar-v2 {
        width: 80px;
        height: 80px;
    }

    .client-main-info-v2 h1 {
        font-size: var(--font-size-xl);
    }

    .stats-cards-row-v2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .animals-grid-v2 {
        grid-template-columns: 1fr;
    }

    .stats-section-v2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 480px) {
    .stats-cards-row-v2 {
        grid-template-columns: 1fr;
    }
}

/* Style pour informations manquantes */
.client-contact-v2 .missing-info {
    font-style: italic;
    opacity: 0.7;
}

/* Custom Fields Grid */
.custom-fields-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    grid-gap: var(--space-md);
    gap: var(--space-md);
}

.custom-field-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
    padding: var(--space-md);
    background: var(--bg-section);
    border-radius: var(--border-radius);
    border: 1px solid #e5e7eb;
}

.custom-field-label {
    font-size: var(--font-size-xs);
    font-weight: 600;
    color: var(--gray-500);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.custom-field-value {
    font-size: var(--font-size-base);
    color: var(--text-color);
    font-weight: 500;
}

/* Styles pour les liens d'adresse */
.client-contact-v2 .address-link {
    color: var(--gray-500);
    text-decoration: none;
    transition: color var(--transition-fast);
}

.client-contact-v2 .address-link:hover {
    color: var(--brown);
    text-decoration: underline;
}

/* Editable Fields Grid */
.editable-fields-grid {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Animal Card Wrapper (pour le bouton suppression) */
.animal-card-wrapper:hover .delete-animal-button {
    opacity: 1;
}

/* Champs personnalisés editables */
.field-card {
    background: white;
    padding: 16px;
    border-radius: 8px;
    border: 1px solid #f0f0f0;
    transition: all 0.3s ease;
}

.field-card:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.field-value .ant-input,
.field-value .ant-select-selector {
    border-radius: 6px;
}

/* Header Cards Grid */
.header-cards-grid {
    display: grid;
    grid-gap: var(--space-md);
    gap: var(--space-md);
    margin-bottom: var(--space-xl);
}

/* ==========================================
   RESPONSIVE - MOBILE OPTIMIZATIONS
   ========================================== */

/* Tablette et petit desktop */
@media (max-width: 1024px) {
    .proprio-detail-v2-page {
        padding: var(--space-md);
    }

    /* Header cards en 2 colonnes max sur tablette */
    .header-cards-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: var(--space-sm);
    }

    .stats-cards-row-v2 {
        grid-template-columns: repeat(2, 1fr);
    }

    .animals-grid-v2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Mobile */
@media (max-width: 768px) {
    .proprio-detail-v2-page {
        padding: var(--space-sm);
    }

    /* Header cards en 1 colonne sur mobile */
    .header-cards-grid {
        grid-template-columns: 1fr !important;
        gap: var(--space-sm);
        margin-bottom: var(--space-lg);
    }

    /* Header avec boutons */
    .page-header-v2 {
        flex-direction: column;
        gap: var(--space-sm);
        align-items: stretch;
    }

    .header-actions-v2 {
        flex-direction: column;
        width: 100%;
    }

    .header-actions-v2 button {
        width: 100%;
        justify-content: center;
    }

    /* Masquer les textes des boutons sur mobile, garder juste les icônes */
    .header-actions-v2 .button-text {
        display: none;
    }

    /* Stats en 2 colonnes */
    .stats-cards-row-v2 {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-sm);
    }

    /* Client Header */
    .client-header-v2 {
        padding: var(--space-md);
        gap: var(--space-md);
    }

    .client-avatar-v2 {
        width: 70px;
        height: 70px;
    }

    .client-main-info-v2 h1 {
        font-size: var(--font-size-xl);
    }

    .client-contact-v2 {
        flex-direction: column;
        gap: var(--space-xs);
    }

    .client-contact-v2 a,
    .client-contact-v2 span {
        font-size: var(--font-size-xs);
    }

    /* Animaux en 1 colonne sur mobile */
    .animals-grid-v2 {
        grid-template-columns: 1fr;
    }

    /* Champs éditables */
    .editable-fields-grid {
        gap: var(--space-sm);
    }
}

/* Petit mobile */
@media (max-width: 480px) {
    .proprio-detail-v2-page {
        padding: var(--space-xs);
    }

    /* Stats en 1 colonne sur très petit mobile */
    .stats-cards-row-v2 {
        grid-template-columns: 1fr;
    }

    /* Header ultra compact */
    .client-header-v2 {
        padding: var(--space-sm);
    }

    .client-avatar-v2 {
        width: 56px;
        height: 56px;
    }

    .client-main-info-v2 h1 {
        font-size: var(--font-size-lg);
    }

    .back-button-v2 {
        font-size: var(--font-size-sm);
    }

    /* Boutons plus accessibles tactiles (min 44px) */
    .header-actions-v2 button {
        min-height: 44px;
        padding: var(--space-sm) var(--space-md);
    }
}

/* Orientation paysage mobile */
@media (max-width: 768px) and (orientation: landscape) {
    .stats-cards-row-v2 {
        grid-template-columns: repeat(4, 1fr);
    }

    .animals-grid-v2 {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Touch improvements - zones tactiles plus grandes */
@media (hover: none) and (pointer: coarse) {

    /* Augmenter les zones tactiles */
    .client-contact-v2 a {
        padding: var(--space-xs) 0;
        display: inline-block;
    }

    /* Meilleur feedback visuel au tap */
    button,
    a {
        -webkit-tap-highlight-color: rgba(59, 130, 246, 0.1);
    }
}

/* =========================== */
/* GRID WIDGETS (Modern Cards)*/
/* =========================== */

.widgets-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 16px;
    gap: 16px;
    margin-bottom: 40px;
}

@media (min-width: 600px) {
    .widgets-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

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

.widget-card {
    background: white;
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid transparent;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 140px;
}

.widget-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 30px rgba(165, 118, 92, 0.12);
    border-color: #f7f3ed;
}

.widget-card:active {
    transform: scale(0.98);
}

.widget-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}

.widget-icon-wrapper {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: #faf7f2;
}

.widget-content {
    flex: 1 1;
}

.widget-title {
    font-size: 14px;
    font-weight: 600;
    color: #8b7d6b;
    margin-bottom: 4px;
}

.widget-value {
    font-size: 20px;
    font-weight: 800;
    color: #1e293b;
    margin-bottom: 4px;
    letter-spacing: -0.5px;
}

.widget-subtext {
    font-size: 12px;
    color: #a39686;
    font-weight: 500;
}

.widget-action-icon {
    color: #d4c4b4;
    font-size: 16px;
    opacity: 0.5;
    transition: all 0.3s;
}

.widget-card:hover .widget-action-icon {
    opacity: 1;
    color: #A5765C;
    transform: translateX(2px);
}

/* Couleurs spécifiques aux widgets - Palette Rintintin Pro */
.widget-card.green .widget-icon-wrapper {
    background: #f0f4e8;
    color: #6b7c3d;
}

.widget-card.orange .widget-icon-wrapper {
    background: #fff8ed;
    color: #D4A574;
}

.widget-card.purple .widget-icon-wrapper {
    background: #f7f3ed;
    color: #A5765C;
}

.widget-card.blue .widget-icon-wrapper {
    background: #fef9f0;
    color: #C4915E;
}

.widget-card.red .widget-icon-wrapper {
    background: #fef5f0;
    color: #c4754c;
}

.widget-card.grey .widget-icon-wrapper {
    background: #faf7f2;
    color: #8b7d6b;
}

.widget-card.cyan .widget-icon-wrapper {
    background: #ecfeff;
    color: #06b6d4;
}

.widget-card.teal .widget-icon-wrapper {
    background: #f0fdfa;
    color: #0d9488;
}

/* =========================== */
/* DETAIL SECTIONS (Modales)  */
/* =========================== */

.detail-section {
    padding: 0;
}

.detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid #faf7f2;
}

.detail-row:last-child {
    border-bottom: none;
}

.detail-row-label {
    font-size: 15px;
    color: #8b7d6b;
    font-weight: 500;
}

.detail-row-value {
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
}

.detail-row.total {
    margin-top: 12px;
    padding-top: 20px;
    border-top: 2px dashed #ead4b8;
}

.detail-row.total .detail-row-label,
.detail-row.total .detail-row-value {
    font-size: 18px;
    font-weight: 800;
}

/* Style de la modale */
.stat-detail-modal .ant-modal-content {
    border-radius: 24px;
    padding: 12px;
}

.stat-detail-modal .ant-modal-body {
    padding: 24px;
}

.stat-detail-modal .ant-modal-footer {
    border-top: none;
    padding: 12px 24px 24px;
    text-align: center;
}

/* Responsive pour les widgets */
@media (max-width: 768px) {
    .widgets-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .widget-card {
        padding: 20px;
        min-height: 120px;
    }

    .widget-value {
        font-size: 18px;
    }

    .widget-icon-wrapper {
        width: 40px;
        height: 40px;
        font-size: 20px;
    }
}

/* ==========================================
   FIX RESPONSIVE HEADER PROPRIO / ANIMAUX
   ========================================== */

@media (max-width: 768px) {

    /* Le conteneur principal passe en colonne */
    .header-proprio-animaux-layout {
        flex-direction: column;
        align-items: stretch;
    }

    /* La colonne de gauche (Proprio) prend toute la largeur */
    .header-proprio-col-left {
        width: 100%;
    }

    /* La carte proprio elle-même prend toute la largeur */
    .header-proprio-card {
        max-width: 100% !important;
        width: 100% !important;
    }

    /* La colonne de droite (Animaux) prend toute la largeur */
    .header-animaux-col-right {
        width: 100%;
    }
}
.timeline {
    position: relative;
}

.timeline-item {
    position: relative;
    display: flex;
    gap: var(--space-md);
    padding-bottom: var(--space-md);
    transition: all 0.2s ease;
}

/* Style pour les items cliquables */
.timeline-item-clickable {
    padding: var(--space-sm);
    margin: 0 0 var(--space-xs) 0;
    border-radius: 8px;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-item-clickable:hover {
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.06) 0%, rgba(59, 130, 246, 0.06) 100%);
    box-shadow: 0 2px 8px rgba(139, 92, 246, 0.1);
    transform: translateY(-1px);
}

.timeline-item-clickable:active {
    transform: translateY(0);
    box-shadow: 0 1px 4px rgba(139, 92, 246, 0.08);
}

.timeline-dot {
    flex-shrink: 0;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background-color: var(--gray-500);
    margin-top: 6px;
    z-index: 1;
    border: 2px solid white;
    box-shadow: 0 0 0 2px rgba(107, 114, 128, 0.2);
    transition: all 0.3s ease;
}

.timeline-item-clickable:hover .timeline-dot {
    transform: scale(1.2);
    box-shadow: 0 0 0 4px rgba(107, 114, 128, 0.15);
}

.timeline-dot.status-confirmed,
.timeline-dot.status-completed {
    background-color: var(--success);
    box-shadow: 0 0 0 2px rgba(34, 197, 94, 0.2);
}

.timeline-item-clickable:hover .timeline-dot.status-confirmed,
.timeline-item-clickable:hover .timeline-dot.status-completed {
    box-shadow: 0 0 0 4px rgba(34, 197, 94, 0.3), 0 0 8px rgba(34, 197, 94, 0.4);
}

.timeline-dot.status-pending {
    background-color: var(--warning);
    box-shadow: 0 0 0 2px rgba(251, 191, 36, 0.2);
}

.timeline-item-clickable:hover .timeline-dot.status-pending {
    box-shadow: 0 0 0 4px rgba(251, 191, 36, 0.3), 0 0 8px rgba(251, 191, 36, 0.4);
}

.timeline-dot.status-cancelled {
    background-color: var(--error);
    box-shadow: 0 0 0 2px rgba(239, 68, 68, 0.2);
}

.timeline-item-clickable:hover .timeline-dot.status-cancelled {
    box-shadow: 0 0 0 4px rgba(239, 68, 68, 0.3), 0 0 8px rgba(239, 68, 68, 0.4);
}

.timeline-line {
    position: absolute;
    left: 6px;
    top: 18px;
    bottom: 0;
    width: 2px;
    background-color: var(--border-color);
}

.timeline-content {
    flex: 1 1;
    min-width: 0;
    position: relative;
}

/* Indicateur de clic visible au survol */
.timeline-item-clickable .timeline-content::after {
    content: '→';
    position: absolute;
    right: 8px;
    top: 50%;
    transform: translateY(-50%);
    opacity: 0.3;
    font-size: 20px;
    font-weight: bold;
    color: #8b5cf6;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-item-clickable:hover .timeline-content::after {
    opacity: 1;
    right: 4px;
    color: #6366f1;
    animation: pulse-arrow 1s ease-in-out infinite;
}

@keyframes pulse-arrow {

    0%,
    100% {
        transform: translateY(-50%) translateX(0);
    }

    50% {
        transform: translateY(-50%) translateX(4px);
    }
}

.timeline-header {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
    margin-bottom: 4px;
}

.timeline-date {
    font-size: var(--font-size-sm);
    font-weight: 600;
    color: var(--text-color);
    white-space: nowrap;
    transition: color 0.2s ease;
}

.timeline-item-clickable:hover .timeline-date {
    color: #6366f1;
}

.timeline-title {
    font-size: var(--font-size-sm);
    color: var(--text-color);
    flex: 1 1;
    min-width: 0;
    font-weight: 500;
    transition: color 0.2s ease;
}

.timeline-item-clickable:hover .timeline-title {
    color: #4f46e5;
    font-weight: 600;
}

.timeline-amount {
    font-size: var(--font-size-sm);
    font-weight: 700;
    background: linear-gradient(135deg, #d97706 0%, #b45309 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    white-space: nowrap;
    transition: all 0.2s ease;
}

.timeline-item-clickable:hover .timeline-amount {
    background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    transform: scale(1.05);
}

.timeline-subtitle {
    font-size: var(--font-size-xs);
    color: var(--gray-500);
    margin-bottom: 4px;
}

.timeline-status {
    display: inline-flex;
    align-items: center;
    padding: 3px 10px;
    font-size: var(--font-size-xs);
    font-weight: 600;
    border-radius: 8px;
    transition: all 0.2s ease;
}

.timeline-item-clickable:hover .timeline-status {
    transform: scale(1.05);
}

.timeline-status.status-confirmed,
.timeline-status.status-completed {
    background-color: var(--success-light);
    color: var(--success);
}

.timeline-item-clickable:hover .timeline-status.status-confirmed,
.timeline-item-clickable:hover .timeline-status.status-completed {
    background-color: #dcfce7;
    box-shadow: 0 2px 6px rgba(34, 197, 94, 0.2);
}

.timeline-status.status-pending {
    background-color: var(--warning-light);
    color: var(--warning);
}

.timeline-item-clickable:hover .timeline-status.status-pending {
    background-color: #fef9c3;
    box-shadow: 0 2px 6px rgba(251, 191, 36, 0.2);
}

.timeline-status.status-cancelled {
    background-color: var(--error-light);
    color: var(--error);
}

.timeline-item-clickable:hover .timeline-status.status-cancelled {
    background-color: #fee2e2;
    box-shadow: 0 2px 6px rgba(239, 68, 68, 0.2);
}

.timeline-see-all {
    margin-top: var(--space-sm);
    margin-left: calc(14px + var(--space-md));
    padding: var(--space-sm) var(--space-md);
    background: transparent;
    border: 1px dashed var(--border-color);
    border-radius: var(--border-radius);
    color: var(--gray-500);
    font-size: var(--font-size-sm);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    font-weight: 500;
}

.timeline-see-all:hover {
    background: linear-gradient(135deg, rgba(139, 92, 246, 0.08) 0%, rgba(59, 130, 246, 0.08) 100%);
    border-color: #8b5cf6;
    color: #7c3aed;
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(139, 92, 246, 0.15);
}

/* Mobile responsive */
@media (max-width: 768px) {
    .timeline-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }

    .timeline-amount {
        order: -1;
    }
}
.editable-notes {
    position: relative;
}

.editable-notes-textarea {
    width: 100%;
    padding: var(--space-md);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius);
    font-size: var(--font-size-sm);
    font-family: inherit;
    line-height: 1.5;
    color: var(--text-color);
    background-color: var(--bg-card);
    resize: vertical;
    min-height: 120px;
    transition: border-color var(--transition-fast);
}

.editable-notes-textarea:focus {
    outline: none;
    border-color: var(--brown);
    box-shadow: 0 0 0 3px var(--brown-300);
}

.editable-notes-textarea:disabled {
    background-color: var(--light-gray);
    cursor: not-allowed;
    opacity: 0.7;
}

.editable-notes-textarea::placeholder {
    color: var(--gray-500);
}

.editable-notes-status {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    margin-top: var(--space-sm);
    font-size: var(--font-size-xs);
    font-weight: 500;
    transition: opacity var(--transition-fast);
}

.editable-notes-status.status-saving {
    color: var(--info);
    animation: pulse 1s infinite;
}

.editable-notes-status.status-saved {
    color: var(--success);
}

@keyframes pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }
}

/* Mobile responsive */
@media (max-width: 768px) {
    .editable-notes-textarea {
        font-size: var(--font-size-base);
        padding: var(--space-sm);
    }
}
:root {
    /* Status colors */
    --success: #10b981;
    --success-light: #d1fae5;
    --warning: #f59e0b;
    --warning-light: #fef3c7;
    --error: #ef4444;
    --error-light: #fee2e2;
    --info: #3b82f6;
    --info-light: #dbeafe;

    /* Semantic colors */
    --color-validated: #10b981;
    --color-pending: #f59e0b;
    --color-cancelled: #6b7280;
    --color-confirmed: #3b82f6;
    --color-completed: #10b981;

    /* Backgrounds */
    --bg-section: #fafafa;
    --bg-card: #ffffff;
    --bg-hover: #f5f5f5;

    /* Borders */
    --border-color: #e5e7eb;
    --border-color-light: #f3f4f6;

    /* Spacing scale */
    --space-xs: 4px;
    --space-sm: 8px;
    --space-md: 16px;
    --space-lg: 24px;
    --space-xl: 32px;
    --space-2xl: 48px;

    /* Typography */
    --font-size-xs: 12px;
    --font-size-sm: 14px;
    --font-size-base: 16px;
    --font-size-lg: 18px;
    --font-size-xl: 20px;
    --font-size-2xl: 24px;

    /* Transitions */
    --transition-fast: 150ms ease;
    --transition-base: 250ms ease;
    --transition-slow: 350ms ease;
}
.info-section {
    background: var(--bg-card);
    border-radius: var(--border-radius);
    margin-bottom: var(--space-md);
    overflow: hidden;
    border: 1px solid var(--border-color-light);
    transition: box-shadow var(--transition-base);
}

.info-section:hover {
    box-shadow: var(--shadow-subtle);
}

.info-section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-md) var(--space-lg);
    cursor: pointer;
    -webkit-user-select: none;
            user-select: none;
    transition: background-color var(--transition-fast);
    gap: var(--space-md);
}

.info-section-header:hover {
    background-color: var(--bg-hover);
}

.info-section-header:focus {
    outline: 2px solid var(--brown-300);
    outline-offset: -2px;
}

.info-section-header-left {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex: 1 1;
    min-width: 0;
}

.info-section-icon {
    font-size: var(--font-size-xl);
    flex-shrink: 0;
}

.info-section-title {
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--text-color);
}

.info-section-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 8px;
    background-color: var(--brown-300);
    color: var(--brown-700);
    border-radius: 12px;
    font-size: var(--font-size-xs);
    font-weight: 600;
    flex-shrink: 0;
}

/* Color variants for badge */
.info-section[data-color="brown"] .info-section-badge {
    background-color: var(--brown-300);
    color: var(--brown-700);
}

.info-section[data-color="gold"] .info-section-badge {
    background-color: var(--gold-300);
    color: var(--gold-600);
}

.info-section[data-color="peach"] .info-section-badge {
    background-color: var(--peach);
    color: #8e3b36;
}

.info-section[data-color="blue"] .info-section-badge {
    background-color: var(--info-light);
    color: var(--info);
}

.info-section[data-color="green"] .info-section-badge {
    background-color: var(--success-light);
    color: var(--success);
}

.info-section-preview {
    color: var(--gray-500);
    font-size: var(--font-size-sm);
    flex-shrink: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 300px;
}

.info-section-arrow {
    font-size: var(--font-size-xs);
    color: var(--gray-500);
    transition: transform var(--transition-fast);
    flex-shrink: 0;
}

.info-section-arrow.open {
    transform: rotate(180deg);
}

.info-section-content {
    padding: 0 var(--space-lg) var(--space-lg) var(--space-lg);
    animation: slideDown var(--transition-base);
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Mobile responsive */
@media (max-width: 768px) {
    .info-section-header {
        padding: var(--space-md);
    }

    .info-section-content {
        padding: 0 var(--space-md) var(--space-md) var(--space-md);
    }

    .info-section-preview {
        max-width: 150px;
    }
}
.animal-card {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    padding: var(--space-md);
    background: var(--bg-card);
    border: 1px solid var(--border-color-light);
    border-radius: var(--border-radius);
    transition: all var(--transition-base);
}

.animal-card.clickable {
    cursor: pointer;
}

.animal-card.clickable:hover {
    background: var(--bg-hover);
    box-shadow: var(--shadow-subtle);
    transform: translateY(-2px);
}

.animal-card.clickable:focus {
    outline: 2px solid var(--brown-300);
    outline-offset: 2px;
}

.animal-card-photo {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--light-gray);
}

.animal-card-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.animal-card-info {
    flex: 1 1;
    min-width: 0;
}

.animal-card-header {
    display: flex;
    align-items: center;
    gap: var(--space-xs);
    margin-bottom: 4px;
}

.animal-card-name {
    font-size: var(--font-size-base);
    font-weight: 600;
    color: var(--text-color);
    margin: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.animal-card-age {
    font-size: var(--font-size-sm);
    font-weight: 500;
    color: var(--gray-500);
}

.animal-card-breed {
    font-size: var(--font-size-sm);
    color: var(--gray-500);
    margin: 0 0 var(--space-sm) 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.animal-card-tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-xs);
}

.animal-card-tag {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    background-color: var(--success-light);
    color: var(--success);
    font-size: var(--font-size-xs);
    font-weight: 500;
    border-radius: 6px;
}

.animal-card-tag-more {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    background-color: var(--gray-300);
    color: var(--gray-500);
    font-size: var(--font-size-xs);
    font-weight: 500;
    border-radius: 6px;
}

.animal-card-arrow {
    flex-shrink: 0;
    font-size: var(--font-size-lg);
    color: var(--gray-500);
    transition: transform var(--transition-fast);
}

.animal-card.clickable:hover .animal-card-arrow {
    transform: translateX(4px);
}

/* Mobile responsive */
@media (max-width: 768px) {
    .animal-card {
        padding: var(--space-sm);
    }

    .animal-card-photo {
        width: 50px;
        height: 50px;
    }
}
.stat-badge {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--space-md);
    border-radius: var(--border-radius);
    transition: all var(--transition-base);
}

.stat-badge-value {
    font-weight: 700;
    line-height: 1;
    margin-bottom: var(--space-xs);
}

.stat-badge-label {
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
}

/* Size variants */
.stat-badge-small .stat-badge-value {
    font-size: var(--font-size-lg);
}

.stat-badge-small .stat-badge-label {
    font-size: var(--font-size-xs);
}

.stat-badge-small {
    padding: var(--space-sm) var(--space-md);
}

.stat-badge-medium .stat-badge-value {
    font-size: var(--font-size-xl);
}

.stat-badge-medium .stat-badge-label {
    font-size: var(--font-size-sm);
}

.stat-badge-large .stat-badge-value {
    font-size: var(--font-size-2xl);
}

.stat-badge-large .stat-badge-label {
    font-size: var(--font-size-base);
}

.stat-badge-large {
    padding: var(--space-lg);
}

/* Color variants */
.stat-badge-green {
    background-color: var(--success-light);
    color: var(--success);
}

.stat-badge-orange {
    background-color: var(--warning-light);
    color: var(--warning);
}

.stat-badge-red {
    background-color: var(--error-light);
    color: var(--error);
}

.stat-badge-brown {
    background-color: var(--brown-300);
    color: var(--brown-700);
}

.stat-badge-blue {
    background-color: var(--info-light);
    color: var(--info);
}

/* Hover effect (optional) */
.stat-badge:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-subtle);
}
.accordion {
    background: var(--bg-card);
    border: 1px solid var(--border-color);
    border-radius: 12px;
    margin-bottom: var(--space-lg);
    overflow: hidden;
    transition: box-shadow var(--transition-base);
}

.accordion:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.accordion-header {
    width: 100%;
    padding: var(--space-lg);
    background: var(--bg-card);
    border: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    transition: background-color var(--transition-fast);
    text-align: left;
}

.accordion-header:hover {
    background: var(--bg-hover);
}

.accordion-header:focus {
    outline: 2px solid var(--info);
    outline-offset: -2px;
}

.accordion-header--open {
    border-bottom: 1px solid var(--border-color-light);
}

.accordion-header-content {
    display: flex;
    align-items: center;
    gap: var(--space-md);
    flex: 1 1;
}

.accordion-icon {
    font-size: var(--font-size-2xl);
    line-height: 1;
    flex-shrink: 0;
}

.accordion-title {
    margin: 0;
    font-size: var(--font-size-lg);
    font-weight: 600;
    color: #1f2937;
}

.accordion-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 24px;
    height: 24px;
    padding: 0 8px;
    background: var(--info-light);
    color: var(--info);
    border-radius: 12px;
    font-size: var(--font-size-xs);
    font-weight: 600;
}

.accordion-chevron {
    flex-shrink: 0;
    color: #6b7280;
    transition: transform var(--transition-base);
}

.accordion-chevron--open {
    transform: rotate(180deg);
}

.accordion-content {
    max-height: 0;
    overflow: hidden;
    transition: max-height var(--transition-base);
}

.accordion-content--open {
    max-height: 5000px;
    transition: max-height var(--transition-slow);
}

.accordion-content-inner {
    padding: var(--space-lg);
    padding-top: var(--space-md);
}

/* Responsive */
@media (max-width: 768px) {
    .accordion-header {
        padding: var(--space-md);
    }

    .accordion-content-inner {
        padding: var(--space-md);
        padding-top: var(--space-sm);
    }

    .accordion-title {
        font-size: var(--font-size-base);
    }
}
.tabs {
    margin-bottom: var(--space-xl);
}

.tabs-nav {
    display: flex;
    gap: var(--space-sm);
    border-bottom: 2px solid var(--border-color);
    overflow-x: auto;
    scrollbar-width: thin;
}

.tabs-nav::-webkit-scrollbar {
    height: 4px;
}

.tabs-nav::-webkit-scrollbar-track {
    background: var(--bg-section);
}

.tabs-nav::-webkit-scrollbar-thumb {
    background: var(--border-color);
    border-radius: 4px;
}

.tab-button {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-md) var(--space-lg);
    background: transparent;
    border: none;
    cursor: pointer;
    font-size: var(--font-size-base);
    font-weight: 500;
    color: #6b7280;
    transition: all var(--transition-fast);
    white-space: nowrap;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
}

.tab-button:hover {
    color: #1f2937;
    background: var(--bg-hover);
}

.tab-button--active {
    color: #A5765C;
    /* Brown */
    font-weight: 600;
    border-bottom-color: #A5765C;
}

.tab-button--active .tab-icon {
    transform: scale(1.1);
}

.tab-icon {
    font-size: var(--font-size-xl);
    line-height: 1;
    transition: transform var(--transition-fast);
}

.tab-label {
    font-size: var(--font-size-base);
}

.tab-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 20px;
    padding: 0 6px;
    background: var(--info-light);
    color: var(--info);
    border-radius: 10px;
    font-size: var(--font-size-xs);
    font-weight: 600;
}

.tab-button--active .tab-badge {
    background: #A5765C;
    color: white;
}

/* Responsive */
@media (max-width: 768px) {
    .tab-button {
        padding: var(--space-sm) var(--space-md);
        font-size: var(--font-size-sm);
    }

    .tab-icon {
        font-size: var(--font-size-lg);
    }

    .tab-label {
        font-size: var(--font-size-sm);
    }
}
.collapsible-card {
    background: white;
    border-radius: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    border: 1px solid transparent;
    margin-bottom: var(--space-lg);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
}

.collapsible-card:hover {
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
    border-color: #f1f5f9;
}

.collapsible-card-header {
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 20px 24px;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: background-color var(--transition-fast);
    text-align: left;
}

.collapsible-card-header:hover {
    background: #f8fafc;
}

.collapsible-card-header:focus {
    outline: 2px solid #3b82f6;
    outline-offset: -2px;
}

.collapsible-card-header-left {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1 1;
    min-width: 0;
}

.collapsible-card-icon {
    font-size: 24px;
    line-height: 1;
    flex-shrink: 0;
    filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.05));
}

.collapsible-card-title {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: -0.3px;
}

.collapsible-card-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 26px;
    height: 26px;
    padding: 0 10px;
    background: #eff6ff;
    color: #1d4ed8;
    border-radius: 13px;
    font-size: 13px;
    font-weight: 700;
    flex-shrink: 0;
}

.collapsible-card-badge-text {
    font-size: 13px;
    color: #94a3b8;
    font-weight: 500;
    flex-shrink: 0;
}

.collapsible-card-chevron {
    flex-shrink: 0;
    color: #94a3b8;
    transition: transform var(--transition-base), color var(--transition-fast);
}

.collapsible-card-header:hover .collapsible-card-chevron {
    color: #64748b;
}

.collapsible-card-chevron--open {
    transform: rotate(180deg);
}

.collapsible-card-content {
    padding: 0 24px 24px 24px;
    animation: slideDown 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive */
@media (max-width: 768px) {
    .collapsible-card-header {
        padding: 16px 18px;
    }

    .collapsible-card-header-left {
        gap: 10px;
    }

    .collapsible-card-icon {
        font-size: 22px;
    }

    .collapsible-card-title {
        font-size: 16px;
    }

    .collapsible-card-content {
        padding: 0 18px 18px 18px;
    }
}

@media (max-width: 480px) {
    .collapsible-card-header {
        padding: 14px 16px;
    }

    .collapsible-card-title {
        font-size: 15px;
    }

    .collapsible-card-badge {
        min-width: 22px;
        height: 22px;
        padding: 0 8px;
        font-size: 12px;
    }
}
/* ServiceAvailabilityPage.css */

.availability-page {
  padding: 40px 20px;
  max-width: 1100px;
  margin: 0 auto;
}


.back-button {
  margin-bottom: 20px;
  padding: 10px 16px;
  background-color: #e0e4e8;
  border: none;
  border-radius: 8px;
  cursor: pointer;
}

.days-of-week {
  display: flex;
  flex-wrap: wrap;
}

.day-checkbox {
  margin-right: 10px;
  margin-bottom: 5px;
}

.time-slot-form {
  margin-bottom: 40px;
  background-color: #fff;
  padding: 20px;
  border: 1px solid #e0e4e8;
  border-radius: 8px;
}

.time-slot-form h3 {
  margin-top: 0;
}

.form-group {
  margin-bottom: 16px;
}

.form-group label {
  display: block;
  margin-bottom: 8px;
  font-weight: 500;
}

.form-group input {
  width: 100%;
  padding: 10px;
  border: 1px solid #e0e4e8;
  border-radius: 8px;
}

.primary-btn {
  padding: 10px 16px;
  background-color: #e0b127;
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
}

.sub-slots-table {
  width: 100%;
  border-collapse: collapse;
}

.sub-slots-table th,
.sub-slots-table td {
  border: 1px solid #e0e4e8;
  padding: 10px;
  text-align: left;
}

.delete-btn {
  padding: 6px 12px;
  background-color: #ff4d4f;
  color: #fff;
  border: none;
  border-radius: 8px;
  cursor: pointer;
}

/* Date and time picker container */
.time-picker-container {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
}

/* TimePicker styling */
.form-group-floating .ant-picker-time {
  width: 100%;
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  padding: 8px 12px;
  background-color: #ffffff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
  height: 46px;
}

@media (max-width: 768px) {

  /* Adjust spacing for mobile */
  .date-selection,
  .time-selection {
    margin-bottom: 16px;
  }

  /* Make sure inputs are properly sized on mobile */
  .form-group-floating .ant-picker,
  .form-group-floating .ant-picker-time {
    height: 42px;
    font-size: 16px;
  }
}
/* ============================================
   BOOKING DETAIL PAGE — Redesign v2
   Aesthetic: Refined Utilitarian / Warm Pro
   ============================================ */

.bdp {
  --brand:          #A5765C;
  --brand-50:       #fdf8f5;
  --brand-100:      #f5e8df;
  --brand-200:      #e5cabb;
  --brand-dark:     #7d5743;

  --bg:             #f4f1ed;
  --surface:        #ffffff;
  --border:         #ebe4dc;
  --border-strong:  #d4ccc3;

  --t1:             #1c1917;
  --t2:             #57534e;
  --t3:             #a8a29e;

  /* Status tokens */
  --s-pending-dot:          #f59e0b;
  --s-pending-bg:           #fef3c7;
  --s-pending-text:         #78350f;

  --s-validated-dot:        #16a34a;
  --s-validated-bg:         #dcfce7;
  --s-validated-text:       #14532d;

  --s-declined-dot:         #ef4444;
  --s-declined-bg:          #fee2e2;
  --s-declined-text:        #7f1d1d;

  --s-reschedule-dot:       #3b82f6;
  --s-reschedule-bg:        #dbeafe;
  --s-reschedule-text:      #1e3a8a;

  --s-pclient-dot:          #8b5cf6;
  --s-pclient-bg:           #f3e8ff;
  --s-pclient-text:         #4c1d95;

  --s-cancelled-dot:        #9ca3af;
  --s-cancelled-bg:         #f3f4f6;
  --s-cancelled-text:       #374151;

  font-family: 'DM Sans', system-ui, sans-serif;
  background: var(--bg);
  min-height: 100vh;
}

/* ── Container ── */
.bdp__wrap {
  max-width: 960px;
  margin: 0 auto;
  padding: 28px 24px 80px;
}

/* ── Topbar ── */
.bdp__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
}

.bdp__back {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--t3);
  font-size: 13px;
  font-weight: 500;
  cursor: pointer;
  background: none;
  border: none;
  padding: 6px 0;
  transition: color 0.15s;
  font-family: 'DM Sans', sans-serif;
}
.bdp__back:hover { color: var(--brand); }

.bdp__booking-ref {
  font-family: 'Sora', sans-serif;
  font-size: 11px;
  font-weight: 700;
  color: var(--t3);
  letter-spacing: 1.2px;
  text-transform: uppercase;
}

/* ── Hero ── */
.bdp__hero {
  background: var(--surface);
  border-radius: 20px;
  border: 1px solid var(--border);
  padding: 28px 32px;
  margin-bottom: 14px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.04), 0 4px 20px rgba(0,0,0,0.05);
}

.bdp__hero-top {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 22px;
}

.bdp__service-tag {
  font-family: 'Sora', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--brand);
  margin-bottom: 7px;
}

.bdp__service-name {
  font-family: 'Sora', sans-serif;
  font-size: 26px;
  font-weight: 800;
  color: var(--t1);
  margin: 0 0 12px 0;
  line-height: 1.15;
  letter-spacing: -0.5px;
}

.bdp__datetime {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

.bdp__dt-item {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 14px;
  font-weight: 500;
  color: var(--t2);
}

.bdp__dt-sep {
  color: var(--border-strong);
  font-size: 16px;
  line-height: 1;
}

/* ── Status Badge ── */
.bdp__status {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 6px 14px 6px 10px;
  border-radius: 100px;
  font-family: 'Sora', sans-serif;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
  white-space: nowrap;
  flex-shrink: 0;
}
.bdp__status::before {
  content: '';
  display: block;
  width: 7px;
  height: 7px;
  border-radius: 50%;
}

.bdp__status--pending {
  background: var(--s-pending-bg);
  color: var(--s-pending-text);
}
.bdp__status--pending::before { background: var(--s-pending-dot); }

.bdp__status--validated,
.bdp__status--confirmed {
  background: var(--s-validated-bg);
  color: var(--s-validated-text);
}
.bdp__status--validated::before,
.bdp__status--confirmed::before { background: var(--s-validated-dot); }

.bdp__status--declined {
  background: var(--s-declined-bg);
  color: var(--s-declined-text);
}
.bdp__status--declined::before { background: var(--s-declined-dot); }

.bdp__status--pending_reschedule {
  background: var(--s-reschedule-bg);
  color: var(--s-reschedule-text);
}
.bdp__status--pending_reschedule::before { background: var(--s-reschedule-dot); }

.bdp__status--pending_client {
  background: var(--s-pclient-bg);
  color: var(--s-pclient-text);
}
.bdp__status--pending_client::before { background: var(--s-pclient-dot); }

.bdp__status--cancelled_by_client,
.bdp__status--cancelled_by_pro {
  background: var(--s-cancelled-bg);
  color: var(--s-cancelled-text);
}
.bdp__status--cancelled_by_client::before,
.bdp__status--cancelled_by_pro::before { background: var(--s-cancelled-dot); }

/* ── Hero divider + Actions ── */
.bdp__hero-divider {
  height: 1px;
  background: var(--border);
  margin: 0 -32px 22px;
}

.bdp__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.bdp__btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 8px 16px;
  border-radius: 10px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.15s;
  border: none;
  text-decoration: none;
  white-space: nowrap;
}
.bdp__btn:disabled { opacity: 0.5; cursor: not-allowed; }

.bdp__btn--primary {
  background: #16a34a;
  color: #ffffff;
  box-shadow: 0 1px 4px rgba(22,163,74,0.25);
}
.bdp__btn--primary:hover { background: #15803d; transform: translateY(-1px); box-shadow: 0 3px 8px rgba(22,163,74,0.35); }

.bdp__btn--brand {
  background: var(--brand);
  color: #ffffff;
  box-shadow: 0 1px 4px rgba(165,118,92,0.25);
}
.bdp__btn--brand:hover { background: var(--brand-dark); transform: translateY(-1px); }

.bdp__btn--default {
  background: var(--brand-50);
  color: var(--t1);
  border: 1px solid var(--border);
}
.bdp__btn--default:hover { background: var(--brand-100); border-color: var(--brand-200); }

.bdp__btn--ghost {
  background: transparent;
  color: var(--t2);
  border: 1px solid var(--border);
}
.bdp__btn--ghost:hover { background: var(--bg); }

.bdp__btn--danger {
  background: #fee2e2;
  color: #991b1b;
  border: 1px solid #fecaca;
}
.bdp__btn--danger:hover { background: #fecaca; }

.bdp__actions-note {
  font-size: 12px;
  color: var(--t3);
  font-style: italic;
  padding: 0 4px;
}

/* ── Reschedule Alert ── */
.bdp__alert {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 14px 20px;
  border-radius: 14px;
  margin-bottom: 14px;
  font-size: 14px;
}

.bdp__alert--reschedule {
  background: var(--s-reschedule-bg);
  border: 1px solid #bfdbfe;
  color: var(--s-reschedule-text);
}

.bdp__alert__icon {
  font-size: 16px;
  flex-shrink: 0;
  margin-top: 2px;
}

.bdp__alert__title {
  font-weight: 700;
  margin-bottom: 3px;
  font-family: 'Sora', sans-serif;
  font-size: 13px;
}

.bdp__alert__detail {
  font-size: 13px;
  opacity: 0.85;
}

/* ── Main Grid ── */
.bdp__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 14px;
  gap: 14px;
  margin-bottom: 14px;
}

/* ── Cards ── */
.bdp__card {
  background: var(--surface);
  border-radius: 16px;
  border: 1px solid var(--border);
  padding: 20px 22px;
  box-shadow: 0 1px 2px rgba(0,0,0,0.03);
}

.bdp__card--full {
  grid-column: span 2;
}

.bdp__card-label {
  font-family: 'Sora', sans-serif;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--t3);
  margin-bottom: 14px;
}

/* ── Info rows ── */
.bdp__row {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--border);
}
.bdp__row:last-child { border-bottom: none; }
.bdp__row:first-of-type { padding-top: 0; }

.bdp__row-icon {
  width: 34px;
  height: 34px;
  background: var(--brand-50);
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 15px;
  color: var(--brand);
  flex-shrink: 0;
}

.bdp__row-content { flex: 1 1; min-width: 0; }

.bdp__row-key {
  font-size: 10px;
  color: var(--t3);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 3px;
}

.bdp__row-val {
  font-size: 14px;
  font-weight: 600;
  color: var(--t1);
}

.bdp__row-link {
  font-size: 14px;
  font-weight: 600;
  color: var(--brand);
  text-decoration: none;
}
.bdp__row-link:hover { text-decoration: underline; }

/* ── Photos ── */
.bdp__photos {
  display: flex;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}

.bdp__photo {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}

.bdp__photo img {
  width: 46px;
  height: 46px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid var(--border);
}

.bdp__photo-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--t3);
}

/* ── Session link ── */
.bdp__session-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--bg);
  padding: 7px 12px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  color: var(--t2);
  text-decoration: none;
  margin-top: 4px;
  transition: background 0.15s;
}
.bdp__session-link:hover { background: var(--border); }

/* ── Message du client ── */
.bdp__message-box {
  margin-top: 14px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
}

.bdp__message-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--t3);
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 5px;
}

.bdp__message-content {
  background: var(--brand-50);
  border: 1px solid var(--brand-100);
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 13px;
  color: var(--t2);
  line-height: 1.6;
  font-style: italic;
}

/* ── Payment ── */
.bdp__pay-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 16px;
  gap: 16px;
  margin-bottom: 16px;
}

.bdp__pay-key {
  font-size: 10px;
  color: var(--t3);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 7px;
}

.bdp__amount {
  font-family: 'Sora', sans-serif;
  font-size: 22px;
  font-weight: 800;
  color: var(--t1);
  line-height: 1;
}

.bdp__amount-crossed {
  font-size: 13px;
  color: var(--t3);
  text-decoration: line-through;
  display: block;
  margin-bottom: 2px;
}

.bdp__pay-divider {
  height: 1px;
  background: var(--border);
  margin-bottom: 14px;
}

.bdp__pay-invoice-label {
  font-size: 10px;
  color: var(--t3);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.6px;
  margin-bottom: 8px;
}

/* ── Invoice link ── */
.bdp__invoice-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: #2563eb;
  font-weight: 500;
  font-size: 13px;
  text-decoration: none;
}
.bdp__invoice-link:hover { text-decoration: underline; }

/* ── Info pill (forfait, quote, etc.) ── */
.bdp__info-pill {
  display: inline-block;
  padding: 5px 10px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.4;
  margin-top: 8px;
}
.bdp__info-pill--purple { background: rgba(139,92,246,0.08); color: #4c1d95; }
.bdp__info-pill--green  { background: rgba(5,150,105,0.08);  color: #065f46; }

/* ── Address ── */
.bdp__address-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--brand);
  font-weight: 600;
  font-size: 14px;
  text-decoration: none;
  background: var(--brand-100);
  border: 1px solid var(--brand-200);
  padding: 6px 12px;
  border-radius: 8px;
  transition: all 0.15s;
}
.bdp__address-link:hover { background: var(--brand-200); }

.bdp__address-edit {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 4px;
}

.bdp__address-input {
  padding: 9px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  font-size: 14px;
  width: 100%;
  font-family: 'DM Sans', sans-serif;
  color: var(--t1);
  background: var(--bg);
  transition: border-color 0.15s;
  box-sizing: border-box;
}
.bdp__address-input:focus { outline: none; border-color: var(--brand); }

.bdp__address-warning {
  padding: 10px 13px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 8px;
  font-size: 12px;
  color: #9a3412;
  line-height: 1.5;
}

/* ── Deadline ── */
.bdp__deadline {
  padding: 10px 14px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 10px;
  font-size: 12px;
  color: #9a3412;
  margin-bottom: 14px;
}

/* ── Meeting link ── */
.bdp__meeting-link {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  background: #f0fdf4;
  border: 1px solid #bbf7d0;
  border-radius: 12px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  color: #15803d;
  transition: all 0.15s;
}
.bdp__meeting-link:hover { background: #dcfce7; }
.bdp__meeting-link img { height: 22px; }

/* ── Employee select ── */
.bdp__employee-select { width: 100%; }

/* ── CGV wrapper ── */
.bdp__cgv { margin-bottom: 14px; }

/* ── Notes section ── */
.bdp__notes-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 18px;
}

.bdp__notes-title {
  font-family: 'Sora', sans-serif;
  font-size: 14px;
  font-weight: 700;
  color: var(--t1);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.bdp__notes-count {
  font-size: 11px;
  color: var(--t3);
  font-weight: 500;
}

.bdp__note-card {
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: 16px 18px;
  margin-bottom: 10px;
  background: var(--bg);
  transition: border-color 0.15s;
}
.bdp__note-card:hover { border-color: var(--brand-200); }

.bdp__note-body { font-size: 14px; color: var(--t1); line-height: 1.6; }
.bdp__note-body p { margin: 0 0 4px 0; }

.bdp__note-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
}

.bdp__note-date {
  font-size: 11px;
  color: var(--t3);
  font-weight: 500;
}

.bdp__note-email {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
}
.bdp__note-email--sent { color: #16a34a; }
.bdp__note-email--unsent { color: var(--t3); }

.bdp__note-actions {
  display: flex;
  gap: 6px;
  margin-top: 10px;
}

.bdp__note-btn {
  padding: 5px 12px;
  border-radius: 7px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  border: 1px solid var(--border);
  background: var(--surface);
  color: var(--t2);
  font-family: 'DM Sans', sans-serif;
  transition: all 0.15s;
}
.bdp__note-btn:hover { background: var(--border); }

.bdp__note-btn--danger {
  background: #fee2e2;
  color: #991b1b;
  border-color: #fecaca;
}
.bdp__note-btn--danger:hover { background: #fecaca; }

/* ── Composer ── */
.bdp__composer {
  border: 1px dashed var(--border-strong);
  border-radius: 14px;
  padding: 18px 20px;
  margin-top: 14px;
  background: var(--brand-50);
}

.bdp__composer-label {
  font-family: 'Sora', sans-serif;
  font-size: 12px;
  font-weight: 700;
  color: var(--t2);
  margin-bottom: 12px;
  text-transform: uppercase;
  letter-spacing: 0.8px;
}

.bdp__composer-save {
  margin-top: 12px;
  padding: 9px 22px;
  background: var(--t1);
  color: #ffffff;
  border: none;
  border-radius: 9px;
  font-family: 'DM Sans', sans-serif;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: background 0.15s;
}
.bdp__composer-save:hover { background: #292524; }

/* ── Loading ── */
.bdp__loading {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 300px;
  font-family: 'DM Sans', sans-serif;
  font-size: 14px;
  color: var(--t3);
}

/* ── Responsive ── */
@media (max-width: 700px) {
  .bdp__wrap { padding: 16px 14px 60px; }
  .bdp__hero { padding: 20px 18px; }
  .bdp__hero-divider { margin: 0 -18px 18px; }
  .bdp__service-name { font-size: 20px; }
  .bdp__hero-top { flex-direction: column-reverse; align-items: flex-start; }
  .bdp__grid { grid-template-columns: 1fr; }
  .bdp__card--full { grid-column: span 1; }
  .bdp__pay-grid { grid-template-columns: 1fr; gap: 12px; }
  .bdp__btn { font-size: 12px; padding: 7px 12px; }
}

/* ── Ant Design overrides inside bdp ── */
.bdp .ant-tag { border-radius: 6px; font-size: 12px; font-weight: 600; }
.bdp .ant-select { font-family: 'DM Sans', sans-serif; }
.bdp .ant-btn { font-family: 'DM Sans', sans-serif; border-radius: 9px; }

/* Mobile-first design - Base styles pour mobile */
.session-detail-container {
  width: 100%;
  min-height: 100vh;
  padding: 16px;
  background: linear-gradient(to bottom, #fafafa 0%, #ffffff 100%);
}

.session-detail-loading,
.session-detail-error {
  text-align: center;
  padding: 60px 20px;
  font-size: 16px;
  color: #666;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 50vh;
}

.session-detail-loading::before {
  content: "⏳";
  font-size: 48px;
  margin-bottom: 16px;
  animation: pulse 2s ease-in-out infinite;
}

.session-detail-error {
  color: #f44336;
}

.session-detail-error::before {
  content: "⚠️";
  font-size: 48px;
  margin-bottom: 16px;
}

@keyframes pulse {

  0%,
  100% {
    opacity: 1;
    transform: scale(1);
  }

  50% {
    opacity: 0.6;
    transform: scale(1.05);
  }
}

.back-arrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  color: #8B7355;
  font-weight: 500;
  font-size: 15px;
  margin-bottom: 20px;
  padding: 8px 12px;
  border-radius: 8px;
  transition: all 0.2s ease;
  background: transparent;
}

.back-arrow:hover {
  color: #A5765C;
  background-color: rgba(139, 115, 85, 0.08);
  transform: translateX(-2px);
}

.session-detail-title {
  color: #2C2C2C;
  margin: 0 0 24px 0;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: -0.3px;
  line-height: 1.3;
}

.session-info {
  background: #ffffff;
  padding: 20px;
  border-radius: 12px;
  margin-bottom: 24px;
  border: 1px solid #E8E8E8;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.2s ease;
}

.session-info:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.session-info p {
  margin: 0 0 16px 0;
  font-size: 15px;
  line-height: 1.6;
  color: #4A4A4A;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.session-info p:last-child {
  margin-bottom: 0;
}

.session-info strong {
  color: #2C2C2C;
  font-weight: 600;
  min-width: 100px;
}

.session-actions-section {
  margin-bottom: 24px;
}

.session-actions-section h3 {
  color: #2C2C2C;
  margin: 0 0 16px 0;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.2px;
}

.session-participants-section {
  margin-bottom: 24px;
}

.session-participants-section h3 {
  color: #2C2C2C;
  margin: 0 0 16px 0;
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.2px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.session-participants-section .MuiList-root {
  background: transparent;
  border: none;
  border-radius: 0;
  padding: 0;
}

.session-participants-section .MuiListItem-root {
  padding: 0;
  margin-bottom: 12px;
  background: transparent;
}

.session-participants-section .MuiListItemText-primary {
  margin-bottom: 8px;
}

.session-participants-section .MuiChip-root {
  font-size: 11px;
  height: 22px;
  font-weight: 500;
}

.session-participants-section .MuiButton-root {
  font-size: 13px;
  padding: 6px 12px;
  min-width: auto;
  border-radius: 8px;
  font-weight: 500;
  text-transform: none;
  transition: all 0.2s ease;
}

.session-participants-section .MuiButton-root:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* Card styles pour les participants */
.participant-card {
  background: #ffffff;
  border: 1px solid #E8E8E8;
  border-radius: 12px;
  padding: 16px;
  margin-bottom: 0;
  transition: all 0.2s ease;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
  height: 100%;
  display: flex;
  flex-direction: column;
}

.participant-card:hover {
  border-color: #D0D0D0;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}

/* Responsive design - Desktop */
@media (min-width: 768px) {
  .session-detail-container {
    max-width: 900px;
    margin: 0 auto;
    padding: 32px;
    background: #ffffff;
    border-radius: 16px;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.08);
    margin-top: 24px;
    margin-bottom: 24px;
  }

  .session-detail-title {
    font-size: 28px;
    margin-bottom: 32px;
    padding-bottom: 16px;
    border-bottom: 2px solid #F0F0F0;
  }

  .session-info {
    padding: 24px;
    margin-bottom: 32px;
  }

  .session-info p {
    font-size: 16px;
    margin-bottom: 18px;
  }

  .session-actions-section {
    margin-bottom: 32px;
  }

  .session-actions-section h3 {
    font-size: 20px;
    margin-bottom: 20px;
  }

  .session-participants-section {
    margin-bottom: 32px;
  }

  .session-participants-section h3 {
    font-size: 20px;
    margin-bottom: 20px;
  }

  .back-arrow {
    font-size: 16px;
    margin-bottom: 24px;
  }

  .participant-card {
    padding: 20px;
    margin-bottom: 16px;
  }
}

/* Override pour l'autocomplétion Google Maps par dessus les modales MUI */
.pac-container {
  z-index: 10000 !important;
}
/* Variables de la charte graphique */
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  /* Lighter gray for background */
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 12px;
  /* Slightly smaller radius for a tighter look */
  --shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  /* Softer shadow */
}

/* Layout global */
.all-notes-page.two-panel-layout {
  display: flex;
  min-height: 85vh;
  /* Restauré à 85vh comme avant */
  background-color: #F6F2EF;
  background-color: var(--light-gray);
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  position: relative;
  /* Pour pouvoir positionner le bouton burger si nécessaire */
  margin: 20px auto;
  max-width: 1100px;
  /* Restauré comme avant */
  border-radius: 12px;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  box-shadow: var(--shadow);
}

/* SIDEBAR */
.notes-sidebar {
  width: 320px;
  background-color: #fff;
  padding: 24px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  max-height: 100vh;
  /* Restauré à 100vh comme avant */
  transition: transform 0.3s ease;
  border-right: 1px solid rgba(246, 198, 116, 0.2);
  /* Restauré la bordure */
}

.notes-sidebar.closed {
  transform: translateX(-100%);
}

.notes-sidebar.open {
  transform: translateX(0);
}

.sidebar-title {
  font-size: 1.6rem;
  /* Larger title */
  font-weight: 700;
  margin: 0 0 24px 0;
  padding-bottom: 16px;
  color: #A5765C;
  color: var(--brown);
  border-bottom: 1px solid #eee;
  /* Lighter border */
  text-align: left;
}

/* Barre de recherche */
.search-bar {
  margin-bottom: 20px;
}

.search-bar input {
  width: 100%;
  padding: 12px 18px;
  padding-left: 45px;
  /* Space for icon */
  border-radius: 25px;
  /* More rounded */
  border: 1px solid #ddd;
  /* Lighter border */
  background-color: #fdfdfd;
  box-shadow: none;
  transition: all 0.3s ease;
  font-size: 0.95rem;
}

.search-bar input:focus {
  outline: none;
  border-color: #F6C674;
  border-color: var(--gold);
  background-color: #fff;
  box-shadow: 0 0 0 2px rgba(246, 198, 116, 0.2);
}

.search-bar input::placeholder {
  color: #aaa;
}

/* Bouton Créer note */
.create-note-btn {
  width: 100%;
  padding: 14px 20px;
  /* Larger padding */
  background-color: #A5765C;
  background-color: var(--brown);
  /* BROWN for primary CTA */
  color: white;
  border: none;
  border-radius: 25px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  margin-bottom: 24px;
  box-shadow: 0 4px 10px rgba(165, 118, 92, 0.3);
  /* Shadow for brown */
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.create-note-btn:hover {
  background-color: #8e604b;
  /* Slightly darker brown on hover */
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(165, 118, 92, 0.35);
  /* Shadow for brown hover*/
}

/* Container pour liste de notes */
.notes-list-container {
  flex: 1 1;
  overflow-y: auto;
  max-height: calc(100vh - 150px);
  /* Restauré comme avant */
  padding-right: 8px;
}

/* Groupes par date */
.date-group {
  margin-bottom: 20px;
}

.date-heading {
  font-size: 0.85rem;
  /* Smaller date heading */
  font-weight: 600;
  margin: 0 0 10px 0;
  padding: 4px 12px;
  color: #A5765C;
  color: var(--brown);
  background-color: rgba(165, 118, 92, 0.08);
  /* Very light brown */
  border-radius: 15px;
  display: inline-block;
}

/* Liste de notes */
.notes-list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.note-list-item {
  padding: 14px 18px;
  /* Increased padding */
  margin-bottom: 10px;
  background-color: #fff;
  border-radius: 10px;
  /* Slightly less rounded than buttons */
  cursor: pointer;
  transition: all 0.2s ease-in-out;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border: 1px solid #eee;
  /* Subtle border */
  position: relative;
}

.note-list-item:hover {
  transform: translateY(-1px);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.05);
  border-color: #EE9F99;
  border-color: var(--peach);
}

.note-list-item.active {
  background-color: #F6C674;
  background-color: var(--gold);
  /* Solid gold background */
  color: #A5765C;
  color: var(--brown);
  /* Brown text for contrast */
  border-color: #F6C674;
  border-color: var(--gold);
  box-shadow: 0 4px 12px rgba(246, 198, 116, 0.4);
}

.note-list-item.active .note-brief {
  color: #A5765C;
  color: var(--brown);
  /* Ensure text color changes */
  font-weight: 600;
}

.note-list-item.active .delete-icon-btn {
  color: rgba(165, 118, 92, 0.7);
  /* Brownish for delete icon on active */
}

.note-list-item.active .delete-icon-btn:hover {
  color: #A5765C;
  color: var(--brown);
  background-color: rgba(165, 118, 92, 0.1);
}

.note-brief {
  font-weight: 500;
  color: #333333;
  color: var(--text-color);
  flex: 1 1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: flex;
  align-items: center;
  gap: 8px;
}

.note-list-item .fa-paw {
  color: #EE9F99;
  color: var(--peach);
  /* Peach color for paw icon */
  font-size: 0.9em;
}

.note-list-item.active .fa-paw {
  color: #A5765C;
  color: var(--brown);
  /* Brown paw on active gold background */
}

/* Bouton poubelle */
.delete-icon-btn {
  background: none;
  border: none;
  cursor: pointer;
  color: #bbb;
  /* Lighter initial color */
  font-size: 0.95rem;
  padding: 8px;
  border-radius: 50%;
  transition: all 0.2s;
  margin-left: 10px;
}

.note-list-item:hover .delete-icon-btn {
  color: #EE9F99;
  color: var(--peach);
  /* Peach on hover */
}

.delete-icon-btn:hover {
  background-color: rgba(238, 159, 153, 0.1);
  /* Light peach background */
  transform: scale(1.05);
}

/* PANNEAU PRINCIPAL (détails) */
.note-detail-panel {
  flex: 1 1;
  padding: 30px 30px 120px 30px;
  /* Ajout d'un gros padding en bas pour "sécurité" */
  height: auto;
  max-height: 100vh;
  overflow-y: auto;
  box-sizing: border-box;
  background: linear-gradient(135deg, #fff, #F6F2EF);
  background: linear-gradient(135deg, #fff, var(--light-gray));
  display: flex;
  flex-direction: column;
}

/* Placeholder (pas de note sélectionnée) */
.note-placeholder {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  width: 100%;
  background-color: #fff;
  /* White card background */
  border-radius: 12px;
  border-radius: var(--border-radius);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  box-shadow: var(--shadow);
  color: #aaa;
  text-align: center;
  padding: 30px;
}

.note-placeholder h2 {
  font-size: 1.4rem;
  margin-bottom: 15px;
  color: #A5765C;
  color: var(--brown);
}

.note-placeholder .create-note-btn {
  margin-top: 20px;
  max-width: 300px;
  /* Limit width of button in placeholder */
}

/* Conteneur note ou création */
.note-detail-container,
.create-note-panel {
  flex: 1 1;
  /* Allow it to take available space if panel is flex */
  background-color: white;
  border-radius: 12px;
  border-radius: var(--border-radius);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  box-shadow: var(--shadow);
  padding: 24px 30px;
  /* Adjusted padding */
  display: flex;
  flex-direction: column;
}

/* Entête note */
.note-detail-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
  padding-bottom: 16px;
  border-bottom: 1px solid #eee;
}

.note-detail-header h2 {
  margin: 0;
  font-size: 1.5rem;
  font-weight: 700;
  color: #A5765C;
  color: var(--brown);
}

.delete-note-btn {
  color: #ccc;
  font-size: 1.1rem;
  /* Slightly smaller */
}

.delete-note-btn:hover {
  color: #EE9F99;
  color: var(--peach);
  /* Peach for delete hover */
  background-color: rgba(238, 159, 153, 0.1);
}

/* Info note */
.note-info {
  background-color: #F6F2EF;
  background-color: var(--light-gray);
  padding: 12px 18px;
  border-radius: 8px;
  /* Consistent with other small elements */
  margin: 0 0 20px 0;
  /* Restored original margin */
  color: #333333;
  color: var(--text-color);
  font-size: 0.95rem;
  border-left: 3px solid #F6C674;
  border-left: 3px solid var(--gold);
  /* Accent border */
}

/* Actions de détail - restore to original position at bottom */
.detail-actions {
  display: flex;
  gap: 12px;
  margin-top: 40px;
  /* Plus d'espace au dessus */
  padding-top: 24px;
  padding-bottom: 40px;
  /* Plus d'espace en dessous */
  flex-wrap: wrap;
}

.edit-note-btn,
.email-btn,
.message-btn {
  flex: 1 1;
  /* Distribute space */
  min-width: 150px;
  /* Minimum width before wrapping */
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 18px;
  /* Restore original padding */
  border-radius: 25px;
  font-weight: 600;
  font-size: 0.9rem;
  cursor: pointer;
  transition: all 0.3s ease;
  border: none;
}

.edit-note-btn {
  background-color: #e9ecef;
  /* Consistent with cancel */
  color: #333333;
  color: var(--text-color);
}

.edit-note-btn:hover {
  background-color: #dee2e6;
  transform: translateY(-1px);
}

.email-btn {
  background-color: #EE9F99;
  background-color: var(--peach);
  /* Peach for email */
  color: white;
  box-shadow: 0 4px 10px rgba(238, 159, 153, 0.25);
}

.email-btn:hover {
  background-color: #ea8f86;
  /* Darker peach */
  transform: translateY(-1px);
  box-shadow: 0 5px 12px rgba(238, 159, 153, 0.3);
}

.message-btn {
  background-color: #F6C674;
  background-color: var(--gold);
  /* Gold for message */
  color: #A5765C;
  color: var(--brown);
  box-shadow: 0 4px 10px rgba(246, 198, 116, 0.25);
}

.message-btn:not([disabled]):hover {
  background-color: #f3bc5b;
  /* Darker gold */
  transform: translateY(-1px);
  box-shadow: 0 5px 12px rgba(246, 198, 116, 0.3);
}

/* Style contenu note */
.note-text-display {
  flex: 1 1;
  overflow-y: auto;
  background-color: #fff;
  padding: 15px;
  border-radius: 8px;
  border: 1px solid #f0f0f0;
  margin-bottom: 24px;
  min-height: 200px;
  max-height: 420px;
  /* Restauré max-height comme avant */
}

/* État email */
.email-status {
  display: flex;
  align-items: center;
  padding: 10px 15px;
  border-radius: 8px;
  margin-bottom: 20px;
  /* Restored original margin */
  font-size: 0.9rem;
  font-weight: 500;
}

.email-status.sent {
  background-color: rgba(82, 196, 26, 0.08);
  color: #4caf50;
  /* Brighter green */
  border-left: 3px solid #4caf50;
}

.email-status.not-sent {
  background-color: rgba(255, 77, 79, 0.08);
  color: #f44336;
  /* Brighter red */
  border-left: 3px solid #f44336;
}

/* Édition (boutons) */
.edit-actions {
  display: flex;
  gap: 12px;
  margin-top: auto;
  /* Push to bottom if editor is short */
  padding-top: 20px;
  /* Space above buttons */
}

.save-edit-btn,
.cancel-edit-btn {
  flex: 1 1;
  /* Make buttons take equal width */
  padding: 12px 20px;
  border-radius: 25px;
  border: none;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 0.95rem;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.save-edit-btn {
  background-color: #A5765C;
  background-color: var(--brown);
  /* Primary save button */
  color: white;
  box-shadow: 0 4px 10px rgba(165, 118, 92, 0.25);
}

.save-edit-btn:hover {
  background-color: #8e604b;
  /* Darker brown */
  transform: translateY(-1px);
  box-shadow: 0 5px 12px rgba(165, 118, 92, 0.3);
}

.cancel-edit-btn {
  background-color: #e9ecef;
  /* Light gray for cancel */
  color: #333333;
  color: var(--text-color);
}

.cancel-edit-btn:hover {
  background-color: #dee2e6;
}

/* Formulaire de création */
.create-note-panel h2 {
  margin-bottom: 24px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #A5765C;
  color: var(--brown);
  padding-bottom: 16px;
  border-bottom: 1px solid #eee;
}

.new-note-section {
  display: flex;
  flex-direction: column;
  gap: 18px;
  /* Increased gap */
  flex: 1 1;
  /* Allow section to grow */
}

.new-note-section label {
  font-weight: 600;
  color: #333333;
  color: var(--text-color);
  margin-bottom: -10px;
  /* Pull label closer to input */
  font-size: 0.9rem;
}

.booking-select {
  width: 100%;
  padding: 12px 18px;
  border-radius: 8px;
  border: 1px solid rgba(165, 118, 92, 0.2);
  /* Couleur restaurée */
  background-color: #fff;
  transition: all 0.3s ease;
  font-size: 0.95rem;
  color: #333333;
  color: var(--text-color);
  -webkit-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23A5765C%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  background-size: 12px 12px;
  padding-right: 40px;
}

.booking-select:focus {
  outline: none;
  border-color: #F6C674;
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(246, 198, 116, 0.2);
}

/* Gardons uniquement le style de base pour les options du select */
.booking-select option {
  padding: 8px 12px;
  font-size: 0.95rem;
}

/* Bouton burger pour mobile */
.burger-button {
  display: none;
  /* Caché par défaut (montré sur mobile seulement) */
  position: fixed;
  top: 120px;
  left: 0px;
  z-index: 1000;
  background-color: #EE9F99;
  background-color: var(--peach);
  color: white;
  border: none;
  width: 50px;
  /* Légèrement plus grand pour une meilleure accessibilité */
  height: 50px;
  border-radius: 50%;
  cursor: pointer;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.2);
  align-items: center;
  justify-content: center;
  font-size: 1.2rem;
  transition: all 0.3s ease;
}

.burger-button:hover,
.burger-button:active {
  background-color: #8e604b;
  /* Couleur foncée */
  transform: scale(1.05);
}

/* Overlay pour mobile - ferme le menu au clic ailleurs */
.mobile-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.4);
  z-index: 900;
  opacity: 0;
  transition: opacity 0.3s ease;
}

.mobile-overlay.visible {
  opacity: 1;
}

/* Ajustements pour mobile */
@media (max-width: 768px) {
  .all-notes-page.two-panel-layout {
    flex-direction: column;
    margin: 10px;
    padding: 0;
    gap: 0;
    /* Réduire l'espace entre les éléments */
    min-height: auto;
    /* Supprime la hauteur minimum fixe sur mobile */
  }

  /* Afficher le bouton burger sur mobile */
  .burger-button {
    display: flex;
  }

  /* Overlay visible quand menu est ouvert */
  .mobile-overlay.visible {
    display: block;
  }

  /* Transformer la sidebar en menu latéral slide-in sur mobile */
  .notes-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    height: 100%;
    width: 85%;
    /* Largeur du menu mobile */
    max-width: 320px;
    z-index: 1000;
    border-radius: 0;
    border-right: none;
    margin-bottom: 0;
    padding: 20px;
    overflow-y: auto;
    box-shadow: 2px 0 15px rgba(0, 0, 0, 0.2);
  }

  .notes-sidebar.closed {
    transform: translateX(-100%);
    /* Menu caché à gauche */
  }

  .notes-sidebar.open {
    transform: translateX(0);
    /* Menu visible */
  }

  /* Laisser plus de place pour le contenu principal */
  .note-detail-panel {
    border-radius: 12px;
    border-radius: var(--border-radius);
    padding: 15px;
    flex: 1 1;
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    /* Supprimer les marges */
  }

  /* Maintenant que le bouton est en bas, on peut enlever la marge en haut du contenu */
  .note-detail-container,
  .create-note-panel,
  .note-placeholder {
    margin-top: 0;
    padding-bottom: 150px;
    /* Sécurité maximale sur mobile pour dépasser le footer */
  }

  /* Réduire la taille du titre sur mobile */
  .sidebar-title {
    font-size: 1.3rem;
    margin-bottom: 15px;
    padding-bottom: 10px;
  }

  /* Réduire l'espacement du bouton créer une note */
  .create-note-btn {
    padding: 10px 16px;
    margin-bottom: 12px;
    font-size: 0.9rem;
  }

  /* Réduire la taille de la date heading */
  .date-heading {
    font-size: 0.75rem;
    padding: 3px 10px;
    margin-bottom: 6px;
  }

  /* Réduire l'espacement des items de note */
  .note-list-item {
    padding: 10px 14px;
    margin-bottom: 6px;
  }

  /* Masquer le bouton de création dans le placeholder sur mobile */
  .note-placeholder .create-note-btn {
    display: none;
  }

  /* Faire mieux ressortir le message du placeholder */
  .note-placeholder h2 {
    font-size: 1.1rem;
    margin-bottom: 0;
    text-align: center;
    padding: 20px 10px;
  }

  /* Ajuster le conteneur de détail de note */
  .note-detail-container,
  .create-note-panel {
    padding: 15px;
    height: auto;
    min-height: 350px;
    /* Augmenter légèrement pour mobile standard */
    overflow-y: auto;
    /* Permettre le scroll si nécessaire */
  }

  /* Réduire la taille du titre */
  .note-detail-header h2,
  .create-note-panel h2 {
    font-size: 1.3rem;
  }

  /* Réduire la hauteur maximum du contenu de la note */
  .note-text-display {
    max-height: 250px;
  }

  /* Empiler les boutons d'action */
  .detail-actions,
  .edit-actions {
    flex-direction: column;
    gap: 8px;
  }

  .edit-note-btn,
  .email-btn,
  .message-btn,
  .save-edit-btn,
  .cancel-edit-btn {
    width: 100%;
    min-width: auto;
    padding: 10px 16px;
  }

  /* Réduire la taille de l'éditeur */
  .quill {
    min-height: 150px;
    margin-bottom: 20px;
  }

  .ql-editor {
    min-height: 120px;
  }

  /* Simplifier l'affichage des infos de note */
  .note-info {
    font-size: 0.85rem;
    padding: 10px 14px;
  }

  /* Réduire la taille du status d'email */
  .email-status {
    font-size: 0.8rem;
    padding: 8px 12px;
  }

  /* Ajustement pour les sélecteurs */
  .booking-select {
    padding: 10px 15px;
    font-size: 0.9rem;
  }

  /* Ajuster le bouton d'enregistrement */
  .save-note-btn {
    padding: 12px 18px;
    font-size: 0.95rem;
    margin-top: 20px;
    margin-bottom: 15px;
    /* S'assurer qu'il y a de l'espace en bas */
  }

  /* Cacher le sélecteur natif sur mobile et montrer notre sélecteur personnalisé */
  .booking-select-container .booking-select {
    display: none;
  }

  .mobile-booking-trigger {
    display: block;
  }

  .mobile-booking-selector-overlay.visible {
    display: block;
  }
}

/* Desktop: masquer le sélecteur mobile */
@media (min-width: 769px) {
  .mobile-booking-trigger {
    display: none;
  }

  .mobile-booking-selector-overlay {
    display: none !important;
  }
}

/* Ajustements spécifiques pour les très petits écrans */
@media (max-width: 375px) {
  .notes-sidebar {
    max-height: 240px;
    /* Encore plus petit sur très petits écrans */
  }

  .note-detail-container,
  .create-note-panel {
    min-height: 400px;
    /* Augmentation pour laisser de la place au bouton */
    height: auto;
    overflow-y: auto;
    /* Permettre le scroll si nécessaire */
  }

  .note-text-display {
    max-height: 200px;
  }

  /* Ajustements pour l'éditeur ReactQuill sur très petits écrans */
  .create-note-panel .ql-container {
    min-height: 120px !important;
    /* Réduire la hauteur minimum de l'éditeur */
  }

  .create-note-panel .ql-editor {
    min-height: 100px !important;
  }

  /* S'assurer que le bouton reste visible */
  .save-note-btn {
    margin-top: 20px;
    /* Remplacer auto par une valeur fixe */
    margin-bottom: 20px;
    /* Ajouter une marge en bas */
    position: relative;
    /* S'assurer qu'il n'est pas caché */
    z-index: 10;
  }
}

/* Section premium pour les notes - kept for non-premium users */
.notes-premium-container {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  /* Reduced gap */
  max-width: 1100px;
  /* Adjusted max-width */
  margin: 20px auto;
  padding: 30px;
  background: #fff;
  /* White background */
  border-radius: 12px;
  border-radius: var(--border-radius);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  box-shadow: var(--shadow);
  align-items: center;
  justify-content: center;
}

.notes-premium-content {
  flex: 1 1;
  min-width: 300px;
  max-width: 550px;
  /* Adjusted width */
}

.notes-premium-title {
  font-size: 1.8rem;
  /* Adjusted size */
  font-weight: 700;
  color: #A5765C;
  color: var(--brown);
  margin-bottom: 20px;
  gap: 12px;
  padding-bottom: 12px;
  border-bottom: 2px solid #F6C674;
  border-bottom: 2px solid var(--gold);
  /* Gold underline */
}

.notes-premium-title::after {
  display: none;
  /* Remove the old gradient ::after */
}

.notes-premium-icon {
  font-size: 1.8rem;
  /* Match title */
  color: #F6C674;
  color: var(--gold);
}

.notes-premium-intro {
  font-size: 1.1rem;
  /* Adjusted size */
  line-height: 1.65;
  margin-bottom: 25px;
  color: #555;
}

.notes-premium-features .ant-list-item {
  border-bottom: none !important;
  padding: 12px 0;
  /* Adjusted padding */
}

.notes-premium-feature-icon {
  width: 42px;
  /* Adjusted size */
  height: 42px;
  background: #F6F2EF;
  background: var(--light-gray);
  border-radius: 50%;
  color: #FFA351;
  color: var(--orange);
  /* Orange icon color */
  font-size: 1.2rem;
  /* Adjusted size */
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.05);
}

.notes-premium-feature-title {
  font-weight: 600;
  font-size: 1.05rem;
  /* Adjusted size */
  color: #333333;
  color: var(--text-color);
  margin-bottom: 3px;
}

.notes-premium-feature-desc {
  color: #666;
  line-height: 1.5;
  font-size: 0.9rem;
}

.notes-premium-cta {
  margin-top: 30px;
}

.notes-premium-button {
  background-color: #FFA351 !important;
  background-color: var(--orange) !important;
  color: white !important;
  padding: 12px 30px !important;
  font-size: 1.05rem !important;
  border-radius: 25px !important;
  box-shadow: 0 4px 10px rgba(255, 163, 81, 0.3) !important;
}

.notes-premium-button:hover {
  background-color: #ff9a40 !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 15px rgba(255, 163, 81, 0.35) !important;
}

.notes-premium-price {
  margin-top: 12px;
  font-size: 0.9rem;
  color: #777;
}

.notes-premium-video {
  flex: 1 1;
  min-width: 300px;
  max-width: 450px;
  /* Adjusted width */
}

.notes-video-container {
  border-radius: 12px;
  /* Consistent radius */
  border: 2px solid #fff;
  /* White border for pop */
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  transform: rotate(1deg);
  /* Slight tilt */
}

.notes-video-container:hover {
  transform: rotate(0deg) scale(1.01);
}

.cinema-overlay {
  background-color: rgba(0, 0, 0, 0.9);
  /* Darker overlay */
}

.cinema-video-container {
  border-radius: 12px;
  box-shadow: 0 0 50px 10px rgba(246, 198, 116, 0.3);
  /* Gold glow */
}

.cinema-exit-button {
  background: #F6C674;
  background: var(--gold);
  color: #A5765C;
  color: var(--brown);
  padding: 14px 28px;
  font-size: 1rem;
  border-radius: 25px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.cinema-exit-button:hover {
  background-color: #f3bc5b;
  transform: translateX(-50%) translateY(-2px);
}

/* Éditeur ReactQuill */
.quill {
  display: flex;
  flex-direction: column;
  height: auto;
  min-height: 250px;
  /* Restauré min-height */
  margin-bottom: 60px;
  /* Restauré margin-bottom */
  border-radius: 8px;
  border: 1px solid #ddd;
  overflow: hidden;
}

.ql-container {
  flex: 1 1;
  height: auto !important;
  min-height: 200px;
  max-height: none !important;
}

.ql-editor {
  min-height: 200px;
  height: auto !important;
  max-height: none !important;
  padding: 15px;
  font-size: 1rem;
  line-height: 1.6;
  color: #333333;
  color: var(--text-color);
}

/* Maintain horizontal constraints */
.quill,
.ql-container,
.ql-editor {
  width: 100% !important;
  max-width: 100% !important;
  overflow-x: hidden !important;
  box-sizing: border-box !important;
}

/* Force word breaking for long words */
.ql-editor {
  word-break: break-word !important;
  word-wrap: break-word !important;
  overflow-wrap: break-word !important;
  -webkit-hyphens: auto !important;
          hyphens: auto !important;
}

/* Bouton d'enregistrement */
.save-note-btn {
  width: 100%;
  padding: 14px 20px;
  background-color: #A5765C;
  background-color: var(--brown);
  color: white;
  border: none;
  border-radius: 25px;
  font-size: 1rem;
  font-weight: 600;
  cursor: pointer;
  margin-top: 40px;
  margin-bottom: 40px;
  /* Marge de sécurité importante */
  box-shadow: 0 4px 10px rgba(165, 118, 92, 0.3);
  transition: all 0.3s ease;
  flex-shrink: 0;
}

.save-note-btn:hover {
  background-color: #8e604b;
  /* Darker brown */
  transform: translateY(-2px);
  box-shadow: 0 6px 15px rgba(165, 118, 92, 0.35);
}

/* Styles pour le menu latéral de sélection de réservations sur mobile */
.mobile-booking-selector-overlay {
  display: none;
  /* Par défaut caché */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  z-index: 1100;
  /* Augmenté pour être au-dessus du burger et overlay */
  animation: fadeIn 0.3s ease-in-out;
}

.mobile-booking-selector {
  position: fixed;
  top: 0;
  right: -320px;
  /* Commence hors écran */
  width: 320px;
  max-width: 90%;
  height: 100%;
  background-color: white;
  box-shadow: -3px 0 15px rgba(0, 0, 0, 0.1);
  z-index: 1101;
  /* Augmenté pour être au-dessus de l'overlay */
  transition: right 0.3s ease;
  display: flex;
  flex-direction: column;
}

.mobile-booking-selector.open {
  right: 0;
}

.mobile-booking-selector-header {
  padding: 15px;
  background-color: #A5765C;
  background-color: var(--brown);
  color: white;
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}

.mobile-booking-selector-header h3 {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 600;
}

.mobile-booking-selector-close {
  background: none;
  border: none;
  color: white;
  font-size: 1.5rem;
  cursor: pointer;
  padding: 0;
  line-height: 1;
}

.mobile-booking-selector-search {
  padding: 10px 15px;
  background-color: #f5f5f5;
  border-bottom: 1px solid #eee;
}

.mobile-booking-selector-search input {
  width: 100%;
  padding: 8px 12px;
  border-radius: 20px;
  border: 1px solid #ddd;
  font-size: 0.9rem;
}

.mobile-booking-selector-list {
  flex: 1 1;
  overflow-y: auto;
  padding: 10px 0;
  background-color: #fff;
}

.mobile-booking-option {
  padding: 12px 15px;
  border-bottom: 1px solid #f0f0f0;
  cursor: pointer;
  transition: background-color 0.2s;
}

.mobile-booking-option:hover,
.mobile-booking-option:active {
  background-color: #F6F2EF;
  background-color: var(--light-gray);
}

.mobile-booking-option-label {
  font-weight: 600;
  font-size: 0.95rem;
  margin-bottom: 3px;
  color: #333333;
  color: var(--text-color);
}

.mobile-booking-option-date {
  font-size: 0.8rem;
  color: #666;
}

.mobile-booking-option-service {
  font-size: 0.8rem;
  color: #A5765C;
  color: var(--brown);
  margin-top: 2px;
}

.mobile-booking-placeholder {
  padding: 15px;
  text-align: center;
  color: #999;
  font-style: italic;
  font-size: 0.9rem;
}

.mobile-booking-trigger {
  background-color: #fff;
  border: 1px solid rgba(165, 118, 92, 0.2);
  border-radius: 8px;
  padding: 12px 15px;
  width: 100%;
  text-align: left;
  position: relative;
  font-size: 0.95rem;
  color: #333333;
  color: var(--text-color);
  transition: all 0.3s ease;
  cursor: pointer;
}

.mobile-booking-trigger::after {
  content: "";
  position: absolute;
  right: 15px;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 6px solid #A5765C;
  border-top: 6px solid var(--brown);
}

.mobile-booking-trigger-placeholder {
  color: #aaa;
}

.mobile-booking-trigger-value {
  margin-right: 30px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Animation pour l'overlay */
@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}
/* =============================
   BILLING PAGE
============================= */

.billing-page {
  padding: 40px 24px;
  min-height: 100vh;
  max-width: 1100px;
  margin: 0 auto;
  font-family: 'Poppins', sans-serif;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.08));
  box-shadow: inset 0 0 100px rgba(246, 198, 116, 0.1);
  display: flex;
  flex-direction: column;
  position: relative;
  /* overflow: hidden; */
}

/* Éléments décoratifs en arrière-plan */
.billing-page::before {
  content: "";
  position: absolute;
  top: -100px;
  right: -100px;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(238, 159, 153, 0.1) 0%, rgba(238, 159, 153, 0) 70%);
  z-index: 0;
  pointer-events: none;
}

.billing-page::after {
  content: "";
  position: absolute;
  bottom: -100px;
  left: -100px;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(246, 198, 116, 0.1) 0%, rgba(246, 198, 116, 0) 70%);
  z-index: 0;
  pointer-events: none;
}

.billing-header {
  margin-bottom: 30px;
  text-align: center;
  position: relative;
  z-index: 1;
}

.billing-title {
  font-size: 2.2rem;
  font-weight: 700;
  color: var(--black);
  position: relative;
  padding-bottom: 12px;
  margin-bottom: 16px;
  display: inline-block;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.billing-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  width: 80px;
  height: 3px;
  margin: 0 auto;
  background: linear-gradient(to right, #F6C674, #EE9F99, #FFA351);
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(246, 198, 116, 0.3);
}

.billing-filters {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  margin-bottom: 30px;
  padding: 24px;
  background: linear-gradient(to bottom right, #fff, #fafafa);
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
  border: 1px solid rgba(165, 118, 92, 0.08);
  position: relative;
  z-index: 1;
  transition: all 0.3s ease;
}

.billing-filters:hover {
  box-shadow: 0 10px 24px rgba(165, 118, 92, 0.12);
  transform: translateY(-3px);
}

.billing-search {
  width: 100%;
  max-width: 400px;
  border-radius: 25px !important;
  transition: all 0.3s ease;
  border: 1px solid rgba(165, 118, 92, 0.2) !important;
}

.billing-search:hover,
.billing-search:focus {
  border-color: #A5765C !important;
  box-shadow: 0 0 0 3px rgba(165, 118, 92, 0.15) !important;
}

.billing-datepicker {
  width: 100%;
  max-width: 400px;
  border-radius: 25px !important;
  border: 1px solid rgba(165, 118, 92, 0.2) !important;
}

.billing-datepicker .ant-picker-input input {
  font-weight: 500;
}

.billing-datepicker:hover,
.billing-datepicker:focus,
.billing-datepicker-focused {
  border-color: #A5765C !important;
  box-shadow: 0 0 0 3px rgba(165, 118, 92, 0.15) !important;
}

.billing-loading {
  text-align: center;
  padding: 50px;
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
}

.billing-empty {
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 1.1rem;
  color: #666;
  background: rgba(255, 255, 255, 0.8);
  padding: 40px;
  border-radius: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.billing-upgrade {
  padding: 40px;
  text-align: center;
  max-width: 600px;
  margin: 0 auto;
  background: linear-gradient(135deg, #fff, #f9f5f1);
  border-radius: 16px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.06);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(165, 118, 92, 0.1);
}

.billing-upgrade::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 150px;
  height: 150px;
  background: radial-gradient(circle, rgba(246, 198, 116, 0.15) 0%, rgba(246, 198, 116, 0) 70%);
  border-radius: 50%;
}

.billing-upgrade-title {
  font-size: 1.8rem;
  font-weight: 700;
  color: var(--black);
  margin-bottom: 24px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.billing-upgrade-text {
  font-size: 1.1rem;
  margin-bottom: 30px;
  color: #555;
}

.billing-upgrade-button {
  background: linear-gradient(45deg, #A5765C, #b5866b) !important;
  border: none !important;
  color: white !important;
  height: auto !important;
  padding: 10px 30px !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  border-radius: 30px !important;
  box-shadow: 0 4px 15px rgba(165, 118, 92, 0.25) !important;
  transition: all 0.3s ease !important;
}

.billing-upgrade-button:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.3) !important;
}

/* Card styles */
.billing-card {
  height: 100%;
  display: flex;
  flex-direction: column;
  border-radius: 16px !important;
  overflow: hidden;
  transition: all 0.3s ease;
  border: 1px solid rgba(165, 118, 92, 0.08) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04) !important;
  position: relative;
  z-index: 1;
  background: linear-gradient(135deg, #fff, #fefefe) !important;
}

.billing-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 24px rgba(165, 118, 92, 0.15) !important;
  border: 1px solid rgba(165, 118, 92, 0.15) !important;
}

.billing-card .ant-card-head {
  border-bottom: 1px solid rgba(165, 118, 92, 0.08) !important;
  background: linear-gradient(to right, rgba(246, 198, 116, 0.08), rgba(238, 159, 153, 0.05)) !important;
  padding: 12px 16px !important;
}

.billing-card .ant-card-head-title {
  font-weight: 700 !important;
  color: #A5765C !important;
}

.billing-card .ant-card-body {
  padding: 18px !important;
  flex: 1 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.billing-card-info {
  margin-bottom: 16px;
}

.billing-card-info div {
  margin-bottom: 10px;
  display: flex;
  flex-wrap: wrap;
  position: relative;
  padding-left: 5px;
}

.billing-card-info div:hover {
  background-color: rgba(246, 198, 116, 0.05);
  border-radius: 4px;
}

.billing-card-info strong {
  color: #555;
  margin-right: 6px;
  font-weight: 600;
}

.billing-card-actions {
  margin-top: 20px;
}

/* Badge styles */
.billing-badge-unpaid {
  transition: all 0.3s ease;
}

.billing-badge-unpaid:hover {
  transform: scale(1.05);
}

.billing-badge-unpaid .ant-badge-status-dot {
  background: linear-gradient(45deg, #E07A7A, #e66767) !important;
  box-shadow: 0 0 8px rgba(224, 122, 122, 0.4);
}

.billing-badge-paid {
  transition: all 0.3s ease;
}

.billing-badge-paid:hover {
  transform: scale(1.05);
}

.billing-badge-paid .ant-badge-status-dot {
  background: linear-gradient(45deg, #7FB069, #6fa159) !important;
  box-shadow: 0 0 8px rgba(127, 176, 105, 0.4);
}

.billing-badge-partial {
  transition: all 0.3s ease;
}

.billing-badge-partial:hover {
  transform: scale(1.05);
}

.billing-badge-partial .ant-badge-status-dot {
  background: linear-gradient(45deg, #F6C674, #fdbe54) !important;
  box-shadow: 0 0 8px rgba(246, 198, 116, 0.4);
}

.billing-badge-refunded {
  transition: all 0.3s ease;
}

.billing-badge-refunded:hover {
  transform: scale(1.05);
}

.billing-badge-refunded .ant-badge-status-dot {
  background: linear-gradient(45deg, #77A6B6, #6798a8) !important;
  box-shadow: 0 0 8px rgba(119, 166, 182, 0.4);
}

.payment-badge-grouped {
  background: linear-gradient(135deg, #f9f0ff 0%, #f3e8ff 100%);
  color: #722ed1;
  border: 1px solid #d3adf7;
  padding: 4px 10px;
  border-radius: 6px;
  font-size: 11px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  box-shadow: 0 2px 4px rgba(114, 46, 209, 0.05);
}

.payment-badge-grouped svg {
  font-size: 14px;
}

/* =============================
   BOUTONS D'ACTION vs FILTRES D'AFFICHAGE
   Les styles sont maintenant gérés par buttonStyles.css (styles globaux)
============================= */

/* Filtres d'affichage - Style discret */
.billing-display-filter-group {
  border-radius: 8px !important;
  overflow: hidden;
  background: #f5f5f5 !important;
  padding: 2px !important;
}

.billing-display-filter-group .ant-radio-button-wrapper {
  border: none !important;
  border-radius: 6px !important;
  background: transparent !important;
  color: #666 !important;
  font-weight: 500 !important;
  padding: 4px 12px !important;
  transition: all 0.2s ease !important;
  margin: 0 !important;
}

.billing-display-filter-group .ant-radio-button-wrapper:hover {
  background: rgba(165, 118, 92, 0.08) !important;
  color: #A5765C !important;
}

.billing-display-filter-group .ant-radio-button-wrapper-checked {
  background: white !important;
  color: #A5765C !important;
  font-weight: 600 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08) !important;
}

.billing-display-filter-group .ant-radio-button-wrapper-checked:hover {
  background: white !important;
  color: #A5765C !important;
}

.billing-display-filter-button {
  border-radius: 8px !important;
  font-weight: 500 !important;
  height: auto !important;
  padding: 4px 12px !important;
  transition: all 0.2s ease !important;
  border: 1px solid #d9d9d9 !important;
  background: transparent !important;
  color: #666 !important;
}

.billing-display-filter-button:hover {
  border-color: #A5765C !important;
  color: #A5765C !important;
  background: rgba(165, 118, 92, 0.05) !important;
  transform: translateY(-1px) !important;
}

.billing-display-filter-button:active {
  transform: translateY(0) !important;
}

/* Button styles (pour les boutons dans les cartes) */
.billing-button {
  border-radius: 25px !important;
  font-weight: 600 !important;
  height: auto !important;
  padding: 8px 16px !important;
  transition: all 0.3s ease !important;
  margin-top: 8px !important;
  position: relative;
  overflow: hidden;
}

.billing-button::before {
  content: "";
  position: absolute;
  top: -50%;
  left: -50%;
  width: 200%;
  height: 200%;
  background: radial-gradient(circle, rgba(255, 255, 255, 0.2) 0%, rgba(255, 255, 255, 0) 80%);
  transition: transform 0.5s ease;
  transform: translate(-100%, -100%);
  opacity: 0;
  pointer-events: none;
}

.billing-button:hover::before {
  transform: translate(0, 0);
  opacity: 1;
}

.billing-button-primary {
  background: linear-gradient(to right, #A5765C, #b5866b) !important;
  border: none !important;
  color: white !important;
}

.billing-button-primary:hover {
  background: linear-gradient(to right, #b5866b, #c07b58) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 15px rgba(165, 118, 92, 0.25) !important;
}

.billing-button-default {
  border-color: rgba(165, 118, 92, 0.2) !important;
  color: #666 !important;
}

.billing-button-default:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1) !important;
  border-color: #A5765C !important;
  color: #A5765C !important;
}

.billing-button-dashed {
  border-color: rgba(165, 118, 92, 0.15) !important;
}

.billing-button-dashed:hover {
  transform: translateY(-2px) !important;
  border-color: #EE9F99 !important;
  color: #EE9F99 !important;
  background-color: rgba(238, 159, 153, 0.05) !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .billing-page {
    padding: 20px 16px;
  }

  .billing-title {
    font-size: 1.8rem;
  }

  .billing-filters {
    padding: 16px;
  }

  .billing-card {
    margin-bottom: 16px;
  }
}

/* =============================
   DATE PICKER CUSTOMIZATION
============================= */

.billing-datepicker .ant-picker-focused,
.billing-datepicker:hover {
  border-color: #A5765C !important;
}

.ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner,
.ant-picker-cell-in-view.ant-picker-cell-range-start .ant-picker-cell-inner,
.ant-picker-cell-in-view.ant-picker-cell-range-end .ant-picker-cell-inner {
  background: linear-gradient(135deg, #A5765C, #b5866b) !important;
  box-shadow: 0 2px 6px rgba(165, 118, 92, 0.25);
}

.ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner::before {
  border-color: #EE9F99 !important;
}

.ant-picker-ranges .ant-picker-preset>.ant-tag-blue {
  color: #A5765C !important;
  background: rgba(165, 118, 92, 0.1) !important;
  border-color: rgba(165, 118, 92, 0.2) !important;
}

.ant-picker-today-btn {
  color: #EE9F99 !important;
}

.ant-picker-focused {
  border-color: #A5765C !important;
  box-shadow: 0 0 0 2px rgba(165, 118, 92, 0.15) !important;
}

/* =============================
   MUI DATE PICKER OVERRIDES
============================= */
.MuiPickersPopper-root {
  z-index: 9999 !important;
}

.MuiPickersDay-root.Mui-selected {
  background: linear-gradient(135deg, #A5765C, #b5866b) !important;
}

.MuiPickersDay-root.Mui-selected:hover {
  background: linear-gradient(135deg, #8e6550, #a07560) !important;
}

.MuiPickersDay-root:hover {
  background-color: rgba(165, 118, 92, 0.1) !important;
}

.MuiPickersDay-today {
  border-color: #A5765C !important;
}

.MuiPickersYear-yearButton.Mui-selected,
.MuiPickersMonth-monthButton.Mui-selected {
  background: linear-gradient(135deg, #A5765C, #b5866b) !important;
}

/* =============================
   SPINNER CUSTOMIZATION
============================= */

.ant-spin-dot {
  animation: billing-spin-pulse 2s infinite !important;
}

@keyframes billing-spin-pulse {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(165, 118, 92, 0.4);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 10px rgba(165, 118, 92, 0);
  }

  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(165, 118, 92, 0);
  }
}

.ant-spin-dot-item {
  background-color: #A5765C !important;
}

.ant-spin-dot-item:nth-child(1) {
  background-color: #A5765C !important;
  animation-delay: 0s !important;
}

.ant-spin-dot-item:nth-child(2) {
  background-color: #F6C674 !important;
  animation-delay: 0.2s !important;
}

.ant-spin-dot-item:nth-child(3) {
  background-color: #EE9F99 !important;
  animation-delay: 0.4s !important;
}

.ant-spin-dot-item:nth-child(4) {
  background-color: #FFA351 !important;
  animation-delay: 0.6s !important;
}

/* =============================
   STICKY PAGINATION
============================= */
.billing-sticky-pagination {
  position: fixed;
  bottom: 0;
  right: 0;
  left: 250px;
  left: var(--sidebar-width, 250px);
  /* S'aligne avec la sidebar */
  z-index: 10000 !important;
  background: #fff;
  padding: 16px 0;
  border-top: 1px solid #f0f0f0;
  box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.05);
  transition: left 0.3s ease;
  /* Animation fluide si la sidebar change */
}

@media (max-width: 768px) {
  .billing-sticky-pagination {
    left: 0;
    bottom: 50px;
    bottom: var(--mobile-footer-height, 50px);
    /* S'aligne avec le footer mobile */
  }
}

/* =============================
   FIN BILLING PAGE
============================= */

/* Nouvelle section Premium avec vidéo */
.billing-premium-container {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px;
  background: linear-gradient(135deg, #fff, #f9f5f1);
  border-radius: 20px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(165, 118, 92, 0.1);
  animation: fadeIn 0.5s ease-out forwards;
}

.billing-premium-container::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(246, 198, 116, 0.15) 0%, rgba(246, 198, 116, 0) 70%);
  border-radius: 50%;
  z-index: 0;
}

.billing-premium-container::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(238, 159, 153, 0.1) 0%, rgba(238, 159, 153, 0) 70%);
  border-radius: 50%;
  z-index: 0;
}

.billing-premium-content {
  flex: 1 1;
  min-width: 300px;
  position: relative;
  z-index: 1;
}

.billing-premium-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--black);
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  padding-bottom: 12px;
}

.billing-premium-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 80px;
  height: 3px;
  background: linear-gradient(to right, #F6C674, #EE9F99, #FFA351);
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(246, 198, 116, 0.3);
}

.billing-premium-icon {
  font-size: 2rem;
  color: var(--brown);
}

.billing-premium-intro {
  font-size: 1.2rem;
  line-height: 1.6;
  margin-bottom: 30px;
  color: #555;
}

.billing-premium-features {
  margin-bottom: 30px;
}

.billing-premium-features .ant-list-item {
  border-bottom: none !important;
  padding: 12px 0;
  transition: transform 0.3s ease;
}

.billing-premium-features .ant-list-item:hover {
  transform: translateX(5px);
}

.billing-premium-feature-icon {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.2), rgba(238, 159, 153, 0.2));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brown);
  font-size: 1.2rem;
  box-shadow: 0 4px 8px rgba(165, 118, 92, 0.1);
}

.billing-premium-feature-title {
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--black);
}

.billing-premium-feature-desc {
  color: #666;
}

.billing-premium-cta {
  text-align: center;
  margin-top: 30px;
}

.billing-premium-button {
  background: linear-gradient(45deg, #A5765C, #b5866b) !important;
  border: none !important;
  color: white !important;
  height: auto !important;
  padding: 10px 30px !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  border-radius: 30px !important;
  box-shadow: 0 4px 15px rgba(165, 118, 92, 0.25) !important;
  transition: all 0.3s ease !important;
}

.billing-premium-button:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.3) !important;
}

.billing-premium-price {
  margin-top: 15px;
  font-size: 0.95rem;
  color: #666;
  font-weight: 500;
}

.billing-premium-video {
  flex: 1 1;
  min-width: 300px;
  max-width: 500px;
  position: relative;
  z-index: 1;
}

/* Mode vidéo et cinéma */
.billing-video-container {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
  position: relative;
  transform: rotate(2deg);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  border: 4px solid white;
}

.billing-video-container:hover {
  transform: rotate(0) scale(1.02);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: background 0.3s ease;
  z-index: 2;
}

.video-overlay:hover {
  background: rgba(0, 0, 0, 0.2);
}

.overlay-text {
  color: white;
  font-weight: 600;
  margin-top: 15px;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8);
  font-size: 1.1rem;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s ease;
}

.video-overlay:hover .overlay-text {
  opacity: 1;
  transform: translateY(0);
}

.play-button svg {
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4));
  transition: transform 0.3s ease, filter 0.3s ease;
}

.video-overlay:hover .play-button svg {
  transform: scale(1.1);
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.6));
}

/* Style pour l'iframe YouTube standard */
.youtube-iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Overlay cinématique */
.cinema-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  z-index: 9;
  transition: opacity 0.5s ease;
  animation: fadeIn 0.5s ease-out forwards;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

/* Conteneur vidéo en mode cinéma */
.cinema-video-container {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  width: 80vw;
  max-width: 1000px;
  aspect-ratio: 16 / 9;
  z-index: 10;
  border-radius: var(--border-radius);
  overflow: hidden;
  box-shadow: 0 0 60px 20px rgba(246, 198, 116, 0.5),
    0 0 100px 40px rgba(238, 159, 153, 0.3);
  animation: scaleUp 0.5s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

@keyframes scaleUp {
  from {
    transform: translate(-50%, -50%) scale(0.7);
    opacity: 0;
  }

  to {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
}

.cinema-iframe {
  width: 100%;
  height: 100%;
  border: none;
}

/* Bouton pour quitter le mode cinéma */
.cinema-exit-button {
  position: fixed;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background-color: var(--gold);
  color: var(--brown);
  border: none;
  padding: 16px 32px;
  border-radius: 50px;
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  transition: all 0.3s ease;
  z-index: 1000;
  animation: bounce 1s ease infinite;
}

.cinema-exit-button:hover,
.cinema-exit-button:focus {
  background-color: #ffda9e;
  transform: translateX(-50%) scale(1.05);
  box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4);
}

.cinema-exit-button svg {
  flex-shrink: 0;
}

@keyframes bounce {

  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }

  50% {
    transform: translateX(-50%) translateY(-5px);
  }
}

/* Styles pour le mode cinéma sur le body et le header */
body.cinema-mode-active {
  overflow: hidden;
  /* Empêche le défilement quand le mode cinéma est actif */
}

/* Responsive design */
@media (max-width: 992px) {
  .billing-premium-container {
    padding: 30px;
  }

  .cinema-video-container {
    width: 90vw;
  }
}

@media (max-width: 768px) {
  .billing-premium-container {
    padding: 25px;
  }

  .billing-premium-title {
    font-size: 1.8rem;
  }

  .billing-premium-intro {
    font-size: 1.1rem;
  }

  .cinema-video-container {
    width: 95vw;
  }

  .cinema-exit-button {
    padding: 14px 28px;
    font-size: 1.1rem;
    width: 80%;
  }
}

@media (max-width: 480px) {
  .billing-premium-container {
    padding: 20px;
  }

  .billing-premium-title {
    font-size: 1.6rem;
  }

  .billing-premium-intro {
    font-size: 1rem;
  }

  .cinema-video-container {
    width: 100vw;
    height: auto;
    border-radius: 0;
  }

  .cinema-exit-button {
    bottom: 30px;
    padding: 12px 24px;
    font-size: 1rem;
    width: 90%;
  }
}

/* =============================
   TABS RESPONSIVE STYLES
============================= */

/* Style des onglets */
.billing-page .ant-tabs-nav {
  flex-wrap: wrap;
}

.billing-page .ant-tabs-tab {
  padding: 12px 16px !important;
  font-weight: 500;
}

/* Headers des onglets responsive */
.billing-tab-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px;
  margin-bottom: 16px;
}

.billing-tab-header .ant-typography {
  margin: 0 !important;
}

/* Tables responsives */
.billing-responsive-table {
  overflow-x: auto;
}

.billing-responsive-table .ant-table {
  min-width: 600px;
}

/* Style des badges et tags dans les tables */
.billing-page .ant-tag {
  white-space: nowrap;
}

/* Boutons d'actions dans les tables */
.billing-page .ant-table-cell .ant-space {
  flex-wrap: wrap;
  gap: 4px !important;
}

/* Mobile responsive pour les tables et onglets */
@media (max-width: 768px) {

  /* Onglets sur mobile */
  .billing-page .ant-tabs-nav-list {
    flex-wrap: wrap;
  }

  .billing-page .ant-tabs-tab {
    padding: 8px 12px !important;
    font-size: 13px !important;
  }

  .billing-page .ant-tabs-tab .anticon {
    margin-right: 4px !important;
  }

  /* Header des onglets */
  .billing-tab-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .billing-tab-header .ant-btn {
    width: 100%;
  }

  /* Tables: colonnes cachées sur mobile */
  .billing-responsive-table .hide-on-mobile {
    display: none !important;
  }

  /* Cellules de table plus compactes */
  .billing-page .ant-table-cell {
    padding: 8px 8px !important;
    font-size: 13px;
  }

  /* Actions empilées sur mobile */
  .billing-page .ant-table-cell .ant-space-item {
    margin-bottom: 4px;
  }

  .billing-page .ant-table-cell .ant-btn-sm {
    padding: 0 8px;
    font-size: 12px;
  }

  /* Empty state responsive */
  .billing-page .ant-empty {
    padding: 30px 16px;
  }

  /* Pagination responsive */
  .billing-page .ant-pagination {
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
  }

  .billing-page .ant-pagination-total-text {
    display: block;
    width: 100%;
    text-align: center;
    margin-bottom: 8px;
  }
}

@media (max-width: 576px) {

  /* Onglets encore plus compacts - emoji visible, texte caché */
  .billing-page .ant-tabs-tab {
    padding: 8px 12px !important;
    font-size: 14px !important;
  }

  /* Tables très compactes */
  .billing-page .ant-table-cell {
    padding: 6px 6px !important;
    font-size: 12px;
  }

  /* Boutons d'action sous forme d'icônes uniquement */
  .billing-page .ant-table-cell .ant-btn-sm span:not(.anticon) {
    display: none;
  }

  .billing-page .ant-table-cell .ant-btn-sm {
    padding: 4px 8px !important;
    min-width: 32px;
  }

  /* Header de tab */
  .billing-tab-header .ant-typography {
    font-size: 16px !important;
  }
}

/* =============================
   MODAL RESPONSIVE
============================= */

.billing-modal-responsive .ant-modal {
  max-width: calc(100vw - 32px);
}

.billing-modal-responsive .ant-modal-body {
  max-height: 70vh;
  overflow-y: auto;
}

@media (max-width: 768px) {
  .billing-modal-responsive .ant-modal {
    width: calc(100vw - 32px) !important;
    max-width: none;
    margin: 16px auto;
  }

  .billing-modal-responsive .ant-row {
    flex-direction: column;
  }

  .billing-modal-responsive .ant-col {
    max-width: 100% !important;
    flex: 0 0 100% !important;
  }

  .billing-modal-responsive .ant-form-item {
    margin-bottom: 12px;
  }

  .billing-modal-responsive .ant-modal-footer {
    flex-direction: column-reverse;
    gap: 8px;
  }

  .billing-modal-responsive .ant-modal-footer .ant-btn {
    width: 100%;
    margin: 0 !important;
  }
}

/* =============================
   MOBILE & RESPONSIVE IMPROVEMENTS
============================= */

/* Header Layout */
.billing-header-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  gap: 16px;
  margin-bottom: 24px;
}

.billing-header-actions {
  display: flex;
  align-items: center;
  gap: 12px;
}

.billing-header-stats {
  color: #888;
  white-space: nowrap;
  font-size: 12px;
  display: flex;
  gap: 8px;
  align-items: center;
}

/* Search and Date Filters Layout */
.billing-filters-container {
  display: flex;
  gap: 12px;
  align-items: flex-end;
  flex-wrap: wrap;
  width: 100%;
}

.billing-search-wrapper {
  flex: 1 1;
  min-width: 300px;
}

.billing-date-wrapper {
  min-width: 150px;
  width: 150px;
}

/* Scrollable Tabs */
.billing-tabs-scroll-container {
  display: flex;
  gap: 24px;
  overflow-x: auto;
  padding-bottom: 8px;
  /* For scrollbar space if needed */
  -webkit-overflow-scrolling: touch;
  /* Smooth scrolling on iOS */
  scrollbar-width: none;
  /* Hide scrollbar Firefox */
}

.billing-tabs-scroll-container::-webkit-scrollbar {
  display: none;
  /* Hide scrollbar Chrome/Safari */
}

.billing-tab-button {
  border: none;
  background: none;
  cursor: pointer;
  padding: 8px 0;
  font-size: 14px;
  font-weight: 400;
  color: #888;
  border-bottom: 2px solid transparent;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  white-space: nowrap;
  /* Prevent wrapping inside tab */
  flex-shrink: 0;
  /* Prevent shrinking */
}

.billing-tab-button.active {
  font-weight: 600;
  color: #000;
  border-bottom: 2px solid #A5765C;
}

.billing-tab-badge {
  margin-left: 6px;
  opacity: 0.7;
  font-size: 12px;
  background-color: #f5f5f5;
  padding: 2px 8px;
  border-radius: 10px;
}

.billing-tab-button.active .billing-tab-badge {
  background-color: #F3EBE6;
}

/* Sub Filters (Sources & Sort) */
.billing-sub-filters {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

/* Mobile Adjustments */
@media (max-width: 768px) {
  .billing-header-container {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .billing-header-actions {
    width: 100%;
    justify-content: space-between;
    flex-wrap: wrap;
  }

  .billing-header-actions .ant-btn {
    flex-grow: 1;
    /* Make buttons grow to fill space */
  }

  .billing-header-actions .ant-radio-group {
    display: none;
    /* Hide view toggle on mobile */
  }

  /* Force "Create Invoice" to be full width and prominent */
  .billing-create-btn {
    width: 100% !important;
    margin-bottom: 8px;
  }

  .billing-filters {
    padding: 16px !important;
  }

  .billing-filters-container {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
  }

  .billing-search-wrapper,
  .billing-date-wrapper {
    width: 100% !important;
    min-width: 0 !important;
    min-width: initial !important;
  }

  .billing-date-wrapper .ant-picker {
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Tabs area adjustments */
  .billing-tabs-section {
    flex-direction: column;
    align-items: stretch !important;
    gap: 16px !important;
  }

  .billing-tabs-scroll-container {
    width: 100%;
    padding-bottom: 12px;
    border-bottom: 1px solid #f0f0f0;
  }

  .billing-sub-filters {
    justify-content: space-between;
    width: 100%;
  }

  .billing-sub-filters>* {
    flex: 1 1;
    /* Distribute space evenly */
  }

  .billing-sub-filters .ant-select {
    width: 100% !important;
    min-width: 0 !important;
    min-width: initial !important;
  }
}

/* =============================
   FIN BILLING PAGE
============================= */
/* Variables de la charte graphique */
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --dark-gray: #555555;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  --transition-slow: all 0.5s ease;
  --transition-medium: all 0.3s ease;
  --transition-fast: all 0.2s ease;
}

/* Importation de la police Lato */

/* Animations */
@keyframes fadeInUp {
  from { opacity: 0; transform: translateY(30px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeInLeft {
  from { opacity: 0; transform: translateX(-50px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes fadeInRight {
  from { opacity: 0; transform: translateX(50px); }
  to { opacity: 1; transform: translateX(0); }
}

@keyframes float {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-10px); }
  100% { transform: translateY(0px); }
}

@keyframes pulse {
  0% { transform: scale(1); }
  50% { transform: scale(1.05); }
  100% { transform: scale(1); }
}

@keyframes shine {
  0% { background-position: -100% center; }
  100% { background-position: 200% center; }
}

@keyframes gradientMove {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

/* Container général */
.subscription-page {
  max-width: 1200px;
  margin: 0 auto;
  padding: 3rem 2rem;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  color: #333333;
  color: var(--text-color);
  background: linear-gradient(135deg, #fff, #F6F2EF);
  background: linear-gradient(135deg, #fff, var(--light-gray));
  min-height: 100vh;
  position: relative;
  overflow: hidden;
  text-align: center;
}

.subscription-page::before {
  content: "";
  position: absolute;
  top: -200px;
  right: -200px;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(246, 198, 116, 0.1) 0%, rgba(246, 198, 116, 0) 70%);
  z-index: 0;
  animation: pulse 15s infinite alternate;
}

.subscription-page::after {
  content: "";
  position: absolute;
  bottom: -200px;
  left: -200px;
  width: 500px;
  height: 500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(238, 159, 153, 0.1) 0%, rgba(238, 159, 153, 0) 70%);
  z-index: 0;
  animation: pulse 15s infinite alternate-reverse;
}

/* Titre et description */
.subscription-title {
  font-size: 3rem;
  font-weight: 800;
  margin-bottom: 1.5rem;
  color: #000000;
  color: var(--black);
  position: relative;
  display: inline-block;
  z-index: 1;
}

.subscription-title::after {
  content: "";
  position: absolute;
  bottom: -10px;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 80px;
  height: 3px;
  background: linear-gradient(to right, #F6C674, #EE9F99);
  background: linear-gradient(to right, var(--gold), var(--peach));
  border-radius: 3px;
  transform: none;
}

.subscription-description {
  font-size: 1.3rem;
  line-height: 1.6;
  color: #555555;
  color: var(--dark-gray);
  margin-bottom: 3rem;
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  font-weight: 300;
  position: relative;
  z-index: 1;
}

/* Encadré premium info (si déjà abonné) */
.premium-info {
  background: linear-gradient(135deg, #f0f9ff, #e6f7ff);
  border: none;
  border-left: 5px solid #F6C674;
  border-left: 5px solid var(--gold);
  color: #A5765C;
  color: var(--brown);
  padding: 2rem;
  margin-bottom: 3rem;
  border-radius: 16px;
  border-radius: var(--border-radius);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  max-width: 800px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 1;
  animation: fadeInUp 0.8s ease-out forwards;
}

.premium-info h2 {
  font-size: 1.8rem;
  margin-bottom: 1rem;
  color: #A5765C;
  color: var(--brown);
  font-weight: 700;
}

.premium-info p {
  font-size: 1.1rem;
  color: #333333;
  color: var(--text-color);
}

/* Conteneur des plans */
.subscription-plans {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 2rem;
  margin-bottom: 4rem;
  position: relative;
  z-index: 1;
}

/* Cartes de chaque plan */
.subscription-card {
  background-color: #fff;
  border-radius: 16px;
  border-radius: var(--border-radius);
  width: 340px;
  min-height: 630px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  padding: 2rem;
  text-align: left;
  display: flex;
  flex-direction: column;
  transition: all 0.3s ease;
  transition: var(--transition-medium);
  position: relative;
  overflow: hidden;
}

/* Plan Gratuit vs Premium */
.subscription-free-plan {
  background: linear-gradient(135deg, #fff, #f9f9f9);
  border: 1px solid rgba(0, 0, 0, 0.1);
  animation: fadeInLeft 0.8s ease-out forwards;
  transform: perspective(1000px) rotateY(5deg);
  position: relative;
}

.subscription-free-plan::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 6px;
  background: linear-gradient(to right, #e0e0e0, #f0f0f0);
}

.subscription-premium-plan {
  background: linear-gradient(135deg, #fff, #F6F2EF);
  background: linear-gradient(135deg, #fff, var(--light-gray));
  border: 1px solid rgba(165, 118, 92, 0.1);
  animation: fadeInRight 0.8s ease-out forwards;
  z-index: 2;
  position: relative;
  box-shadow: 0 10px 30px rgba(165, 118, 92, 0.15);
  min-height: 720px;
}

.subscription-premium-plan::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 6px;
  background: linear-gradient(to right, #F6C674, #EE9F99);
  background: linear-gradient(to right, var(--gold), var(--peach));
}

/* Survol (hover) plus prononcé */
.subscription-card:hover {
  transform: translateY(-10px) scale(1.02) perspective(1000px) rotateY(0);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
}

/* Titres et prix */
.subscription-title-card {
  font-size: 2rem;
  margin-bottom: 1.5rem;
  color: #000000;
  color: var(--black);
  font-weight: 800;
  position: relative;
  padding-bottom: 15px;
  text-align: center;
}

.subscription-free-plan .subscription-title-card::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 40px;
  height: 3px;
  background: #e0e0e0;
  border-radius: 3px;
}

.subscription-premium-plan .subscription-title-card::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  margin: 0 auto;
  width: 40px;
  height: 3px;
  background: linear-gradient(to right, #F6C674, #EE9F99);
  background: linear-gradient(to right, var(--gold), var(--peach));
  border-radius: 3px;
}

.subscription-price {
  font-size: 2.5rem;
  font-weight: 800;
  color: #A5765C;
  color: var(--brown);
  margin: 1.5rem 0 0.5rem;
  display: block;
  background: linear-gradient(90deg, #A5765C, #F6C674);
  background: linear-gradient(90deg, var(--brown), var(--gold));
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  text-align: center;
}

.subscription-billing {
  font-size: 1rem;
  font-weight: 400;
  color: #555555;
  color: var(--dark-gray);
  margin-bottom: 1.5rem;
  text-align: center;
}

/* Mention d'économie annuelle */
.annual-discount {
  font-size: 1.1rem;
  font-weight: 700;
  color: #EE9F99;
  color: var(--peach);
  background: rgba(238, 159, 153, 0.1);
  padding: 0.5rem 1rem;
  border-radius: 25px;
  margin-bottom: 1.5rem;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  display: block;
  position: relative;
  box-shadow: 0 2px 8px rgba(238, 159, 153, 0.2);
  max-width: -webkit-fit-content;
  max-width: fit-content;
}

.annual-discount::before {
  content: "🎁";
  margin-right: 6px;
}

/* Liste des fonctionnalités */
.subscription-features {
  list-style: none;
  padding-left: 0;
  margin-bottom: 2rem;
  width: 100%;
  text-align: left;
}

.subscription-features li {
  padding: 0.8rem 0;
  font-size: 1rem;
  color: #333333;
  color: var(--text-color);
  display: flex;
  align-items: flex-start;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  transition: all 0.2s ease;
  transition: var(--transition-fast);
}

.subscription-features li:last-child {
  border-bottom: none;
}

.subscription-free-plan .subscription-features li:before {
  content: '✓';
  color: #9e9e9e;
  margin-right: 10px;
  font-weight: bold;
  padding-top: 2px;
}

.subscription-premium-plan .subscription-features li:before {
  content: '✓';
  color: #F6C674;
  color: var(--gold);
  margin-right: 10px;
  font-size: 1.1rem;
  font-weight: bold;
  padding-top: 0;
}

.subscription-features li:hover {
  transform: translateX(5px);
}

/* Switch Annuel / Mensuel */
.toggle-container {
  display: flex;
  align-items: center;
  margin-bottom: 1.5rem;
  justify-content: center;
  background: rgba(246, 198, 116, 0.1);
  padding: 0.5rem;
  border-radius: 30px;
  width: -webkit-fit-content;
  width: fit-content;
  margin-left: auto;
  margin-right: auto;
}

.toggle-label {
  font-weight: 600;
  margin: 0 0.5rem;
  color: #555555;
  color: var(--dark-gray);
  transition: all 0.2s ease;
  transition: var(--transition-fast);
  font-size: 0.9rem;
  cursor: pointer;
}

.toggle-label.active {
  color: #A5765C;
  color: var(--brown);
  font-weight: 700;
}

.toggle-switch {
  position: relative;
  display: inline-block;
  width: 50px;
  height: 24px;
  margin: 0 0.5rem;
}

.toggle-switch input {
  opacity: 0;
  width: 0;
  height: 0;
}

.slider {
  position: absolute;
  cursor: pointer;
  top: 0; 
  left: 0; 
  right: 0; 
  bottom: 0;
  background-color: #e0e0e0;
  transition: all 0.2s ease;
  transition: var(--transition-fast);
  border-radius: 24px;
}

.slider:before {
  position: absolute;
  content: "";
  height: 18px; 
  width: 18px;
  left: 3px; 
  top: 3px;
  background-color: white;
  transition: all 0.2s ease;
  transition: var(--transition-fast);
  border-radius: 50%;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}

input:checked + .slider {
  background: linear-gradient(90deg, #F6C674, #EE9F99);
  background: linear-gradient(90deg, var(--gold), var(--peach));
}

input:checked + .slider:before {
  transform: translateX(26px);
}

/* Promo Code Input & Bouton */
.promo-code-input {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  margin: 1.5rem 0;
  width: 100%;
  background: rgba(246, 246, 246, 0.5);
  padding: 1.2rem;
  border-radius: 16px;
  border-radius: var(--border-radius);
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-sizing: border-box;
}

.promo-code-label {
  font-weight: 600;
  margin-bottom: 0.8rem;
  color: #333333;
  color: var(--text-color);
  font-size: 1rem;
}

.promo-code-input input {
  padding: 0.8rem 1rem;
  border: 1px solid rgba(0, 0, 0, 0.1);
  border-radius: 8px;
  font-size: 1rem;
  width: 100%;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  transition: all 0.2s ease;
  transition: var(--transition-fast);
  margin-bottom: 1rem;
}

.promo-code-input input:focus {
  border-color: #F6C674;
  border-color: var(--gold);
  outline: none;
  box-shadow: 0 0 0 3px rgba(246, 198, 116, 0.2);
}

.promo-code-button {
  background: linear-gradient(90deg, #A5765C, #F6C674);
  background: linear-gradient(90deg, var(--brown), var(--gold));
  color: #fff;
  border: none;
  padding: 0.8rem 1.5rem;
  border-radius: 25px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
  transition: var(--transition-fast);
  box-shadow: 0 4px 10px rgba(165, 118, 92, 0.2);
  width: -webkit-fit-content;
  width: fit-content;
  align-self: flex-end;
}

.promo-code-button:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 15px rgba(165, 118, 92, 0.3);
}

.discount-message {
  margin-top: 0.8rem;
  color: #A5765C;
  color: var(--brown);
  font-size: 0.95rem;
  font-weight: 500;
  width: 100%;
  background: rgba(246, 198, 116, 0.1);
  padding: 0.5rem 1rem;
  border-radius: 8px;
  border-left: 3px solid #F6C674;
  border-left: 3px solid var(--gold);
}

/* Acceptation des CGV */
.terms-checkbox {
  display: flex;
  align-items: flex-start;
  margin: 1rem 0;
  gap: 10px;
}

.terms-checkbox input[type="checkbox"] {
  width: 18px;
  height: 18px;
  cursor: pointer;
  accent-color: #A5765C;
  accent-color: var(--brown);
}

.terms-checkbox label {
  font-size: 0.95rem;
  color: #333333;
  color: var(--text-color);
}

.terms-checkbox a {
  color: #A5765C;
  color: var(--brown);
  text-decoration: none;
  font-weight: 600;
  position: relative;
}

.terms-checkbox a::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  width: 100%;
  height: 1px;
  background: #A5765C;
  background: var(--brown);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s ease;
}

.terms-checkbox a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

/* Bouton d'abonnement */
.subscribe-button {
  background: linear-gradient(45deg, #A5765C, #91654c);
  background: linear-gradient(45deg, var(--brown), #91654c);
  color: #fff;
  border: none;
  padding: 1rem 2rem;
  border-radius: 30px;
  font-size: 1.1rem;
  font-weight: 700;
  cursor: pointer;
  transition: all 0.3s ease;
  transition: var(--transition-medium);
  margin-top: auto;
  position: relative;
  overflow: hidden;
  z-index: 1;
  width: 100%;
  box-shadow: 0 6px 15px rgba(165, 118, 92, 0.3);
}

.subscribe-button::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, 
    rgba(255, 255, 255, 0) 0%, 
    rgba(255, 255, 255, 0.2) 50%, 
    rgba(255, 255, 255, 0) 100%);
  transform: skewX(-25deg);
  animation: shine 3s infinite;
  transition: all 0.3s ease;
  transition: var(--transition-medium);
  z-index: -1;
}

.subscribe-button:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(165, 118, 92, 0.4);
  background: linear-gradient(45deg, #91654c, #A5765C);
  background: linear-gradient(45deg, #91654c, var(--brown));
}

.subscribe-button:disabled {
  background: #ccc;
  cursor: not-allowed;
  box-shadow: none;
  color: #888;
}

.subscribe-button:disabled::before {
  display: none;
}

/* Section de résiliation */
.subscription-cancel {
  border-top: 1px solid rgba(0, 0, 0, 0.1);
  padding-top: 3rem;
  text-align: center;
  position: relative;
  z-index: 1;
}

.subscription-cancel h3 {
  color: #333333;
  color: var(--text-color);
  margin-bottom: 1.5rem;
  font-size: 1.5rem;
  font-weight: 700;
}

/* Bouton de résiliation */
.cancel-button {
  background: linear-gradient(45deg, #d9534f, #c9302c);
  color: #fff;
  border: none;
  padding: 0.8rem 1.5rem;
  border-radius: 25px;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 600;
  transition: all 0.2s ease;
  transition: var(--transition-fast);
  box-shadow: 0 4px 10px rgba(217, 83, 79, 0.3);
}

.cancel-button:hover:not(:disabled) {
  transform: translateY(-3px);
  box-shadow: 0 6px 15px rgba(217, 83, 79, 0.4);
}

.cancel-button:disabled {
  background: #ccc;
  cursor: not-allowed;
  box-shadow: none;
}

/* Responsive adjustments */
@media (max-width: 1100px) {
  .subscription-plans {
    gap: 2rem;
  }
  
  .subscription-card {
    width: 320px;
    min-height: 750px;
  }
  
  .subscription-price {
    font-size: 2.2rem;
  }
  
  .subscription-title-card {
    font-size: 1.8rem;
  }
}

@media (max-width: 768px) {
  .subscription-page {
    padding: 2rem 1rem;
  }
  
  .subscription-title {
    font-size: 2.2rem;
  }
  
  .subscription-description {
    font-size: 1.1rem;
    margin-bottom: 2rem;
  }
  
  .subscription-plans {
    flex-direction: column;
    align-items: center;
  }
  
  .subscription-card {
    width: 100%;
    max-width: 350px;
    min-height: auto;
    margin-bottom: 2rem;
  }
  
  .subscription-title-card {
    font-size: 1.8rem;
  }
  
  .subscription-price {
    font-size: 2.4rem;
  }
  
  .subscription-badge-premium {
    padding: 6px 0;
  }
  
  .subscription-badge {
    top: 10px;
    right: 10px;
  }
  
  .development-box {
    width: 90%;
  }
}

@media (max-width: 480px) {
  .subscription-title {
    font-size: 1.8rem;
  }
  
  .subscription-description {
    font-size: 1rem;
  }
  
  .premium-info {
    padding: 1.5rem;
  }
  
  .premium-info h2 {
    font-size: 1.5rem;
  }
  
  .subscription-card {
    padding: 1.5rem;
  }
  
  .subscription-title-card {
    font-size: 1.6rem;
  }
  
  .subscription-price {
    font-size: 2.2rem;
  }
}

/* Cartes des bénéfices */
.benefits-container {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 20px;
  margin-bottom: 50px;
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
  position: relative;
  z-index: 1;
}

.benefit-card {
  background: #fff;
  border-radius: 16px;
  border-radius: var(--border-radius);
  padding: 25px;
  width: 260px;
  min-height: 200px;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  transition: all 0.3s ease;
  transition: var(--transition-medium);
  border: 1px solid rgba(0, 0, 0, 0.04);
  animation: fadeInUp 0.6s var(--animation-timing);
  animation-fill-mode: both;
}

.benefit-card:nth-child(1) {
  animation-delay: 0.1s;
}

.benefit-card:nth-child(2) {
  animation-delay: 0.2s;
}

.benefit-card:nth-child(3) {
  animation-delay: 0.3s;
}

.benefit-card:nth-child(4) {
  animation-delay: 0.4s;
}

.benefit-card:hover {
  transform: translateY(-10px);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.08);
}

.benefit-icon {
  width: 60px;
  height: 60px;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.2), rgba(238, 159, 153, 0.2));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 15px;
  color: #A5765C;
  color: var(--brown);
  font-size: 24px;
  transition: all 0.3s ease;
  transition: var(--transition-medium);
}

.benefit-card:hover .benefit-icon {
  transform: scale(1.1);
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.3), rgba(238, 159, 153, 0.3));
}

.benefit-card h3 {
  font-size: 1.2rem;
  font-weight: 700;
  margin-bottom: 12px;
  color: #000000;
  color: var(--black);
}

.benefit-card p {
  font-size: 0.95rem;
  color: #555555;
  color: var(--dark-gray);
  line-height: 1.5;
}

/* Badge commun à tous les plans */
.subscription-badge {
  position: absolute;
  top: 15px;
  right: 15px;
  background: linear-gradient(135deg, #FFA351, #EE9F99);
  background: linear-gradient(135deg, var(--orange), var(--peach));
  color: white;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 0.8rem;
  font-weight: 700;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  z-index: 3;
}

/* Badge spécifique du plan recommandé */
.subscription-badge-premium {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  background: linear-gradient(90deg, #F6C674, #EE9F99);
  background: linear-gradient(90deg, var(--gold), var(--peach));
  color: white;
  padding: 8px 0;
  text-align: center;
  font-size: 0.9rem;
  font-weight: 700;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
  z-index: 3;
}

/* Plan Futur (À venir) */
.subscription-future-plan {
  background: linear-gradient(135deg, #fff, #f8f8f8);
  border: 1px solid rgba(0, 0, 0, 0.1);
  animation: fadeInRight 0.8s ease-out forwards 0.2s;
  position: relative;
}

.pricing-description {
  margin: 1rem 0;
  color: #333333;
  color: var(--text-color);
  font-style: italic;
}

.pricing-coming-soon-info {
  margin-top: 15px;
  border-top: 1px dashed rgba(165, 118, 92, 0.3);
  padding-top: 15px;
}

.pricing-coming-soon-info p {
  font-size: 0.9rem;
  color: #A5765C;
  color: var(--brown);
  font-weight: 600;
}

/* Notice d'essai gratuit */
.trial-notice {
  text-align: center;
  margin-top: 8px;
  font-size: 0.9rem;
  color: #EE9F99;
  color: var(--peach);
  font-weight: 600;
  background-color: rgba(238, 159, 153, 0.1);
  padding: 4px 0;
  border-radius: 4px;
}

/* Style pour le bouton du plan gratuit */
.free-plan-button {
  background: linear-gradient(45deg, #e0e0e0, #f0f0f0);
  color: #555;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
  margin-top: auto;
}

.free-plan-button:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
  background: linear-gradient(45deg, #d0d0d0, #e0e0e0);
}

.free-plan-button::before {
  display: none;
}

/* Ajustements du bouton premium */
.subscribe-button.secondary {
  background-color: transparent;
  border: 2px dashed #A5765C;
  border: 2px dashed var(--brown);
  color: #A5765C;
  color: var(--brown);
  opacity: 0.7;
  cursor: not-allowed;
  position: relative;
  overflow: hidden;
  margin-top: auto;
}

.subscribe-button.secondary:hover {
  transform: none;
  opacity: 0.8;
}

/* Fonctionnalités indisponibles dans le plan gratuit */
.subscription-features-unavailable {
  color: #aaa !important;
  text-decoration: line-through;
}

.subscription-features-unavailable::before {
  content: '✕' !important;
  color: #ccc !important;
}

/* Responsive pour les cartes de bénéfices */
@media (max-width: 1100px) {
  .benefits-container {
    gap: 15px;
  }
  
  .benefit-card {
    width: calc(50% - 15px);
    max-width: 320px;
  }
}

@media (max-width: 768px) {
  .benefits-container {
    flex-direction: column;
    align-items: center;
  }
  
  .benefit-card {
    width: 100%;
    max-width: 350px;
  }
}

/* CGV Page Styling */
.cgv-page {
  text-align: left;
}

.cgv-container {
  max-width: 900px;
  margin: 0 auto;
  background: #fff;
  padding: 2.5rem;
  border-radius: 16px;
  border-radius: var(--border-radius);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  position: relative;
  z-index: 1;
}

.cgv-intro {
  font-size: 1.1rem;
  line-height: 1.6;
  margin-bottom: 2rem;
  color: #333333;
  color: var(--text-color);
}

.cgv-highlight {
  font-size: 1.2rem;
  font-weight: 700;
  color: #A5765C;
  color: var(--brown);
  background: rgba(165, 118, 92, 0.05);
  padding: 1rem;
  border-left: 4px solid #F6C674;
  border-left: 4px solid var(--gold);
  margin: 1.5rem 0;
  border-radius: 0 16px 16px 0;
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
}

.cgv-highlight-secondary {
  font-weight: 600;
  color: #555555;
  color: var(--dark-gray);
  font-size: 0.95rem;
}

.cgv-section {
  margin-bottom: 2rem;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.cgv-section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.cgv-section h2 {
  font-size: 1.5rem;
  font-weight: 700;
  color: #A5765C;
  color: var(--brown);
  margin-bottom: 1rem;
  position: relative;
  padding-bottom: 0.5rem;
}

.cgv-section h2::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 40px;
  height: 2px;
  background: linear-gradient(to right, #F6C674, #EE9F99);
  background: linear-gradient(to right, var(--gold), var(--peach));
  border-radius: 2px;
}

.cgv-subsection {
  margin: 1.5rem 0;
  padding-left: 1rem;
  border-left: 2px solid rgba(165, 118, 92, 0.2);
}

.cgv-subsection h3 {
  font-size: 1.2rem;
  font-weight: 600;
  color: #333333;
  color: var(--text-color);
  margin-bottom: 0.8rem;
}

.cgv-section p, .cgv-subsection p {
  font-size: 1rem;
  line-height: 1.6;
  color: #333333;
  color: var(--text-color);
  margin-bottom: 0.8rem;
}

.cgv-section ul, .cgv-subsection ul {
  font-size: 1rem;
  line-height: 1.6;
  color: #333333;
  color: var(--text-color);
  margin: 0.8rem 0;
  padding-left: 2rem;
}

.cgv-section ul li, .cgv-subsection ul li {
  margin-bottom: 0.5rem;
}

.cgv-section a, .cgv-subsection a {
  color: #A5765C;
  color: var(--brown);
  font-weight: 500;
  text-decoration: none;
  position: relative;
  transition: all 0.2s ease;
  transition: var(--transition-fast);
}

.cgv-section a::after, .cgv-subsection a::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: #A5765C;
  background: var(--brown);
  transform: scaleX(0);
  transform-origin: right;
  transition: transform 0.3s ease;
}

.cgv-section a:hover::after, .cgv-subsection a:hover::after {
  transform: scaleX(1);
  transform-origin: left;
}

@media (max-width: 768px) {
  .cgv-container {
    padding: 1.5rem;
  }
  
  .cgv-section h2 {
    font-size: 1.3rem;
  }
  
  .cgv-subsection h3 {
    font-size: 1.1rem;
  }
  
  .cgv-highlight {
    font-size: 1.1rem;
    padding: 0.8rem;
  }
}

@media (max-width: 480px) {
  .cgv-container {
    padding: 1rem;
  }
  
  .cgv-section h2 {
    font-size: 1.2rem;
  }
  
  .cgv-subsection {
    padding-left: 0.7rem;
  }
  
  .cgv-highlight {
    font-size: 1rem;
    padding: 0.7rem;
  }
}

/* Encadré "En cours de développement" */
.development-box {
  border: 2px dashed #ccc;
  border-radius: 12px;
  padding: 15px;
  margin: 40px auto 20px;
  text-align: center;
  width: 80%;
}

.development-text {
  font-size: 1.1rem;
  font-weight: 600;
  color: #999;
}

/* Texte italique pour plan futur */
.future-text {
  font-style: italic;
  font-size: 1rem;
  color: #555555;
  color: var(--dark-gray);
  text-align: center;
  margin: 15px 0;
}

/* Liste de fonctionnalités en deux colonnes pour le plan premium */
.subscription-premium-plan .subscription-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 0 10px;
  gap: 0 10px;
  padding-left: 0;
  margin-bottom: 1.5rem;
}

.subscription-premium-plan .subscription-features li {
  padding: 0.6rem 5px 0.6rem 22px;
  font-size: 0.85rem;
  position: relative;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
  min-height: 40px;
  display: flex;
  align-items: center;
}

.subscription-premium-plan .subscription-features li::before {
  content: '✓';
  color: #F6C674;
  color: var(--gold);
  position: absolute;
  left: 2px;
  font-weight: bold;
}

/* Garder la liste normale pour les autres plans */
.subscription-free-plan .subscription-features, 
.subscription-future-plan .subscription-features {
  list-style: none;
  padding-left: 0;
  margin-bottom: 2rem;
  width: 100%;
  text-align: left;
}

/* Ajouter plus d'espace en bas pour la section promo */
.subscription-premium-plan .promo-code-input {
  margin-top: 1.5rem;
}

@media (max-width: 768px) {
  .subscription-premium-plan .subscription-features {
    grid-template-columns: 1fr;
  }
}

/* =====================================================
   iOS Reader App Notice - Pas d'achat in-app sur iOS
   ===================================================== */
.ios-reader-app-notice {
  text-align: center;
  padding: 2rem 1rem;
  background: linear-gradient(135deg, rgba(246, 242, 239, 0.8), rgba(255, 255, 255, 0.9));
  border-radius: 16px;
  border-radius: var(--border-radius);
  border: 1px dashed rgba(165, 118, 92, 0.3);
  margin-top: 1.5rem;
}

.ios-notice-icon {
  margin-bottom: 1rem;
}

.ios-notice-text {
  font-size: 1.2rem;
  font-weight: 600;
  color: #333333;
  color: var(--text-color);
  margin-bottom: 0.8rem;
}

.ios-notice-subtext {
  font-size: 0.95rem;
  color: #555555;
  color: var(--dark-gray);
  line-height: 1.6;
  margin-bottom: 1.5rem;
  max-width: 280px;
  margin-left: auto;
  margin-right: auto;
}

.ios-refresh-button {
  background: linear-gradient(45deg, #666, #888) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
}

.ios-refresh-button:hover:not(:disabled) {
  background: linear-gradient(45deg, #555, #777) !important;
  transform: translateY(-3px);
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.2) !important;
}

.ios-refresh-button:disabled {
  background: #ccc !important;
  cursor: wait;
}

/* Animation de rotation pour l'icône de sync */
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.ios-refresh-button .anticon-sync {
  animation: spin 1s linear infinite;
}

/* --- Conteneur principal --- */
.services-page {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: center;
  overflow: hidden;
  padding: 0 16px;
  max-width: 100%;
  width: 100%;
  background-color: #faf6f2;
  /* beige très léger */
  min-height: 100vh;
  font-family: 'Poppins', sans-serif;
}

/* Header : titre + sous-titre à gauche, bouton à droite */
.services-page-header {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  margin-bottom: 24px;
  width: 100%;
  flex-wrap: wrap;
}

.services-page-header-left {
  flex: 1 1;
  min-width: 0;
}

.services-page-title {
  margin: 0 0 4px 0 !important;
  font-size: 1.75rem !important;
  font-weight: 700 !important;
  color: #5D3B2B !important;
}

.services-page-subtitle {
  margin: 0;
  font-size: 0.95rem;
  color: #967C6B;
  line-height: 1.4;
}

.services-page-header-right {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.services-page .services-page-add-btn,
.services-page-add-btn.ant-btn {
  min-height: 44px !important;
  height: 44px !important;
  padding: 10px 24px !important;
  border-radius: 25px !important;
  font-weight: 600 !important;
  font-size: 0.95rem !important;
  background: #A06D4D !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 2px 6px rgba(160, 109, 77, 0.25) !important;
  transition: all 0.2s ease;
}

.services-page .services-page-add-btn:hover,
.services-page-add-btn.ant-btn:hover {
  background: #8b5a3c !important;
  box-shadow: 0 4px 12px rgba(160, 109, 77, 0.35) !important;
}

.header-container,
.services-content,
.form-actions {
  max-width: 1400px;
  width: 100%;
  margin: 0 auto;
}

.header-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.title-container {
  display: flex;
  align-items: center;
  gap: 8px;
}

.title-info-icon {
  font-size: 1.2rem;
  color: #666;
  cursor: pointer;
  transition: color 0.3s ease;
}

.title-info-icon:hover {
  color: #a36b00;
}

.header-buttons {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
  width: 100%;
  box-sizing: border-box;
}

/* --- Banner d'information --- */
.services-banner {
  background: #fef7e0;
  border: 1px solid #f5daa6;
  padding: 16px;
  border-radius: 12px;
  margin: 16px 0;
  font-size: 0.95rem;
  line-height: 1.6;
  color: #a36b00;
  font-weight: 500;
  flex-shrink: 0;
  text-align: center;
  width: 100%;
  box-sizing: border-box;
}

.services-banner .banner-content {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.services-banner .info-icon {
  font-size: 1.2rem;
  color: #a36b00;
  margin-top: 2px;
  flex-shrink: 0;
}

.services-banner p {
  margin: 0;
  flex: 1 1;
}

/* --- Onglets par type de service (style Facturation / billing-tabs) --- */
.service-type-tabs {
  -webkit-overflow-scrolling: touch;
}

.service-type-tab-button {
  border: none;
  background: none;
  cursor: pointer;
  padding: 8px 0;
  font-size: 14px;
  font-weight: 400;
  color: #888;
  border-bottom: 2px solid transparent;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  white-space: nowrap;
  flex-shrink: 0;
}

.service-type-tab-button:hover {
  color: #666;
}

.service-type-tab-button.active {
  font-weight: 600;
  color: #000;
  border-bottom: 2px solid #A5765C;
}

.service-type-tab-badge {
  margin-left: 6px;
  opacity: 0.7;
  font-size: 12px;
  background-color: #f5f5f5;
  padding: 2px 8px;
  border-radius: 10px;
}

.service-type-tab-button.active .service-type-tab-badge {
  background-color: #F3EBE6;
  opacity: 1;
}

/* --- Bouton "Gérer les occurrences" (action principale sur les cartes événements récurrents) --- */
.service-card-manage-occurrences-btn.ant-btn-primary {
  background: #A5765C !important;
  background: var(--brown, #A5765C) !important;
  border: none !important;
  color: #fff !important;
  cursor: pointer !important;
}

.service-card-manage-occurrences-btn:hover,
.service-card-manage-occurrences-btn:focus {
  background: #8b6347 !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.4) !important;
  transform: translateY(-1px);
}

.service-card-manage-occurrences-btn:active {
  transform: translateY(0);
  box-shadow: 0 2px 8px rgba(165, 118, 92, 0.35) !important;
}

/* --- Boutons "typeform" --- */
/* Les styles sont maintenant gérés par action-button-primary dans buttonStyles.css */
.typeform-button {
  /* Alias pour compatibilité - utilise les styles globaux */
}

/* --- Liste des services (cards) --- */
.services-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  grid-gap: 20px;
  gap: 20px;
  width: 100%;
}

/* Styles pour les cartes de service avec indicateurs visuels */
.services-page .service-card {
  width: 100%;
  display: flex;
  flex-direction: column;
  height: 700px;
  /* Hauteur fixe pour toutes les cartes */
  margin-bottom: 20px;
  transition: all 0.3s ease-in-out;
  border-radius: 15px;
  overflow: hidden;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
  position: relative;
  /* Pour positionner le footer en bas */
  padding-bottom: 50px;
  /* Espace pour le footer */
}

/* Service avec paiement en ligne uniquement */
.services-page .service-card.online-payment {
  border: 2px solid #58a14b;
  box-shadow: 0 0 10px rgba(88, 161, 75, 0.3);
}

/* Service à domicile uniquement */
.services-page .service-card.home-service {
  border: 2px solid #4a90e2;
  box-shadow: 0 0 10px rgba(74, 144, 226, 0.3);
}

/* Service en ligne uniquement */
.services-page .service-card.online-service {
  border: 2px solid #9b59b6;
  box-shadow: 0 0 10px rgba(155, 89, 182, 0.3);
}

/* Service avec paiement en ligne ET à domicile */
.services-page .service-card.online-payment.home-service {
  background: linear-gradient(135deg, transparent 49%, rgba(74, 144, 226, 0.1) 50%);
  border: 2px solid;
  border-image: linear-gradient(135deg, #58a14b 0%, #58a14b 49%, #4a90e2 51%, #4a90e2 100%) 1;
  box-shadow: 0 0 15px rgba(88, 161, 75, 0.2), 0 0 15px rgba(74, 144, 226, 0.2);
}

/* Service avec paiement en ligne ET en ligne */
.services-page .service-card.online-payment.online-service {
  background: linear-gradient(135deg, transparent 49%, rgba(155, 89, 182, 0.1) 50%);
  border: 2px solid;
  border-image: linear-gradient(135deg, #58a14b 0%, #58a14b 49%, #9b59b6 51%, #9b59b6 100%) 1;
  box-shadow: 0 0 15px rgba(88, 161, 75, 0.2), 0 0 15px rgba(155, 89, 182, 0.2);
}

/* Container pour les bandeaux */
.services-page .service-banners-container {
  display: flex;
  flex-direction: column;
  position: relative;
}

/* Bandeau "paiement en ligne" */
.services-page .online-payment-banner {
  background-color: #58a14b;
  color: #fff;
  font-weight: bold;
  text-align: center;
  padding: 8px;
  font-size: 0.9rem;
  margin-bottom: 0;
  position: relative;
  z-index: 2;
}

/* Bandeau "service à domicile" */
.services-page .home-service-banner {
  background-color: #4a90e2;
  color: #fff;
  font-weight: bold;
  text-align: center;
  padding: 8px;
  font-size: 0.9rem;
  margin-bottom: 10px;
  position: relative;
  z-index: 1;
}

/* Bandeau "service en ligne" */
.services-page .online-service-banner {
  background-color: #9b59b6;
  color: #fff;
  font-weight: bold;
  text-align: center;
  padding: 8px;
  font-size: 0.9rem;
  margin-bottom: 10px;
  position: relative;
  z-index: 1;
}

/* Style pour quand les deux bandeaux sont présents */
.services-page .service-card.online-payment.home-service .service-banners-container {
  position: relative;
}

.services-page .service-card.online-payment.home-service .online-payment-banner {
  border-bottom-left-radius: 0;
  border-bottom-right-radius: 0;
}

.services-page .service-card.online-payment.home-service .home-service-banner {
  border-top-left-radius: 0;
  border-top-right-radius: 0;
  margin-top: 0;
}

/* Alternative : affichage côte à côte pour les deux bandeaux */
@media (min-width: 768px) {
  .services-page .service-card.online-payment.home-service .service-banners-container {
    flex-direction: row;
  }

  .services-page .service-card.online-payment.home-service .online-payment-banner,
  .services-page .service-card.online-payment.home-service .home-service-banner {
    flex: 1 1;
    margin-bottom: 10px;
  }

  .services-page .service-card.online-payment.home-service .online-payment-banner {
    border-right: 1px solid rgba(255, 255, 255, 0.3);
  }
}

/* Contenu du service (texte) */
.services-page .service-card-content {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  justify-content: start;
  overflow: auto;
  padding: 0 16px;
  padding-top: 8px;
  max-height: 700px;
  /* Hauteur fixe pour le contenu */
}

.services-page .service-card-content .ant-typography {
  margin-bottom: 8px !important;
}

.services-page .description-container {
  position: relative;
  margin-bottom: 16px;
}

.services-page .service-description {
  position: relative;
  margin-bottom: 8px !important;
  line-height: 1.5;
  transition: all 0.3s ease;
}

.services-page .service-description-expanded {
  -webkit-line-clamp: initial;
  max-height: none;
  overflow: auto;
  background-color: rgba(255, 255, 255, 0.98);
  padding: 12px;
  border-radius: 8px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.1);
  z-index: 10;
  position: relative;
  margin-bottom: 16px !important;
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.services-page .description-toggle {
  color: #EE9F99;
  color: var(--peach, #EE9F99);
  padding: 0;
  margin-left: 0;
  font-size: 0.85rem;
  height: auto;
  font-weight: 600;
  position: relative;
  background: none;
  border: none;
  box-shadow: none;
  display: inline-block;
  white-space: nowrap;
  text-align: right;
  display: block;
  width: 100%;
  margin-top: -4px;
}

.services-page .description-toggle:hover {
  color: #A5765C;
  color: var(--brown, #A5765C);
  text-decoration: underline;
  background: none;
}

/* Footer du card (boutons) */
.services-page .service-card-footer {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  padding: 10px 16px;
  border-top: 1px solid #f0f0f0;
  background-color: #fff;
  height: 50px;
}

.services-page .service-card-footer .ant-btn {
  flex: 1 1;
  display: flex;
  justify-content: center;
  align-items: center;
  background: none;
  border: none;
}

.services-page .service-card-footer .ant-btn:hover {
  background-color: #f0f0f0;
}

.services-page .service-card-footer .ant-btn .anticon {
  font-size: 24px;
}

/* --- Indisponibilités --- */
.unavailabilities-section {
  margin-top: 40px;
}

.unavailability-card {
  margin-bottom: 10px;
}

.unavailability-card-footer {
  display: flex;
  justify-content: flex-end;
}

/* --- Modales générales (Service + Indispo) --- */
.custom-modal .ant-modal-content {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
  background-color: #ffffff;
  margin-top: 30px;
  margin-bottom: 30px;
  max-height: 85vh;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(0, 0, 0, 0.08);
  animation: modalFadeIn 0.3s ease-out;
  padding-bottom: 0px;
}

.info-icon {
  margin-left: 4px;
}

@keyframes modalFadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.custom-modal .ant-modal-header {
  border-bottom: 1px solid #f0f0f0;
  padding: 28px 32px;
  background-color: #ffffff;
  position: relative;
  display: flex;
  justify-content: center;
  text-align: center;
}

.custom-modal .ant-modal-title {
  font-size: 1.6rem;
  font-weight: 600;
  color: #111;
  text-align: left;
  letter-spacing: -0.02em;
}

.custom-modal .ant-modal-body {
  padding: 32px;
  padding-bottom: 8px;
  flex: 1 1;
  overflow-y: auto;
  background-color: #fafafa;
}

.custom-modal .ant-modal-close {
  top: 24px;
  right: 24px;
  transition: transform 0.2s ease;
}

.custom-modal .ant-modal-close:hover {
  transform: rotate(90deg);
}

/* Form styling improvements */
.service-form,
.unavailability-form {
  background-color: #fafafa;
  border-radius: 16px;
  padding: 32px;
  padding-bottom: 0px;
  gap: 28px;
}

.form-group-floating input,
.form-group-floating select,
.form-group-floating textarea {
  background-color: #ffffff;
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  padding: 12px 16px;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
}

.form-group-floating input:focus,
.form-group-floating select:focus,
.form-group-floating textarea:focus {
  border-color: #000;
  box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.1);
  transform: translateY(-1px);
}

/* Styles spécifiques pour le textarea de description */
.form-group-floating textarea#description {
  min-height: 120px;
  width: 100%;
  max-width: 100%;
  font-family: inherit;
  line-height: 1.5;
  resize: vertical;
}

/* Conteneur spécial pour la description qui prend toute la largeur */
.form-group-floating.description-field {
  width: 100%;
  flex: 1 1 100%;
  grid-column: 1 / -1;
  /* Prend toute la largeur si on est dans une grille */
}

/* Améliorations pour mobile */
@media (max-width: 768px) {
  .form-group-floating textarea#description {
    min-height: 100px;
    font-size: 16px;
    /* Évite le zoom sur iOS */
    width: 100%;
  }

  .form-group-floating.description-field {
    width: 100%;
    margin-top: 16px;
  }
}

/* --- form-row (pour aligner 2 champs / + en flex) --- */
.form-row {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
}

@media (max-width: 768px) {
  .services-page {
    padding: 16px;
    min-height: calc(100vh - 56px - 56px);
    min-height: calc(100vh - var(--mobile-header-height, 56px) - var(--mobile-footer-height, 56px));
  }

  .form-row {
    flex-direction: column;
  }

  .services-page-header {
    flex-direction: column;
    align-items: stretch;
    gap: 16px;
    margin-bottom: 20px;
  }

  .services-page-header-right {
    width: 100%;
  }

  .services-page-title {
    font-size: 1.5rem !important;
  }

  .services-page-add-btn {
    width: 100%;
    min-height: 48px !important;
  }

  .header-container {
    padding: 0;
    margin-bottom: 16px;
    background: none;
    border: none;
    box-shadow: none;
  }

  .header-container h2 {
    margin-bottom: 0;
    font-size: 24px;
  }

  .header-buttons {
    flex-direction: row;
    flex-wrap: wrap;
    width: 100%;
    gap: 12px;
  }

  .header-buttons .typeform-button {
    flex: 1 1;
    min-width: 140px;
    padding: 10px 16px;
    font-size: 0.9rem;
    justify-content: center;
  }

  /* Hide "Ajouter un/des" on mobile */
  .header-buttons .typeform-button .button-prefix {
    display: none;
  }

  .services-banner {
    padding: 16px;
    font-size: 0.9rem;
    line-height: 1.5;
    margin: 12px 0 24px;
    border-radius: 8px;
  }

  .services-page .service-card {
    width: 100%;
    height: auto;
    min-height: 560px;
    margin-bottom: 16px;
    border-radius: 12px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  }

  /* Pas de :active sur la carte (seuls les boutons sont cliquables) */

  .services-page .service-card-content {
    padding: 16px;
    margin-top: 0;
    max-height: 500px;
  }

  .services-page .description-container {
    position: relative;
    margin-bottom: 12px;
  }

  .services-page .service-description-expanded {
    position: absolute;
    left: 0;
    right: 0;
    z-index: 20;
  }

  .services-page .service-description {
    font-size: 0.9rem;
    line-height: 1.5;
    -webkit-line-clamp: 2;
  }

  .services-page .service-card-footer {
    position: relative;
    padding: 12px;
    gap: 8px;
  }

  .services-page .service-card-footer .ant-btn {
    padding: 8px;
    border-radius: 8px;
  }

  .services-page .service-card-footer .ant-btn:active {
    background-color: #f5f5f5;
  }

  /* Form improvements for mobile */
  .service-form,
  .unavailability-form {
    padding: 20px 16px;
    gap: 24px;
  }

  .form-group-floating {
    margin-bottom: 24px;
  }

  .form-group-floating input,
  .form-group-floating textarea,
  .form-group-floating select {
    font-size: 16px;
    /* Prevents iOS zoom on focus */
    padding: 8px;
  }

  .form-group-floating label {
    font-size: 0.85rem;
  }

  .form-actions {
    position: -webkit-sticky;
    position: sticky;
    bottom: 0;
    background: white;
    padding: 16px;
    /* margin: 0 -16px -20px; */
    box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1);
    z-index: 1;
  }

  .form-actions button {
    width: 100%;
    height: 44px;
    font-size: 1rem;
  }

  /* Modal improvements for mobile */
  .custom-modal {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .custom-modal .ant-modal-content {
    margin: 10px;
    border-radius: 24px;
    max-height: 92vh;
    box-shadow: 0 -8px 32px rgba(0, 0, 0, 0.15);
    padding: 12px;
  }

  .custom-modal .ant-modal-content::before {
    content: '';
    display: block;
    width: 48px;
    height: 5px;
    background: #e0e0e0;
    border-radius: 3px;
    margin: 12px auto;
    position: absolute;
    top: 6px;
    left: 50%;
    transform: translateX(-50%);
    transition: background-color 0.2s ease;
  }

  .custom-modal .ant-modal-content:active::before {
    background: #d0d0d0;
  }

  .custom-modal .ant-modal-header {
    padding: 32px 24px 24px;
  }

  .custom-modal .ant-modal-body {
    padding: 0px;
  }

  .form-actions {
    -webkit-backdrop-filter: blur(8px);
            backdrop-filter: blur(8px);
    background: rgba(255, 255, 255, 0.9);
  }

  .form-actions button {
    border-radius: 14px;
    font-weight: 600;
    letter-spacing: -0.01em;
    transition: transform 0.2s ease;
  }

  .form-actions button:active {
    transform: scale(0.98);
  }

  /* Style for the tabs container */
  .ant-tabs .ant-tabs-nav {
    margin: 0;
  }

  .ant-tabs .ant-tabs-nav-wrap {
    overflow-x: auto;
    overflow-y: hidden;
    margin-bottom: 0;
    -ms-overflow-style: none;
    /* Hide scrollbar IE and Edge */
    scrollbar-width: none;
    /* Hide scrollbar Firefox */
  }

  /* Hide scrollbar for Chrome, Safari and Opera */
  .ant-tabs .ant-tabs-nav-wrap::-webkit-scrollbar {
    display: none;
  }

  .ant-tabs .ant-tabs-nav-list {
    flex-wrap: nowrap;
    white-space: nowrap;
  }

  /* Bandeaux sur mobile */
  .services-page .service-card.online-payment.home-service .service-banners-container {
    flex-direction: column;
  }

  .services-page .service-banners-container {
    font-size: 0.85rem;
  }

  .services-page .online-payment-banner,
  .services-page .home-service-banner {
    padding: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
  }

  /* Carte avec double indicateur sur mobile */
  .services-page .service-card.online-payment.home-service {
    border-width: 3px;
    background: linear-gradient(to bottom, rgba(88, 161, 75, 0.05) 0%, rgba(74, 144, 226, 0.05) 100%);
  }
}

/* Add smooth scrolling for the entire page */
html {
  scroll-behavior: smooth;
}

/* This will make the services content area scrollable */
.services-content {
  flex: 1 1;
  overflow-y: auto;
  min-height: 0;
  width: 100%;
  box-sizing: border-box;
}

/* --- Buttons Styling --- */
.form-actions {
  display: flex;
  gap: 12px;
  padding: 1px;
  position: -webkit-sticky;
  position: sticky;
  bottom: 0;
  background: rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: blur(90%);
          backdrop-filter: blur(90%);
  border: 1px solid rgba(255, 255, 255, 0.2);
  box-shadow: 0 8px 6px rgba(0, 0, 0, 0.1);
  z-index: 10;
  border-radius: 12px;
  margin-top: 42px;
}

.form-actions button {
  flex: 1 1;
  padding: 12px 24px;
  border-radius: 12px;
  font-weight: 500;
  font-size: 0.95rem;
  transition: all 0.2s ease;
  border: none;
  min-width: 120px;
}

.primary-btn {
  background: #000;
  color: white;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
}

.primary-btn:hover {
  background: #222;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.secondary-btn {
  background: #fff;
  color: #000;
  border: 1px solid #e0e0e0 !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.secondary-btn:hover {
  background: #f8f8f8;
  border-color: #d0d0d0 !important;
}


/* Mobile adjustments */
@media (max-width: 768px) {
  .form-actions {
    padding: 1px;
    padding-top: 4px;
    margin: 0 -16px -20px;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.08);
    border-bottom-left-radius: 0px;
    border-bottom-right-radius: 0px;
  }

  .form-actions button {
    padding: 14px 20px;
    font-size: 0.9rem;
  }
}

/* Ant Design Components Custom Styling */
.form-group-floating .ant-select {
  width: 100%;
  background-color: #ffffff;
}

.form-group-floating .ant-select-selector {
  border: 1px solid #e6e6e6 !important;
  border-radius: 12px !important;
  padding: 8px 12px !important;
  min-height: 46px !important;
  background-color: #ffffff !important;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02) !important;
}

.form-group-floating .ant-select-selection-search-input {
  height: 100% !important;
}

.form-group-floating .ant-select-selection-placeholder {
  line-height: 30px !important;
  color: #999 !important;
}

/* Improve RangePicker styling */
.form-group-floating .ant-picker {
  width: 100%;
  border: 1px solid #e6e6e6;
  border-radius: 12px;
  padding: 8px 12px;
  background-color: #ffffff;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
  height: 46px;
}

.form-group-floating .ant-picker-range {
  display: flex;
  align-items: center;
}

.form-group-floating .ant-picker-input {
  flex: 1 1;
  min-width: 0;
  /* This prevents input from expanding */
  height: 100%;
}

.form-group-floating .ant-picker-input>input {
  font-size: 0.95rem;
  height: 100%;
  padding: 0;
  text-align: center;
  width: 100%;
  line-height: normal;
}

/* Remove placeholder spacing */
.form-group-floating .ant-picker-input>input::placeholder {
  display: none;
}

/* Fix separator alignment */
.form-group-floating .ant-picker-range-separator {
  padding: 0 8px;
  opacity: 0.5;
}

/* Fix calendar icon alignment */
.form-group-floating .ant-picker-suffix {
  margin-left: 8px;
}

/* Style for checkbox/switch container */
.form-group-checkbox {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
}

.form-group-checkbox .checkbox-label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.95rem;
}

/* Style for the Switch component */
.form-group-checkbox .ant-switch {
  min-width: 44px;
  height: 24px;
  background-color: #e6e6e6;
  margin-left: 12px;
}

.form-group-checkbox .ant-switch-checked {
  background-color: #000;
}

.form-group-checkbox .ant-switch-handle {
  top: 2px;
}

/* Style for Checkbox Group */
.form-group-floating .ant-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 0;
}

.form-group-floating .ant-checkbox-wrapper {
  margin-left: 0 !important;
  font-size: 0.95rem;
}

.form-group-floating .ant-checkbox-wrapper+.ant-checkbox-wrapper {
  margin-left: 0 !important;
}

/* Styles pour les informations de service */
.services-page .service-card-content .service-visibility {
  display: flex;
  align-items: center;
  margin-bottom: 12px !important;
}

.services-page .service-card-content .service-visibility .ant-switch {
  margin-right: 8px;
}

.services-page .service-card-content .service-visibility span {
  font-size: 0.9rem;
  color: #555;
}

/* Groupement des informations */
.services-page .service-info-group {
  margin-bottom: 10px;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

/* Amélioration des paragraphes du contenu */
.services-page .service-card-content .ant-typography {
  margin-bottom: 8px !important;
  line-height: 1.5;
  display: flex;
  align-items: center;
  gap: 6px;
}

/* Styles pour les icônes dans le contenu */
.services-page .service-card-content .ant-typography .emoji-icon {
  flex-shrink: 0;
  width: 16px;
  text-align: center;
  margin-right: 2px;
}

/* Réduire la taille de police des paragraphes pour avoir plus d'espace */
@media (max-width: 1200px) {
  .services-page .service-card-content .ant-typography {
    font-size: 0.9rem;
  }
}

/* Mobile view adjustments */
@media (max-width: 768px) {
  .services-page .service-card {
    min-height: auto;
    padding-bottom: 60px;
  }

  .services-page .service-card-content {
    padding: 12px;
  }
}

/* Ajout d'une variante avec icônes plus grandes */
.services-page .online-payment-banner::before {
  content: "💳 ";
  font-size: 1.1em;
}

.services-page .home-service-banner::before {
  content: "🏠 ";
  font-size: 1.1em;
}

.services-page .online-service-banner::before {
  content: "💻 ";
  font-size: 1.1em;
}

/* Pas de hover sur les blocs : seuls les boutons changent d'état au survol */

/* Dropdown mobile pour les actions */
.ant-dropdown {
  z-index: 9999 !important;
}

.ant-dropdown-menu {
  border-radius: 12px !important;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.15) !important;
  padding: 8px !important;
  background: white !important;
  min-width: 220px !important;
}

.ant-dropdown-menu-item {
  border-radius: 8px !important;
  padding: 12px 16px !important;
  font-size: 16px !important;
  margin-bottom: 4px !important;
  display: flex !important;
  align-items: center !important;
}

.ant-dropdown-menu-item:last-child {
  margin-bottom: 0 !important;
}

.ant-dropdown-menu-item:active {
  background-color: #f5f5f5 !important;
}

.ant-dropdown-menu-item .anticon {
  font-size: 20px !important;
  margin-right: 12px !important;
  color: #F6C674 !important;
}

/* Styles pour les cartes de services modernes */
.service-card-modern {
  transition: all 0.3s ease;
  min-height: 360px !important;
  max-height: none !important;
  display: flex !important;
  flex-direction: column !important;
}

.service-card-modern .ant-card-body {
  height: 100% !important;
  display: flex !important;
  flex-direction: column !important;
  padding: 24px !important;
  overflow: hidden !important;
}

.service-card-modern .ant-card-body>div:first-child {
  flex-shrink: 0 !important;
}

.service-card-modern .ant-card-body>div:nth-child(2) {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow: hidden !important;
}

.service-card-modern .ant-card-body>div:nth-child(3),
.service-card-modern .ant-card-body>div:nth-child(4) {
  flex-shrink: 0 !important;
}

/* Pas de hover sur la carte : seuls les boutons réagissent au survol */

.service-card-modern .ant-card-actions {
  background: #fafafa;
  border-top: 1px solid #f0f0f0;
}

.service-card-modern .ant-card-actions>li {
  margin: 8px 0;
}

.service-card-modern .ant-card-actions>li:not(:last-child) {
  border-right: 1px solid #f0f0f0;
}

/* Animation pour le drag & drop */
.service-card-modern.dragging {
  opacity: 0.8;
  transform: rotate(2deg);
}

/* Styles pour les tags */
.service-card-modern .ant-tag {
  font-size: 11px;
  padding: 2px 6px;
  border-radius: 4px;
}

/* Styles pour les informations en grille - pas de hover (seuls les boutons sont cliquables) */
.service-card-modern .info-grid-item {
  /* Bloc informatif, pas interactif */
}

/* Styles pour la localisation - pas de hover (bloc informatif) */
.service-card-modern .location-container {
  /* Bloc informatif, pas interactif */
}

/* Styles spécifiques pour les services à domicile */
.service-card-modern .location-container.home-service {
  background-color: #f3e5f5 !important;
  border-color: #e1bee7 !important;
}

/* Media queries pour améliorer la responsivité des cartes */

/* Petits écrans mobiles */
@media (max-width: 480px) {
  .services-container {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .service-card-modern {
    min-height: 440px !important;
  }

  .service-card-modern .ant-card-body {
    padding: 18px !important;
  }

  /* Réduction de la taille des polices pour petits écrans */
  .service-card-modern h4 {
    font-size: 18px !important;
  }

  /* Grille d'informations en 1 colonne sur petits écrans */
  .service-card-modern .ant-card-body>div:nth-child(3) {
    grid-template-columns: 1fr !important;
  }

  /* Grille d'informations adaptée */
  .service-card-modern .info-grid-item {
    padding: 10px 14px !important;
  }

  .service-card-modern .info-grid-item>div>div:first-child {
    font-size: 10px !important;
  }

  .service-card-modern .info-grid-item>div>div:last-child {
    font-size: 14px !important;
  }

  /* Tags et badges plus compacts */
  .ant-badge {
    font-size: 10px !important;
  }

  .ant-tag {
    font-size: 9px !important;
    padding: 1px 5px !important;
  }
}

/* Tablettes portrait */
@media (min-width: 481px) and (max-width: 768px) {
  .services-container {
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
  }

  .service-card-modern {
    min-height: 420px !important;
  }

  .service-card-modern .ant-card-body {
    padding: 20px !important;
  }

  /* Grille d'informations reste en 2x2 */
  .service-card-modern .ant-card-body>div:nth-child(3) {
    grid-template-columns: 1fr 1fr !important;
  }

  .service-card-modern .info-grid-item {
    padding: 11px 15px !important;
  }

  .service-card-modern .info-grid-item>div>div:first-child {
    font-size: 10px !important;
  }

  .service-card-modern .info-grid-item>div>div:last-child {
    font-size: 15px !important;
  }
}

/* Tablettes landscape et petits laptops - amélioration */
@media (min-width: 769px) and (max-width: 1024px) {
  .services-container {
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 18px;
  }

  .service-card-modern {
    min-height: 400px !important;
  }

  .service-card-modern .ant-card-body {
    padding: 22px !important;
  }

  /* Ajustement de la grille d'informations */
  .service-card-modern .info-grid-item>div>div:first-child {
    font-size: 10px !important;
  }

  .service-card-modern .info-grid-item>div>div:last-child {
    font-size: 15px !important;
  }
}

/* Laptops standards - optimisation */
@media (min-width: 1025px) and (max-width: 1280px) {
  .services-container {
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 20px;
  }

  .service-card-modern {
    min-height: 420px !important;
  }

  .service-card-modern .ant-card-body {
    padding: 23px !important;
  }
}

/* Grands écrans - optimisation */
@media (min-width: 1281px) and (max-width: 1440px) {
  .services-container {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 22px;
  }

  .service-card-modern {
    min-height: 430px !important;
  }

  .service-card-modern .ant-card-body {
    padding: 24px !important;
  }
}

/* Très grands écrans - optimisation */
@media (min-width: 1441px) and (max-width: 1920px) {
  .services-container {
    grid-template-columns: repeat(auto-fill, minmax(360px, 1fr));
    gap: 24px;
  }

  .service-card-modern {
    min-height: 440px !important;
  }

  .service-card-modern .ant-card-body {
    padding: 26px !important;
  }
}

/* Écrans ultra larges (2K, 4K) */
@media (min-width: 1921px) {
  .services-container {
    grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
    gap: 28px;
    max-width: 2400px;
    margin: 0 auto;
  }

  .service-card-modern {
    min-height: 450px !important;
  }

  .service-card-modern .ant-card-body {
    padding: 28px !important;
  }
}

/* Fix pour éviter le rognage des textes sur tous les écrans */
.service-card-modern .ant-tag,
.service-card-modern .ant-badge {
  flex-shrink: 0;
  white-space: nowrap;
}

.service-card-modern .info-grid-item {
  min-width: 0;
  word-break: break-word;
}

.service-card-modern .location-container>div>span {
  overflow: hidden;
  text-overflow: ellipsis;
}
/* Variables de la charte graphique */
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
  --transition-fast: all 0.2s ease;
  --transition-medium: all 0.3s ease;
  --transition-slow: all 0.5s ease;
  --animation-timing: cubic-bezier(0.25, 0.1, 0.25, 1.0);
}

/* Style de carte principal - simplifié */
.event-card {
  margin-bottom: 16px;
  border-radius: 16px !important;
  border-radius: var(--border-radius) !important;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
  transition: var(--transition-medium);
  height: 100%;
  width: 100% !important;
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(165, 118, 92, 0.06) !important;
  background: white !important;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.event-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.05);
  box-shadow: var(--shadow);
}

/* Styles pour les événements archivés */
.event-card-archived {
  opacity: 0.75;
  filter: grayscale(30%);
  box-shadow: 0 1px 5px rgba(0, 0, 0, 0.03);
  border: 1px dashed rgba(165, 118, 92, 0.15) !important;
}

.event-card-archived:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.04);
}

/* Container pour l'image */
.event-card-image-container {
  position: relative;
  height: 180px;
  overflow: hidden;
}

.event-card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.event-card:hover .event-card-image {
  transform: scale(1.03);
}

/* Style pour les cartes sans image */
.event-card-no-image {
  position: relative;
  height: 180px;
  background: linear-gradient(135deg, #F6F2EF 0%, #f5f5f5 100%);
  background: linear-gradient(135deg, var(--light-gray) 0%, #f5f5f5 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.event-card-default-image {
  font-size: 3.5rem;
  color: rgba(165, 118, 92, 0.2);
}

/* Overlay pour archivé - simplifié */
.event-archived-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.4);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

.event-archived-overlay span {
  color: white;
  font-size: 1.2rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 8px 16px;
  border: 1px solid white;
  border-radius: 4px;
  transform: rotate(-10deg);
}

/* Styling du ruban de prix - simplifié */
.price-ribbon {
  font-weight: 600 !important;
  font-size: 14px !important;
  padding: 4px 12px !important;
  background: #F6C674 !important;
  background: var(--gold) !important;
  color: white !important;
  box-shadow: 0 1px 4px rgba(246, 198, 116, 0.2) !important;
}

/* Ajustement de la position du ruban */
.ant-ribbon-wrapper {
  position: relative;
}

.ant-ribbon {
  top: 8px !important;
  right: -5px !important;
}

/* Pour s'assurer que le ruban ne dépasse pas sur les petits écrans */
@media (max-width: 576px) {
  .ant-ribbon {
    right: 0 !important;
    font-size: 12px !important;
    padding: 3px 8px !important;
  }
}

/* Contenu de la carte - simplifié */
.event-card-content {
  padding: 16px;
  flex: 1 1;
  display: flex;
  flex-direction: column;
}

/* Titre - simplifié */
.event-card-title {
  margin-bottom: 14px !important;
  font-size: 1.2rem !important;
  line-height: 1.4 !important;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  color: #333333 !important;
  color: var(--text-color) !important;
  font-weight: 600 !important;
}

/* Conteneur principal d'informations - simplifié */
.event-card-info {
  margin-bottom: 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Section lieu - simplifiée */
.event-card-info-item.location {
  font-weight: 500;
  color: #333333;
  color: var(--text-color);
  display: flex;
  align-items: center;
  font-size: 0.95rem;
}

.event-card-info-item.location .anticon {
  color: #A5765C;
  color: var(--brown);
  font-size: 14px;
  margin-right: 8px;
}

/* Section date et heure - simplifiée */
.date-time-container {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.event-card-info-item.date {
  color: #333333;
  color: var(--text-color);
  font-weight: 500;
  display: flex;
  align-items: center;
  font-size: 0.95rem;
}

.event-card-info-item.date .anticon {
  color: #A5765C;
  color: var(--brown);
  margin-right: 8px;
  font-size: 14px;
}

.event-card-info-item.time {
  padding-left: 22px;
  display: flex;
  align-items: center;
  font-size: 0.85rem;
  color: #666;
}

.time-range {
  display: inline-block;
  font-weight: 500;
}

/* Section des places disponibles - simplifiée */
.event-card-info-item.seats {
  display: flex;
  align-items: center;
  font-size: 0.95rem;
}

.event-card-info-item.seats .anticon {
  color: #A5765C;
  color: var(--brown);
  margin-right: 8px;
  font-size: 14px;
}

.seats-info {
  display: flex;
  align-items: center;
  gap: 4px;
}

.seats-remaining {
  font-weight: 600;
  font-size: 1rem;
}

.seats-separator {
  margin: 0 1px;
  color: #ddd;
}

.seats-total {
  color: #666;
}

.seats-label {
  margin-left: 4px;
  font-size: 0.9rem;
  color: #666;
}

/* Couleurs selon le taux d'occupation - conservé mais simplifié */
.high-occupancy .seats-remaining {
  color: #e74c3c;
}

.medium-occupancy .seats-remaining {
  color: #f39c12;
}

.low-occupancy .seats-remaining {
  color: #27ae60;
}

/* Badge pour chiens acceptés - simplifié */
.event-card-info-item.animal-accepted {
  display: inline-flex;
  align-items: center;
  font-size: 0.9rem;
  color: #27ae60;
  font-weight: 500;
}

.event-card-info-item.animal-accepted .anticon {
  color: #27ae60;
  margin-right: 6px;
  font-size: 14px;
}

/* Description - simplifiée */
.event-card-description {
  font-size: 0.9rem;
  color: #666;
  line-height: 1.5;
  position: relative;
  overflow: hidden;
  margin-bottom: 16px;
  flex: 1 1;
}

/* Pied de carte - simplifié */
.event-card-footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: auto;
  padding-top: 12px;
  border-top: 1px solid #f0f0f0;
}

/* Style pour le type de paiement - simplifié */
.payment-type {
  display: flex;
  align-items: center;
  font-size: 0.85rem;
  font-weight: 500;
  color: #666;
}

.payment-type .anticon {
  margin-right: 6px;
  color: #A5765C;
  color: var(--brown);
  font-size: 14px;
}

.payment-type.on_site {
  color: #666;
}

.payment-type.online {
  color: #666;
}

.payment-type.free {
  color: #666;
}

/* Style pour le compteur de photos - simplifié */
.photo-count {
  display: flex;
  align-items: center;
  font-size: 0.85rem;
  color: #666;
}

.photo-count .anticon {
  margin-right: 5px;
  color: #999;
  font-size: 14px;
}

/* Responsivité pour les images */
@media (min-width: 576px) {

  .event-card-image-container,
  .event-card-no-image {
    height: 200px;
  }
}

@media (min-width: 768px) {

  .event-card-image-container,
  .event-card-no-image {
    height: 220px;
  }
}

/* Styling des boutons d'action - simplifié */
.event-card .ant-card-actions {
  border-top: 1px solid #f0f0f0;
  background: #fafafa;
}

.event-card .ant-card-actions li {
  margin: 0;
}

.event-card .ant-card-actions li span {
  color: #666;
}

.event-card .ant-card-actions li:hover span {
  color: #A5765C;
  color: var(--brown);
}

/* Switch de visibilité - simplifié */
.event-card .ant-switch {
  min-width: 40px;
}

.event-card .ant-switch-checked {
  background-color: #A5765C;
  background-color: var(--brown);
}

/* Bouton supprimer : rouge quand actif, bien grisé quand désactivé */
.event-card-delete-btn .anticon {
  color: #ff4d4f;
}

.event-card-delete-btn.ant-btn-disabled,
.event-card-delete-btn[disabled] {
  opacity: 0.45;
  cursor: not-allowed;
}

.event-card-delete-btn.ant-btn-disabled .anticon,
.event-card-delete-btn[disabled] .anticon {
  color: #bfbfbf !important;
}

/* Styles pour popover de participants - simplifiés */
.attendees-popover {
  max-width: 300px;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.event-attendees-popover {
  width: 280px;
  max-height: 350px;
}

.event-attendees-popover h4 {
  margin-top: 0;
  margin-bottom: 12px;
  font-size: 15px;
  color: #333333;
  color: var(--text-color);
  font-weight: 600;
  border-bottom: 1px solid #f0f0f0;
  padding-bottom: 8px;
}

.attendees-list {
  max-height: 280px;
  overflow-y: auto;
}

.attendees-list .ant-list-item {
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
}

.attendees-list .ant-list-item-meta-title {
  font-size: 14px;
  margin-bottom: 2px;
  color: #333333;
  color: var(--text-color);
  font-weight: 500;
}

.attendees-list .ant-list-item-meta-description {
  font-size: 12px;
  color: #999;
}

.attendees-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px 0;
  gap: 8px;
  color: #999;
}

.no-attendees {
  padding: 20px 0;
  text-align: center;
  color: #999;
  font-style: italic;
}
.event-email-modal .ant-modal-header {
  border-bottom: 1px solid #f0f0f0;
  padding: 16px 24px;
}

.event-email-modal-title {
  display: flex;
  align-items: center;
  font-size: 16px;
  font-weight: 600;
  color: var(--brown);
}

.event-info-preview {
  background: #f8f9fa;
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 24px;
}

.event-info-preview .ant-typography-title {
  margin-bottom: 4px !important;
  color: var(--gold);
}

.clients-selection {
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  overflow: hidden;
}

.clients-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 16px;
  background: #fafafa;
  border-bottom: 1px solid #f0f0f0;
}

.clients-list-container {
  max-height: 200px;
  overflow-y: auto;
  padding: 8px;
}

.clients-list .ant-list-item {
  padding: 8px 12px;
  border-radius: 4px;
  transition: background-color 0.2s;
  display: flex;
  align-items: center;
  flex-direction: row;
}

.clients-list .ant-list-item:hover {
  background-color: #f5f5f5;
}

.client-list-item .client-item-row {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 12px;
}

.clients-list .ant-list-item-meta {
  margin-left: 8px;
  display: flex;
  flex-direction: row;
  align-items: center;
}

.clients-list .ant-list-item-meta-title {
  font-size: 14px;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.clients-list .ant-list-item-meta-description {
  font-size: 12px;
  color: #8c8c8c;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.clients-list .ant-list-item-meta-avatar {
  flex-shrink: 0;
  margin-right: 12px;
}

.clients-list .ant-list-item-meta-content {
  flex: 1 1 auto;
  min-width: 0;
}

.clients-list .ant-avatar {
  flex-shrink: 0;
}

.loading-clients {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 24px;
  color: #8c8c8c;
}

.loading-clients .ant-spin {
  margin-right: 8px;
}

.no-clients {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 32px;
  color: #8c8c8c;
}

.no-clients .anticon {
  margin-bottom: 8px;
}

.modal-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 24px;
  padding-top: 16px;
  border-top: 1px solid #f0f0f0;
}

.event-email-modal .ant-form-item-label {
  font-weight: 600;
}

.event-email-modal .ant-input,
.event-email-modal .ant-input.ant-input-sm {
  border-radius: 6px;
}

.event-email-modal .ant-btn {
  border-radius: 6px;
  height: 36px;
}

.event-email-modal .ant-btn-primary {
  background: var(--brown);
  border-color: var(--brown);
}

.event-email-modal .ant-btn-primary:hover {
  background: #b5866b;
  border-color: #b5866b;
}

/* Scrollbar pour la liste des clients */
.clients-list-container::-webkit-scrollbar {
  width: 6px;
}

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

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

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

/* Responsive */
@media (max-width: 768px) {
  .event-email-modal {
    margin: 0 !important;
    max-width: 100% !important;
  }

  .event-email-modal .ant-modal {
    max-width: 100%;
    margin: 0;
  }

  .clients-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .clients-list-container {
    max-height: 150px;
  }

  .modal-actions {
    flex-direction: column;
    gap: 8px;
  }

  .modal-actions .ant-btn {
    width: 100%;
  }
}
.manage-pending-registrations-modal .ant-list-item {
    padding: 16px 0;
    border-bottom: 1px solid #f0f0f0;
}

.manage-pending-registrations-modal .ant-list-item:last-child {
    border-bottom: none;
}

.manage-pending-registrations-modal .ant-list-item-meta-avatar {
    margin-right: 16px;
}

.manage-pending-registrations-modal .ant-list-item-action {
    margin-left: 16px;
}

.manage-pending-registrations-modal .ant-list-item-action>li {
    padding: 0 4px;
}
/* =============================
   MODALES FORFAITS - DESIGN MODERNE
   Style cohérent pour toutes les modales
============================= */

.forfaits-modal-theme {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-beige: #faf6f2;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --border-radius: 12px;
  --shadow-light: 0 2px 8px rgba(0, 0, 0, 0.08);
  --shadow-medium: 0 6px 15px rgba(0, 0, 0, 0.1);
  --transition: all 0.3s ease;
}

/* =============================
   DIALOG GLOBAL OVERRIDES
============================= */

.MuiDialog-paper {
  border-radius: var(--border-radius) !important;
  font-family: var(--font-family) !important;
}

.MuiDialogTitle-root {
  font-family: var(--font-family) !important;
  font-weight: 700 !important;
  font-size: 1.5rem !important;
  color: var(--brown) !important;
  padding: 24px 24px 16px !important;
  border-bottom: 1px solid rgba(165, 118, 92, 0.1) !important;
}

.MuiDialogContent-root {
  padding: 24px !important;
  font-family: var(--font-family) !important;
}

.MuiDialogActions-root {
  padding: 16px 24px !important;
  border-top: 1px solid rgba(165, 118, 92, 0.1) !important;
  gap: 12px !important;
}

/* =============================
   TEXTFIELDS MODERNES
============================= */

.MuiTextField-root {
  font-family: var(--font-family) !important;
}

.MuiInputLabel-root {
  font-family: var(--font-family) !important;
  color: #666 !important;
}

.MuiInputLabel-root.Mui-focused {
  color: var(--brown) !important;
}

.MuiOutlinedInput-root {
  border-radius: 8px !important;
  transition: var(--transition) !important;
}

.MuiOutlinedInput-root:hover .MuiOutlinedInput-notchedOutline {
  border-color: var(--brown) !important;
}

.MuiOutlinedInput-root.Mui-focused .MuiOutlinedInput-notchedOutline {
  border-color: var(--brown) !important;
  border-width: 2px !important;
}

/* =============================
   BOUTONS MODERNES
============================= */

.modal-button-primary {
  background: var(--brown) !important;
  color: white !important;
  border-radius: 8px !important;
  padding: 10px 24px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  font-size: 1rem !important;
  transition: var(--transition) !important;
  font-family: var(--font-family) !important;
  box-shadow: 0 2px 8px rgba(165, 118, 92, 0.2) !important;
}

.modal-button-primary:hover {
  background: #b5866b !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3) !important;
}

.modal-button-secondary {
  background: transparent !important;
  color: var(--brown) !important;
  border: 2px solid var(--brown) !important;
  border-radius: 8px !important;
  padding: 10px 24px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  font-size: 1rem !important;
  transition: var(--transition) !important;
  font-family: var(--font-family) !important;
}

.modal-button-secondary:hover {
  background: rgba(165, 118, 92, 0.1) !important;
  border-color: #b5866b !important;
}

.modal-button-danger {
  background: var(--peach) !important;
  color: white !important;
  border-radius: 8px !important;
  padding: 10px 24px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  font-size: 1rem !important;
  transition: var(--transition) !important;
  font-family: var(--font-family) !important;
}

.modal-button-danger:hover {
  background: #e08e88 !important;
  transform: translateY(-2px) !important;
}

/* =============================
   STEPPER MODERNE
============================= */

.modern-stepper {
  margin-bottom: 32px !important;
}

.MuiStepLabel-label {
  font-family: var(--font-family) !important;
  font-weight: 500 !important;
  color: #666 !important;
}

.MuiStepLabel-label.Mui-active {
  color: var(--brown) !important;
  font-weight: 700 !important;
  font-size: 1.1rem !important;
}

.MuiStepLabel-label.Mui-completed {
  color: var(--brown) !important;
}

.MuiStepIcon-root {
  color: rgba(165, 118, 92, 0.2) !important;
}

.MuiStepIcon-root.Mui-active {
  color: var(--brown) !important;
}

.MuiStepIcon-root.Mui-completed {
  color: var(--brown) !important;
}

/* =============================
   CARTES DE SÉLECTION
============================= */

.selection-card {
  border: 2px solid rgba(165, 118, 92, 0.1);
  border-radius: var(--border-radius);
  padding: 20px;
  margin-bottom: 16px;
  cursor: pointer;
  transition: var(--transition);
  background: white;
}

.selection-card:hover {
  border-color: rgba(165, 118, 92, 0.3);
  box-shadow: var(--shadow-light);
  transform: translateY(-2px);
}

.selection-card.selected {
  border-color: var(--brown);
  background: rgba(165, 118, 92, 0.05);
  box-shadow: 0 0 0 3px rgba(165, 118, 92, 0.1);
}

.selection-card-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 12px;
}

.selection-card-title {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--brown);
  font-family: var(--font-family);
}

.selection-card-badge {
  background: linear-gradient(135deg, var(--gold), var(--orange));
  color: white;
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 0.9rem;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(246, 198, 116, 0.3);
}

.selection-card-description {
  color: #666;
  line-height: 1.6;
  margin-bottom: 12px;
  font-size: 0.95rem;
}

.selection-card-services {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}

.service-chip {
  background: rgba(165, 118, 92, 0.1);
  color: var(--brown);
  padding: 6px 12px;
  border-radius: 16px;
  font-size: 0.85rem;
  font-weight: 600;
}

/* =============================
   GROUPES DE RADIO MODERNES
============================= */

.payment-method-group {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  grid-gap: 16px;
  gap: 16px;
  margin: 24px 0;
}

.payment-method-option {
  border: 2px solid rgba(165, 118, 92, 0.1);
  border-radius: var(--border-radius);
  padding: 20px;
  cursor: pointer;
  transition: var(--transition);
  background: white;
  text-align: center;
}

.payment-method-option:hover {
  border-color: rgba(165, 118, 92, 0.3);
  box-shadow: var(--shadow-light);
  transform: translateY(-2px);
}

.payment-method-option.selected {
  border-color: var(--brown);
  background: rgba(165, 118, 92, 0.05);
  box-shadow: 0 0 0 3px rgba(165, 118, 92, 0.1);
}

.payment-method-icon {
  font-size: 3rem;
  margin-bottom: 12px;
  display: block;
}

.payment-method-label {
  font-weight: 600;
  color: var(--text-color);
  font-size: 1.1rem;
  font-family: var(--font-family);
}

/* =============================
   LISTE DES SERVICES
============================= */

.services-list-container {
  background: rgba(246, 198, 116, 0.05);
  border-radius: var(--border-radius);
  padding: 16px;
  margin: 16px 0;
}

.service-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px;
  margin-bottom: 8px;
  background: white;
  border-radius: 8px;
  transition: var(--transition);
  border: 1px solid rgba(165, 118, 92, 0.1);
}

.service-item:hover {
  box-shadow: var(--shadow-light);
  transform: translateX(4px);
}

.service-item-name {
  font-weight: 500;
  color: var(--text-color);
  flex: 1 1;
}

.service-item-quantity {
  display: flex;
  align-items: center;
  gap: 12px;
}

.service-item-quantity input {
  width: 80px;
  padding: 8px;
  border: 2px solid rgba(165, 118, 92, 0.2);
  border-radius: 6px;
  text-align: center;
  font-weight: 600;
  color: var(--brown);
  font-family: var(--font-family);
}

.service-item-quantity input:focus {
  outline: none;
  border-color: var(--brown);
}

.service-item-remove {
  color: var(--peach);
  cursor: pointer;
  transition: var(--transition);
}

.service-item-remove:hover {
  color: #e08e88;
  transform: scale(1.1);
}

/* =============================
   AUTOCOMPLETE
============================= */

.MuiAutocomplete-root {
  font-family: var(--font-family) !important;
}

.MuiAutocomplete-option {
  font-family: var(--font-family) !important;
  padding: 12px 16px !important;
}

.MuiAutocomplete-option:hover {
  background: rgba(165, 118, 92, 0.05) !important;
}

.MuiAutocomplete-option[aria-selected="true"] {
  background: rgba(165, 118, 92, 0.1) !important;
  color: var(--brown) !important;
  font-weight: 600 !important;
}

/* =============================
   ALERTS MODERNES
============================= */

.MuiAlert-root {
  border-radius: var(--border-radius) !important;
  font-family: var(--font-family) !important;
  box-shadow: var(--shadow-light) !important;
  margin-bottom: 16px !important;
}

.MuiAlert-standardInfo {
  background: rgba(33, 150, 243, 0.1) !important;
  color: #1976d2 !important;
}

.MuiAlert-standardSuccess {
  background: rgba(76, 175, 80, 0.1) !important;
  color: #388e3c !important;
}

.MuiAlert-standardWarning {
  background: rgba(255, 152, 0, 0.1) !important;
  color: #f57c00 !important;
}

.MuiAlert-standardError {
  background: rgba(244, 67, 54, 0.1) !important;
  color: #d32f2f !important;
}

/* =============================
   RÉCAPITULATIF
============================= */

.summary-container {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.05), rgba(238, 159, 153, 0.05));
  border-radius: var(--border-radius);
  padding: 24px;
  margin: 24px 0;
  border: 2px solid rgba(165, 118, 92, 0.1);
}

.summary-title {
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--brown);
  margin-bottom: 20px;
  font-family: var(--font-family);
  display: flex;
  align-items: center;
  gap: 8px;
}

.summary-item {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 12px 0;
  border-bottom: 1px dashed rgba(165, 118, 92, 0.2);
}

.summary-item:last-child {
  border-bottom: none;
}

.summary-label {
  color: #666;
  font-weight: 500;
}

.summary-value {
  color: var(--text-color);
  font-weight: 700;
}

.summary-value.price {
  color: var(--brown);
  font-size: 1.2rem;
  background: rgba(246, 198, 116, 0.2);
  padding: 6px 12px;
  border-radius: 20px;
}

/* =============================
   LOADING STATES
============================= */

.modal-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 40px;
  gap: 16px;
}

.modal-loading-text {
  color: #666;
  font-family: var(--font-family);
}

/* =============================
   EMPTY STATES
============================= */

.modal-empty-state {
  text-align: center;
  padding: 40px 20px;
  color: #999;
}

.modal-empty-icon {
  font-size: 4rem;
  margin-bottom: 16px;
  opacity: 0.5;
}

.modal-empty-text {
  font-size: 1.1rem;
  color: #666;
  font-family: var(--font-family);
}

/* =============================
   DIVIDERS
============================= */

.modal-divider {
  margin: 24px 0 !important;
  background-color: rgba(165, 118, 92, 0.1) !important;
}

/* =============================
   CHIPS MODERNES
============================= */

.MuiChip-root {
  font-family: var(--font-family) !important;
  font-weight: 600 !important;
  border-radius: 16px !important;
}

.chip-active {
  background-color: rgba(76, 175, 80, 0.1) !important;
  color: #388e3c !important;
}

.chip-archived {
  background-color: rgba(158, 158, 158, 0.1) !important;
  color: #757575 !important;
}

/* =============================
   SELECT MODERNE
============================= */

.MuiSelect-select {
  font-family: var(--font-family) !important;
}

.MuiMenuItem-root {
  font-family: var(--font-family) !important;
  padding: 12px 16px !important;
}

.MuiMenuItem-root:hover {
  background: rgba(165, 118, 92, 0.05) !important;
}

.MuiMenuItem-root.Mui-selected {
  background: rgba(165, 118, 92, 0.1) !important;
  color: var(--brown) !important;
  font-weight: 600 !important;
}

/* =============================
   RESPONSIVE
============================= */

@media (max-width: 768px) {
  .MuiDialogTitle-root {
    font-size: 1.3rem !important;
    padding: 20px 16px 12px !important;
  }

  .MuiDialogContent-root {
    padding: 16px !important;
  }

  .MuiDialogActions-root {
    padding: 12px 16px !important;
    flex-direction: column-reverse !important;
  }

  .MuiDialogActions-root button {
    width: 100% !important;
  }

  .payment-method-group {
    grid-template-columns: 1fr;
  }

  .selection-card {
    padding: 16px;
  }

  .summary-container {
    padding: 16px;
  }
}

@media (max-width: 480px) {
  .selection-card-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }

  .service-item {
    flex-direction: column;
    gap: 12px;
    align-items: flex-start;
  }

  .service-item-quantity {
    width: 100%;
    justify-content: space-between;
  }
}

/* =============================
   ANIMATIONS
============================= */

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

@keyframes slideUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
  }
}

.MuiDialog-paper {
  animation: slideUp 0.3s ease-out !important;
}

.selection-card,
.service-item,
.payment-method-option {
  animation: fadeIn 0.3s ease-out;
}

/* =============================
   HELPERS
============================= */

.text-center {
  text-align: center;
}

.mt-2 {
  margin-top: 16px;
}

.mb-2 {
  margin-bottom: 16px;
}

.mt-3 {
  margin-top: 24px;
}

.mb-3 {
  margin-bottom: 24px;
}


/* Client Link Hover */
.client-link-hover {
  text-decoration: none !important;
  color: inherit !important;
  transition: all 0.2s ease;
  cursor: pointer;
}

.client-link-hover:hover {
  color: var(--brown) !important;
  text-decoration: underline !important;
}
/* ForfaitList.css */

.forfaits-table {
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  background: white;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  border: 1px solid rgba(165, 118, 92, 0.1);
}

.forfaits-header-row {
  display: grid;
  grid-template-columns: 2fr 1fr 2fr 1.5fr;
  grid-gap: 16px;
  gap: 16px;
  padding: 20px 24px;
  background: linear-gradient(to right, rgba(165, 118, 92, 0.05), rgba(246, 198, 116, 0.05));
  border-bottom: 2px solid rgba(165, 118, 92, 0.1);
  font-weight: 600;
  color: #A5765C;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.5px;
}

.forfait-item {
  border-bottom: 1px solid rgba(165, 118, 92, 0.08);
  transition: all 0.3s ease;
  background: white;
}

.forfait-item:hover {
  background: rgba(246, 198, 116, 0.03);
  transform: translateX(2px);
}

.forfait-item.archived {
  opacity: 0.6;
  background: rgba(238, 159, 153, 0.02);
}

.forfait-row {
  display: grid;
  grid-template-columns: 2fr 1fr 2fr 1.5fr;
  grid-gap: 16px;
  gap: 16px;
  padding: 20px 24px;
  align-items: center;
}

.forfait-name {
  font-weight: 600;
  color: #333;
  display: flex;
  align-items: center;
  gap: 8px;
}

.archived-badge {
  background: linear-gradient(135deg, rgba(238, 159, 153, 0.2), rgba(238, 159, 153, 0.3));
  color: #c34236;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 0.7rem;
  font-weight: 500;
  text-transform: uppercase;
  letter-spacing: 0.3px;
}

.forfait-price {
  font-weight: 700;
  color: #A5765C;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.1), rgba(246, 198, 116, 0.2));
  padding: 6px 12px;
  border-radius: 20px;
  display: inline-block;
  text-align: center;
  min-width: 60px;
  box-shadow: 0 2px 4px rgba(246, 198, 116, 0.2);
}

.forfait-services {
  color: #666;
  font-size: 0.9rem;
}

.forfait-actions {
  display: flex;
  align-items: center;
  gap: 12px;
  justify-content: flex-end;
}

.forfait-description {
  padding: 0 24px 16px 24px;
  color: #555;
  line-height: 1.5;
  cursor: pointer;
  transition: all 0.3s ease;
  overflow: hidden;
}

.forfait-description.collapsed {
  max-height: 60px;
  position: relative;
}

.forfait-description.collapsed::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 24px;
  right: 24px;
  height: 20px;
  background: linear-gradient(transparent, white);
}

.forfait-description.expanded {
  max-height: none;
}

.forfait-services-list {
  padding: 0 24px 20px 24px;
  background: rgba(246, 198, 116, 0.02);
  border-top: 1px dashed rgba(165, 118, 92, 0.1);
}

.service-detail {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 8px 0;
  border-bottom: 1px solid rgba(165, 118, 92, 0.05);
  transition: all 0.2s ease;
}

.service-detail:hover {
  background: rgba(246, 198, 116, 0.05);
  transform: translateX(3px);
  border-radius: 6px;
  padding-left: 8px;
  padding-right: 8px;
}

.service-detail:last-child {
  border-bottom: none;
}

.service-name {
  font-weight: 500;
  color: #333;
}

.service-info {
  color: #666;
  font-size: 0.85rem;
  background: rgba(165, 118, 92, 0.08);
  padding: 4px 10px;
  border-radius: 12px;
}

.forfaits-empty {
  text-align: center;
  padding: 60px 40px;
  background: white;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  max-width: 600px;
  margin: 0 auto;
}

.empty-message {
  color: #A5765C;
  margin-bottom: 16px;
  font-weight: 600;
}

.forfaits-loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px;
  background: white;
  border-radius: 16px;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  max-width: 400px;
  margin: 0 auto;
}

/* Responsive Design */
@media (max-width: 768px) {
  .forfaits-header-row,
  .forfait-row {
    grid-template-columns: 1fr;
    gap: 8px;
  }
  
  .forfaits-header-row {
    display: none; /* Masquer les en-têtes sur mobile */
  }
  
  .forfait-row {
    padding: 16px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
  }
  
  .forfait-name {
    font-size: 1.1rem;
    width: 100%;
  }
  
  .forfait-price {
    align-self: flex-start;
  }
  
  .forfait-actions {
    width: 100%;
    justify-content: space-between;
  }
  
  .forfait-description,
  .forfait-services-list {
    padding-left: 16px;
    padding-right: 16px;
  }
  
  .forfaits-empty {
    padding: 40px 20px;
  }
}

@media (max-width: 480px) {
  .forfait-item {
    margin: 0 -16px;
    border-radius: 0;
  }
  
  .forfait-row {
    padding: 12px 16px;
  }
  
  .forfait-actions {
    flex-direction: column;
    gap: 8px;
    width: 100%;
  }
  
  .forfait-actions .MuiIconButton-root {
    width: 100%;
    justify-content: center;
  }
}

/* Animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.forfait-item {
  animation: fadeInUp 0.4s ease-out;
}

.forfait-item:nth-child(2) { animation-delay: 0.1s; }
.forfait-item:nth-child(3) { animation-delay: 0.2s; }
.forfait-item:nth-child(4) { animation-delay: 0.3s; }
.forfait-item:nth-child(5) { animation-delay: 0.4s; }

/* Styles pour les switches et boutons */
.forfait-actions .MuiSwitch-root .MuiSwitch-thumb {
  background-color: #A5765C;
}

.forfait-actions .MuiSwitch-root .MuiSwitch-track {
  background-color: rgba(165, 118, 92, 0.3);
}

.forfait-actions .MuiIconButton-root {
  color: #A5765C;
  transition: all 0.2s ease;
}

.forfait-actions .MuiIconButton-root:hover {
  background-color: rgba(165, 118, 92, 0.1);
  transform: scale(1.1);
} 
/* SubscriptionsPage.css */

.subscriptions-page {
  padding: 40px 24px;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(156, 39, 176, 0.05));
  font-family: 'Lato', sans-serif;
  max-width: 1100px;
  margin: 0 auto;
}

.subscriptions-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 32px;
  flex-wrap: wrap;
  gap: 16px;
}

.subscriptions-header h1 {
  color: #333;
  font-weight: 700;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.create-subscription-button {
  background: linear-gradient(45deg, #9C27B0, #E91E63) !important;
  color: white !important;
  border-radius: 25px !important;
  padding: 10px 24px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  box-shadow: 0 4px 12px rgba(156, 39, 176, 0.25) !important;
  transition: all 0.3s ease !important;
}

.create-subscription-button:hover {
  background: linear-gradient(45deg, #E91E63, #AD1457) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(156, 39, 176, 0.3) !important;
}

/* Cartes de statistiques */
.stat-card {
  background: linear-gradient(135deg, #fff, #fefefe) !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid rgba(156, 39, 176, 0.1) !important;
  transition: all 0.3s ease !important;
  position: relative;
  overflow: hidden;
}

.stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(156, 39, 176, 0.15) !important;
}

.stat-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #9C27B0, #E91E63);
}

.stat-card.basic::before {
  background: linear-gradient(90deg, #4CAF50, #8BC34A);
}

.stat-card.premium::before {
  background: linear-gradient(90deg, #FF9800, #FFC107);
}

.stat-card.vip::before {
  background: linear-gradient(90deg, #9C27B0, #E91E63);
}

.stat-card .MuiCardContent-root {
  padding: 24px !important;
}

.stat-card h4,
.stat-card h5 {
  font-weight: 700;
  color: #333;
  margin: 0;
}

/* Table des abonnements */
.subscriptions-page .MuiCard-root {
  background: linear-gradient(135deg, #fff, #fefefe) !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid rgba(156, 39, 176, 0.1) !important;
}

.subscriptions-page .MuiTableHead-root {
  background: linear-gradient(to right, rgba(156, 39, 176, 0.05), rgba(233, 30, 99, 0.05)) !important;
}

.subscriptions-page .MuiTableHead-root .MuiTableCell-root {
  font-weight: 600 !important;
  color: #9C27B0 !important;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.5px;
}

.subscriptions-page .MuiTableRow-root:hover {
  background-color: rgba(156, 39, 176, 0.03) !important;
}

.subscriptions-page .MuiTableCell-root {
  border-bottom: 1px solid rgba(156, 39, 176, 0.08) !important;
  padding: 16px !important;
}

/* Chips personnalisés */
.subscriptions-page .MuiChip-root {
  font-weight: 600;
  border-radius: 20px;
  transition: all 0.2s ease;
}

.subscriptions-page .MuiChip-root:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* Responsive */
@media (max-width: 768px) {
  .subscriptions-page {
    padding: 20px 16px;
  }

  .subscriptions-header h1 {
    font-size: 1.8rem;
    flex-direction: column;
    gap: 8px;
  }

  .stat-card .MuiCardContent-root {
    padding: 16px !important;
  }

  .subscriptions-page .MuiTable-root {
    min-width: 800px;
  }
}

/* Animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.stat-card {
  animation: fadeInUp 0.4s ease-out;
}

.stat-card:nth-child(1) {
  animation-delay: 0.1s;
}

.stat-card:nth-child(2) {
  animation-delay: 0.2s;
}

.stat-card:nth-child(3) {
  animation-delay: 0.3s;
}

.stat-card:nth-child(4) {
  animation-delay: 0.4s;
}

.stat-card:nth-child(5) {
  animation-delay: 0.5s;
}
/* CreditsManagementPage.css */

.credits-management-page {
  padding: 40px 24px;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
  font-family: 'Lato', sans-serif;
}

.credits-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 32px;
  flex-wrap: wrap;
  gap: 16px;
}

.credits-header h1 {
  color: #333;
  font-weight: 700;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
}

.gift-credits-button {
  background: linear-gradient(45deg, #F6C674, #FFA351) !important;
  color: white !important;
  border-radius: 25px !important;
  padding: 10px 24px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  box-shadow: 0 4px 12px rgba(246, 198, 116, 0.25) !important;
  transition: all 0.3s ease !important;
}

.gift-credits-button:hover {
  background: linear-gradient(45deg, #FFA351, #FF8A50) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(246, 198, 116, 0.3) !important;
}

/* Bouton retirer des crédits */
.sell-credits-button {
  background: transparent !important;
  color: #f44336 !important;
  border: 2px solid #f44336 !important;
  border-radius: 25px !important;
  padding: 10px 24px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  box-shadow: none !important;
  transition: all 0.3s ease !important;
}

.sell-credits-button:hover {
  background: #f44336 !important;
  color: white !important;
  border-color: #f44336 !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(244, 67, 54, 0.3) !important;
}

.sell-button {
  background: linear-gradient(45deg, #4CAF50, #45a049) !important;
  color: white !important;
  border-radius: 25px !important;
  padding: 10px 24px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  box-shadow: 0 4px 12px rgba(76, 175, 80, 0.25) !important;
  transition: all 0.3s ease !important;
}

.sell-button:hover {
  background: linear-gradient(45deg, #45a049, #3d8b40) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(76, 175, 80, 0.3) !important;
}

.sell-button:disabled {
  background: #ccc !important;
  color: #999 !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Cartes de statistiques spécialisées */
.stat-card {
  background: linear-gradient(135deg, #fff, #fefefe) !important;
  border-radius: 16px !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid rgba(246, 198, 116, 0.1) !important;
  transition: all 0.3s ease !important;
  position: relative;
  overflow: hidden;
}

.stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(246, 198, 116, 0.15) !important;
}

.stat-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, #F6C674, #FFA351);
}

.stat-card.revenue::before {
  background: linear-gradient(90deg, #4CAF50, #8BC34A);
}

.stat-card.credits::before {
  background: linear-gradient(90deg, #F6C674, #FFA351);
}

.stat-card.users::before {
  background: linear-gradient(90deg, var(--gold), var(--peach));
}

.stat-card.average::before {
  background: linear-gradient(90deg, #FF9800, #FFC107);
}

.stat-card.bonus::before {
  background: linear-gradient(90deg, #9C27B0, #E91E63);
}

.stat-card .MuiCardContent-root {
  padding: 24px !important;
}

.stat-card h4,
.stat-card h5 {
  font-weight: 700;
  color: #333;
  margin: 0;
}

/* Tables personnalisées */
.credits-management-page .MuiCard-root {
  background: linear-gradient(135deg, #fff, #fefefe) !important;
  border-radius: 16px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
  border: 1px solid rgba(246, 198, 116, 0.1) !important;
}

.credits-management-page .MuiTableHead-root {
  background: linear-gradient(to right, rgba(246, 198, 116, 0.05), rgba(255, 163, 81, 0.05)) !important;
}

.credits-management-page .MuiTableHead-root .MuiTableCell-root {
  font-weight: 600 !important;
  color: #F6C674 !important;
  text-transform: uppercase;
  font-size: 0.85rem;
  letter-spacing: 0.5px;
}

.credits-management-page .MuiTableRow-root:hover {
  background-color: rgba(246, 198, 116, 0.03) !important;
}

.credits-management-page .MuiTableCell-root {
  border-bottom: 1px solid rgba(246, 198, 116, 0.08) !important;
  padding: 16px !important;
}

/* Montants positifs/négatifs */
.positive {
  color: #4CAF50;
  font-weight: 600;
}

.negative {
  color: #f44336 !important;
  font-weight: 700 !important;
  text-shadow: 0 0 1px rgba(244, 67, 54, 0.3);
}

/* Chips personnalisés */
.credits-management-page .MuiChip-root {
  font-weight: 600;
  border-radius: 20px;
  transition: all 0.2s ease;
}

.credits-management-page .MuiChip-root:hover {
  transform: translateY(-1px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* Dialogue de cadeau */
.gift-button {
  background: linear-gradient(45deg, #F6C674, #FFA351) !important;
  color: white !important;
  border-radius: 25px !important;
  padding: 10px 24px !important;
  font-weight: 600 !important;
  text-transform: none !important;
  box-shadow: 0 4px 12px rgba(246, 198, 116, 0.25) !important;
  transition: all 0.3s ease !important;
}

.gift-button:hover {
  background: linear-gradient(45deg, #FFA351, #FF8A50) !important;
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(246, 198, 116, 0.3) !important;
}

.gift-button:disabled {
  background: #ccc !important;
  color: #999 !important;
  transform: none !important;
  box-shadow: none !important;
}

/* Responsive */
@media (max-width: 768px) {
  .credits-management-page {
    padding: 16px;
    min-height: calc(100vh - 56px - 56px);
    min-height: calc(100vh - var(--mobile-header-height, 56px) - var(--mobile-footer-height, 56px));
  }

  .credits-header {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 20px;
  }

  .credits-header h1 {
    font-size: 1.8rem;
    flex-direction: column;
    gap: 8px;
  }

  .gift-credits-button {
    padding: 8px 16px !important;
    font-size: 0.875rem !important;
    min-width: auto !important;
  }

  .stat-card {
    margin-bottom: 8px;
  }

  .stat-card .MuiCardContent-root {
    padding: 12px !important;
  }

  .credits-management-page .MuiTable-root {
    font-size: 0.875rem;
  }

  .credits-management-page .MuiTableCell-root {
    padding: 8px !important;
    font-size: 0.75rem;
  }

  .credits-management-page .MuiTableHead-root .MuiTableCell-root {
    font-size: 0.7rem;
    padding: 8px 6px !important;
  }

  /* Masquer certaines colonnes sur mobile */
  .credits-management-page .MuiTable-root .mobile-hide {
    display: none;
  }

  /* Onglets responsives */
  .credits-management-page .MuiTabs-root {
    margin-bottom: 16px;
  }

  .credits-management-page .MuiTab-root {
    min-width: 80px;
    padding: 8px 12px;
    font-size: 0.75rem;
  }

  /* Cartes de contenu mobile */
  .credits-management-page .MuiCard-root {
    margin-bottom: 16px;
    border-radius: 12px !important;
  }

  .credits-management-page .MuiCardContent-root {
    padding: 16px !important;
  }

  /* Dialogues mobile */
  .credits-management-page .MuiDialog-paper {
    margin: 16px;
    width: calc(100% - 32px);
    max-width: none !important;
  }

  .credits-management-page .MuiDialogContent-root {
    padding: 16px !important;
  }

  .credits-management-page .MuiDialogActions-root {
    padding: 16px !important;
    gap: 8px;
  }

  .credits-management-page .MuiDialogActions-root .MuiButton-root {
    flex: 1 1;
    min-width: auto;
  }

  /* Optimisations pour très petits écrans */
  @media (max-width: 480px) {
    .credits-management-page {
      padding: 12px;
    }

    .credits-header {
      margin-bottom: 16px;
    }

    .stat-card .MuiCardContent-root {
      padding: 8px !important;
    }

    .stat-card h5,
    .stat-card h6 {
      font-size: 1rem !important;
    }

    .credits-management-page .MuiTableCell-root {
      padding: 4px !important;
      font-size: 0.7rem;
    }

    .credits-management-page .MuiChip-root {
      font-size: 0.65rem;
      height: auto;
      padding: 2px 6px;
    }

    .credits-management-page .MuiButton-outlined {
      padding: 4px 8px;
      font-size: 0.7rem;
    }
  }
}

/* Animations */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.stat-card {
  animation: fadeInUp 0.4s ease-out;
}

.stat-card:nth-child(1) {
  animation-delay: 0.1s;
}

.stat-card:nth-child(2) {
  animation-delay: 0.2s;
}

.stat-card:nth-child(3) {
  animation-delay: 0.3s;
}

.stat-card:nth-child(4) {
  animation-delay: 0.4s;
}

.stat-card:nth-child(5) {
  animation-delay: 0.5s;
}

.credits-management-page .MuiCard-root {
  animation: fadeInUp 0.6s ease-out;
}

/* Styles pour les alertes */
.credits-management-page .MuiAlert-root {
  border-radius: 12px !important;
  border: 1px solid rgba(246, 198, 116, 0.2) !important;
}
/* src/pages/SettingsPage.css - Refonte V2 Modern Premium - SCOPED */

.settings-page {
  padding: 24px;
  max-width: 1200px;
  margin: 0 auto;
  background-color: #f8f9fa;
  min-height: 100vh;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* Header V2 Style */
.settings-page .header-container {
  text-align: center;
  margin-bottom: 32px;
  padding-top: 12px;
  animation: fadeInDown 0.6s ease;
}

.settings-page .header-container h2 {
  margin-bottom: 8px !important;
  color: #1e293b !important;
  font-size: 28px !important;
  font-weight: 800 !important;
  letter-spacing: -0.5px !important;
}

.settings-page .settings-banner {
  text-align: center;
  max-width: 600px;
  margin: 0 auto 40px auto;
  color: #64748b;
  font-size: 16px;
  line-height: 1.5;
}

/* Grid Layout */
.settings-page .settings-grid {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: 24px;
  gap: 24px;
  margin-bottom: 40px;
}

@media (min-width: 992px) {
  .settings-page .settings-grid {
    grid-template-columns: repeat(2, 1fr);
    /* 2 colonnes sur grand écran */
    align-items: start;
    /* Évite que les cartes s'étirent */
  }

  /* Faire en sorte que certaines cartes prennent toute la largeur si besoin */
  .settings-page .settings-card-full-width {
    grid-column: 1 / -1;
  }
}

/* Widget Card Style (inspiré de ProStatsV2) */
.settings-page .settings-widget-card {
  background: white;
  border-radius: 24px;
  padding: 32px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
  border: 1px solid transparent;
  /* Pour la transition */
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: visible;
  /* Important pour les select/tooltips */
  height: 100%;
  animation: fadeInUp 0.5s ease both;
  display: flex;
  flex-direction: column;
}

.settings-page .settings-widget-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 15px 30px rgba(0, 0, 0, 0.06);
  border-color: #f1f5f9;
}

/* Cartes compactes (cliquables → ouvrent une modale) */
.settings-page .settings-widget-card--compact {
  cursor: pointer;
  padding: 20px 24px;
  height: auto;
}

.settings-page .settings-widget-card--compact:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08);
  border-color: #e0e7ff;
}

.settings-page .settings-widget-card--compact:active {
  transform: scale(0.98);
}

/* Délais d'animation pour effet cascade */
.settings-page .settings-widget-card:nth-child(1) {
  animation-delay: 0.1s;
}

.settings-page .settings-widget-card:nth-child(2) {
  animation-delay: 0.15s;
}

.settings-page .settings-widget-card:nth-child(3) {
  animation-delay: 0.2s;
}

.settings-page .settings-widget-card:nth-child(4) {
  animation-delay: 0.25s;
}

.settings-page .settings-widget-card:nth-child(5) {
  animation-delay: 0.3s;
}

.settings-page .settings-widget-card:nth-child(6) {
  animation-delay: 0.35s;
}

/* Header de carte avec icône */
.settings-page .widget-header {
  display: flex;
  align-items: center;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid #f8fafc;
}

.settings-page .widget-icon-wrapper {
  width: 48px;
  height: 48px;
  border-radius: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  margin-right: 16px;
  flex-shrink: 0;
}

/* Couleurs d'icônes par thème */
.settings-page .widget-icon-wrapper.blue {
  background: #eff6ff;
  color: #1d4ed8;
}

.settings-page .widget-icon-wrapper.green {
  background: #f0fdf4;
  color: #15803d;
}

.settings-page .widget-icon-wrapper.orange {
  background: #fff7ed;
  color: #c2410c;
}

.settings-page .widget-icon-wrapper.purple {
  background: #f5f3ff;
  color: #7e22ce;
}

.settings-page .widget-icon-wrapper.red {
  background: #fef2f2;
  color: #b91c1c;
}

.settings-page .widget-icon-wrapper.grey {
  background: #f8fafc;
  color: #64748b;
}

.settings-page .widget-icon-wrapper.gold {
  background: #fffbeb;
  color: #b45309;
}

.settings-page .widget-title-container {
  flex: 1 1;
}

.settings-page .widget-title {
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
  margin: 0;
  letter-spacing: -0.3px;
}

.settings-page .widget-subtitle {
  font-size: 13px;
  color: #94a3b8;
  margin-top: 2px;
  font-weight: 500;
}

.settings-page .widget-content {
  flex: 1 1;
}

/* Contenu des formulaires */

/* Éléments de formulaire stylisés */
.settings-page .settings-row {
  margin-bottom: 20px;
}

.settings-page .settings-label {
  display: block;
  font-size: 14px;
  font-weight: 600;
  color: #475569;
  margin-bottom: 8px;
}

/* Adaptation des composants AntDesign SCOPED */
.settings-page .ant-input,
.settings-page .ant-input-password,
.settings-page .ant-input-affix-wrapper {
  border-radius: 12px !important;
  padding: 10px 14px !important;
  border-color: #e2e8f0 !important;
  background: #f8fafc !important;
}

.settings-page .ant-input:focus,
.settings-page .ant-input-password:focus-within,
.settings-page .ant-input-affix-wrapper:focus,
.settings-page .ant-input-affix-wrapper-focused {
  background: white !important;
  border-color: #3b82f6 !important;
  box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.1) !important;
}

.settings-page .ant-btn {
  border-radius: 12px !important;
  height: auto !important;
  padding: 10px 20px !important;
  font-weight: 600 !important;
  box-shadow: none !important;
}

/* We do NOT override color here to avoid black buttons */
.settings-page .ant-btn-primary:hover {
  transform: translateY(-1px);
}

.settings-page .ant-btn-default {
  border-color: #e2e8f0 !important;
  color: #64748b !important;
}

.settings-page .ant-btn-default:hover {
  color: #1e293b !important;
  border-color: #cbd5e1 !important;
  background: #f8fafc !important;
}

.settings-page .ant-switch {
  background-color: #e2e8f0;
}

.settings-page .ant-switch-checked {
  background-color: #10b981 !important;
  /* Vert émeraude moderne */
}

/* Sections spécifiques stylisées */
.settings-page .info-box-modern {
  padding: 16px;
  border-radius: 12px;
  font-size: 14px;
  line-height: 1.6;
  margin-bottom: 16px;
}

.settings-page .info-box-modern.info {
  background: #eff6ff;
  color: #1e40af;
  border: 1px solid #bfdbfe;
}

.settings-page .info-box-modern.warning {
  background: #fffbeb;
  color: #92400e;
  border: 1px solid #fde68a;
}

.settings-page .info-box-modern.success {
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
}

/* Google Sync Specifics */
.settings-page .sync-status-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #f8fafc;
  padding: 16px;
  border-radius: 16px;
  border: 1px solid #e2e8f0;
  margin-bottom: 20px;
}

.settings-page .sync-status-info h4 {
  margin: 0 0 4px 0;
  color: #1e293b;
  font-size: 15px;
}

.settings-page .sync-status-info p {
  margin: 0;
  color: #64748b;
  font-size: 13px;
}

/* ICS Link Styling */
.settings-page .ics-container {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  padding: 4px;
  display: flex;
  align-items: center;
  margin-top: 12px;
}

.settings-page .ics-input {
  flex: 1 1;
  border: none;
  background: transparent;
  padding: 12px 16px;
  font-family: 'Monaco', monospace;
  font-size: 13px;
  color: #475569;
}

.settings-page .ics-input:focus {
  outline: none;
}

/* Animations */
@keyframes fadeInDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Trustpilot Premium Button */
.settings-page .trustpilot-button {
  background: linear-gradient(135deg, #ffffff 0%, #f8fffe 100%);
  border: 2px solid #e0f2ed;
  border-radius: 16px;
  padding: 24px;
  cursor: pointer;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  position: relative;
  overflow: hidden;
}

.settings-page .trustpilot-button::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0, 182, 122, 0.05), transparent);
  transition: left 0.5s ease;
}

.settings-page .trustpilot-button:hover::before {
  left: 100%;
}

.settings-page .trustpilot-button:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 28px rgba(0, 182, 122, 0.15);
  border-color: #00B67A;
}

.settings-page .trustpilot-header-section {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 16px;
  flex-wrap: wrap;
  gap: 12px;
}

.settings-page .trustpilot-logo {
  display: flex;
  align-items: center;
}

.settings-page .trustpilot-logo svg {
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.08));
}

.settings-page .trustpilot-stars {
  display: flex;
  gap: 4px;
  align-items: center;
}

.settings-page .trustpilot-stars .anticon {
  animation: starPulse 2s ease-in-out infinite;
}

.settings-page .trustpilot-stars .anticon:nth-child(1) {
  animation-delay: 0s;
}

.settings-page .trustpilot-stars .anticon:nth-child(2) {
  animation-delay: 0.1s;
}

.settings-page .trustpilot-stars .anticon:nth-child(3) {
  animation-delay: 0.2s;
}

.settings-page .trustpilot-stars .anticon:nth-child(4) {
  animation-delay: 0.3s;
}

.settings-page .trustpilot-stars .anticon:nth-child(5) {
  animation-delay: 0.4s;
}

.settings-page .trustpilot-rating-text {
  font-size: 15px;
  font-weight: 600;
  color: #191919;
  margin-bottom: 8px;
  text-align: left;
}

.settings-page .trustpilot-cta {
  font-size: 14px;
  font-weight: 600;
  color: #00B67A;
  text-align: left;
  display: flex;
  align-items: center;
  gap: 6px;
  transition: all 0.3s ease;
}

.settings-page .trustpilot-button:hover .trustpilot-cta {
  gap: 10px;
  color: #008558;
}

@keyframes starPulse {

  0%,
  100% {
    transform: scale(1);
    opacity: 1;
  }

  50% {
    transform: scale(1.15);
    opacity: 0.85;
  }
}

/* Responsive */
@media (max-width: 500px) {
  .settings-page .trustpilot-header-section {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* --- Mobile Responsiveness Enhancements --- */
@media (max-width: 768px) {
  .settings-page {
    padding: 12px;
  }

  .settings-page .settings-widget-card {
    padding: 20px;
    border-radius: 20px;
  }

  .settings-page .header-container h2 {
    font-size: 24px !important;
  }
}

/* Notification Preferences List (Responsive Replacement for Table) */
.notification-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.notification-header-row {
  display: flex;
  padding: 12px;
  border-bottom: 1px solid #e2e8f0;
  color: #64748b;
  font-weight: 600;
  font-size: 14px;
}

.notification-header-label {
  flex: 1 1;
}

.notification-header-action {
  width: 80px;
  text-align: center;
}

.notification-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  padding: 16px 12px;
  border-bottom: 1px solid #f1f5f9;
}

.notification-item:last-child {
  border-bottom: none;
}

.notification-info {
  flex: 1 1;
  display: flex;
  align-items: center;
  gap: 12px;
  padding-right: 16px;
}

.notification-icon {
  font-size: 20px;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f1f5f9;
  border-radius: 8px;
  flex-shrink: 0;
}

.notification-text {
  display: flex;
  flex-direction: column;
}

.notification-label {
  font-weight: 600;
  color: #334155;
  font-size: 14px;
  margin-bottom: 2px;
}

.notification-desc {
  font-size: 12px;
  color: #94a3b8;
  line-height: 1.3;
}

.notification-actions {
  display: flex;
  gap: 0;
}

.notification-action {
  width: 80px;
  display: flex;
  justify-content: center;
}

/* Mobile Layout for Notifications */
@media (max-width: 768px) {
  .notification-header-row {
    display: none;
    /* Hide header on mobile */
  }

  .notification-item {
    flex-direction: column;
    align-items: stretch;
    padding: 20px 0;
  }

  .notification-info {
    margin-bottom: 16px;
    padding-right: 0;
  }

  .notification-actions {
    display: flex;
    justify-content: space-between;
    background: #f8fafc;
    padding: 12px;
    border-radius: 12px;
  }

  .notification-action {
    width: auto;
    flex: 1 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
  }

  .notification-action::before {
    content: attr(data-label);
    font-size: 11px;
    color: #64748b;
    font-weight: 600;
    text-transform: uppercase;
  }
}

/* =========================================
   NOTIFICATION PREFERENCES V2 (Redesign)
   ========================================= */

.notification-list-v2 {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 8px;
}

.notification-header-v2 {
  display: flex;
  align-items: center;
  padding: 0 16px 12px 16px;
  border-bottom: 2px solid #f1f5f9;
  color: #94a3b8;
  font-weight: 600;
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.notification-row-v2 {
  display: flex;
  align-items: center;
  background: white;
  padding: 10px 16px;
  border-radius: 12px;
  border: 1px solid #f1f5f9;
  transition: all 0.2s ease;
}

.notification-row-v2:hover {
  border-color: #cbd5e1;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
  transform: translateY(-1px);
}

.col-main {
  flex: 1 1;
  display: flex;
  align-items: center;
  gap: 10px;
  padding-right: 12px;
}

.col-action {
  width: 80px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-shrink: 0;
}

.icon-box-v2 {
  width: 36px;
  height: 36px;
  border-radius: 10px;
  /* Soft rounded corners like iOS */
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  flex-shrink: 0;
  box-shadow: 0 2px 6px rgba(99, 102, 241, 0.15);
}

.gradient-purple {
  /* Premium purple-indigo gradient matching the reference image */
  background: linear-gradient(135deg, #6366f1 0%, #4f46e5 100%);
  border: 1px solid rgba(255, 255, 255, 0.1);
}

.text-content-v2 {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.text-content-v2 .title {
  font-size: 13px;
  font-weight: 600;
  color: #1e293b;
}

.text-content-v2 .description {
  font-size: 12px;
  color: #94a3b8;
  line-height: 1.3;
}

/* Mobile Responsive V2 */
@media (max-width: 768px) {
  .notification-header-v2 {
    display: none;
  }

  .notification-row-v2 {
    flex-direction: column;
    align-items: stretch;
    gap: 20px;
  }

  .col-main {
    padding-right: 0;
  }

  .col-action {
    width: auto;
    justify-content: space-between;
    flex-direction: row;
    background: #f8fafc;
    padding: 12px 16px;
    border-radius: 12px;
    margin-top: 4px;
  }

  /* Add labels for mobile */
  .col-action::before {
    content: attr(data-label);
    font-size: 13px;
    font-weight: 500;
    color: #475569;
  }
}

/* Déclencheur secret menu dev : 5 taps sur "Session active" — aspect normal, pas de bouton */
.developer-secret-trigger {
  cursor: default;
  -webkit-user-select: none;
          user-select: none;
}

.developer-secret-trigger:hover {
  color: inherit;
}
.developer-api-card {
  margin-top: 16px;
}

.developer-api-header {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.developer-api-panel .ant-collapse-header {
  align-items: center;
}

.developer-api-content {
  padding: 8px 0;
}

.developer-api-platform {
  margin-bottom: 12px;
}

.developer-api-urls {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 12px;
}

.developer-api-urls .ant-typography {
  word-break: break-all;
}

.developer-api-actions {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  margin-bottom: 12px;
}

.developer-api-check-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  border: 1px solid #d9d9d9;
  border-radius: 6px;
  background: #fafafa;
  cursor: pointer;
  font-size: 13px;
}

.developer-api-check-btn:hover:not(:disabled) {
  border-color: #A5765C;
  color: #A5765C;
}

.developer-api-check-btn:disabled {
  cursor: not-allowed;
  opacity: 0.7;
}

.developer-api-results {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid #f0f0f0;
}

.developer-api-result-block {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.dev-api-health-row {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.dev-api-health-row .ant-tag {
  margin-right: 0;
}

/* PricingCaseCard Styles */

.pricing-case-card {
    border-radius: 12px;
    border: 1px solid #f0f0f0;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.02);
    transition: all 0.2sease-in-out;
    background: #fff;
    height: 100%;
}

.pricing-case-card:hover {
    border-color: #d9d9d9;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.pricing-case-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 16px;
    gap: 16px;
}

.pricing-case-name {
    margin: 0 0 8px 0;
    font-size: 16px;
    font-weight: 600;
    color: #262626;
    line-height: 1.4;
}

.pricing-case-meta {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

/* Prix intégré et sobre */
.pricing-case-price {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    background: #f9f9f9;
    padding: 8px 12px;
    border-radius: 8px;
    color: #262626;
    border: 1px solid #f0f0f0;
    min-width: 80px;
}

.price-amount {
    font-size: 18px;
    font-weight: 700;
    color: #1f1f1f;
    line-height: 1.2;
}

.price-unit {
    font-size: 11px;
    color: #8c8c8c;
    font-weight: 500;
}

.pricing-case-description {
    color: #595959;
    margin: 0 0 16px 0;
    font-size: 13px;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 40px;
    /* Hauteur fixe pour alignement */
}

.pricing-case-features {
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #f0f0f0;
}

.feature-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #595959;
}

.feature-item svg {
    font-size: 16px;
}

.feature-empty {
    opacity: 0.6;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .pricing-case-header {
        flex-direction: column;
        gap: 12px;
    }

    .pricing-case-price {
        align-self: flex-start;
    }
}
/* PricingCasesPage Styles */

.pricing-cases-page {
    padding: 24px;
    max-width: 1400px;
    margin: 0 auto;
}

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 32px;
    flex-wrap: wrap;
    gap: 16px;
}

.page-header h2 {
    margin: 0;
    font-size: 28px;
    font-weight: 700;
    color: #262626;
}

.page-description {
    margin: 8px 0 0 0;
    font-size: 14px;
    color: #8c8c8c;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .pricing-cases-page {
        padding: 16px;
    }

    .page-header {
        flex-direction: column;
        align-items: stretch;
    }

    .page-header button {
        width: 100%;
    }
}
.police-book-page {
    padding: 24px;
    max-width: 1200px;
    margin: 0 auto;
}

.police-book-page.embedded {
    padding: 24px 0 0 0;
}

.police-book-header {
    margin-bottom: 32px;
}

.police-book-header .title-section {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    margin-top: 8px;
}

.stats-row {
    margin-bottom: 24px;
}

.stat-card {
    border-radius: 12px;
    border: 1px solid #f0f0f0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

.filter-card {
    margin-bottom: 24px;
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.7);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
}

.police-table {
    background: white;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.entity-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.animal-name {
    font-weight: 600;
    font-size: 15px;
    display: flex;
    align-items: center;
}

.icon-gold {
    color: #A5765C;
    margin-right: 8px;
}

.owner-info {
    font-size: 13px;
    color: #8c8c8c;
    display: flex;
    align-items: center;
    gap: 6px;
}

.checkout-unit {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.unit-info {
    font-size: 14px;
    color: #262626;
    display: flex;
    align-items: center;
    gap: 6px;
}

.date-info {
    font-size: 12px;
}

.legal-notice {
    margin-top: 32px;
    padding: 16px;
    background: #fafafa;
    border-radius: 8px;
    display: flex;
    align-items: flex-start;
}

@media (max-width: 768px) {
    .police-book-header .title-section {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .police-book-header .title-section .ant-btn {
        width: 100%;
    }
}
/* CSS Refreshed */

/* Boarding Page Layout */
.boarding-page {
    padding: 24px;
    padding: var(--spacing-6, 24px);
    max-width: 1100px;
    margin: 0 auto;
    min-height: 100vh;
}

/* Header */
.boarding-header {
    text-align: center;
    margin-bottom: 32px;
    margin-bottom: var(--spacing-8, 32px);
    padding: 32px;
    padding: var(--spacing-8, 32px);
    /* Transparent header for more immersive feel, title stands on its own */
    background: transparent;
}

.boarding-header h1 {
    font-size: 36px;
    font-size: var(--font-size-4xl, 36px);
    font-weight: 800;
    /* Extra bold */
    color: #2c3e50;
    margin: 0 0 8px 0;
    margin: 0 0 var(--spacing-2, 8px) 0;
    letter-spacing: -1px;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.boarding-header p {
    font-size: 18px;
    font-size: var(--font-size-lg, 18px);
    /* Larger subtitle */
    color: #7f8c8d;
    margin: 0;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

/* Actions Bar */
.actions-bar {
    display: flex;
    gap: 16px;
    gap: var(--spacing-4, 16px);
    margin-bottom: 48px;
    /* More breathing room */
    justify-content: center;
}

/* --- IMMERSIVE ZONE CARD (Pool) --- */
.pool-card {
    background: white;
    border-radius: 24px;
    /* Very rounded */
    border: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.04), 0 2px 8px rgba(0, 0, 0, 0.02);
    /* Soft, deep shadow */
    margin-bottom: 40px;
    overflow: visible;
    /* Allow elements to pop out if needed */
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    position: relative;
}

.pool-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06), 0 4px 12px rgba(0, 0, 0, 0.03);
}

/* Zone Header as a "Banner" */
.pool-header {
    padding: 24px 32px;
    border-bottom: 1px solid rgba(0, 0, 0, 0.03);
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: linear-gradient(135deg, #ffffff 0%, #fcfbf9 100%);
    border-radius: 24px 24px 0 0;
}

.pool-title-group {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.pool-title-group h3 {
    margin: 0;
    font-size: 22px;
    font-weight: 800;
    color: #2c3e50;
    letter-spacing: -0.5px;
}

.pool-content {
    padding: 32px;
}

.pool-description {
    margin-bottom: 24px;
    color: #7f8c8d;
    font-size: 15px;
    line-height: 1.6;
    background: #fdfdfd;
    padding: 16px 20px;
    border-radius: 12px;
    border: 1px solid rgba(0, 0, 0, 0.03);
    border-left: 4px solid #A5765C;
    /* Brand accent */
}

/* --- IMMERSIVE UNITS GRID --- */
.units-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    /* Slightly wider cards */
    grid-gap: 20px;
    gap: 20px;
}

.unit-card {
    background: white;
    border: 1px solid #eee;
    border-radius: 16px;
    padding: 20px;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
    display: flex;
    flex-direction: column;
    gap: 12px;
    position: relative;
    height: 100%;
}

/* Interactive Tile Effect */
.unit-card:hover {
    border-color: #A5765C;
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 12px 24px rgba(165, 118, 92, 0.15);
    z-index: 2;
}

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

.unit-name {
    font-weight: 700;
    color: #2c3e50;
    font-size: 17px;
}

.unit-details {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex-grow: 1;
}

.unit-detail-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: #636e72;
}

.unit-price {
    font-weight: 800;
    color: #A5765C;
    font-size: 16px;
}

/* Pricing Tag Detail */
.unit-pricing-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    background: #f0f7ff;
    border-radius: 6px;
    color: #1890ff;
    font-size: 12px;
    font-weight: 600;
    width: -webkit-fit-content;
    width: fit-content;
}

.empty-state {
    text-align: center;
    padding: 60px 40px;
    color: #95a5a6;
    background: #fafafa;
    border-radius: 16px;
    border: 2px dashed #e0e0e0;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
}

.empty-state p {
    font-size: 16px;
    margin: 0;
}

/* --- MODAL IMMERSIVE STYLES --- */
/* (These will be used by classNames passed to Modal) */

.immersive-schedule-group {
    background: #f9f9f9;
    padding: 24px;
    border-radius: 16px;
    border: 1px solid #eee;
    margin-bottom: 24px;
}

.schedule-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
}

.schedule-title {
    font-size: 16px;
    font-weight: 700;
    color: #2c3e50;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Helper Classes */
.active-clickable {
    cursor: pointer !important;
    transition: all 0.2s ease;
}

.active-clickable:hover {
    background-color: #e6f7ff !important;
    border-color: #91d5ff !important;
    transform: scale(1.05);
}

.manage-link {
    font-size: 13px;
    color: #A5765C;
    font-weight: 600;
    transition: all 0.2s ease;
}

.pool-card:hover .manage-link {
    text-decoration: underline;
    opacity: 0.8;
}
/* src/pages/UnavailabilitiesPage.css */
.unavailabilities-page {
  max-width: 800px; /* Adjust this value as needed */
  margin: 20px auto; /* Adds some top/bottom margin and centers horizontally */
  padding: 20px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1); /* Optional: adds a subtle shadow */
  background-color: #fff; /* Optional: adds a background color */
  border-radius: 8px; /* Optional: rounds the corners */
}

.unavailability-form .form-group {
  margin-bottom: 15px;
}

.unavailability-form label {
  display: block;
  margin-bottom: 5px;
  font-weight: bold;
}

.unavailability-form .ant-picker {
  width: 100%; /* Make DatePicker take full width of its container */
}

.unavailability-form input[type="text"] {
  width: 100%;
  padding: 8px;
  border: 1px solid #d9d9d9;
  border-radius: 4px;
  box-sizing: border-box; /* Include padding and border in the element's total width and height */
}

.unavailability-form .form-actions {
  text-align: right; /* Align button to the right */
  margin-top: 20px;
}

/* Style the primary button (marron = bouton d'action, charte Rintintin) */
.primary-btn {
  background-color: #8a7b6b;
  color: white;
  border: none;
  padding: 10px 15px;
  border-radius: 4px;
  cursor: pointer;
  font-size: 14px;
  transition: background-color 0.3s ease;
}

.primary-btn:hover {
  background-color: #9d8d7c;
}

.primary-btn:disabled {
  background-color: #f5f5f5;
  color: rgba(0, 0, 0, 0.25);
  cursor: not-allowed;
}

/* AssociationPlanningPage.css */

.association-planning-page {
  padding: 2rem;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
  max-width: 1100px;
  margin: 0 auto;
}

.association-header {
  margin-bottom: 2rem;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  border: 1px solid rgba(165, 118, 92, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.association-header:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.association-header h2 {
  color: var(--brown);
  font-size: 1.8rem;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
}


/* Légende des membres */
.members-legend {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.08), rgba(238, 159, 153, 0.08));
  border: 1px solid rgba(165, 118, 92, 0.15);
  border-radius: 12px;
  margin-bottom: 1.5rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  transition: all 0.3s ease;
}

.members-legend:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.1);
}

.members-legend .ant-card-head {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-bottom: 2px solid rgba(165, 118, 92, 0.15);
}

.members-legend .ant-card-head-title {
  font-weight: 700;
  color: var(--brown);
  font-size: 1.1rem;
}

.member-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 8px;
  border-radius: 6px;
  transition: all 0.2s ease;
  border: 1px solid transparent;
}

.member-item:hover {
  background-color: rgba(165, 118, 92, 0.06);
  border-color: rgba(165, 118, 92, 0.15);
}

.member-item.disabled {
  opacity: 0.4;
  background-color: rgba(0, 0, 0, 0.02);
}

.member-item .ant-checkbox-wrapper {
  margin: 0;
}

.member-item .member-name:hover {
  color: var(--gold);
}

.member-name {
  font-size: 12px;
  font-weight: 500;
  color: #333;
}

/* Boutons d'action */
.action-buttons {
  gap: 12px;
}

.action-buttons .ant-btn {
  border-radius: 8px;
  font-weight: 600;
  height: 40px;
  padding: 0 20px;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.action-buttons .ant-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.action-buttons .ant-btn-primary {
  background: linear-gradient(45deg, var(--brown), #b5866b);
  border: none;
}

.action-buttons .ant-btn-primary:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58);
}

.action-buttons .ant-btn-default {
  border-color: var(--brown);
  color: var(--brown);
}

.action-buttons .ant-btn-default:hover {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.1), rgba(238, 159, 153, 0.1));
  border-color: var(--gold);
}

/* Toggle all button */
.toggle-all-btn {
  background: linear-gradient(135deg, var(--gold), #ffca85);
  border: none;
  color: var(--brown);
  font-weight: 600;
}

.toggle-all-btn:hover {
  background: linear-gradient(135deg, #ffca85, var(--gold));
  color: var(--brown);
}

/* Container du calendrier */
.calendar-container {
  background: white;
  border-radius: 12px;
  padding: 1rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  overflow: auto;
}

/* Calendrier standard pour l'association */
.association-planning-page .rbc-calendar {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
}

/* Toolbar */
.association-planning-page .rbc-toolbar {
  padding: 1rem;
  flex-wrap: wrap;
  gap: 0.5rem;
  justify-content: space-between;
  align-items: center;
}

.association-planning-page .rbc-toolbar button {
  border-radius: 6px;
  padding: 8px 16px;
  font-weight: 500;
  transition: all 0.2s ease;
}

.association-planning-page .rbc-toolbar button:hover {
  background-color: rgba(165, 118, 92, 0.1);
}

.association-planning-page .rbc-toolbar .rbc-active {
  background-color: #A5765C;
  background-color: var(--brown, #A5765C);
  color: white;
}

/* Events */
.association-planning-page .rbc-event {
  font-size: 12px;
  padding: 2px 5px;
  border-radius: 4px;
}

/* Time slots */
.association-planning-page .rbc-time-slot {
  min-height: 40px;
}

/* Responsive - Tablettes */
@media (max-width: 1024px) {
  .association-planning-page {
    padding: 1rem;
  }

  .calendar-container {
    padding: 0.75rem;
  }

  .association-planning-page .rbc-toolbar {
    padding: 0.75rem;
  }

  .association-header h2 {
    font-size: 1.5rem;
  }

  .member-item {
    font-size: 11px;
  }
}

/* Responsive - Mobile */
@media (max-width: 768px) {
  .association-planning-page {
    padding: 0.5rem;
  }

  .association-header {
    padding: 1rem;
  }

  .association-header h2 {
    font-size: 1.3rem;
  }

  .calendar-container {
    padding: 0.5rem;
    overflow-x: auto;
  }

  .members-legend .ant-card-body {
    padding: 12px;
  }

  .member-item {
    font-size: 10px;
    gap: 4px;
    padding: 2px 6px;
  }

  .member-name {
    font-size: 11px;
  }

  .action-buttons {
    flex-direction: column;
    align-items: stretch;
  }

  /* Toolbar mobile */
  .association-planning-page .rbc-toolbar {
    flex-direction: column;
    padding: 0.5rem;
    gap: 0.5rem;
  }

  .association-planning-page .rbc-toolbar-label {
    font-size: 14px;
    padding: 0.5rem 0;
  }

  .association-planning-page .rbc-toolbar button {
    padding: 6px 12px;
    font-size: 12px;
  }

  /* Events mobile */
  .association-planning-page .rbc-event {
    font-size: 10px;
    padding: 1px 3px;
  }

  /* Time header mobile */
  .association-planning-page .rbc-time-header-content {
    font-size: 11px;
  }

  .association-planning-page .rbc-header {
    padding: 8px 4px;
    font-size: 11px;
  }

  /* Time gutter mobile */
  .association-planning-page .rbc-time-gutter {
    font-size: 10px;
  }

  .association-planning-page .rbc-time-slot {
    min-height: 35px;
  }
}

/* Responsive - Très petit mobile */
@media (max-width: 480px) {
  .association-planning-page {
    padding: 0.25rem;
  }

  .association-header {
    padding: 0.75rem;
  }

  .association-header h2 {
    font-size: 1.1rem;
  }

  .calendar-container {
    padding: 0.25rem;
  }

  .members-legend {
    font-size: 11px;
  }

  .member-item {
    font-size: 9px;
    gap: 3px;
    padding: 2px 4px;
  }

  .association-planning-page .rbc-toolbar {
    padding: 0.25rem;
  }

  .association-planning-page .rbc-toolbar button {
    padding: 4px 8px;
    font-size: 11px;
  }

  .association-planning-page .rbc-event {
    font-size: 9px;
  }

  .association-planning-page .rbc-time-slot {
    min-height: 30px;
  }
}

/* Tooltip personnalisé */
.ant-tooltip-inner {
  background: rgba(0, 0, 0, 0.9);
  border-radius: 6px;
  font-size: 12px;
  max-width: 250px;
}

.ant-tooltip-arrow::before {
  background: rgba(0, 0, 0, 0.9);
}

/* Avatar des membres */
.member-avatar {
  border: 2px solid white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Tags de rôle */
.ant-tag {
  border-radius: 12px;
  font-size: 10px;
  font-weight: 600;
  padding: 2px 8px;
  border: none;
}

/* Message d'état vide */
.empty-state {
  text-align: center;
  padding: 40px 20px;
  color: #8c8c8c;
}

.empty-state h3 {
  color: #595959;
  margin-bottom: 8px;
}
/* AssociationMembersPage.css */

.association-members-page {
  padding: 2rem;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
  max-width: 1100px;
  margin: 0 auto;
}

.association-header {
  margin-bottom: 2rem;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  border: 1px solid rgba(165, 118, 92, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.association-header:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.association-header h2 {
  color: var(--brown);
  font-size: 1.8rem;
  margin-bottom: 0.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 700;
}

.association-header h2 .anticon {
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {

  0%,
  100% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.1);
  }
}

/* Statistiques */
.stats-row {
  margin-bottom: 2rem;
}

.stats-card {
  text-align: center;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  background: linear-gradient(135deg, #ffffff, #fafafa);
  border: 1px solid rgba(165, 118, 92, 0.1);
  overflow: hidden;
  position: relative;
}

.stats-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--gold), var(--peach));
}

.stats-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.stats-card .ant-statistic-title {
  font-size: 13px;
  color: #666;
  margin-bottom: 8px;
  font-weight: 500;
}

.stats-card .ant-statistic-content {
  font-size: 28px;
  font-weight: 700;
}

/* Table des membres */
.members-table-card {
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(165, 118, 92, 0.1);
  overflow: hidden;
  background: white;
}

.members-table-card .ant-card-head {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  color: var(--brown);
  border-radius: 12px 12px 0 0;
  border-bottom: 2px solid rgba(165, 118, 92, 0.15);
}

.members-table-card .ant-card-head-title {
  color: var(--brown);
  font-weight: 700;
  font-size: 1.1rem;
}

.members-table-card .ant-table-thead>tr>th {
  background: linear-gradient(135deg, #fafafa, #f5f5f5);
  font-weight: 700;
  color: var(--brown);
  border-bottom: 2px solid rgba(165, 118, 92, 0.1);
  padding: 16px 12px;
}

.members-table-card .ant-table-tbody>tr {
  transition: all 0.3s ease;
}

.members-table-card .ant-table-tbody>tr:hover>td {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.08), rgba(238, 159, 153, 0.08));
  cursor: pointer;
}

/* Ligne suspendue */
.suspended-row {
  opacity: 0.6;
  background-color: #fafafa;
}

.suspended-row:hover {
  opacity: 0.8;
}

/* Avatar des membres */
.member-avatar {
  border: 2px solid white;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Tags de rôle et statut */
.role-tag {
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border: none;
}

.status-tag {
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border: none;
}

/* Modal de détails */
.member-details-modal .ant-modal-header {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.25), rgba(238, 159, 153, 0.25));
  color: var(--brown);
  border-radius: 8px 8px 0 0;
}

.member-details-modal .ant-modal-title {
  color: var(--brown);
  font-weight: 700;
}

.member-details-modal .ant-descriptions-item-label {
  font-weight: 600;
  color: #333;
}

.member-details-modal .ant-descriptions-item-content {
  color: #666;
}

/* Badge de compteur */
.members-badge {
  background: linear-gradient(135deg, var(--gold), var(--peach));
  border: none;
}

/* Responsive */
@media (max-width: 768px) {
  .association-members-page {
    padding: 0.5rem;
  }

  .stats-row {
    margin-bottom: 1rem;
  }

  .stats-card {
    margin-bottom: 1rem;
  }

  .members-table-card .ant-table {
    font-size: 12px;
  }

  .members-table-card .ant-table-thead>tr>th {
    padding: 8px 4px;
    font-size: 11px;
  }

  .members-table-card .ant-table-tbody>tr>td {
    padding: 8px 4px;
  }
}

/* Animation pour les cartes de stats */
@keyframes statsAppear {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.stats-card {
  animation: statsAppear 0.5s ease-out;
}

.stats-card:nth-child(1) {
  animation-delay: 0.1s;
}

.stats-card:nth-child(2) {
  animation-delay: 0.2s;
}

.stats-card:nth-child(3) {
  animation-delay: 0.3s;
}

.stats-card:nth-child(4) {
  animation-delay: 0.4s;
}

.members-table-card {
  animation: fadeIn 0.6s ease-out 0.5s both;
}

/* Hover effects */
.member-row {
  transition: background-color 0.2s ease;
  cursor: pointer;
}

.member-row:hover {
  background-color: rgba(165, 118, 92, 0.06);
}

/* Bouton de retour */
.back-button {
  border-radius: 8px;
  font-weight: 600;
  margin-bottom: 1rem;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border-color: var(--brown);
  color: var(--brown);
}

.back-button:hover {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.1), rgba(238, 159, 153, 0.1));
  border-color: var(--gold);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

/* Description de l'association */
.association-description {
  color: #666;
  font-style: italic;
  margin-top: 0.5rem;
}

/* Empty state */
.empty-state {
  text-align: center;
  padding: 40px 20px;
  color: #8c8c8c;
}

.empty-state h3 {
  color: #595959;
  margin-bottom: 8px;
}
/* AssociationMemberProfilePage.css */

.member-profile-page {
  padding: 2rem;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
}

.profile-header-card {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  margin-bottom: 2rem;
  overflow: hidden;
  border: 1px solid rgba(165, 118, 92, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.profile-header-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.profile-avatar {
  border: 4px solid var(--gold);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.2);
  transition: all 0.3s ease;
}

.profile-avatar:hover {
  transform: scale(1.08);
  border-color: var(--peach);
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.3);
}

.profile-name {
  margin: 0.5rem 0 0 0;
  color: var(--brown);
  font-weight: 700;
  font-size: 1.5rem;
}

.profile-slug {
  color: #666;
  font-size: 14px;
}

.profile-specialties {
  margin-top: 8px;
}

.profile-specialties .ant-tag {
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border: none;
  margin: 2px;
}

/* Statistiques */
.stats-card {
  text-align: center;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  background: linear-gradient(135deg, #ffffff, #fafafa);
  border: 1px solid rgba(165, 118, 92, 0.1);
  overflow: hidden;
  position: relative;
}

.stats-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--gold), var(--peach));
}

.stats-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.stats-card .ant-statistic-title {
  font-size: 13px;
  color: #666;
  margin-bottom: 8px;
  font-weight: 500;
}

.stats-card .ant-statistic-content {
  font-size: 28px;
  font-weight: 700;
}

/* Métriques de performance */
.performance-card {
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  text-align: center;
}

.performance-card .ant-card-head-title {
  font-weight: 600;
  color: #333;
}

/* Onglets */
.profile-tabs .ant-tabs-nav {
  margin-bottom: 24px;
}

.profile-tabs .ant-tabs-tab {
  font-weight: 500;
  padding: 12px 16px;
}

.profile-tabs .ant-tabs-tab-active {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.25), rgba(238, 159, 153, 0.25));
  border-radius: 6px;
  color: var(--brown);
}

.profile-tabs .ant-tabs-content-holder {
  padding: 0;
}

/* Timeline */
.activity-timeline .ant-timeline-item {
  padding-bottom: 16px;
}

.activity-timeline .ant-timeline-item-content {
  margin-left: 16px;
}

.activity-timeline .ant-timeline-item-dot {
  background: #1890ff;
  border-color: #1890ff;
}

/* Tableaux */
.profile-table {
  border-radius: 8px;
  overflow: hidden;
}

.profile-table .ant-table-thead > tr > th {
  background: #fafafa;
  font-weight: 600;
  color: #333;
}

.profile-table .ant-table-tbody > tr:hover > td {
  background-color: rgba(165, 118, 92, 0.06);
}

/* Réalisations */
.achievement-card {
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease;
  text-align: center;
}

.achievement-card:hover {
  transform: translateY(-2px);
}

.achievement-icon {
  font-size: 24px;
  color: #faad14;
  margin-bottom: 8px;
}

.achievement-title {
  font-weight: 600;
  color: #333;
  margin-bottom: 4px;
}

.achievement-description {
  color: #666;
  font-size: 12px;
}

/* Informations de contact */
.contact-info {
  background: #f8f9fa;
  padding: 16px;
  border-radius: 8px;
  margin-bottom: 16px;
}

.contact-info .ant-space {
  margin-bottom: 8px;
}

.contact-info .anticon {
  color: var(--brown);
}

/* Description */
.profile-description {
  color: #666;
  line-height: 1.6;
  margin-bottom: 16px;
}

/* Responsive */
@media (max-width: 768px) {
  .member-profile-page {
    padding: 0.5rem;
  }
  
  .profile-header-card {
    margin-bottom: 1rem;
  }
  
  .stats-card {
    margin-bottom: 1rem;
  }
  
  .performance-card {
    margin-bottom: 1rem;
  }
  
  .profile-tabs .ant-tabs-tab {
    padding: 8px 12px;
    font-size: 12px;
  }
  
  .profile-table .ant-table {
    font-size: 12px;
  }
  
  .profile-table .ant-table-thead > tr > th {
    padding: 8px 4px;
    font-size: 11px;
  }
  
  .profile-table .ant-table-tbody > tr > td {
    padding: 8px 4px;
  }
}

/* Animation pour les cartes de stats */
@keyframes statsAppear {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.stats-card {
  animation: statsAppear 0.5s ease-out;
}

.stats-card:nth-child(1) { animation-delay: 0.1s; }
.stats-card:nth-child(2) { animation-delay: 0.2s; }
.stats-card:nth-child(3) { animation-delay: 0.3s; }
.stats-card:nth-child(4) { animation-delay: 0.4s; }

/* Bouton de retour */
.back-button {
  border-radius: 8px;
  font-weight: 600;
  margin-bottom: 1rem;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border-color: var(--brown);
  color: var(--brown);
}

.back-button:hover {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.1), rgba(238, 159, 153, 0.1));
  border-color: var(--gold);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

/* Badge de compteur */
.count-badge {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  border: none;
}

/* Progress circle personnalisé */
.progress-circle {
  text-align: center;
}

.progress-circle .ant-progress-text {
  font-size: 18px;
  font-weight: 600;
  color: #52c41a;
}

/* Empty state */
.empty-state {
  text-align: center;
  padding: 40px 20px;
  color: #8c8c8c;
}

.empty-state h3 {
  color: #595959;
  margin-bottom: 8px;
} 
/* AssociationClientsPage.css */

.association-clients-page {
  padding: 2rem;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
  max-width: 1100px;
  margin: 0 auto;
}

.back-button {
  border-radius: 8px;
  font-weight: 600;
  margin-bottom: 1rem;
  transition: all 0.3s ease;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  border-color: var(--brown);
  color: var(--brown);
}

.back-button:hover {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.1), rgba(238, 159, 153, 0.1));
  border-color: var(--gold);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.header-card {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  margin-bottom: 2rem;
  overflow: hidden;
  border: 1px solid rgba(165, 118, 92, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.header-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.page-title {
  margin: 0;
  color: var(--brown);
  font-weight: 700;
  font-size: 1.8rem;
}

.association-name {
  font-size: 16px;
  color: #666;
  margin-bottom: 8px;
}

.association-description {
  color: #666;
  line-height: 1.6;
  margin-bottom: 0;
}

/* Statistiques */
.stats-card {
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  text-align: center;
}

.stats-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.stats-card .ant-statistic-title {
  font-size: 12px;
  color: #666;
  margin-bottom: 8px;
}

.stats-card .ant-statistic-content {
  font-size: 24px;
  font-weight: 600;
}

/* Tableau des clients */
.clients-table-card {
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(165, 118, 92, 0.1);
  overflow: hidden;
  background: white;
  transition: all 0.3s ease;
}

.clients-table-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.clients-table-card .ant-card-head {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-bottom: 2px solid rgba(165, 118, 92, 0.15);
}

.clients-table-card .ant-card-head-title {
  color: var(--brown);
  font-weight: 700;
  font-size: 1.1rem;
}

.clients-table {
  border-radius: 12px;
  overflow: hidden;
}

.clients-table .ant-table-thead>tr>th {
  background: linear-gradient(135deg, #fafafa, #f5f5f5);
  font-weight: 700;
  color: var(--brown);
  border-bottom: 2px solid rgba(165, 118, 92, 0.1);
  padding: 16px 12px;
}

.clients-table .ant-table-tbody>tr {
  transition: all 0.3s ease;
}

.clients-table .ant-table-tbody>tr:hover>td {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.08), rgba(238, 159, 153, 0.08));
  cursor: pointer;
}

.clients-table .ant-table-tbody>tr>td {
  padding: 12px 8px;
}

/* Modal détails client */
.client-details-modal .ant-modal-header {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.25), rgba(238, 159, 153, 0.25));
  color: var(--brown);
  border-bottom: 2px solid rgba(165, 118, 92, 0.15);
}

.client-details-modal .ant-modal-title {
  color: var(--brown);
  font-weight: 700;
  font-size: 1.2rem;
}

.client-details-modal .ant-modal-close {
  color: var(--brown);
}

.client-details-modal .ant-modal-close:hover {
  color: var(--gold);
}

.client-details-modal .ant-modal-content {
  border: 1px solid rgba(165, 118, 92, 0.1);
  border-radius: 12px;
  overflow: hidden;
}

.member-booking-card {
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s ease;
  text-align: center;
}

.member-booking-card:hover {
  transform: translateY(-2px);
}

/* Filtres */
.ant-select {
  border-radius: 8px;
  transition: all 0.3s ease;
}

.ant-select:hover {
  border-color: var(--gold);
}

.ant-select-focused {
  border-color: var(--brown);
  box-shadow: 0 0 0 2px rgba(165, 118, 92, 0.1);
}

.ant-input-search {
  border-radius: 8px;
  transition: all 0.3s ease;
}

.ant-input-search:hover {
  border-color: var(--gold);
}

.ant-input-search:focus,
.ant-input-search-focused {
  border-color: var(--brown);
  box-shadow: 0 0 0 2px rgba(165, 118, 92, 0.1);
}

.ant-picker {
  border-radius: 8px;
  transition: all 0.3s ease;
}

.ant-picker:hover {
  border-color: var(--gold);
}

.ant-picker-focused {
  border-color: var(--brown);
  box-shadow: 0 0 0 2px rgba(165, 118, 92, 0.1);
}

.header-card .ant-btn-primary {
  background: linear-gradient(45deg, var(--brown), #b5866b);
  border: none;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.25);
  border-radius: 8px;
  font-weight: 600;
  height: 40px;
  transition: all 0.3s ease;
}

.header-card .ant-btn-primary:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.35);
}

/* Responsive */
@media (max-width: 768px) {
  .association-clients-page {
    padding: 0.5rem;
  }

  .header-card {
    margin-bottom: 1rem;
  }

  .stats-card {
    margin-bottom: 1rem;
  }

  .clients-table-card {
    margin-bottom: 1rem;
  }

  .clients-table .ant-table {
    font-size: 12px;
  }

  .clients-table .ant-table-thead>tr>th {
    padding: 8px 4px;
    font-size: 11px;
  }

  .clients-table .ant-table-tbody>tr>td {
    padding: 8px 4px;
  }

  .client-details-modal {
    width: 95% !important;
    margin: 10px;
  }
}

/* Animation pour les cartes de stats */
@keyframes statsAppear {
  from {
    opacity: 0;
    transform: translateY(20px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.stats-card {
  animation: statsAppear 0.5s ease-out;
}

.stats-card:nth-child(1) {
  animation-delay: 0.1s;
}

.stats-card:nth-child(2) {
  animation-delay: 0.2s;
}

.stats-card:nth-child(3) {
  animation-delay: 0.3s;
}

.stats-card:nth-child(4) {
  animation-delay: 0.4s;
}

/* Badge personnalisé */
.ant-badge-count {
  background: linear-gradient(135deg, var(--brown), #b5866b);
  border: none;
  font-weight: 600;
  box-shadow: 0 2px 8px rgba(165, 118, 92, 0.3);
}

/* Tag personnalisé */
.ant-tag {
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  padding: 2px 8px;
  border: none;
}

/* Avatar personnalisé */
.ant-avatar {
  border: 2px solid #f0f0f0;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Bouton personnalisé */
.ant-btn-link {
  color: var(--brown);
  font-weight: 500;
}

.ant-btn-link:hover {
  color: var(--gold);
}

/* Empty state */
.ant-empty {
  padding: 40px 20px;
}

.ant-empty-description {
  color: #8c8c8c;
}

/* Pagination personnalisée */
.ant-pagination-item {
  border-radius: 6px;
}

.ant-pagination-item-active {
  background: #fff;
  border-color: #F6C674;
  border-color: var(--gold, #F6C674);
}

.ant-pagination-item-active a {
  color: #A5765C;
  color: var(--brown, #A5765C);
}

/* Tooltip personnalisé */
.ant-tooltip-inner {
  border-radius: 6px;
  font-size: 12px;
}

/* Descriptions personnalisées */
.ant-descriptions-bordered .ant-descriptions-item-label {
  background: #fafafa;
  font-weight: 600;
  color: #333;
}

.ant-descriptions-bordered .ant-descriptions-item-content {
  background: white;
}

/* Divider personnalisé */
.ant-divider {
  margin: 24px 0;
  border-color: #f0f0f0;
}

/* Titre de section */
.ant-typography h5 {
  color: #333;
  font-weight: 600;
  margin-bottom: 16px;
}
/* =============================
   ASSOCIATION DASHBOARD PAGE
============================= */

.association-page {
  padding: 40px 24px;
  min-height: 100vh;
  font-family: 'Poppins', sans-serif;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.08));
  box-shadow: inset 0 0 100px rgba(246, 198, 116, 0.1);
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

/* Éléments décoratifs en arrière-plan */
.association-page::before {
  content: "";
  position: absolute;
  top: -100px;
  right: -100px;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(238, 159, 153, 0.1) 0%, rgba(238, 159, 153, 0) 70%);
  z-index: 0;
}

.association-page::after {
  content: "";
  position: absolute;
  bottom: -100px;
  left: -100px;
  width: 300px;
  height: 300px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(246, 198, 116, 0.1) 0%, rgba(246, 198, 116, 0) 70%);
  z-index: 0;
}

/* Section Premium avec contenu */
.association-premium-container {
  display: flex;
  flex-wrap: wrap;
  gap: 30px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px;
  background: linear-gradient(135deg, #fff, #f9f5f1);
  border-radius: 20px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(165, 118, 92, 0.1);
  animation: fadeIn 0.5s ease-out forwards;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

.association-premium-container::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(246, 198, 116, 0.15) 0%, rgba(246, 198, 116, 0) 70%);
  border-radius: 50%;
  z-index: 0;
}

.association-premium-container::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(238, 159, 153, 0.1) 0%, rgba(238, 159, 153, 0) 70%);
  border-radius: 50%;
  z-index: 0;
}

.association-premium-content {
  flex: 1 1;
  min-width: 300px;
  position: relative;
  z-index: 1;
}

.association-premium-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--black);
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  padding-bottom: 12px;
}

.association-premium-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 80px;
  height: 3px;
  background: linear-gradient(to right, #F6C674, #EE9F99, #FFA351);
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(246, 198, 116, 0.3);
}

.association-premium-icon {
  font-size: 2rem;
  color: var(--brown);
}

.association-premium-intro {
  font-size: 1.2rem;
  line-height: 1.6;
  margin-bottom: 30px;
  color: #555;
}

.association-premium-features {
  margin-bottom: 30px;
}

.association-premium-features .ant-list-item {
  border-bottom: none !important;
  padding: 12px 0;
  transition: transform 0.3s ease;
}

.association-premium-features .ant-list-item:hover {
  transform: translateX(5px);
}

.association-premium-feature-icon {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.2), rgba(238, 159, 153, 0.2));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brown);
  font-size: 1.2rem;
  box-shadow: 0 4px 8px rgba(165, 118, 92, 0.1);
}

.association-premium-feature-title {
  font-weight: 600;
  font-size: 1.1rem;
  color: var(--black);
}

.association-premium-feature-desc {
  color: #666;
}

/* Section contact */
.association-premium-contact {
  margin-top: 40px;
  text-align: center;
  padding: 30px;
  background: linear-gradient(135deg, rgba(165, 118, 92, 0.05), rgba(246, 198, 116, 0.05));
  border-radius: 16px;
  border: 1px solid rgba(165, 118, 92, 0.1);
}

.association-contact-title {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--brown);
  margin-bottom: 16px;
}

.association-contact-text {
  font-size: 1.1rem;
  color: #555;
  margin-bottom: 24px;
  line-height: 1.6;
}

.association-contact-button {
  background: linear-gradient(45deg, #A5765C, #b5866b) !important;
  border: none !important;
  color: white !important;
  height: auto !important;
  padding: 12px 32px !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  border-radius: 30px !important;
  box-shadow: 0 4px 15px rgba(165, 118, 92, 0.25) !important;
  transition: all 0.3s ease !important;
}

.association-contact-button:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.3) !important;
}

/* Responsive adjustments */
@media (max-width: 992px) {
  .association-premium-container {
    padding: 30px;
  }
}

@media (max-width: 768px) {
  .association-page {
    padding: 20px 16px;
  }

  .association-premium-container {
    padding: 25px;
  }
  
  .association-premium-title {
    font-size: 1.8rem;
  }
  
  .association-premium-intro {
    font-size: 1.1rem;
  }
  
  .association-contact-button {
    font-size: 1rem !important;
    padding: 10px 24px !important;
    width: 100%;
  }
}

@media (max-width: 480px) {
  .association-premium-container {
    padding: 20px;
  }
  
  .association-premium-title {
    font-size: 1.6rem;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
  }
  
  .association-premium-intro {
    font-size: 1rem;
  }
  
  .association-contact-title {
    font-size: 1.3rem;
  }
  
  .association-contact-text {
    font-size: 1rem;
  }
}

/* =============================
   DASHBOARD AVEC ASSOCIATIONS
============================= */

.association-dashboard-container {
  padding: 2rem;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
}

.association-dashboard-title {
  font-size: 2rem;
  font-weight: 700;
  color: var(--brown);
  margin-bottom: 2rem;
  display: flex;
  align-items: center;
  gap: 12px;
}

.association-dashboard-title::before {
  content: "";
  width: 4px;
  height: 40px;
  background: linear-gradient(135deg, var(--gold), var(--peach));
  border-radius: 2px;
}

/* Cartes d'association améliorées */
.association-card {
  border-radius: 16px;
  overflow: hidden;
  border: 2px solid transparent;
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  animation: fadeInUp 0.6s ease-out backwards;
  position: relative;
  background: white;
}

.association-card:nth-child(1) { animation-delay: 0.1s; }
.association-card:nth-child(2) { animation-delay: 0.2s; }
.association-card:nth-child(3) { animation-delay: 0.3s; }
.association-card:nth-child(4) { animation-delay: 0.4s; }
.association-card:nth-child(5) { animation-delay: 0.5s; }

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Border gradient selon le rôle */
.association-card.owner {
  border: 2px solid transparent;
  background: linear-gradient(white, white) padding-box,
              linear-gradient(135deg, #fa541c, #ff7875) border-box;
}

.association-card.admin {
  border: 2px solid transparent;
  background: linear-gradient(white, white) padding-box,
              linear-gradient(135deg, #faad14, #ffc53d) border-box;
}

.association-card.member {
  border: 2px solid transparent;
  background: linear-gradient(white, white) padding-box,
              linear-gradient(135deg, #52c41a, #73d13d) border-box;
}

.association-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 24px rgba(165, 118, 92, 0.2);
}

.association-card.owner:hover {
  background: linear-gradient(white, white) padding-box,
              linear-gradient(135deg, #ff7875, #ffaaa5) border-box;
}

.association-card.admin:hover {
  background: linear-gradient(white, white) padding-box,
              linear-gradient(135deg, #ffc53d, #ffd666) border-box;
}

.association-card.member:hover {
  background: linear-gradient(white, white) padding-box,
              linear-gradient(135deg, #73d13d, #95de64) border-box;
}

.association-card:hover .association-card-overlay {
  opacity: 0.3;
}

.association-card:hover .association-card-footer {
  color: var(--brown);
  transform: translateX(5px);
}

/* Cover de la carte */
.association-card-cover {
  position: relative;
  height: 200px;
  overflow: hidden;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.2), rgba(238, 159, 153, 0.2));
}

.association-card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.4s ease;
}

.association-card:hover .association-card-image {
  transform: scale(1.1);
}

.association-card-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(135deg, rgba(165, 118, 92, 0.4), rgba(246, 198, 116, 0.4));
  opacity: 0;
  transition: opacity 0.4s ease;
}

.association-card-cover-default {
  height: 200px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
}

.association-card-default-icon {
  font-size: 64px;
  color: var(--brown);
  opacity: 0.6;
  transition: all 0.3s ease;
}

.association-card:hover .association-card-default-icon {
  transform: scale(1.1);
  opacity: 1;
}

/* Titre de la carte */
.association-card-title {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 8px;
}

.association-card-name {
  font-size: 1.2rem;
  font-weight: 700;
  color: var(--brown);
  flex: 1 1;
  line-height: 1.4;
}

.association-role-tag {
  border-radius: 12px;
  font-weight: 600;
  font-size: 0.85rem;
  padding: 4px 12px;
  border: none;
  flex-shrink: 0;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.association-role-tag.owner {
  background: linear-gradient(135deg, #fa541c, #ff7875);
  color: white;
}

.association-role-tag.admin {
  background: linear-gradient(135deg, #faad14, #ffc53d);
  color: white;
}

.association-role-tag.member {
  background: linear-gradient(135deg, #52c41a, #73d13d);
  color: white;
}

/* Description */
.association-card-description {
  color: #666;
  font-size: 0.95rem;
  line-height: 1.5;
  margin-top: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Footer de la carte */
.association-card-footer {
  margin-top: 1rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(165, 118, 92, 0.1);
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--brown);
  font-weight: 600;
  transition: all 0.3s ease;
}

.association-card-footer-icon {
  font-size: 16px;
  color: var(--gold);
  transition: transform 0.3s ease;
}

.association-card:hover .association-card-footer-icon {
  transform: translateX(3px);
}

/* Responsive */
@media (max-width: 768px) {
  .association-dashboard-container {
    padding: 1rem;
  }

  .association-dashboard-title {
    font-size: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .association-card-name {
    font-size: 1.1rem;
  }

  .association-card-description {
    font-size: 0.9rem;
  }
}

/* =============================
   FIN ASSOCIATION DASHBOARD PAGE
============================= */


@charset "UTF-8";
.react-datepicker__navigation-icon::before, .react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-year-read-view--down-arrow {
  border-color: #ccc;
  border-style: solid;
  border-width: 3px 3px 0 0;
  content: "";
  display: block;
  height: 9px;
  position: absolute;
  top: 6px;
  width: 9px;
}
/* sr-only utility class for accessibility */
.react-datepicker__sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  -webkit-clip-path: inset(50%);
          clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}

.react-datepicker-wrapper {
  display: inline-block;
  padding: 0;
  border: 0;
}

.react-datepicker {
  font-family: "Helvetica Neue", helvetica, arial, sans-serif;
  font-size: 0.8rem;
  background-color: #fff;
  color: #000;
  border: 1px solid #aeaeae;
  border-radius: 0.3rem;
  display: inline-block;
  position: relative;
  line-height: normal;
  line-height: initial;
}

.react-datepicker--time-only .react-datepicker__time-container {
  border-left: 0;
}
.react-datepicker--time-only .react-datepicker__time,
.react-datepicker--time-only .react-datepicker__time-box {
  border-bottom-left-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}

.react-datepicker-popper {
  z-index: 1;
  line-height: 0;
}
.react-datepicker-popper .react-datepicker__triangle {
  stroke: #aeaeae;
}
.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle {
  fill: #f0f0f0;
  color: #f0f0f0;
}
.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle {
  fill: #fff;
  color: #fff;
}

.react-datepicker__header {
  text-align: center;
  background-color: #f0f0f0;
  border-bottom: 1px solid #aeaeae;
  border-top-left-radius: 0.3rem;
  padding: 8px 0;
  position: relative;
}
.react-datepicker__header--time {
  padding-bottom: 8px;
  padding-left: 5px;
  padding-right: 5px;
}
.react-datepicker__header--time:not(.react-datepicker__header--time--only) {
  border-top-left-radius: 0;
}
.react-datepicker__header:not(.react-datepicker__header--has-time-select) {
  border-top-right-radius: 0.3rem;
}

.react-datepicker__year-dropdown-container--select,
.react-datepicker__month-dropdown-container--select,
.react-datepicker__month-year-dropdown-container--select,
.react-datepicker__year-dropdown-container--scroll,
.react-datepicker__month-dropdown-container--scroll,
.react-datepicker__month-year-dropdown-container--scroll {
  display: inline-block;
  margin: 0 15px;
}

.react-datepicker__current-month,
.react-datepicker-time__header,
.react-datepicker-year-header {
  margin-top: 0;
  color: #000;
  font-weight: bold;
  font-size: 0.944rem;
}

h2.react-datepicker__current-month {
  padding: 0;
  margin: 0;
}

.react-datepicker-time__header {
  text-overflow: ellipsis;
  white-space: nowrap;
  overflow: hidden;
}

.react-datepicker__navigation {
  align-items: center;
  background: none;
  display: flex;
  justify-content: center;
  text-align: center;
  cursor: pointer;
  position: absolute;
  top: 2px;
  padding: 0;
  border: none;
  z-index: 1;
  height: 32px;
  width: 32px;
  text-indent: -999em;
  overflow: hidden;
}
.react-datepicker__navigation--previous {
  left: 2px;
}
.react-datepicker__navigation--next {
  right: 2px;
}
.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button) {
  right: 85px;
}
.react-datepicker__navigation--years {
  position: relative;
  top: 0;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.react-datepicker__navigation--years-previous {
  top: 4px;
}
.react-datepicker__navigation--years-upcoming {
  top: -4px;
}
.react-datepicker__navigation:hover *::before {
  border-color: rgb(165.75, 165.75, 165.75);
}

.react-datepicker__navigation-icon {
  position: relative;
  top: -1px;
  font-size: 20px;
  width: 0;
}
.react-datepicker__navigation-icon--next {
  left: -2px;
}
.react-datepicker__navigation-icon--next::before {
  transform: rotate(45deg);
  left: -7px;
}
.react-datepicker__navigation-icon--previous {
  right: -2px;
}
.react-datepicker__navigation-icon--previous::before {
  transform: rotate(225deg);
  right: -7px;
}

.react-datepicker__month-container {
  float: left;
}

.react-datepicker__year {
  margin: 0.4rem;
  text-align: center;
}
.react-datepicker__year-wrapper {
  display: flex;
  flex-wrap: wrap;
  max-width: 180px;
}
.react-datepicker__year .react-datepicker__year-text {
  display: inline-block;
  width: 4rem;
  margin: 2px;
}

.react-datepicker__month {
  margin: 0.4rem;
  text-align: center;
}
.react-datepicker__month .react-datepicker__month-text,
.react-datepicker__month .react-datepicker__quarter-text {
  display: inline-block;
  width: 4rem;
  margin: 2px;
}

.react-datepicker__input-time-container {
  clear: both;
  width: 100%;
  float: left;
  margin: 5px 0 10px 15px;
  text-align: left;
}
.react-datepicker__input-time-container .react-datepicker-time__caption {
  display: inline-block;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container {
  display: inline-block;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input {
  display: inline-block;
  margin-left: 10px;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input {
  width: auto;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time] {
  -moz-appearance: textfield;
}
.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter {
  margin-left: 5px;
  display: inline-block;
}

.react-datepicker__time-container {
  float: right;
  border-left: 1px solid #aeaeae;
  width: 85px;
}
.react-datepicker__time-container--with-today-button {
  display: inline;
  border: 1px solid #aeaeae;
  border-radius: 0.3rem;
  position: absolute;
  right: -87px;
  top: 0;
}
.react-datepicker__time-container .react-datepicker__time {
  position: relative;
  background: white;
  border-bottom-right-radius: 0.3rem;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box {
  width: 85px;
  overflow-x: hidden;
  margin: 0 auto;
  text-align: center;
  border-bottom-right-radius: 0.3rem;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list {
  list-style: none;
  margin: 0;
  height: calc(195px + 1.7rem / 2);
  overflow-y: scroll;
  padding-right: 0;
  padding-left: 0;
  width: 100%;
  box-sizing: content-box;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item {
  height: 30px;
  padding: 5px 10px;
  white-space: nowrap;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover {
  cursor: pointer;
  background-color: #f0f0f0;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected {
  background-color: #216ba5;
  color: white;
  font-weight: bold;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover {
  background-color: #216ba5;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled {
  color: #ccc;
}
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover {
  cursor: default;
  background-color: transparent;
}

.react-datepicker__week-number {
  color: #ccc;
  display: inline-block;
  width: 1.7rem;
  line-height: 1.7rem;
  text-align: center;
  margin: 0.166rem;
}
.react-datepicker__week-number.react-datepicker__week-number--clickable {
  cursor: pointer;
}
.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover {
  border-radius: 0.3rem;
  background-color: #f0f0f0;
}
.react-datepicker__week-number--selected {
  border-radius: 0.3rem;
  background-color: #216ba5;
  color: #fff;
}
.react-datepicker__week-number--selected:hover {
  background-color: rgb(28.75, 93.2196969697, 143.75);
}

.react-datepicker__day-names {
  text-align: center;
  white-space: nowrap;
  margin-bottom: -8px;
}

.react-datepicker__week {
  white-space: nowrap;
}

.react-datepicker__day-name,
.react-datepicker__day,
.react-datepicker__time-name {
  color: #000;
  display: inline-block;
  width: 1.7rem;
  line-height: 1.7rem;
  text-align: center;
  margin: 0.166rem;
}
.react-datepicker__day-name--disabled,
.react-datepicker__day--disabled,
.react-datepicker__time-name--disabled {
  cursor: default;
  color: #ccc;
}

.react-datepicker__day,
.react-datepicker__month-text,
.react-datepicker__quarter-text,
.react-datepicker__year-text {
  cursor: pointer;
}
.react-datepicker__day:not([aria-disabled=true]):hover,
.react-datepicker__month-text:not([aria-disabled=true]):hover,
.react-datepicker__quarter-text:not([aria-disabled=true]):hover,
.react-datepicker__year-text:not([aria-disabled=true]):hover {
  border-radius: 0.3rem;
  background-color: #f0f0f0;
}
.react-datepicker__day--today,
.react-datepicker__month-text--today,
.react-datepicker__quarter-text--today,
.react-datepicker__year-text--today {
  font-weight: bold;
}
.react-datepicker__day--highlighted,
.react-datepicker__month-text--highlighted,
.react-datepicker__quarter-text--highlighted,
.react-datepicker__year-text--highlighted {
  border-radius: 0.3rem;
  background-color: #3dcc4a;
  color: #fff;
}
.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,
.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,
.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,
.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover {
  background-color: rgb(49.8551020408, 189.6448979592, 62.5632653061);
}
.react-datepicker__day--highlighted-custom-1,
.react-datepicker__month-text--highlighted-custom-1,
.react-datepicker__quarter-text--highlighted-custom-1,
.react-datepicker__year-text--highlighted-custom-1 {
  color: magenta;
}
.react-datepicker__day--highlighted-custom-2,
.react-datepicker__month-text--highlighted-custom-2,
.react-datepicker__quarter-text--highlighted-custom-2,
.react-datepicker__year-text--highlighted-custom-2 {
  color: green;
}
.react-datepicker__day--holidays,
.react-datepicker__month-text--holidays,
.react-datepicker__quarter-text--holidays,
.react-datepicker__year-text--holidays {
  position: relative;
  border-radius: 0.3rem;
  background-color: #ff6803;
  color: #fff;
}
.react-datepicker__day--holidays .overlay,
.react-datepicker__month-text--holidays .overlay,
.react-datepicker__quarter-text--holidays .overlay,
.react-datepicker__year-text--holidays .overlay {
  position: absolute;
  bottom: 100%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #333;
  color: #fff;
  padding: 4px;
  border-radius: 4px;
  white-space: nowrap;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.3s ease-in-out;
}
.react-datepicker__day--holidays:not([aria-disabled=true]):hover,
.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,
.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,
.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover {
  background-color: rgb(207, 82.9642857143, 0);
}
.react-datepicker__day--holidays:hover .overlay,
.react-datepicker__month-text--holidays:hover .overlay,
.react-datepicker__quarter-text--holidays:hover .overlay,
.react-datepicker__year-text--holidays:hover .overlay {
  visibility: visible;
  opacity: 1;
}
.react-datepicker__day--selected, .react-datepicker__day--in-selecting-range, .react-datepicker__day--in-range,
.react-datepicker__month-text--selected,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--selected,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--selected,
.react-datepicker__year-text--in-selecting-range,
.react-datepicker__year-text--in-range {
  border-radius: 0.3rem;
  background-color: #216ba5;
  color: #fff;
}
.react-datepicker__day--selected:not([aria-disabled=true]):hover, .react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover, .react-datepicker__day--in-range:not([aria-disabled=true]):hover,
.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,
.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,
.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,
.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,
.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,
.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,
.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,
.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,
.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover {
  background-color: rgb(28.75, 93.2196969697, 143.75);
}
.react-datepicker__day--keyboard-selected,
.react-datepicker__month-text--keyboard-selected,
.react-datepicker__quarter-text--keyboard-selected,
.react-datepicker__year-text--keyboard-selected {
  border-radius: 0.3rem;
  background-color: rgb(186.25, 217.0833333333, 241.25);
  color: rgb(0, 0, 0);
}
.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,
.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,
.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,
.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover {
  background-color: rgb(28.75, 93.2196969697, 143.75);
  color: #fff;
}
.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range),
.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range),
.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range),
.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,
.react-datepicker__month-text--in-range,
.react-datepicker__quarter-text--in-range,
.react-datepicker__year-text--in-range) {
  background-color: rgba(33, 107, 165, 0.5);
}
.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range), .react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range),
.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,
.react-datepicker__month-text--in-selecting-range,
.react-datepicker__quarter-text--in-selecting-range,
.react-datepicker__year-text--in-selecting-range) {
  background-color: #f0f0f0;
  color: #000;
}
.react-datepicker__day--disabled,
.react-datepicker__month-text--disabled,
.react-datepicker__quarter-text--disabled,
.react-datepicker__year-text--disabled {
  cursor: default;
  color: #ccc;
}
.react-datepicker__day--disabled .overlay,
.react-datepicker__month-text--disabled .overlay,
.react-datepicker__quarter-text--disabled .overlay,
.react-datepicker__year-text--disabled .overlay {
  position: absolute;
  bottom: 70%;
  left: 50%;
  transform: translateX(-50%);
  background-color: #333;
  color: #fff;
  padding: 4px;
  border-radius: 4px;
  white-space: nowrap;
  visibility: hidden;
  opacity: 0;
  transition: visibility 0s, opacity 0.3s ease-in-out;
}

.react-datepicker__input-container {
  position: relative;
  display: inline-block;
  width: 100%;
}
.react-datepicker__input-container .react-datepicker__calendar-icon {
  position: absolute;
  padding: 0.5rem;
  box-sizing: content-box;
}

.react-datepicker__view-calendar-icon input {
  padding: 6px 10px 5px 25px;
}

.react-datepicker__year-read-view,
.react-datepicker__month-read-view,
.react-datepicker__month-year-read-view {
  border: 1px solid transparent;
  border-radius: 0.3rem;
  position: relative;
}
.react-datepicker__year-read-view:hover,
.react-datepicker__month-read-view:hover,
.react-datepicker__month-year-read-view:hover {
  cursor: pointer;
}
.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,
.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow {
  border-top-color: rgb(178.5, 178.5, 178.5);
}
.react-datepicker__year-read-view--down-arrow,
.react-datepicker__month-read-view--down-arrow,
.react-datepicker__month-year-read-view--down-arrow {
  transform: rotate(135deg);
  right: -16px;
  top: 0;
}

.react-datepicker__year-dropdown,
.react-datepicker__month-dropdown,
.react-datepicker__month-year-dropdown {
  background-color: #f0f0f0;
  position: absolute;
  width: 50%;
  left: 25%;
  top: 30px;
  z-index: 1;
  text-align: center;
  border-radius: 0.3rem;
  border: 1px solid #aeaeae;
}
.react-datepicker__year-dropdown:hover,
.react-datepicker__month-dropdown:hover,
.react-datepicker__month-year-dropdown:hover {
  cursor: pointer;
}
.react-datepicker__year-dropdown--scrollable,
.react-datepicker__month-dropdown--scrollable,
.react-datepicker__month-year-dropdown--scrollable {
  height: 150px;
  overflow-y: scroll;
}

.react-datepicker__year-option,
.react-datepicker__month-option,
.react-datepicker__month-year-option {
  line-height: 20px;
  width: 100%;
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.react-datepicker__year-option:first-of-type,
.react-datepicker__month-option:first-of-type,
.react-datepicker__month-year-option:first-of-type {
  border-top-left-radius: 0.3rem;
  border-top-right-radius: 0.3rem;
}
.react-datepicker__year-option:last-of-type,
.react-datepicker__month-option:last-of-type,
.react-datepicker__month-year-option:last-of-type {
  -webkit-user-select: none;
  user-select: none;
  border-bottom-left-radius: 0.3rem;
  border-bottom-right-radius: 0.3rem;
}
.react-datepicker__year-option:hover,
.react-datepicker__month-option:hover,
.react-datepicker__month-year-option:hover {
  background-color: #ccc;
}
.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,
.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,
.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming {
  border-bottom-color: rgb(178.5, 178.5, 178.5);
}
.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,
.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,
.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous {
  border-top-color: rgb(178.5, 178.5, 178.5);
}
.react-datepicker__year-option--selected,
.react-datepicker__month-option--selected,
.react-datepicker__month-year-option--selected {
  position: absolute;
  left: 15px;
}

.react-datepicker__close-icon {
  cursor: pointer;
  background-color: transparent;
  border: 0;
  outline: 0;
  padding: 0 6px 0 0;
  position: absolute;
  top: 0;
  right: 0;
  height: 100%;
  display: table-cell;
  vertical-align: middle;
}
.react-datepicker__close-icon::after {
  cursor: pointer;
  background-color: #216ba5;
  color: #fff;
  border-radius: 50%;
  height: 16px;
  width: 16px;
  padding: 2px;
  font-size: 12px;
  line-height: 1;
  text-align: center;
  display: table-cell;
  vertical-align: middle;
  content: "×";
}
.react-datepicker__close-icon--disabled {
  cursor: default;
}
.react-datepicker__close-icon--disabled::after {
  cursor: default;
  background-color: #ccc;
}

.react-datepicker__today-button {
  background: #f0f0f0;
  border-top: 1px solid #aeaeae;
  cursor: pointer;
  text-align: center;
  font-weight: bold;
  padding: 5px 0;
  clear: left;
}

.react-datepicker__portal {
  position: fixed;
  width: 100vw;
  height: 100vh;
  background-color: rgba(0, 0, 0, 0.8);
  left: 0;
  top: 0;
  justify-content: center;
  align-items: center;
  display: flex;
  z-index: 2147483647;
}
.react-datepicker__portal .react-datepicker__day-name,
.react-datepicker__portal .react-datepicker__day,
.react-datepicker__portal .react-datepicker__time-name {
  width: 3rem;
  line-height: 3rem;
}
@media (max-width: 400px), (max-height: 550px) {
  .react-datepicker__portal .react-datepicker__day-name,
  .react-datepicker__portal .react-datepicker__day,
  .react-datepicker__portal .react-datepicker__time-name {
    width: 2rem;
    line-height: 2rem;
  }
}
.react-datepicker__portal .react-datepicker__current-month,
.react-datepicker__portal .react-datepicker-time__header {
  font-size: 1.44rem;
}

.react-datepicker__children-container {
  width: 13.8rem;
  margin: 0.4rem;
  padding-right: 0.2rem;
  padding-left: 0.2rem;
  height: auto;
}

.react-datepicker__aria-live {
  position: absolute;
  -webkit-clip-path: circle(0);
          clip-path: circle(0);
  border: 0;
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  width: 1px;
  white-space: nowrap;
}

.react-datepicker__calendar-icon {
  width: 1em;
  height: 1em;
  vertical-align: -0.125em;
}

/* AssociationEventsPage.css */

.association-events-page {
  padding: 2rem;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
}

/* Header */
.events-page-header {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  margin-bottom: 2rem;
  overflow: hidden;
  border: 1px solid rgba(165, 118, 92, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.events-page-header:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.events-page-header .ant-card-head {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.25), rgba(238, 159, 153, 0.25));
  border-bottom: 2px solid rgba(165, 118, 92, 0.15);
}

.events-page-header .ant-card-head-title {
  color: var(--brown);
  font-weight: 700;
  font-size: 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.events-header-icon {
  font-size: 1.8rem;
  color: var(--brown);
}

/* Statistiques */
.events-stats-row {
  margin-bottom: 2rem;
}

.events-stat-card {
  text-align: center;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  background: linear-gradient(135deg, #ffffff, #fafafa);
  border: 1px solid rgba(165, 118, 92, 0.1);
  overflow: hidden;
  position: relative;
}

.events-stat-card::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--gold), var(--peach));
}

.events-stat-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

.events-stat-card .ant-statistic-title {
  font-size: 13px;
  color: #666;
  margin-bottom: 8px;
  font-weight: 500;
}

.events-stat-card .ant-statistic-content {
  font-size: 28px;
  font-weight: 700;
}

/* Animations d'apparition */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.events-stat-card {
  animation: fadeInUp 0.5s ease-out;
}

.events-stat-card:nth-child(1) { animation-delay: 0.1s; }
.events-stat-card:nth-child(2) { animation-delay: 0.2s; }
.events-stat-card:nth-child(3) { animation-delay: 0.3s; }
.events-stat-card:nth-child(4) { animation-delay: 0.4s; }

/* Boutons d'action */
.events-action-buttons {
  margin-bottom: 1.5rem;
}

.events-action-buttons .ant-btn-primary {
  background: linear-gradient(45deg, var(--brown), #b5866b);
  border: none;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.25);
  border-radius: 8px;
  font-weight: 600;
  height: 40px;
  padding: 0 24px;
  transition: all 0.3s ease;
}

.events-action-buttons .ant-btn-primary:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.35);
}

.events-action-buttons .ant-btn-default {
  border-radius: 8px;
  border-color: var(--brown);
  color: var(--brown);
  font-weight: 500;
  height: 40px;
  transition: all 0.3s ease;
}

.events-action-buttons .ant-btn-default:hover {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.1), rgba(238, 159, 153, 0.1));
  border-color: var(--gold);
  color: var(--brown);
  transform: translateY(-2px);
}

/* Tableau des événements */
.events-table-card {
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  border: 1px solid rgba(165, 118, 92, 0.1);
  background: white;
}

.events-table-card .ant-card-head {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-bottom: 2px solid rgba(165, 118, 92, 0.15);
}

.events-table-card .ant-card-head-title {
  color: var(--brown);
  font-weight: 700;
  font-size: 1.1rem;
}

.events-table .ant-table-thead > tr > th {
  background: linear-gradient(135deg, #fafafa, #f5f5f5);
  font-weight: 600;
  color: var(--brown);
  border-bottom: 2px solid rgba(165, 118, 92, 0.1);
  padding: 16px 12px;
}

.events-table .ant-table-tbody > tr {
  transition: all 0.3s ease;
}

.events-table .ant-table-tbody > tr:hover > td {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.08), rgba(238, 159, 153, 0.08));
  cursor: pointer;
}

.events-table .ant-table-tbody > tr > td {
  padding: 14px 12px;
  border-bottom: 1px solid rgba(165, 118, 92, 0.05);
}

/* Tags personnalisés */
.events-table .ant-tag {
  border-radius: 12px;
  font-size: 11px;
  font-weight: 600;
  padding: 3px 10px;
  border: none;
}

/* Boutons dans le tableau */
.events-table .ant-btn {
  border-radius: 6px;
  transition: all 0.3s ease;
}

.events-table .ant-btn-icon-only {
  width: 32px;
  height: 32px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.events-table .ant-btn-default:hover {
  border-color: var(--gold);
  color: var(--brown);
  background: rgba(246, 198, 116, 0.1);
}

.events-table .ant-btn-dangerous:hover {
  background: rgba(255, 77, 79, 0.1);
  border-color: #ff4d4f;
}

/* Tooltip personnalisé */
.events-table .ant-tooltip-inner {
  background: var(--brown);
  border-radius: 6px;
  font-size: 12px;
}

.events-table .ant-tooltip-arrow::before {
  background: var(--brown);
}

/* Popconfirm personnalisé */
.ant-popover-message-title {
  color: var(--brown);
  font-weight: 600;
}

.ant-popover-buttons .ant-btn-primary {
  background: var(--brown);
  border-color: var(--brown);
}

.ant-popover-buttons .ant-btn-primary:hover {
  background: #b5866b;
  border-color: #b5866b;
}

/* Empty state */
.events-empty-state {
  padding: 60px 20px;
  text-align: center;
}

.events-empty-state h3 {
  color: var(--brown);
  margin-top: 16px;
  font-size: 18px;
}

.events-empty-state p {
  color: #666;
  margin-top: 8px;
}

/* Responsive */
@media (max-width: 992px) {
  .association-events-page {
    padding: 1.5rem;
  }

  .events-page-header .ant-card-head-title {
    font-size: 1.3rem;
  }

  .events-stat-card .ant-statistic-content {
    font-size: 24px;
  }
}

@media (max-width: 768px) {
  .association-events-page {
    padding: 1rem;
  }

  .events-page-header {
    margin-bottom: 1.5rem;
  }

  .events-page-header .ant-card-head-title {
    font-size: 1.1rem;
  }

  .events-stats-row {
    margin-bottom: 1.5rem;
  }

  .events-stat-card {
    margin-bottom: 1rem;
  }

  .events-stat-card .ant-statistic-content {
    font-size: 20px;
  }

  .events-table .ant-table {
    font-size: 12px;
  }

  .events-table .ant-table-thead > tr > th,
  .events-table .ant-table-tbody > tr > td {
    padding: 10px 8px;
  }

  .events-action-buttons {
    margin-bottom: 1rem;
  }

  .events-action-buttons .ant-space {
    width: 100%;
    flex-direction: column;
  }

  .events-action-buttons .ant-btn {
    width: 100%;
  }
}

@media (max-width: 480px) {
  .association-events-page {
    padding: 0.5rem;
  }

  .events-header-icon {
    font-size: 1.4rem;
  }

  .events-stat-card .ant-statistic-title {
    font-size: 11px;
  }

  .events-stat-card .ant-statistic-content {
    font-size: 18px;
  }

  .events-table .ant-table-thead > tr > th,
  .events-table .ant-table-tbody > tr > td {
    padding: 8px 4px;
    font-size: 11px;
  }
}


/* Variables selon la charte graphique Rintintin */
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.messaging-page-container {
  flex: 1 1;
  display: flex;
  height: calc(100vh - 80px);
  background-color: #F6F2EF;
  background-color: var(--light-gray);
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  max-width: 1100px;
  margin: 0 auto;
  overflow: hidden;
}

/* =========================
   Liste de conversations
   ========================= */
.conversation-list {
  width: 320px;
  flex-shrink: 0;
  border-right: 1px solid rgba(165, 118, 92, 0.2);
  overflow-y: auto;
  background-color: #ffffff;
  padding: 1.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.conversation-list h2 {
  margin: 0 0 1.2rem;
  font-size: 1.3rem;
  color: #444444;
  font-weight: 700;
}

.conversation-item {
  display: flex;
  align-items: center;
  padding: 14px;
  gap: 14px;
  cursor: pointer;
  border-radius: 16px;
  border-radius: var(--border-radius);
  transition: all 0.3s ease;
  margin-bottom: 8px;
  border: 1px solid transparent;
}

.conversation-item:hover {
  background-color: rgba(246, 198, 116, 0.1);
  transform: translateX(4px);
}

.conversation-item.active {
  background: linear-gradient(to right, rgba(246, 198, 116, 0.1), rgba(246, 198, 116, 0.2));
  border-left: 3px solid #F6C674;
  border-left: 3px solid var(--gold);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
}

.conversation-avatar {
  width: 50px;
  height: 50px;
  flex-shrink: 0;
  position: relative;
}

.conversation-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #e5e5e5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.unread-indicator {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 14px;
  height: 14px;
  background-color: #ff4d4f;
  border-radius: 50%;
  border: 2px solid #ffffff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  animation: pulse-animation 1.5s infinite;
}

@keyframes pulse-animation {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 77, 79, 0.7);
  }

  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(255, 77, 79, 0);
  }

  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 77, 79, 0);
  }
}

.conversation-info {
  flex: 1 1;
  min-width: 0;
}

.conversation-name {
  font-weight: 600;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #444444;
}

.conversation-last-message {
  font-size: 0.9rem;
  color: #666;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* =========================
   Panel de chat
   ========================= */
.chat-panel {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  background-color: #ffffff;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  margin: 16px;
  margin-left: 0;
  border-radius: 0 16px 16px 0;
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
  height: calc(100% - 32px);
  min-width: 0;
}

.chat-header {
  padding: 20px 24px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-shrink: 0;
}

.chat-header-content {
  display: flex;
  align-items: center;
  gap: 16px;
  position: relative;
}

.chat-header-avatar {
  width: 48px;
  height: 48px;
}

.chat-header-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #e5e5e5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.chat-header h3 {
  margin: 0;
  font-size: 1.2rem;
  color: #333333;
  font-weight: 600;
}

.chat-messages {
  flex: 1 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: #f9f9f9;
  min-height: 0;
}

/* Conteneur principal pour la zone messages */
.messaging-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  width: 100%;
  /* Assure que le conteneur prend toute la largeur disponible */
}

.messages-container {
  flex: 1 1;
  overflow-y: auto;
  padding: 24px;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 0;
}

.messages-container::-webkit-scrollbar {
  width: 6px;
}

.messages-container::-webkit-scrollbar-thumb {
  background-color: rgba(200, 200, 200, 0.5);
  border-radius: 3px;
}

.messages-container::-webkit-scrollbar-track {
  background-color: rgba(246, 198, 116, 0.1);
}

/* =========================
   Messages individuels
   ========================= */
.message {
  margin-bottom: 16px;
  padding: 14px 18px;
  border-radius: 16px;
  position: relative;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  width: -webkit-fit-content;
  width: fit-content;
  max-width: min(600px, 75%);
  line-height: 1.5;
}

.message.received {
  align-self: flex-start;
  background-color: #f0f0f0;
  border-bottom-left-radius: 5px;
  margin-right: auto;
}

.message.sent {
  align-self: flex-end;
  background-color: #4f89c7;
  color: white;
  border-bottom-right-radius: 5px;
  margin-left: auto;
}

.message-text {
  word-wrap: break-word;
  line-height: 1.4;
  white-space: pre-wrap;
  max-width: 100%;
}

.message-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
}

.message-time {
  font-size: 11px;
  opacity: 0.7;
}

.message.sent .message-time {
  color: rgba(255, 255, 255, 0.8);
}

.message.received .message-time {
  color: rgba(0, 0, 0, 0.5);
}

/* Media */
.message-media {
  margin: -5px -10px 8px -10px;
}

.message-image-wrapper {
  position: relative;
  cursor: pointer;
  border-radius: inherit;
  overflow: hidden;
}

.message-image {
  width: 100%;
  max-width: 300px;
  height: auto;
  display: block;
  border-radius: 12px;
}

.message.sent .message-image {
  border-bottom-right-radius: 4px;
}

.message.received .message-image {
  border-bottom-left-radius: 4px;
}

.image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.3);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity 0.2s ease;
  border-radius: inherit;
}

.message-image-wrapper:hover .image-overlay {
  opacity: 1;
}

/* Fichier */
.file-download-link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.file-preview {
  display: flex;
  align-items: center;
  padding: 10px;
  border-radius: 8px;
  margin: -5px -10px;
}

.message.sent .file-preview {
  background-color: rgba(255, 255, 255, 0.1);
}

.message.received .file-preview {
  background-color: rgba(0, 0, 0, 0.05);
}

.file-icon {
  margin-right: 12px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.file-info {
  flex: 1 1;
  min-width: 0;
}

.file-name {
  display: block;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.download-label {
  font-size: 12px;
  opacity: 0.7;
}

/* =========================
   État "pas de conversation"
   ========================= */
.chat-empty-state {
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  background-color: #ffffff;
  flex-direction: column;
}

.chat-empty-state svg {
  color: #A5765C;
  color: var(--brown);
  opacity: 0.3;
  margin-bottom: 20px;
}

.chat-empty-state h3 {
  color: #A5765C;
  color: var(--brown);
  margin-bottom: 12px;
}

/* =========================
   Zone de saisie
   ========================= */
.chat-input-container {
  background: #ffffff;
  padding: 20px 24px;
  border-top: 1px solid rgba(165, 118, 92, 0.2);
  flex-shrink: 0;
}

.message-compose {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.input-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #f9f9f9;
  border-radius: 28px;
  padding: 12px 20px;
  border: 1px solid rgba(165, 118, 92, 0.2);
  transition: all 0.3s ease;
  min-height: 48px;
}

.input-row:focus-within {
  border-color: #F6C674;
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(246, 198, 116, 0.2);
}

.input-row input {
  flex: 1 1;
  border: none;
  background: transparent;
  font-size: 1rem;
  padding: 10px;
  outline: none;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

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

.upload-button {
  position: relative;
  cursor: pointer;
  padding: 10px;
  border-radius: 50%;
  color: #666666;
  transition: all 0.2s ease;
}

.upload-button:hover {
  color: #F6C674;
  color: var(--gold);
  background: rgba(246, 198, 116, 0.1);
}

.send-button {
  background: #4f89c7;
  border: none;
  padding: 10px;
  cursor: pointer;
  color: white;
  border-radius: 50%;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
}

.send-button:hover {
  background: #F6C674;
  background: var(--gold);
  transform: scale(1.05);
}

.send-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Preview avant envoi */
.upload-preview-container {
  margin: 10px 0;
  border-radius: 12px;
  overflow: hidden;
  background: #f9f9f9;
  border: 1px solid rgba(165, 118, 92, 0.2);
  max-width: 300px;
}

.upload-preview-wrapper {
  position: relative;
}

.upload-preview-image {
  width: 100%;
  height: auto;
  display: block;
}

.upload-preview-info {
  padding: 10px 14px;
}

.upload-preview-name {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #444444;
  margin-bottom: 2px;
}

.upload-preview-size {
  font-size: 12px;
  color: #666;
}

.remove-preview {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(0, 0, 0, 0.5);
  border: none;
  border-radius: 50%;
  width: 26px;
  height: 26px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: white;
  transition: all 0.2s ease;
}

.remove-preview:hover {
  background: rgba(0, 0, 0, 0.7);
  transform: scale(1.1);
}

/* =========================
   Skeletons
   ========================= */
.skeleton-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 20px;
}

.skeleton-conversation {
  background: #f9f9f9;
  padding: 16px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.skeleton-avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: #e2e8f0;
}

.skeleton-content {
  flex: 1 1;
}

.skeleton-name {
  height: 20px;
  width: 150px;
  background: #e2e8f0;
  border-radius: 4px;
  margin-bottom: 8px;
}

.skeleton-message {
  height: 16px;
  width: 80%;
  background: #e2e8f0;
  border-radius: 4px;
}

.pulse {
  animation: pulse 1.5s ease-in-out infinite;
  background: linear-gradient(90deg,
      #e2e8f0 0%,
      #f8fafc 50%,
      #e2e8f0 100%);
  background-size: 200% 100%;
}

@keyframes pulse {
  0% {
    background-position: 200% 0;
  }

  100% {
    background-position: -200% 0;
  }
}

.message-skeleton-container {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
}

.message-skeleton {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 60%;
}

.message-skeleton.left {
  align-self: flex-start;
}

.message-skeleton.right {
  align-self: flex-end;
}

.message-skeleton-content {
  height: 36px;
  background: #e2e8f0;
  border-radius: 16px;
  width: 100%;
}

.message-skeleton-time {
  height: 12px;
  width: 60px;
  background: #e2e8f0;
  border-radius: 4px;
  align-self: flex-end;
}

/* Styles améliorés pour la box "Prochaine réservation" */
.chat-next-reservation {
  margin: 10px 20px 20px;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(135deg, #f6f2ef 0%, #fff 100%);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  border: 1px solid rgba(165, 118, 92, 0.2);
}

.chat-next-reservation:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

.chat-next-reservation-header {
  display: flex;
  align-items: center;
  padding: 14px 18px;
  background: #4f89c7;
  color: white;
  font-weight: 600;
  font-size: 14px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.chat-next-reservation-header svg {
  margin-right: 10px;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

.chat-next-reservation-content {
  transition: opacity 0.3s ease, transform 0.3s ease, padding 0.3s ease;
  overflow: hidden;
}

.chat-next-reservation-content.collapsed {
  padding: 0 !important;
  height: 0;
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}

.chat-next-reservation-content.expanded {
  padding: 18px;
  opacity: 1;
  transform: translateY(0);
  height: auto;
  pointer-events: auto;
}

.chat-next-reservation-date {
  font-size: 16px;
  font-weight: 700;
  color: #444444;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
}

.chat-next-reservation-date:before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #FFA351;
  background-color: var(--orange);
  margin-right: 10px;
  box-shadow: 0 0 0 2px rgba(255, 163, 81, 0.2);
}

.chat-next-reservation-info {
  font-size: 15px;
  color: #333;
  margin-bottom: 10px;
  font-weight: 500;
  display: flex;
  align-items: center;
}

.chat-next-reservation-info:before {
  content: "•";
  color: #F6C674;
  color: var(--gold);
  margin-right: 10px;
  font-weight: bold;
}

.chat-next-reservation-animal {
  display: flex;
  align-items: center;
  font-size: 14px;
  color: #555;
  margin-bottom: 15px;
}

.chat-next-reservation-animal svg {
  margin-right: 8px;
  color: #EE9F99;
  color: var(--peach);
}

.chat-next-reservation-location {
  display: flex;
  align-items: center;
  font-size: 14px;
  color: #555;
  margin-bottom: 15px;
  font-style: italic;
}

.chat-next-reservation-location svg {
  margin-right: 8px;
  color: #A5765C;
  color: var(--brown);
}

.chat-next-reservation-action {
  margin-top: 12px;
  text-align: right;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.chat-next-reservation-link {
  display: inline-flex;
  align-items: center;
  padding: 10px 16px;
  background-color: #4f89c7;
  color: white;
  border-radius: 8px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.chat-next-reservation-link:hover {
  background-color: #F6C674;
  background-color: var(--gold);
  color: #333;
  box-shadow: 0 4px 8px rgba(246, 198, 116, 0.4);
  transform: translateY(-1px);
}

/* Style pour le bouton Créer une réservation */
a.chat-next-reservation-link.create-reservation,
button.chat-next-reservation-link.create-reservation {
  background-color: white;
  color: #333;
  border: 2px solid #F6C674;
  border: 2px solid var(--gold);
  padding: 10px 16px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.2s ease;
}

a.chat-next-reservation-link.create-reservation:hover,
button.chat-next-reservation-link.create-reservation:hover {
  background-color: #F6C674;
  background-color: var(--gold);
  color: #333;
  box-shadow: 0 4px 12px rgba(246, 198, 116, 0.4);
}

a.chat-next-reservation-link.create-reservation svg,
button.chat-next-reservation-link.create-reservation svg {
  color: #F6C674;
  color: var(--gold);
  transition: all 0.2s ease;
}

a.chat-next-reservation-link.create-reservation:hover svg,
button.chat-next-reservation-link.create-reservation:hover svg {
  color: #333;
}

.chat-next-reservation-loading,
.chat-next-reservation-error {
  padding: 18px;
  text-align: center;
  color: #666;
  font-size: 14px;
  background-color: #f9fafb;
  border-radius: 12px;
  margin: 10px 15px;
  border: 1px dashed rgba(165, 118, 92, 0.2);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.chat-next-reservation-loading svg,
.chat-next-reservation-error svg {
  margin-bottom: 5px;
}

.chat-next-reservation-error {
  border-color: rgba(238, 159, 153, 0.5);
  color: #b91c1c;
  background-color: rgba(238, 159, 153, 0.1);
}

.chat-next-reservation-error button {
  transition: all 0.2s ease;
  background-color: white;
  border: 1px solid #4f89c7;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.chat-next-reservation-error button:hover {
  background-color: #4f89c7;
  color: white;
}

.chat-next-reservation-error button:hover svg {
  color: white;
}

.chat-next-reservation-date .status-badge {
  margin-left: auto;
  font-size: 12px;
  padding: 3px 8px;
  border-radius: 12px;
  font-weight: bold;
  display: inline-flex;
  align-items: center;
}

.animate-spin {
  animation: spin 1.5s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }

  100% {
    transform: rotate(360deg);
  }
}

.client-selector {
  padding: 18px;
  background-color: #fff;
  border-bottom: 1px solid rgba(165, 118, 92, 0.2);
}

.client-selector .MuiAutocomplete-root {
  width: 100%;
}

.client-selector .MuiTextField-root {
  width: 100%;
}

.client-option {
  width: 100%;
  padding: 10px;
}

.client-name {
  font-weight: 600;
  margin-bottom: 4px;
  color: #444444;
}

.client-details {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.875rem;
  color: #666;
}

.client-email {
  flex: 1 1;
}

.client-type {
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 500;
}

.client-type.account {
  background-color: rgba(79, 137, 199, 0.15);
  color: #4f89c7;
}

.client-type.invited {
  background-color: rgba(238, 159, 153, 0.2);
  color: #9c27b0;
}

.conversation-list-header {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 24px;
  padding: 0;
}

.conversation-list-header h2 {
  margin: 0;
  font-size: 1.3rem;
  color: #444444;
  font-weight: 700;
}

.create-conversation-button {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: #4f89c7;
  color: white;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  width: -webkit-fit-content;
  width: fit-content;
}

.create-conversation-button:hover {
  background: #F6C674;
  background: var(--gold);
  color: #333;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.create-conversation-button:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.create-conversation-button svg {
  width: 20px;
  height: 20px;
  transition: transform 0.2s ease;
}

.create-conversation-button:hover svg {
  transform: rotate(45deg);
}

.create-conversation-modal {
  padding: 20px 0;
}

.client-selection {
  margin-bottom: 20px;
}

.first-message {
  margin-top: 20px;
}

/* Styles pour la modale */
.MuiDialog-paper {
  border-radius: 16px;
  overflow: hidden;
}

.MuiDialogTitle-root {
  padding: 20px 24px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  background-color: #F6F2EF;
  background-color: var(--light-gray);
  color: #444444;
  font-weight: 600;
}

.MuiDialogContent-root {
  padding: 24px;
}

.MuiDialogActions-root {
  padding: 16px 24px;
  border-top: 1px solid rgba(165, 118, 92, 0.2);
  background-color: #F6F2EF;
  background-color: var(--light-gray);
}

/* Style pour le bouton de création désactivé */
.MuiButton-contained:disabled {
  background-color: #e0e0e0;
  color: #9e9e9e;
}

.back-to-conversations {
  display: none;
}

/* Afficher le bouton retour uniquement en mobile */
@media (max-width: 768px) {

  /* Bouton retour style flèche */
  .back-to-conversations {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    color: #444444;
    cursor: pointer;
    margin-right: 8px;
    transition: all 0.2s ease;
    padding: 0;
  }

  .back-to-conversations svg {
    width: 24px;
    height: 24px;
  }

  .back-to-conversations:active {
    transform: scale(0.95);
    opacity: 0.7;
  }

  /* Container principal en mode mobile */
  .messaging-page-container {
    flex-direction: column;
    position: relative;
    height: calc(100vh - 60px);
    overflow: hidden;
  }

  /* Liste des conversations en plein écran par défaut */
  .conversation-list {
    width: 100%;
    max-width: 100%;
    height: 100%;
    border-right: none;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 1;
    transform: translateX(0);
    z-index: 20;
    padding-top: 10px;
  }

  /* Panel de chat en plein écran quand affiché */
  .chat-panel {
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.3s ease, opacity 0.2s ease;
    transform: translateX(100%);
    opacity: 0;
    z-index: 10;
  }

  /* Animation style Instagram */
  .messaging-page-container.show-chat .conversation-list {
    transform: translateX(-100%);
    opacity: 0;
  }

  .messaging-page-container.show-chat .chat-panel {
    transform: translateX(0);
    opacity: 1;
    z-index: 20;
  }

  /* Style Instagram pour la liste des conversations */
  .conversation-list-header {
    padding: 10px 16px;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    background: white;
    z-index: 10;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  }

  .conversation-item {
    margin-bottom: 2px;
    border-radius: 0;
    padding: 12px 16px;
  }

  /* Ajustements du formulaire de message */
  .chat-input-container {
    position: -webkit-sticky;
    position: sticky;
    bottom: 0;
    padding: 12px;
    box-shadow: 0 -1px 5px rgba(0, 0, 0, 0.05);
  }

  /* Ajustement espace messages */
  .chat-messages {
    padding: 10px;
    padding-bottom: 60px;
    /* Pour éviter que les derniers messages soient cachés */
  }

  /* Ajustements des animations de transition */
  .conversation-list,
  .chat-panel {
    will-change: transform, opacity;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
  }

  /* Gestion améliorée du tap sur mobile */
  .conversation-item:active {
    background-color: rgba(0, 0, 0, 0.05);
  }

  /* Statut de chargement plus visible en mobile */
  .loading-overlay {
    z-index: 100;
  }
}

/* Pour le menu des messages dans la sidebar */
.sidebar-link .badge {
  position: relative;
}

.sidebar-link .unread-badge {
  position: absolute;
  top: -5px;
  right: -10px;
  width: 18px;
  height: 18px;
  background-color: #ff4d4f;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: white;
  font-weight: bold;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Loading overlay */
.loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255, 255, 255, 0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
  z-index: 1000;
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
}

.loading-overlay p {
  color: #444444;
  font-weight: 500;
}

.chat-next-reservation-link svg:not(:first-child) {
  margin-left: 8px;
}
.association-cgv-page {
  padding: 2rem;
  max-width: 1200px;
  margin: 0 auto;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
}

.cgv-header-card {
  margin-bottom: 1.5rem;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(165, 118, 92, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cgv-header-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.cgv-header-card h3 {
  color: var(--brown);
  font-weight: 700;
  margin: 0;
}

.cgv-header-card .ant-card-body {
  padding: 1.5rem;
}

.cgv-editor-card {
  min-height: 500px;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(165, 118, 92, 0.1);
  overflow: hidden;
  background: white;
}

.cgv-editor-card .ant-card-head {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-bottom: 2px solid rgba(165, 118, 92, 0.15);
}

.cgv-editor-card .ant-card-head-title {
  color: var(--brown);
  font-weight: 700;
}

.cgv-editor-card .ant-input {
  border-radius: 8px;
  border-color: rgba(165, 118, 92, 0.2);
  transition: all 0.3s ease;
}

.cgv-editor-card .ant-input:hover {
  border-color: var(--gold);
}

.cgv-editor-card .ant-input:focus {
  border-color: var(--brown);
  box-shadow: 0 0 0 2px rgba(165, 118, 92, 0.1);
}

.cgv-editor-card .ant-btn-primary {
  background: linear-gradient(45deg, var(--brown), #b5866b);
  border: none;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.25);
  border-radius: 8px;
  font-weight: 600;
  height: 40px;
  transition: all 0.3s ease;
}

.cgv-editor-card .ant-btn-primary:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.35);
}

/* Responsive */
@media (max-width: 768px) {
  .association-cgv-page {
    padding: 1rem;
  }
}


.association-settings-page {
  padding: 2rem;
  max-width: 900px;
  margin: 0 auto;
  min-height: 100vh;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
}

.association-settings-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 2rem;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  padding: 1.5rem;
  border: 1px solid rgba(165, 118, 92, 0.1);
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.association-settings-header:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.association-settings-header h2 {
  margin: 0;
  color: var(--brown);
  font-weight: 700;
  font-size: 1.8rem;
}

.association-settings-loading,
.association-settings-error {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 50vh;
}

/* Cartes de section */
.settings-section-card {
  margin-bottom: 2rem;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  border: 1px solid rgba(165, 118, 92, 0.1);
  overflow: hidden;
  background: white;
  transition: all 0.3s ease;
}

.settings-section-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
}

.settings-section-card .ant-card-head {
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.1), rgba(238, 159, 153, 0.1));
  border-bottom: 2px solid rgba(246, 198, 116, 0.2);
}

.settings-section-card .ant-card-head-title {
  color: var(--brown);
  font-weight: 700;
  font-size: 1.2rem;
}

/* Section des images */
.images-section {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
}

.image-upload-card {
  border: 2px solid #f0f0f0;
  border-radius: 12px;
  padding: 1.5rem;
  background: linear-gradient(135deg, #fafafa, #ffffff);
  transition: all 0.3s ease;
}

.image-upload-card:hover {
  border-color: rgba(246, 198, 116, 0.3);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.image-upload-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1rem;
  gap: 1rem;
}

.image-upload-info h4 {
  margin: 0 0 0.5rem 0;
  color: var(--brown);
  font-weight: 600;
  font-size: 1.1rem;
}

.image-upload-info p {
  margin: 0;
  color: #666;
  font-size: 0.9rem;
  line-height: 1.4;
}

.image-upload-actions {
  flex-shrink: 0;
}

.image-upload-actions .ant-btn {
  background: linear-gradient(45deg, var(--brown), #b5866b);
  border: none;
  box-shadow: 0 2px 8px rgba(165, 118, 92, 0.2);
  border-radius: 8px;
  font-weight: 600;
  transition: all 0.3s ease;
}

.image-upload-actions .ant-btn:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3);
}

/* Aperçus d'images */
.image-preview {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  align-items: center;
  padding: 1rem;
  background: #f8f9fa;
  border-radius: 8px;
  border: 1px solid #e9ecef;
}

.banner-preview {
  width: 100%;
  max-width: 400px;
  height: 120px;
  object-fit: cover;
  border-radius: 8px;
  border: 2px solid #d9d9d9;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.circular-preview {
  width: 80px;
  height: 80px;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid #FFD700;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.image-preview-info {
  text-align: center;
}

/* Section des actions */
.settings-actions {
  display: flex;
  justify-content: center;
  padding: 1rem 0;
}

.settings-actions .ant-btn {
  background: linear-gradient(45deg, var(--brown), #b5866b);
  border: none;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.25);
  border-radius: 8px;
  font-weight: 600;
  height: 48px;
  padding: 0 32px;
  font-size: 1.1rem;
  transition: all 0.3s ease;
}

.settings-actions .ant-btn:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58);
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.35);
}

.logo-upload-container {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.logo-preview {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.logo-preview img {
  width: 200px;
  height: 200px;
  object-fit: cover;
  border-radius: 12px;
  border: 3px solid var(--gold);
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.15);
  transition: all 0.3s ease;
}

.logo-preview img:hover {
  transform: scale(1.05);
  border-color: var(--peach);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.25);
}

.association-info-card {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border-radius: 12px;
  border: 1px solid rgba(165, 118, 92, 0.1);
  overflow: hidden;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.05), rgba(238, 159, 153, 0.05));
}

.association-info-card h4 {
  color: var(--brown);
  font-weight: 700;
}

.association-info-card ul {
  margin: 1rem 0 0 0;
  padding-left: 1.5rem;
}

.association-info-card li {
  margin-bottom: 0.5rem;
  color: #666;
}

/* Styles pour le modal de cropping */
.crop-container {
  position: relative;
  width: 100%;
  height: 400px;
  background-color: #333;
  border-radius: 8px;
  overflow: hidden;
}

.crop-controls {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 16px 0;
}

.crop-preview {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.crop-preview-box {
  width: 200px;
  height: 200px;
  border-radius: 8px;
  overflow: hidden;
  border: 2px solid #d9d9d9;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.crop-preview-box img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Responsive Design */
@media (max-width: 768px) {
  .association-settings-page {
    padding: 1rem;
  }

  .association-settings-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .image-upload-header {
    flex-direction: column;
    align-items: stretch;
    gap: 1rem;
  }

  .image-upload-actions {
    align-self: stretch;
  }

  .image-upload-actions .ant-btn {
    width: 100%;
  }

  .banner-preview {
    max-width: 100%;
    height: 100px;
  }

  .circular-preview {
    width: 60px;
    height: 60px;
  }

  .crop-container {
    height: 300px;
  }

  .crop-preview-box {
    width: 150px;
    height: 150px;
  }

  .settings-actions .ant-btn {
    width: 100%;
    height: 44px;
    font-size: 1rem;
  }
}

/* Page d'erreur d'accès refusé */
.association-settings-error {
  padding: 2rem;
  max-width: 600px;
  margin: 0 auto;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #fafafa, #f6f2ef, rgba(246, 198, 116, 0.05));
}

.association-settings-error .ant-card {
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  border: 1px solid rgba(165, 118, 92, 0.1);
  background: linear-gradient(135deg, #ffffff, #fafafa);
}

.association-settings-error .ant-card-head {
  background: linear-gradient(135deg, rgba(255, 77, 79, 0.1), rgba(255, 152, 0, 0.1));
  border-bottom: 2px solid rgba(255, 77, 79, 0.2);
}

.association-settings-error .ant-card-head-title {
  color: #ff4d4f;
  font-weight: 700;
}


/* App.css */


.app-container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.main-content {
  display: flex;
  flex: 1 1;
}

@media screen and (min-width: 768px) {
  .main-content {
    flex-direction: row;
  }
}

@media screen and (max-width: 767px) {
  .main-content {
    flex-direction: column;
  }
}

.sidebar {
  flex: 0 0 220px;
}

.content-wrapper {
  flex: 1 1;
  padding: 20px;
}

/* Footer */
.footer {
  background: #333;
  color: #fff;
  text-align: center;
  padding: 20px;
  z-index: 1001;
}

/* Global fixes pour les dropdowns Ant Design */

/* Fix prioritaire pour tous les dropdowns Ant Design */
.ant-select-dropdown {
  z-index: 9999 !important;
}

/* Fix spécifique pour les dropdowns dans les modals */
.ant-modal .ant-select-dropdown,
.custom-modal .ant-select-dropdown {
  z-index: 10000 !important;
}

/* Correction du bug Chrome avec les animations de dropdown */
.ant-select-dropdown.ant-slide-up-appear,
.ant-select-dropdown.ant-slide-up-enter {
  opacity: 1 !important;
  transform: translateY(0) !important;
  animation-duration: 0.2s !important;
}

.ant-select-dropdown.ant-slide-up-appear-active,
.ant-select-dropdown.ant-slide-up-enter-active {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

/* Amélioration de la visibilité des options */
.ant-select-item-option {
  transition: background-color 0.2s ease !important;
  padding: 8px 12px !important;
  min-height: 32px !important;
  display: flex !important;
  align-items: center !important;
}

/* Harmonisation avec la charte (suppression du bleu AntD par défaut) */
.ant-select-item-option:hover {
  background-color: rgba(165, 118, 92, 0.08) !important;
  /* brown */
}

.ant-select-item-option-selected {
  background-color: rgba(246, 198, 116, 0.18) !important;
  /* gold */
  font-weight: 600 !important;
}

.ant-select-item-option-selected:hover {
  background-color: rgba(246, 198, 116, 0.28) !important;
  /* gold stronger */
}

/* Fix pour éviter que le dropdown disparaisse */
.ant-select-dropdown-placement-bottomLeft,
.ant-select-dropdown-placement-bottomRight,
.ant-select-dropdown-placement-topLeft,
.ant-select-dropdown-placement-topRight {
  pointer-events: auto !important;
}

/* Amélioration de l'accessibilité */
.ant-select-selector:focus {
  border-color: #A5765C !important;
  box-shadow: 0 0 0 2px rgba(165, 118, 92, 0.18) !important;
  outline: none !important;
}

/* Pagination globale (fond blanc, brand) */
.ant-pagination-item {
  border-radius: 8px !important;
}

.ant-pagination-item-active {
  background: #fff !important;
  border-color: #F6C674 !important;
  border-color: var(--gold, #F6C674) !important;
}

.ant-pagination-item-active a {
  color: #A5765C !important;
  color: var(--brown, #A5765C) !important;
}

/* Tag bleu AntD → brand */
.ant-tag-blue {
  color: #A5765C !important;
  color: var(--brown, #A5765C) !important;
  background: rgba(165, 118, 92, 0.08) !important;
  border-color: rgba(165, 118, 92, 0.2) !important;
}

/* Utilitaires éventuels hérités (text-blue-600 etc.) */
.text-blue-600 {
  color: #A5765C !important;
  color: var(--brown, #A5765C) !important;
}

.bg-blue-50 {
  background: rgba(165, 118, 92, 0.05) !important;
}

.border-blue-200 {
  border-color: rgba(165, 118, 92, 0.2) !important;
}
.not-found-page{
    min-height: 80vh;
}
.quotes-page {
  padding: 24px;
  background-color: #f5f5f5;
  min-height: 100vh;
  max-width: 1100px;
  margin: 0 auto;
}

.quotes-page-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 24px;
}

.quotes-page-header h2 {
  margin: 0;
  color: #A5765C;
}

.quotes-filters-card {
  margin-bottom: 24px;
}

.quotes-filters-card .ant-card-body {
  padding: 16px;
}

/* Responsive */
@media (max-width: 768px) {
  .quotes-page {
    padding: 16px;
  }

  .quotes-page-header {
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
  }

  .quotes-page-header button {
    width: 100%;
  }
}

/* Premium Wall Styles */
.quotes-premium-container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 40px;
  gap: 40px;
  padding: 60px 40px;
  max-width: 1200px;
  margin: 0 auto;
  min-height: calc(100vh - 100px);
  align-items: center;
}

.quotes-premium-content {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.quotes-premium-title {
  font-size: 32px;
  font-weight: 800;
  color: #1a1a1a;
  display: flex;
  align-items: center;
  gap: 15px;
  margin: 0;
}

.quotes-premium-icon {
  color: #faad14;
}

.quotes-premium-intro {
  font-size: 18px;
  color: #666;
  line-height: 1.6;
}

.quotes-premium-feature-icon {
  width: 40px;
  height: 40px;
  background: #fdf2f2;
  border-radius: 10px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #A5765C;
  font-size: 20px;
}

.quotes-premium-feature-title {
  font-weight: 700;
  font-size: 16px;
  color: #1a1a1a;
}

.quotes-premium-feature-desc {
  color: #666;
  font-size: 14px;
}

.quotes-premium-cta {
  margin-top: 20px;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.quotes-premium-button {
  background: #A5765C !important;
  color: white !important;
  border: none !important;
  height: 50px !important;
  border-radius: 25px !important;
  font-weight: 700 !important;
  font-size: 16px !important;
  width: -webkit-fit-content;
  width: fit-content;
  padding: 0 40px !important;
}

.quotes-premium-price {
  font-size: 13px;
  color: #999;
}

.quotes-premium-videos {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.quotes-video-container {
  position: relative;
  width: 100%;
  aspect-ratio: 16/9;
  border-radius: 20px;
  overflow: hidden;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.2);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  z-index: 2;
  transition: all 0.3s ease;
}

.video-overlay:hover {
  background: rgba(0, 0, 0, 0.4);
}

.overlay-text {
  color: white;
  margin-top: 15px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.youtube-iframe {
  width: 100%;
  height: 100%;
  border: none;
}

/* Cinema Mode */
.cinema-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.95);
  z-index: 9998;
}

.cinema-video-container {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 90vw;
  height: calc(90vw * 9/16);
  max-width: 1200px;
  max-height: 675px;
  z-index: 9999;
}

.cinema-iframe {
  width: 100%;
  height: 100%;
  border-radius: 12px;
  border: none;
}

.cinema-exit-button {
  position: fixed;
  top: 30px;
  left: 30px;
  z-index: 10000;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: white;
  padding: 10px 20px;
  border-radius: 30px;
  cursor: pointer;
  display: flex;
  align-items: center;
  font-weight: 600;
  transition: all 0.2s;
}

.cinema-exit-button:hover {
  background: rgba(255, 255, 255, 0.2);
}

@media (max-width: 1024px) {
  .quotes-premium-container {
    grid-template-columns: 1fr;
    padding: 40px 20px;
    text-align: center;
  }

  .quotes-premium-title {
    justify-content: center;
  }

  .quotes-premium-cta {
    align-items: center;
  }

  .quotes-premium-button {
    width: 100%;
  }

  .quotes-premium-feature-icon {
    margin: 0 auto;
  }
}
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  --error-color: #ff4d4f;
}

.signup-pro-container {
  display: flex;
  justify-content: center;
  align-items: center;
  min-height: 100vh;
  background: linear-gradient(135deg, #F6F2EF, #fff);
  background: linear-gradient(135deg, var(--light-gray), #fff);
  padding: 20px;
  position: relative;
  overflow: hidden;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

/* Ajout d'un fond décoratif avec des motifs de pattes */
.signup-pro-container::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.15%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
  background-size: 100px 100px;
  opacity: 0.5;
  z-index: 0;
}

.signup-form-container {
  background: #ffffff;
  padding: 35px 30px;
  border-radius: 16px;
  border-radius: var(--border-radius);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  width: 100%;
  max-width: 480px;
  position: relative;
  z-index: 1;
  border: 1px solid rgba(246, 198, 116, 0.2);
  display: flex;
  flex-direction: column;
  align-items: center;
}

.signup-title {
  font-size: 2.2rem;
  font-weight: 800;
  margin-bottom: 15px;
  color: #000000;
  color: var(--black);
  text-align: center;
  position: relative;
  display: inline-block;
}

.signup-title::after {
  content: ".";
  position: relative;
  color: #F6C674;
  color: var(--gold);
  font-size: 2.6rem;
  font-weight: 900;
}

.instructions {
  font-size: 1rem;
  color: #333333;
  color: var(--text-color);
  margin-bottom: 25px;
  text-align: center;
  line-height: 1.5;
}

/* Nouveau style pour tous les champs de formulaire */
.form-field {
  width: 100%;
  margin-bottom: 16px;
  display: flex;
  flex-direction: column;
}

.form-label {
  display: block;
  font-weight: 600;
  color: #A5765C;
  color: var(--brown);
  margin-bottom: 8px;
  font-size: 0.95rem;
  text-align: left;
  align-self: flex-start;
}

.form-label-required {
  color: #FFA351;
  color: var(--orange);
  margin-left: 2px;
}

.form-input,
.form-textarea,
.form-select,
.form-file {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid rgba(165, 118, 92, 0.2);
  border-radius: 12px;
  font-size: 1rem;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  transition: all 0.3s;
  box-sizing: border-box;
}

.form-textarea {
  resize: vertical;
  min-height: 100px;
}

.form-select {
  -webkit-appearance: none;
          appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2716%27 height=%2716%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27%23A5765C%27 stroke-width=%272%27 stroke-linecap=%27round%27 stroke-linejoin=%27round%27%3E%3Cpath d=%27M6 9l6 6 6-6%27/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  padding-right: 40px;
}

.form-file {
  padding: 10px;
  background-color: rgba(246, 198, 116, 0.05);
  border: 1px dashed rgba(165, 118, 92, 0.3);
}

.form-file:hover {
  background-color: rgba(246, 198, 116, 0.1);
  border-color: rgba(165, 118, 92, 0.5);
}

.form-file::-webkit-file-upload-button {
  background-color: #A5765C;
  background-color: var(--brown);
  color: white;
  padding: 8px 12px;
  border: none;
  border-radius: 6px;
  margin-right: 10px;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  cursor: pointer;
}

.form-file::file-selector-button {
  background-color: #A5765C;
  background-color: var(--brown);
  color: white;
  padding: 8px 12px;
  border: none;
  border-radius: 6px;
  margin-right: 10px;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  cursor: pointer;
}

.form-input:focus,
.form-textarea:focus,
.form-select:focus,
.form-file:focus {
  border-color: #F6C674;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(246, 198, 116, 0.2);
  outline: none;
}

/* Styles pour l'autocomplete de Google Maps */
.autocomplete-container {
  width: 100%;
  position: relative;
}

.form-address-input {
  width: 100%;
  padding: 14px 16px;
  border: 1px solid rgba(165, 118, 92, 0.2);
  border-radius: 12px;
  font-size: 1rem;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  transition: all 0.3s;
  box-sizing: border-box;
}

.form-address-input:focus {
  border-color: #F6C674;
  border-color: var(--gold);
  box-shadow: 0 0 0 3px rgba(246, 198, 116, 0.2);
  outline: none;
}

.pac-container {
  border-radius: 8px;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  margin-top: 5px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  border: 1px solid rgba(165, 118, 92, 0.2);
  z-index: 1050 !important;
}

.pac-item {
  padding: 8px 10px;
  font-size: 0.95rem;
  cursor: pointer;
}

.pac-item:hover {
  background-color: rgba(246, 198, 116, 0.1);
}

.files-count {
  font-size: 0.9rem;
  color: #A5765C;
  color: var(--brown);
  margin-top: 8px;
  margin-bottom: 0;
  background: rgba(246, 198, 116, 0.1);
  padding: 8px 12px;
  border-radius: 8px;
  display: inline-block;
  align-self: flex-start;
}

.upload-progress-container {
  text-align: center;
  margin: 16px 0;
  padding: 15px;
  background: rgba(246, 198, 116, 0.1);
  border-radius: 10px;
  border-left: 4px solid #F6C674;
  border-left: 4px solid var(--gold);
  width: 100%;
}

.progress-bar {
  width: 100%;
  height: 12px;
  background-color: rgba(255, 255, 255, 0.6);
  border-radius: 6px;
  margin: 15px 0;
  position: relative;
  overflow: hidden;
}

.progress-bar-fill {
  height: 100%;
  background: linear-gradient(90deg, #F6C674, #FFA351);
  background: linear-gradient(90deg, var(--gold), var(--orange));
  border-radius: 6px;
  transition: width 0.3s;
}

.submitting-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin: 16px 0;
  padding: 15px;
  background: rgba(246, 198, 116, 0.1);
  border-radius: 10px;
  width: 100%;
}

.spinner {
  width: 22px;
  height: 22px;
  border: 3px solid rgba(165, 118, 92, 0.3);
  border-top-color: #A5765C;
  border-top-color: var(--brown);
  border-radius: 50%;
  animation: spin 1s linear infinite;
}

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

.disabled-message {
  font-size: 0.95rem;
  color: #777;
  text-align: center;
  margin: 16px 0;
  background: rgba(246, 198, 116, 0.1);
  padding: 12px;
  border-radius: 8px;
  border-left: 3px solid #F6C674;
  border-left: 3px solid var(--gold);
  line-height: 1.4;
  width: 100%;
}

.signup-button {
  width: 100%;
  padding: 16px;
  background: linear-gradient(135deg, #A5765C, #8e6651);
  background: linear-gradient(135deg, var(--brown), #8e6651);
  color: white;
  border: none;
  border-radius: 12px;
  font-size: 1.05rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3);
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  margin-top: 16px;
}

.signup-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 6px 16px rgba(165, 118, 92, 0.4);
}

.signup-button:disabled {
  background: linear-gradient(135deg, #ccc, #aaa);
  cursor: not-allowed;
  transform: none;
  box-shadow: none;
}

.signup-back-button {
  align-self: flex-start;
  background: transparent;
  color: #A5765C;
  color: var(--brown);
  border: 1px solid #A5765C;
  border: 1px solid var(--brown);
  border-radius: 8px;
  padding: 10px 16px;
  font-size: 0.95rem;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.3s;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  margin-bottom: 20px;
  display: flex;
  align-items: center;
  gap: 6px;
}

.signup-back-button:hover {
  background-color: #A5765C;
  background-color: var(--brown);
  color: white;
  transform: translateX(-3px);
}

.signup-back-button:active {
  transform: translateX(-1px);
}

@media (max-width: 480px) {
  .signup-form-container {
    padding: 25px 20px;
  }
  
  .signup-title {
    font-size: 1.8rem;
  }
  
  .form-input,
  .form-textarea,
  .form-select,
  .form-address-input,
  .form-file {
    padding: 12px 14px;
  }
  
  .signup-button {
    padding: 14px;
  }
}

/* === PREMIUM STATS PAGE DESIGN === */
/* Modern glassmorphism + gradients + micro-animations */

/* Import Google Fonts */

/* CSS Variables for consistent theming */
:root {
  --brand-primary: #A5765C;
  --brand-secondary: #F6C674;
  --brand-accent: #EE9F99;
  --brand-success: #10B981;
  --brand-danger: #EF4444;
  --brand-warning: #F59E0B;
  --brand-purple: #8B5CF6;

  --bg-primary: linear-gradient(135deg, #faf8f5 0%, #f5f0eb 100%);
  --bg-card: rgba(255, 255, 255, 0.85);
  --bg-glass: rgba(255, 255, 255, 0.6);

  --shadow-sm: 0 2px 8px rgba(165, 118, 92, 0.08);
  --shadow-md: 0 4px 16px rgba(165, 118, 92, 0.12);
  --shadow-lg: 0 8px 32px rgba(165, 118, 92, 0.16);
  --shadow-glow: 0 0 30px rgba(246, 198, 116, 0.3);

  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
}

.pro-stats-page {
  padding: 24px;
  max-width: 1100px;
  margin: 0 auto;
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  background: linear-gradient(135deg, #faf8f5 0%, #f5f0eb 100%);
  background: var(--bg-primary);
  min-height: 100vh;
  box-sizing: border-box;
  overflow-x: hidden;
}

.pro-stats-page,
.pro-stats-page .ant-typography,
.pro-stats-page .ant-card {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
}

/* Section premium pour les statistiques */
.stats-premium-container {
  display: flex;
  flex-wrap: wrap;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px;
  background: linear-gradient(135deg, #fff, #f9f5f1);
  border-radius: 20px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
  position: relative;
  overflow: hidden;
  border: 1px solid rgba(165, 118, 92, 0.1);
  animation: fadeIn 0.5s ease-out forwards;
  width: 90%;
  min-height: 80vh;
  justify-content: center;
  align-items: center;
}

@keyframes fadeIn {
  from {
    opacity: 0;
  }

  to {
    opacity: 1;
  }
}

.stats-premium-container::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(246, 198, 116, 0.15) 0%, rgba(246, 198, 116, 0) 70%);
  border-radius: 50%;
  z-index: 0;
}

.stats-premium-container::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 200px;
  height: 200px;
  background: radial-gradient(circle, rgba(238, 159, 153, 0.1) 0%, rgba(238, 159, 153, 0) 70%);
  border-radius: 50%;
  z-index: 0;
}

.stats-premium-content {
  flex: 1 1;
  min-width: 300px;
  max-width: 600px;
  position: relative;
  z-index: 1;
}

.stats-premium-title {
  font-size: 2rem;
  font-weight: 700;
  color: #333;
  margin-bottom: 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  position: relative;
  padding-bottom: 12px;
}

.stats-premium-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 0;
  width: 80px;
  height: 3px;
  background: linear-gradient(to right, #F6C674, #EE9F99, #FFA351);
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(246, 198, 116, 0.3);
}

.stats-premium-icon {
  font-size: 2rem;
  color: #F6C674;
}

.stats-premium-intro {
  font-size: 1.2rem;
  line-height: 1.6;
  margin-bottom: 30px;
  color: #555;
}

.stats-premium-features {
  margin-bottom: 30px;
}

.stats-premium-features .ant-list-item {
  border-bottom: none !important;
  padding-top: 12px;
  padding-bottom: 12px;
  transition: transform 0.3s ease;
}

.stats-premium-features .ant-list-item:hover {
  transform: translateX(5px);
  background-color: rgba(246, 198, 116, 0.05);
  border-radius: 8px;
}

.stats-premium-feature-icon {
  width: 40px;
  height: 40px;
  background: linear-gradient(135deg, rgba(246, 198, 116, 0.2), rgba(238, 159, 153, 0.2));
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #A5765C;
  font-size: 1.2rem;
  box-shadow: 0 4px 8px rgba(165, 118, 92, 0.1);
}

.stats-premium-feature-title {
  font-weight: 600;
  font-size: 1.1rem;
  color: #333;
}

.stats-premium-feature-desc {
  color: #666;
}

.stats-premium-cta {
  text-align: center;
  margin-top: 30px;
}

.stats-premium-button {
  background: linear-gradient(45deg, #A5765C, #b5866b) !important;
  border: none !important;
  color: white !important;
  height: auto !important;
  padding: 12px 32px !important;
  font-size: 1.1rem !important;
  font-weight: 600 !important;
  border-radius: 30px !important;
  box-shadow: 0 4px 15px rgba(165, 118, 92, 0.25) !important;
  transition: all 0.3s ease !important;
}

.stats-premium-button:hover {
  background: linear-gradient(45deg, #b5866b, #c07b58) !important;
  transform: translateY(-3px) !important;
  box-shadow: 0 8px 20px rgba(165, 118, 92, 0.3) !important;
}

.stats-premium-price {
  margin-top: 15px;
  font-size: 0.95rem;
  color: #666;
  font-weight: 500;
}

.stats-premium-video {
  flex: 1 1;
  min-width: 300px;
  max-width: 500px;
  position: relative;
  z-index: 1;
}

/* Mode vidéo et cinéma */
.stats-video-container {
  width: 100%;
  aspect-ratio: 16 / 9;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.15);
  position: relative;
  transform: rotate(2deg);
  transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
  border: 4px solid white;
}

.stats-video-container:hover {
  transform: rotate(0) scale(1.02);
  box-shadow: 0 15px 35px rgba(0, 0, 0, 0.2);
}

.video-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: background 0.3s ease;
  z-index: 2;
}

.video-overlay:hover {
  background: rgba(0, 0, 0, 0.2);
}

.overlay-text {
  color: white;
  font-weight: 600;
  margin-top: 15px;
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.8);
  font-size: 1.1rem;
  opacity: 0;
  transform: translateY(10px);
  transition: all 0.3s ease;
}

.video-overlay:hover .overlay-text {
  opacity: 1;
  transform: translateY(0);
}

.play-button svg {
  filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.4));
  transition: transform 0.3s ease, filter 0.3s ease;
}

.video-overlay:hover .play-button svg {
  transform: scale(1.1);
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.6));
}

/* Style pour l'iframe YouTube standard */
.youtube-iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: none;
}

/* Overlay cinématique */
.cinema-overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.85);
  -webkit-backdrop-filter: blur(5px);
          backdrop-filter: blur(5px);
  z-index: 9999;
  transition: opacity 0.5s ease;
  animation: fadeIn 0.5s ease-out forwards;
}

/* Conteneur vidéo en mode cinéma */
.cinema-video-container {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%) scale(1);
  width: 80vw;
  max-width: 1000px;
  aspect-ratio: 16 / 9;
  z-index: 10000;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 0 60px 20px rgba(246, 198, 116, 0.5),
    0 0 100px 40px rgba(238, 159, 153, 0.3);
  animation: scaleUp 0.5s cubic-bezier(0.23, 1, 0.32, 1) forwards;
}

@keyframes scaleUp {
  from {
    transform: translate(-50%, -50%) scale(0.7);
    opacity: 0;
  }

  to {
    transform: translate(-50%, -50%) scale(1);
    opacity: 1;
  }
}

.cinema-iframe {
  width: 100%;
  height: 100%;
  border: none;
}

/* Bouton pour quitter le mode cinéma */
.cinema-exit-button {
  position: fixed;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  background-color: #F6C674;
  color: #A5765C;
  border: none;
  padding: 16px 32px;
  border-radius: 50px;
  font-size: 1.2rem;
  font-weight: 700;
  cursor: pointer;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
  transition: all 0.3s ease;
  z-index: 10001;
  animation: bounce 1s ease infinite;
}

.cinema-exit-button:hover,
.cinema-exit-button:focus {
  background-color: #ffda9e;
  transform: translateX(-50%) scale(1.05);
  box-shadow: 0 6px 25px rgba(0, 0, 0, 0.4);
}

.cinema-exit-button svg {
  flex-shrink: 0;
}

@keyframes bounce {

  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }

  50% {
    transform: translateX(-50%) translateY(-5px);
  }
}

/* Styles pour le mode cinéma sur le body */
body.cinema-mode-active {
  overflow: hidden;
  /* Empêche le défilement quand le mode cinéma est actif */
}

/* Responsive design pour la section premium */
@media (max-width: 992px) {
  .stats-premium-container {
    padding: 30px;
  }

  .cinema-video-container {
    width: 90vw;
  }
}

@media (max-width: 768px) {
  .stats-premium-container {
    padding: 25px;
    gap: 20px;
  }

  .stats-premium-title {
    font-size: 1.8rem;
  }

  .stats-premium-intro {
    font-size: 1.1rem;
  }

  .cinema-video-container {
    width: 95vw;
  }

  .cinema-exit-button {
    padding: 14px 28px;
    font-size: 1.1rem;
    width: 80%;
  }
}

@media (max-width: 480px) {
  .stats-premium-container {
    padding: 20px;
  }

  .stats-premium-title {
    font-size: 1.6rem;
  }

  .stats-premium-intro {
    font-size: 1rem;
  }

  .cinema-video-container {
    width: 100vw;
    height: auto;
    border-radius: 0;
  }

  .cinema-exit-button {
    bottom: 30px;
    padding: 12px 24px;
    font-size: 1rem;
    width: 90%;
  }
}

.stats-banner {
  background: #fef7e0;
  border: 1px solid #f5daa6;
  padding: 24px;
  border-radius: 12px;
  text-align: center;
  margin-bottom: 20px;
}

.date-range-picker {
  display: flex;
  justify-content: center;
  margin: 20px 0;
  padding: 0 16px;
}

.date-range-picker .ant-picker {
  width: 100%;
  max-width: 400px;
}

.date-pickers-container {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  flex-wrap: wrap;
}

.date-picker {
  flex: 1 1;
  min-width: 140px;
  max-width: 200px;
}

.date-separator {
  color: #666;
  font-size: 14px;
}

.loading-container {
  display: flex;
  justify-content: center;
  padding: 40px;
}

.stats-content {
  margin-top: 20px;
}

.stats-card {
  border-radius: 12px;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
  text-align: center;
  overflow: hidden;
  margin-bottom: 16px;
  position: relative;
  z-index: 1;
}

/* KPI Cards */
.kpi-card {
  text-align: left;
  border: 1px solid #f0e8e2;
  background: #fff;
}

.kpi-title {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.kpi-value {
  font-size: 28px;
  font-weight: 700;
  margin-top: 4px;
  color: #222;
}

.kpi-hint {
  font-size: 12px;
  color: #8c8c8c;
  margin-top: 6px;
}

/* Highlights */
.highlights-card {
  border: 1px solid #f0e8e2;
  background: #F6F2EF;
}

.section-title {
  margin-bottom: 8px !important;
}

.highlights-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-gap: 8px;
  gap: 8px;
}

.highlights-list .dot {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  margin-right: 6px;
  vertical-align: middle;
}

.service-stat-row {
  display: flex;
  justify-content: space-between;
  padding: 8px 0;
  border-bottom: 1px solid #f0f0f0;
}

.service-stat-row:last-child {
  border-bottom: none;
}

.refresh-button {
  margin-top: 20px;
  text-align: center;
}

.no-data {
  text-align: center;
  margin-top: 20px;
}

.custom-panel {
  background: white;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
}

/* Styles spécifiques au desktop uniquement (écrans > 768px) */
@media (min-width: 769px) {
  .custom-panel {
    min-width: 580px;
    max-width: 620px;
  }

  .ant-picker-dropdown {
    min-width: 580px !important;
  }

  .ant-picker-panels {
    display: flex !important;
    flex-direction: row !important;
  }

  .ant-picker-panel {
    width: 280px !important;
  }

  .ant-picker-panel-container {
    min-width: 580px !important;
  }
}

/* Styles spécifiques au mobile uniquement (écrans <= 768px) */
@media (max-width: 768px) {
  .date-range-picker {
    padding: 0 16px;
  }

  .date-range-picker .ant-picker {
    width: 100%;
  }

  .date-pickers-container {
    flex-direction: column;
    gap: 12px;
  }

  .date-picker {
    width: 100%;
    max-width: none;
  }

  .date-separator {
    margin: 4px 0;
  }

  .custom-panel {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 280px;
    z-index: 1050;
  }

  /* Styles spécifiques pour le RangePicker sur mobile */
  .ant-picker-panels {
    flex-direction: column !important;
  }

  .ant-picker-panel {
    width: 100% !important;
    padding: 8px !important;
  }

  .ant-picker-cell {
    height: 32px !important;
    line-height: 32px !important;
  }

  .ant-picker-cell-inner {
    width: 28px !important;
    height: 28px !important;
    line-height: 28px !important;
    font-size: 14px !important;
  }

  .ant-picker-header {
    padding: 0 8px !important;
  }

  .ant-picker-header button {
    font-size: 14px !important;
  }

  .ant-picker-content th {
    height: 24px !important;
    line-height: 24px !important;
    font-size: 12px !important;
  }

  .ant-picker-content td {
    padding: 0 !important;
  }
}

/* Styles pour le graphique d'activité par jour - ISOLÉS */
.activity-stats-container {
  margin: 30px 0;
  width: 100%;
  padding: 20px;
  background: #fafafa;
  border-radius: 12px;
  border: 1px solid #f0f0f0;
}

.activity-stats-container .activity-chart-container {
  margin: 30px 0;
  width: 100%;
  clear: both;
}

.activity-stats-container .activity-chart {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  height: 200px;
  margin: 10px 0;
  padding: 0 20px;
}

.activity-toggle {
  text-align: center;
  margin-bottom: 20px;
}

.activity-toggle .ant-segmented {
  background: #F6F2EF;
  border: 1px solid #f0e8e2;
}

.activity-stats-container .day-column {
  display: flex;
  flex-direction: column;
  align-items: center;
  flex: 1 1;
  text-align: center;
}

.activity-stats-container .day-name {
  font-weight: 500;
  margin-top: 10px;
  font-size: 14px;
}

.activity-stats-container .bar-container {
  width: 40px;
  height: 140px;
  display: flex;
  align-items: flex-end;
  position: relative;
  cursor: pointer;
  transition: transform 0.2s ease;
}

.activity-stats-container .bar-container:hover {
  transform: scale(1.05);
}

.activity-stats-container .activity-bar {
  width: 100%;
  background-color: #74caff;
  border-radius: 4px 4px 0 0;
  transition: height 0.5s ease;
  min-height: 2px;
}

.activity-stats-container .day-count {
  font-size: 12px;
  color: #555;
  margin-top: 5px;
  line-height: 1.2;
  min-height: 16px;
  position: relative;
  z-index: 2;
}

.activity-stats-container .day-revenue {
  font-size: 11px;
  color: #888;
  margin-top: 2px;
}

.activity-stats-container .activity-chart-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0;
  justify-content: center;
  padding: 15px;
  background: white;
  border-radius: 8px;
  border: 1px solid #e8e8e8;
}

.activity-stats-container .filter-tag {
  padding: 5px 10px;
  border-radius: 15px;
  background-color: #f0f0f0;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  gap: 5px;
}

.activity-stats-container .filter-tag.active {
  background-color: #1890ff;
  color: white;
}

.activity-stats-container .filter-tag:hover {
  opacity: 0.8;
}

.activity-stats-container .filter-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: currentColor;
}

.activity-stats-container .week-selector {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 20px 0;
  gap: 15px;
  padding: 15px;
  background: white;
  border-radius: 8px;
  border: 1px solid #e1e1e1;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.activity-stats-container .week-selector button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  border: 1px solid #d9d9d9;
  background: white;
  cursor: pointer;
  transition: all 0.3s;
}

.activity-stats-container .week-selector button:hover {
  background: #f0f0f0;
}

.activity-stats-container .week-selector .week-label {
  font-weight: 500;
  min-width: 180px;
  text-align: center;
  line-height: 1.4;
  padding: 0 10px;
}

.activity-stats-container .tooltip {
  position: absolute;
  top: -35px;
  left: 50%;
  transform: translateX(-50%);
  background-color: rgba(0, 0, 0, 0.85);
  color: white;
  padding: 4px 8px;
  border-radius: 6px;
  font-size: 12px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.3s;
  white-space: nowrap;
  z-index: 100;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
}

.activity-stats-container .bar-container:hover .tooltip {
  opacity: 1;
}

/* Responsive pour le graphique d'activité - ISOLÉ */
@media (max-width: 768px) {
  .activity-stats-container {
    padding: 15px;
    margin: 20px 0;
    overflow-x: auto;
  }

  .activity-stats-container .activity-chart {
    height: 180px;
    padding: 0 10px;
    min-width: 320px;
  }

  .activity-stats-container .bar-container {
    width: 30px;
    height: 120px;
  }

  .activity-stats-container .day-name {
    font-size: 12px;
    margin-top: 8px;
  }

  .activity-stats-container .week-selector {
    margin: 15px 0;
    padding: 10px;
  }

  .activity-stats-container .week-selector .week-label {
    min-width: 140px;
    font-size: 13px;
  }

  .activity-stats-container .activity-chart-filters {
    margin: 15px 0;
    padding: 10px;
  }

  .stats-card {
    margin-bottom: 12px;
  }
}

@media (max-width: 480px) {
  .pro-stats-page {
    padding: 12px;
  }

  .activity-stats-container {
    margin: 16px 0;
  }

  .activity-stats-container .activity-chart {
    height: 150px;
    padding: 0;
    min-width: 280px;
  }

  .activity-stats-container .bar-container {
    width: 20px;
    height: 100px;
  }

  .activity-stats-container .day-name {
    font-size: 10px;
  }

  .activity-stats-container .day-count {
    font-size: 10px;
  }

  .activity-stats-container .day-revenue {
    font-size: 9px;
  }

  .activity-stats-container .filter-tag {
    padding: 3px 8px;
    font-size: 12px;
  }

  .activity-stats-container .week-selector .week-label {
    min-width: 100px;
    font-size: 12px;
  }

  .stats-card {
    margin-bottom: 8px;
  }

  .stats-banner {
    padding: 16px;
    margin-bottom: 16px;
  }
}

/* Styles pour le modal de détails */
.day-details-container {
  padding: 10px;
}

.detail-card {
  text-align: center;
  border-radius: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.service-breakdown-title {
  margin: 20px 0 10px 0;
  padding-bottom: 8px;
  border-bottom: 1px solid #f0f0f0;
}

.ant-table-small .ant-table-thead>tr>th {
  background-color: #f9f9f9;
}

.ant-modal-body {
  padding: 24px;
  max-height: 70vh;
  overflow-y: auto;
}

/* Responsive pour le modal de détails */
@media (max-width: 576px) {
  .ant-modal {
    max-width: 95vw !important;
    margin: 0 auto;
  }

  .detail-card {
    margin-bottom: 10px;
  }
}

/* Styles pour les statistiques de crédits */
.credit-stat-item {
  text-align: center;
  padding: 8px;
  border-radius: 6px;
  background: #fafafa;
  margin-bottom: 8px;
}

.credit-stat-item:hover {
  background: #f0f0f0;
  transition: background-color 0.3s ease;
}

.credit-stat-item .ant-typography {
  margin: 0;
}

/* Amélioration responsive pour les stats de crédits */
@media (max-width: 768px) {
  .credit-stat-item {
    text-align: left;
    padding: 12px;
  }
}

/* Corrections pour les z-index des modaux Ant Design */
.ant-modal-mask {
  z-index: 1000 !important;
}

.ant-modal-wrap {
  z-index: 1000 !important;
}

.ant-picker-dropdown {
  z-index: 1050 !important;
}

.ant-tooltip {
  z-index: 1060 !important;
}

/* Éviter les débordements des cartes */
.ant-row {
  margin-left: -8px !important;
  margin-right: -8px !important;
}

.ant-col {
  padding-left: 8px !important;
  padding-right: 8px !important;
}

/* Éviter les superpositions de contenu */
.stats-content .ant-card {
  min-height: 120px;
  display: flex;
  flex-direction: column;
}

.stats-content .ant-card-body {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Gestion globale des débordements */
* {
  box-sizing: border-box;
}

.ant-row {
  width: 100%;
}

.ant-col {
  min-width: 0;
  /* Permet aux éléments flex de rétrécir */
}

/* Corrections spécifiques pour éviter les superpositions */
.date-range-picker .ant-picker {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);
  border-radius: 6px;
}

.stats-content>.ant-row {
  margin-bottom: 24px;
}

.stats-content>.ant-row:last-child {
  margin-bottom: 0;
}

/* Amélioration des titres pour éviter les coupures */
.ant-card-head-title {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Espacement harmonieux pour les progress bars */
.ant-progress {
  margin: 8px 0;
}

/* Gestion des tableaux responsives */
.ant-table-wrapper {
  overflow-x: auto;
}

/* Corrections pour la heatmap */
.ant-tooltip-content {
  max-width: 250px;
  word-wrap: break-word;
}

/* Éviter les éléments fantômes */
.pro-stats-page::before,
.pro-stats-page::after {
  content: none !important;
}

/* S'assurer qu'aucun élément absolu ne traîne */
.pro-stats-page>*:first-child {
  margin-top: 0;
  position: relative;
}

/* Nettoyage des pseudo-éléments parasites */
.stats-card::before,
.stats-card::after {
  content: none !important;
}
/* ============================================
   RINTINTIN STATS PAGE - PREMIUM DESIGN 2024
   Modern, Impressive & Fully Responsive
   ============================================ */

/* === CSS VARIABLES === */
:root {
    --stats-primary: #A5765C;
    --stats-primary-light: #c59b86;
    --stats-primary-dark: #8e6651;
    --stats-secondary: #F6C674;
    --stats-accent: #EE9F99;
    --stats-success: #10B981;
    --stats-success-light: #34D399;
    --stats-danger: #EF4444;
    --stats-warning: #F59E0B;
    --stats-purple: #8B5CF6;
    --stats-blue: #3B82F6;

    --stats-bg-gradient: linear-gradient(135deg, #fdfbf9 0%, #f8f4f0 50%, #fff5eb 100%);
    --stats-glass: rgba(255, 255, 255, 0.7);
    --stats-glass-border: rgba(255, 255, 255, 0.3);

    --stats-shadow-sm: 0 2px 8px rgba(165, 118, 92, 0.06);
    --stats-shadow-md: 0 4px 20px rgba(165, 118, 92, 0.1);
    --stats-shadow-lg: 0 8px 40px rgba(165, 118, 92, 0.15);
    --stats-shadow-xl: 0 20px 60px rgba(165, 118, 92, 0.2);

    --stats-radius-sm: 12px;
    --stats-radius-md: 16px;
    --stats-radius-lg: 24px;
    --stats-radius-xl: 32px;
}

/* === MAIN CONTAINER === */
.pro-stats-page {
    background: linear-gradient(135deg, #fdfbf9 0%, #f8f4f0 50%, #fff5eb 100%);
    background: var(--stats-bg-gradient);
    min-height: 100vh;
    padding: 0;
    position: relative;
    overflow-x: hidden;
}

.pro-stats-page::before {
    content: "";
    position: fixed;
    top: -50%;
    right: -30%;
    width: 80vw;
    height: 80vw;
    background: radial-gradient(circle, rgba(246, 198, 116, 0.15) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
}

.pro-stats-page::after {
    content: "";
    position: fixed;
    bottom: -30%;
    left: -20%;
    width: 60vw;
    height: 60vw;
    background: radial-gradient(circle, rgba(238, 159, 153, 0.1) 0%, transparent 60%);
    pointer-events: none;
    z-index: 0;
}

/* === STATS BANNER - CLEAN MINIMAL HEADER === */
.stats-banner {
    background: white;
    padding: 24px 24px 28px;
    margin: 0;
    border-radius: 0;
    position: relative;
    border-bottom: 1px solid rgba(165, 118, 92, 0.12);
    z-index: 10;
}

.stats-banner>div {
    position: relative;
    z-index: 1;
    max-width: 1400px;
    margin: 0 auto;
}

.stats-banner h2.ant-typography {
    color: #1e293b !important;
    font-size: 1.6rem !important;
    font-weight: 700 !important;
    margin: 0 0 4px 0 !important;
    letter-spacing: -0.3px;
}

.stats-banner .ant-typography-strong {
    color: #64748b !important;
    font-weight: 500 !important;
    font-size: 0.9rem;
}

.stats-banner>div>div:last-child {
    color: #94a3b8 !important;
    font-size: 0.8rem;
}

/* === VIEW MODE TOGGLE - CLEAN VERSION === */
.view-mode-toggle {
    margin-top: 12px;
}

.view-mode-toggle .ant-segmented {
    background: #f1f5f9 !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 10px !important;
    padding: 3px !important;
}

.view-mode-toggle .ant-segmented-item {
    color: #64748b !important;
    border-radius: 8px !important;
    transition: all 0.3s ease !important;
    font-weight: 500 !important;
}

.view-mode-toggle .ant-segmented-item-selected {
    background: #A5765C !important;
    background: var(--stats-primary) !important;
    color: white !important;
    box-shadow: 0 2px 8px rgba(165, 118, 92, 0.25) !important;
}

.view-mode-toggle>div:last-child {
    color: #94a3b8 !important;
    text-align: right !important;
    margin-top: 6px;
    font-size: 0.75rem;
    max-width: 100% !important;
}

.date-range-picker {
    display: flex;
    justify-content: center;
    margin: 20px auto 24px;
    padding: 0 20px;
    position: relative;
    z-index: 20;
}

.date-range-picker .ant-picker {
    background: white !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 12px !important;
    box-shadow: 0 2px 8px rgba(165, 118, 92, 0.06) !important;
    box-shadow: var(--stats-shadow-sm) !important;
    padding: 10px 16px !important;
    max-width: 420px;
    width: 100%;
    transition: all 0.3s ease !important;
}

.date-range-picker .ant-picker:hover,
.date-range-picker .ant-picker-focused {
    border-color: #A5765C !important;
    border-color: var(--stats-primary) !important;
    box-shadow: 0 4px 20px rgba(165, 118, 92, 0.1), 0 0 0 3px rgba(165, 118, 92, 0.1) !important;
    box-shadow: var(--stats-shadow-md), 0 0 0 3px rgba(165, 118, 92, 0.1) !important;
}

/* === STATS CARDS - CONSISTENT HEIGHTS === */
.stats-card {
    background: white !important;
    border: 1px solid rgba(165, 118, 92, 0.1) !important;
    border-radius: 16px !important;
    border-radius: var(--stats-radius-md) !important;
    box-shadow: 0 2px 8px rgba(165, 118, 92, 0.06) !important;
    box-shadow: var(--stats-shadow-sm) !important;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    overflow: visible !important;
    position: relative;
    height: 100%;
}

.stats-card:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 8px 40px rgba(165, 118, 92, 0.15) !important;
    box-shadow: var(--stats-shadow-lg) !important;
    border-color: rgba(165, 118, 92, 0.2) !important;
}

.stats-card .ant-card-body {
    padding: 20px !important;
    height: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

/* Ensure equal heights in rows */
.stats-content .ant-row {
    align-items: stretch;
}

.stats-content .ant-col {
    display: flex;
}

.stats-content .ant-col>.stats-card {
    width: 100%;
    min-height: 120px;
}

/* === KPI CARDS STYLING === */
.stats-card h4.ant-typography,
.stats-card h5.ant-typography {
    color: #64748b !important;
    font-size: 0.75rem !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 1px !important;
    margin-bottom: 12px !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.stats-card .ant-typography strong {
    font-size: 2.25rem !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    display: block !important;
    margin-bottom: 4px !important;
}

/* === KPI VALUE COLORS === */
.stats-card strong[style*="color: #52c41a"],
.stats-card strong[style*="color: #2daa0d"] {
    background: linear-gradient(135deg, #10B981 0%, #059669 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}

.stats-card strong[style*="color: #722ed1"] {
    background: linear-gradient(135deg, #8B5CF6 0%, #6D28D9 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}

.stats-card strong[style*="color: #f5222d"] {
    background: linear-gradient(135deg, #EF4444 0%, #DC2626 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}

/* === SECTION TITLES === */
.stats-card h4.ant-typography[level="4"] {
    font-size: 1.1rem !important;
    color: #1e293b !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    font-weight: 700 !important;
    margin-bottom: 16px !important;
    padding-bottom: 12px !important;
    border-bottom: 2px solid rgba(165, 118, 92, 0.1) !important;
}

/* === PROGRESS BARS === */
.ant-progress-bg {
    border-radius: 100px !important;
    transition: all 0.6s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.ant-progress-inner {
    background: rgba(165, 118, 92, 0.1) !important;
    border-radius: 100px !important;
}

.ant-progress-success-bg {
    background: linear-gradient(90deg, #10B981 0%, #34D399 100%) !important;
    background: linear-gradient(90deg, var(--stats-success) 0%, var(--stats-success-light) 100%) !important;
}

/* === SERVICE STAT ROWS === */
.service-stat-row {
    padding: 14px 0 !important;
    border-bottom: 1px solid rgba(165, 118, 92, 0.08) !important;
    transition: all 0.2s ease !important;
}

.service-stat-row:hover {
    background: rgba(165, 118, 92, 0.03);
    margin: 0 -12px;
    padding: 14px 12px !important;
    border-radius: 8px;
}

.service-stat-row:last-child {
    border-bottom: none !important;
}

/* === TABLES === */
.ant-table {
    background: transparent !important;
}

.ant-table-thead>tr>th {
    background: rgba(165, 118, 92, 0.05) !important;
    border-bottom: 2px solid rgba(165, 118, 92, 0.1) !important;
    color: #64748b !important;
    font-weight: 700 !important;
    font-size: 0.75rem !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 16px 12px !important;
}

.ant-table-tbody>tr>td {
    border-bottom: 1px solid rgba(165, 118, 92, 0.06) !important;
    padding: 14px 12px !important;
    transition: all 0.2s ease !important;
}

.ant-table-tbody>tr:hover>td {
    background: rgba(246, 198, 116, 0.08) !important;
}

/* === ACTIVITY CHART CONTAINER === */
.activity-stats-container {
    background: white !important;
    border-radius: 24px !important;
    border-radius: var(--stats-radius-lg) !important;
    border: 1px solid rgba(165, 118, 92, 0.1) !important;
    box-shadow: 0 2px 8px rgba(165, 118, 92, 0.06) !important;
    box-shadow: var(--stats-shadow-sm) !important;
    padding: 28px !important;
}

.activity-toggle .ant-segmented {
    background: rgba(165, 118, 92, 0.06) !important;
    border: 1px solid rgba(165, 118, 92, 0.1) !important;
}

.activity-toggle .ant-segmented-item-selected {
    background: #A5765C !important;
    background: var(--stats-primary) !important;
    color: white !important;
}

/* Activity Bars */
.activity-stats-container .activity-bar {
    background: linear-gradient(180deg, #A5765C 0%, #c59b86 100%) !important;
    background: linear-gradient(180deg, var(--stats-primary) 0%, var(--stats-primary-light) 100%) !important;
    border-radius: 8px 8px 0 0 !important;
    box-shadow: 0 -4px 15px rgba(165, 118, 92, 0.2) !important;
}

.activity-stats-container .day-name {
    font-weight: 600 !important;
    color: #64748b !important;
}

.activity-stats-container .day-count {
    font-weight: 700 !important;
    color: #A5765C !important;
    color: var(--stats-primary) !important;
}

/* Week Selector */
.activity-stats-container .week-selector {
    background: rgba(165, 118, 92, 0.04) !important;
    border: 1px solid rgba(165, 118, 92, 0.1) !important;
    border-radius: 16px !important;
    border-radius: var(--stats-radius-md) !important;
}

.activity-stats-container .week-selector button {
    background: white !important;
    border: 1px solid rgba(165, 118, 92, 0.2) !important;
    color: #A5765C !important;
    color: var(--stats-primary) !important;
    transition: all 0.3s ease !important;
}

.activity-stats-container .week-selector button:hover {
    background: #A5765C !important;
    background: var(--stats-primary) !important;
    color: white !important;
    border-color: #A5765C !important;
    border-color: var(--stats-primary) !important;
}

/* === BUTTONS === */
.refresh-button .ant-btn-primary {
    background: linear-gradient(135deg, #A5765C 0%, #c59b86 100%) !important;
    background: linear-gradient(135deg, var(--stats-primary) 0%, var(--stats-primary-light) 100%) !important;
    border: none !important;
    border-radius: 16px !important;
    border-radius: var(--stats-radius-md) !important;
    height: 48px !important;
    padding: 0 32px !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    box-shadow: 0 4px 20px rgba(165, 118, 92, 0.1) !important;
    box-shadow: var(--stats-shadow-md) !important;
    transition: all 0.3s ease !important;
}

.refresh-button .ant-btn-primary:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 40px rgba(165, 118, 92, 0.15) !important;
    box-shadow: var(--stats-shadow-lg) !important;
}

/* === TOOLTIPS === */
.ant-tooltip-inner {
    background: linear-gradient(135deg, rgba(30, 41, 59, 0.95) 0%, rgba(15, 23, 42, 0.98) 100%) !important;
    -webkit-backdrop-filter: blur(10px) !important;
            backdrop-filter: blur(10px) !important;
    border-radius: 12px !important;
    border-radius: var(--stats-radius-sm) !important;
    padding: 10px 14px !important;
    font-size: 0.85rem !important;
    box-shadow: 0 8px 40px rgba(165, 118, 92, 0.15) !important;
    box-shadow: var(--stats-shadow-lg) !important;
}

/* === LOADING STATE === */
.loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    gap: 20px;
}

.loading-container .ant-spin-dot-item {
    background: #A5765C !important;
    background: var(--stats-primary) !important;
}

/* === ANIMATIONS === */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes scaleIn {
    from {
        opacity: 0;
        transform: scale(0.9);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.stats-content>.ant-row {
    animation: fadeInUp 0.6s ease-out backwards;
}

.stats-content>.ant-row:nth-child(1) {
    animation-delay: 0s;
}

.stats-content>.ant-row:nth-child(2) {
    animation-delay: 0.1s;
}

.stats-content>.ant-row:nth-child(3) {
    animation-delay: 0.15s;
}

.stats-content>.ant-row:nth-child(4) {
    animation-delay: 0.2s;
}

.stats-content>.ant-row:nth-child(5) {
    animation-delay: 0.25s;
}

.stats-content>.ant-row:nth-child(6) {
    animation-delay: 0.3s;
}

.stats-content>.ant-row:nth-child(7) {
    animation-delay: 0.35s;
}

/* === NO DATA STATE === */
.no-data {
    text-align: center;
    padding: 80px 40px;
    background: rgba(255, 255, 255, 0.7);
    background: var(--stats-glass);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border-radius: 24px;
    border-radius: var(--stats-radius-lg);
    border: 2px dashed rgba(165, 118, 92, 0.2);
}

/* === LOW DATA PANEL === */
.stats-card[style*="marginBottom: 16"] {
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.08) 0%, rgba(255, 255, 255, 0.9) 100%) !important;
    border-color: rgba(245, 158, 11, 0.2) !important;
}

/* ============================================
   RESPONSIVE DESIGN
   ============================================ */

/* === TABLET (768px - 1024px) === */
@media (max-width: 1024px) {
    .stats-banner {
        padding: 20px 20px 24px;
    }

    .stats-banner h2.ant-typography {
        font-size: 1.4rem !important;
    }

    .stats-content {
        padding: 20px 16px 40px;
    }

    .stats-card .ant-typography strong {
        font-size: 1.6rem !important;
    }
}

/* === MOBILE LANDSCAPE (576px - 768px) === */
@media (max-width: 768px) {
    .stats-banner {
        padding: 16px 16px 20px;
        border-radius: 0;
    }

    .stats-banner h2.ant-typography {
        font-size: 1.25rem !important;
        text-align: left;
    }

    .stats-banner .ant-typography-strong {
        text-align: left;
        display: block;
        font-size: 0.85rem;
    }

    .stats-banner>div>div:first-child {
        flex-direction: column !important;
        gap: 12px;
    }

    .view-mode-toggle {
        width: 100%;
        text-align: center !important;
        margin-top: 16px;
    }

    .view-mode-toggle .ant-segmented {
        width: 100% !important;
        max-width: none;
    }

    .view-mode-toggle>div:last-child {
        text-align: center !important;
    }

    .date-range-picker {
        margin: 16px auto 20px;
        padding: 0 16px;
    }

    .date-range-picker .ant-picker {
        padding: 10px 16px !important;
    }

    .stats-content {
        padding: 20px 16px 40px;
    }

    .stats-card .ant-card-body {
        padding: 20px !important;
    }

    .stats-card .ant-typography strong {
        font-size: 1.5rem !important;
    }

    .stats-card h4.ant-typography,
    .stats-card h5.ant-typography {
        font-size: 0.7rem !important;
    }

    .activity-stats-container {
        padding: 20px !important;
        border-radius: 16px !important;
        border-radius: var(--stats-radius-md) !important;
    }

    .activity-stats-container .activity-chart {
        height: 160px !important;
        min-width: auto !important;
    }

    .activity-stats-container .bar-container {
        width: 28px !important;
        height: 110px !important;
    }
}

/* === MOBILE PORTRAIT (< 576px) === */
@media (max-width: 576px) {

    .pro-stats-page::before,
    .pro-stats-page::after {
        display: none;
    }

    .stats-banner {
        padding: 14px 12px 16px;
        border-radius: 0;
    }

    .stats-banner h2.ant-typography {
        font-size: 1.15rem !important;
    }

    .stats-banner .ant-typography-strong {
        font-size: 0.8rem;
    }

    .view-mode-toggle .ant-segmented {
        font-size: 0.75rem !important;
    }

    .view-mode-toggle .ant-segmented-item {
        padding: 5px 8px !important;
    }

    .date-range-picker {
        margin: 12px auto 16px;
    }

    .date-range-picker .ant-picker {
        padding: 8px 12px !important;
        font-size: 0.85rem !important;
    }

    .stats-content {
        padding: 16px 12px 30px;
    }

    .stats-card {
        border-radius: 12px !important;
        border-radius: var(--stats-radius-sm) !important;
        margin-bottom: 12px !important;
    }

    .stats-card .ant-card-body {
        padding: 16px !important;
    }

    .stats-card .ant-typography strong {
        font-size: 1.35rem !important;
    }

    .stats-card h4.ant-typography,
    .stats-card h5.ant-typography {
        font-size: 0.65rem !important;
        letter-spacing: 0.5px !important;
    }

    .service-stat-row {
        padding: 10px 0 !important;
        font-size: 0.9rem;
    }

    .ant-table-thead>tr>th,
    .ant-table-tbody>tr>td {
        padding: 10px 8px !important;
        font-size: 0.85rem !important;
    }

    .activity-stats-container {
        padding: 16px !important;
        margin: 16px 0 !important;
    }

    .activity-stats-container .activity-chart {
        height: 140px !important;
        padding: 0 !important;
    }

    .activity-stats-container .bar-container {
        width: 22px !important;
        height: 90px !important;
    }

    .activity-stats-container .day-name {
        font-size: 11px !important;
    }

    .activity-stats-container .day-count {
        font-size: 10px !important;
    }

    .activity-stats-container .week-selector {
        padding: 10px !important;
        gap: 8px !important;
    }

    .activity-stats-container .week-selector .week-label {
        min-width: 100px !important;
        font-size: 0.8rem !important;
    }

    .activity-toggle .ant-segmented {
        font-size: 0.75rem !important;
    }

    .refresh-button .ant-btn-primary {
        height: 44px !important;
        padding: 0 24px !important;
        font-size: 0.9rem !important;
    }

    /* Modal adjustments */
    .ant-modal {
        max-width: calc(100vw - 24px) !important;
        margin: 12px !important;
    }

    .ant-modal-body {
        padding: 16px !important;
    }
}

/* === VERY SMALL SCREENS (< 380px) === */
@media (max-width: 380px) {
    .stats-banner {
        padding: 20px 12px 28px;
    }

    .stats-banner h2.ant-typography {
        font-size: 1.2rem !important;
    }

    .stats-card .ant-typography strong {
        font-size: 1.2rem !important;
    }

    .view-mode-toggle .ant-segmented-item {
        padding: 4px 6px !important;
        font-size: 0.7rem !important;
    }

    .activity-stats-container .bar-container {
        width: 18px !important;
    }
}

/* === DARK MODE SUPPORT (optional) === */
@media (prefers-color-scheme: dark) {
    /* Add dark mode styles here if needed */
}

/* === PRINT STYLES === */
@media print {
    .stats-banner {
        background: white !important;
        color: black !important;
        box-shadow: none !important;
    }

    .stats-card {
        page-break-inside: avoid;
        break-inside: avoid;
        box-shadow: none !important;
        border: 1px solid #ddd !important;
    }

    .view-mode-toggle,
    .refresh-button {
        display: none !important;
    }
}
.stats-v2-page {
    padding: 16px;
    max-width: 1200px;
    /* Limiter la largeur pour éviter l'effet "étiré" sur desktop */
    margin: 0 auto;
    background-color: #f8f9fa;
    /* Fond très léger */
    min-height: 100vh;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

.stats-v2-header {
    text-align: center;
    margin-bottom: 24px;
    padding-top: 12px;
}

.stats-v2-header h2 {
    margin-bottom: 4px;
    color: #1e293b;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -0.5px;
}

.date-selector {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-bottom: 24px;
}

/* Flèches discrètes, même famille visuelle que le RangePicker */
.date-selector-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: none;
    border-radius: 50px;
    background: rgba(255, 255, 255, 0.7);
    color: #94a3b8;
    font-size: 14px;
    cursor: pointer;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
    transition: box-shadow 0.2s ease, color 0.2s ease, background 0.2s ease;
    -webkit-tap-highlight-color: transparent;
}

.date-selector-arrow:hover:not(:disabled) {
    color: #64748b;
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.06);
}

.date-selector-arrow:active:not(:disabled) {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.05);
}

.date-selector-arrow:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.date-selector .ant-picker {
    border-radius: 50px;
    /* Pill shape */
    border: none;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    padding: 8px 16px;
    background: white;
}

/* =========================== */
/* STORY CARDS - Premium UI    */
/* =========================== */

.story-cards-container {
    margin-bottom: 32px;
}

.story-cards-row {
    display: flex;
    gap: 16px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    padding: 12px 20px 32px 20px;
    /* Padding bottom pour l'ombre */
    margin: 0 -20px;
    /* Negative margin pour scroller bord à bord */
    scrollbar-width: none;
}

.story-cards-row::-webkit-scrollbar {
    display: none;
}

.story-card {
    flex: 0 0 85%;
    /* Mobile: carte prend 85% largeur */
    scroll-snap-align: center;
    background: white;
    border-radius: 28px;
    padding: 24px;
    box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.5);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 200px;
}

/* Effets de gradient subtils en fond */
.story-card.card-green {
    background: linear-gradient(145deg, #ffffff 0%, #f0fdf4 100%);
}

.story-card.card-orange {
    background: linear-gradient(145deg, #ffffff 0%, #fff7ed 100%);
}

.story-card.card-purple {
    background: linear-gradient(145deg, #ffffff 0%, #f5f3ff 100%);
}

.story-card:active {
    transform: scale(0.98);
}

.story-card-icon {
    font-size: 42px;
    margin-bottom: 16px;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.1));
}

.story-card-question {
    font-size: 15px;
    color: #64748b;
    margin-bottom: 8px;
    font-weight: 600;
}

.story-card-value {
    font-size: 36px;
    font-weight: 800;
    margin-bottom: 8px;
    letter-spacing: -1px;
    line-height: 1.1;
}

.story-card.card-green .story-card-value {
    color: #15803d;
}

.story-card.card-orange .story-card-value {
    color: #c2410c;
}

.story-card.card-purple .story-card-value {
    color: #7e22ce;
}

.story-card-subtitle {
    font-size: 14px;
    font-weight: 500;
    color: #94a3b8;
    background: rgba(255, 255, 255, 0.6);
    padding: 6px 12px;
    border-radius: 12px;
    align-self: flex-start;
    -webkit-backdrop-filter: blur(4px);
            backdrop-filter: blur(4px);
}

/* Desktop: Cartes côte à côte */
@media (min-width: 768px) {
    .story-cards-row {
        justify-content: center;
        overflow: visible;
        padding: 12px 0 32px 0;
        margin: 0;
    }

    .story-card {
        flex: 1 1;
        max-width: 380px;
        min-width: 280px;
        min-height: 220px;
    }

    .story-card:hover {
        transform: translateY(-8px);
        box-shadow: 0 20px 50px -12px rgba(0, 0, 0, 0.12);
    }
}

/* =========================== */
/* =========================== */
/* GRID WIDGETS (New)         */
/* =========================== */

.widgets-grid {
    display: grid;
    grid-template-columns: 1fr;
    grid-gap: 16px;
    gap: 16px;
    margin-bottom: 40px;
}

@media (min-width: 600px) {
    .widgets-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

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

.widget-card {
    background: white;
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid transparent;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 140px;
}

.widget-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08);
    border-color: #f1f5f9;
}

.widget-card:active {
    transform: scale(0.98);
}

.widget-icon-wrapper {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    margin-bottom: 12px;
    background: #f8fafc;
}

.widget-content {
    flex: 1 1;
}

.widget-title {
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 4px;
}

.widget-value {
    font-size: 20px;
    font-weight: 800;
    color: #1e293b;
    margin-bottom: 4px;
    letter-spacing: -0.5px;
}

.widget-subtext {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
}

.widget-action-icon {
    position: absolute;
    top: 24px;
    right: 24px;
    color: #cbd5e1;
    font-size: 16px;
    opacity: 0.5;
    transition: all 0.3s;
}

.widget-card:hover .widget-action-icon {
    opacity: 1;
    color: #A5765C;
    transform: translateX(2px);
}

/* Couleurs spécifiques aux widgets */
.widget-card.green .widget-icon-wrapper {
    background: #f0fdf4;
    color: #15803d;
}

.widget-card.orange .widget-icon-wrapper {
    background: #fff7ed;
    color: #c2410c;
}

.widget-card.purple .widget-icon-wrapper {
    background: #f5f3ff;
    color: #7e22ce;
}

.widget-card.blue .widget-icon-wrapper {
    background: #eff6ff;
    color: #1d4ed8;
}

.widget-card.red .widget-icon-wrapper {
    background: #fef2f2;
    color: #b91c1c;
}

.widget-card.grey .widget-icon-wrapper {
    background: #f8fafc;
    color: #64748b;
}

/* =========================== */
/* DOTS INDICATOR (Mobile)    */
/* =========================== */

.story-dots {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: -16px;
    margin-bottom: 24px;
}

.story-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #e2e8f0;
    transition: all 0.3s ease;
}

.story-dot.active {
    background: #A5765C;
    width: 20px;
    border-radius: 10px;
}

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

/* =========================== */
/* DETAIL SECTIONS            */
/* =========================== */

.detail-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 0;
    border-bottom: 1px solid #f8fafc;
}

.detail-row:last-child {
    border-bottom: none;
}

.detail-row-label {
    font-size: 15px;
    color: #64748b;
    font-weight: 500;
}

.detail-row-value {
    font-size: 16px;
    font-weight: 700;
    color: #0f172a;
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
}

.detail-row.total {
    margin-top: 12px;
    padding-top: 20px;
    border-top: 2px dashed #e2e8f0;
}

.detail-row.total .detail-row-label,
.detail-row.total .detail-row-value {
    font-size: 18px;
    font-weight: 800;
}

/* =========================== */
/* LOADING & MISC             */
/* =========================== */

.refresh-button {
    text-align: center;
    margin-top: 40px;
    padding-bottom: 40px;
}

.refresh-button .ant-btn-primary {
    background: #0f172a;
    /* Bouton noir moderne */
    border: none;
    height: 52px;
    padding: 0 40px;
    font-weight: 700;
    font-size: 16px;
    border-radius: 26px;
    box-shadow: 0 10px 25px rgba(15, 23, 42, 0.2);
    transition: all 0.3s ease;
}

.refresh-button .ant-btn-primary:hover {
    transform: scale(1.02);
    box-shadow: 0 15px 30px rgba(15, 23, 42, 0.3);
}

.no-data {
    text-align: center;
    padding: 60px 20px;
    background: white;
    border-radius: 24px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.03);
}
/* Promo Banner - Configuration Offer */
:root {
    --promo-banner-height: 48px;
}

.promo-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 48px;
    height: var(--promo-banner-height);
    z-index: 10001;
    padding: 12px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.promo-banner.config-banner {
    background: linear-gradient(135deg, var(--brown), var(--gold));
    border-bottom: 3px solid #fff;
    animation: gradientFlow 10s ease infinite;
}

.promo-banner:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.promo-banner-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: nowrap;
}

.promo-emoji {
    font-size: 1.3rem;
    animation: bounce 1s ease infinite;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

.promo-text {
    color: white;
    font-size: 0.95rem;
    font-weight: 500;
}

.promo-text strong {
    font-weight: 700;
}

.promo-cta {
    background: rgba(255, 255, 255, 0.2);
    color: white;
    padding: 6px 16px;
    border-radius: 20px;
    font-size: 0.85rem;
    font-weight: 600;
    transition: all 0.3s ease;
}

.promo-banner:hover .promo-cta {
    background: rgba(255, 255, 255, 0.3);
    transform: translateX(3px);
}

/* Responsive */
@media (max-width: 768px) {
    :root {
        --promo-banner-height: 44px;
    }

    .promo-banner {
        padding: 8px 15px;
    }

    .promo-banner-content {
        gap: 8px;
    }

    .promo-emoji {
        font-size: 1.1rem;
    }

    .promo-text {
        font-size: 0.8rem;
    }

    .promo-cta {
        padding: 4px 10px;
        font-size: 0.75rem;
    }
}

@media (max-width: 480px) {
    :root {
        --promo-banner-height: 40px;
    }

    .promo-banner {
        padding: 6px 10px;
    }

    .promo-emoji:last-of-type {
        display: none;
    }

    .promo-text {
        font-size: 0.75rem;
    }

    .promo-cta {
        display: none;
    }
}
/* Configuration Offer Section - Shared styles */

.ready-to-serve-section.config-theme {
    /* Dark Premium Theme */
    background: linear-gradient(180deg, #1a1a2e 0%, #16213e 100%);
    position: relative;
    overflow: hidden;
    padding: 100px 50px;
}

.ready-to-serve-section.config-theme::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background:
        radial-gradient(circle at 10% 20%, rgba(79, 70, 229, 0.15) 0%, transparent 40%),
        radial-gradient(circle at 90% 80%, rgba(246, 198, 116, 0.1) 0%, transparent 40%);
}

.ready-to-serve-container {
    max-width: 700px;
    margin: 0 auto;
    text-align: center;
    position: relative;
    z-index: 1;
    background: rgba(255, 255, 255, 0.03);
    -webkit-backdrop-filter: blur(12px);
            backdrop-filter: blur(12px);
    border-radius: 24px;
    padding: 60px 50px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow:
        0 25px 60px rgba(0, 0, 0, 0.4),
        inset 0 1px 0 rgba(255, 255, 255, 0.1);
}

.ready-to-serve-badge.config-badge {
    display: inline-block;
    background: linear-gradient(135deg, #F6C674, #FFA351);
    color: #1a1a2e;
    padding: 10px 25px;
    border-radius: 30px;
    font-size: 1rem;
    font-weight: 700;
    margin-bottom: 20px;
    text-transform: uppercase;
    letter-spacing: 1px;
    box-shadow: 0 4px 15px rgba(246, 198, 116, 0.4);
    border: 2px solid rgba(255, 255, 255, 0.2);
}

.ready-to-serve-title {
    font-size: 2.8rem;
    font-weight: 800;
    color: #ffffff;
    margin-bottom: 20px;
    text-shadow: 0 4px 10px rgba(0, 0, 0, 0.3);
}

.ready-to-serve-price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 10px;
    margin-bottom: 30px;
    flex-wrap: wrap;
}

.ready-to-serve-price .price-amount {
    font-size: 4rem;
    font-weight: 900;
    background: linear-gradient(135deg, #F6C674, #ffffff);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.ready-to-serve-price .price-once {
    font-size: 1.2rem;
    color: rgba(255, 255, 255, 0.6);
    font-weight: 500;
}

.ready-to-serve-intro {
    font-size: 1.3rem;
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: 35px;
    line-height: 1.6;
}

.ready-to-serve-features {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    grid-gap: 15px;
    gap: 15px;
    margin-bottom: 35px;
    text-align: left;
}

.ready-to-serve-features .feature-item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 16px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 12px;
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.ready-to-serve-features .feature-item:hover {
    background: rgba(255, 255, 255, 0.08);
    transform: translateX(5px);
    border-color: rgba(246, 198, 116, 0.3);
}

.ready-to-serve-features .feature-check {
    color: #F6C674;
    font-size: 1.2rem;
    font-weight: bold;
    flex-shrink: 0;
}

.ready-to-serve-features .feature-item span:last-child {
    color: rgba(255, 255, 255, 0.9);
    font-size: 1rem;
}

.ready-to-serve-bonus {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background: linear-gradient(135deg, rgba(79, 70, 229, 0.15), rgba(246, 198, 116, 0.05));
    padding: 25px;
    border-radius: 16px;
    margin-bottom: 25px;
    border: 1px solid rgba(79, 70, 229, 0.3);
    text-align: left;
}

.ready-to-serve-bonus .bonus-icon {
    font-size: 2.5rem;
    flex-shrink: 0;
}

.ready-to-serve-bonus .bonus-text strong {
    display: block;
    color: #ffd58a;
    font-size: 1.1rem;
    margin-bottom: 8px;
}

.ready-to-serve-bonus .bonus-text p {
    color: rgba(255, 255, 255, 0.85);
    font-size: 0.95rem;
    line-height: 1.5;
    margin: 0;
}

.ready-to-serve-cta.config-cta {
    display: inline-block;
    background: linear-gradient(135deg, #F6C674, #FFA351);
    color: #1a1a2e;
    padding: 20px 50px;
    border-radius: 50px;
    font-size: 1.3rem;
    font-weight: 700;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    box-shadow: 0 8px 25px rgba(246, 198, 116, 0.3);
    margin-bottom: 20px;
    border: 2px solid rgba(255, 255, 255, 0.1);
    animation: pulse 2s infinite;
}

.ready-to-serve-cta.config-cta:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 15px 35px rgba(246, 198, 116, 0.4);
    background: linear-gradient(135deg, #ffd58a, #ffb36b);
}

.ready-to-serve-cta.config-cta:active {
    transform: translateY(-2px) scale(1);
}

.ready-to-serve-subtext {
    color: rgba(255, 255, 255, 0.5);
    font-size: 0.9rem;
    font-style: italic;
    margin-top: 20px;
}

/* Responsive */
@media (max-width: 768px) {
    .ready-to-serve-section {
        padding: 70px 20px;
    }

    .ready-to-serve-container {
        padding: 40px 25px;
    }

    .ready-to-serve-title {
        font-size: 2.2rem;
    }

    .ready-to-serve-price .price-amount {
        font-size: 3rem;
    }

    .ready-to-serve-intro {
        font-size: 1.1rem;
    }

    .ready-to-serve-features {
        grid-template-columns: 1fr;
    }

    .ready-to-serve-bonus {
        flex-direction: column;
        text-align: center;
    }

    .ready-to-serve-cta {
        padding: 18px 35px;
        font-size: 1.1rem;
        width: 100%;
        max-width: 350px;
    }
}

@media (max-width: 480px) {
    .ready-to-serve-container {
        padding: 30px 20px;
    }

    .ready-to-serve-title {
        font-size: 1.8rem;
    }

    .ready-to-serve-price .price-amount {
        font-size: 2.5rem;
    }
}
/* ==========================================
   EDUCATEUR CANIN PAGE
   All classes prefixed with educ- to avoid conflicts
   ========================================== */

.educateur-page {
  --primary: #A5765C;
  --primary-dark: #8B6350;
  --accent: #1B4D3E;
  --accent-light: #2A7359;
  --gold: #E8B86D;
  --cream: #FBF8F4;
  --white: #FFFFFF;
  --black: #1A1A1A;
  --gray-700: #4A4A4A;
  --gray-500: #717171;
  --gray-300: #B8B8B8;
  --gray-100: #F0F0F0;

  font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
  color: var(--black);
  background: var(--white);
  line-height: 1.6;
}

.educ-container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
}

/* ==========================================
   PROMO BANNER (NOËL)
   ========================================== */
:root {
  --promo-banner-height: 48px;
}

.educ-promo-banner {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 48px;
  height: var(--promo-banner-height);
  z-index: 10001;
  padding: 12px 20px;
  text-align: center;
  cursor: pointer;
  transition: all 0.3s ease;
  display: flex;
  align-items: center;
  justify-content: center;
}

.educ-promo-banner.christmas-banner {
  background: linear-gradient(90deg, #c41e3a, #1a472a, #c41e3a);
  background-size: 200% 100%;
  animation: christmasGradient 4s ease infinite;
}

@keyframes christmasGradient {
  0% {
    background-position: 0% 50%;
  }

  50% {
    background-position: 100% 50%;
  }

  100% {
    background-position: 0% 50%;
  }
}

.educ-promo-banner:hover {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.promo-banner-content {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  flex-wrap: nowrap;
}

.promo-emoji {
  font-size: 1.3rem;
  animation: bounce 1s ease infinite;
}

@keyframes bounce {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-5px);
  }
}

.promo-text {
  color: white;
  font-size: 0.95rem;
  font-weight: 500;
}

.promo-text strong {
  font-weight: 700;
}

.promo-cta {
  background: rgba(255, 255, 255, 0.2);
  color: white;
  padding: 6px 14px;
  border-radius: 50px;
  font-size: 0.85rem;
  font-weight: 600;
  transition: all 0.3s ease;
  white-space: nowrap;
}

.educ-promo-banner:hover .promo-cta {
  background: rgba(255, 255, 255, 0.3);
  transform: translateX(3px);
}


.educateur-page .dot {
  color: var(--gold);
}

/* ==========================================
   HERO
   ========================================== */
.educateur-hero {
  min-height: 100vh;
  background: linear-gradient(135deg, var(--cream) 0%, var(--white) 60%, rgba(27, 77, 62, 0.02) 100%);
  position: relative;
  overflow: hidden;
  padding-top: calc(48px + 80px + 50px);
  padding-top: calc(var(--promo-banner-height) + 80px + 50px);
  padding-bottom: 80px;
}

.hero-bg-pattern {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 15% 30%, rgba(232, 184, 109, 0.12) 0%, transparent 40%),
    radial-gradient(circle at 85% 70%, rgba(27, 77, 62, 0.06) 0%, transparent 40%);
  pointer-events: none;
}

.hero-container {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-gap: 80px;
  gap: 80px;
  align-items: center;
  position: relative;
  z-index: 1;
}

.hero-text {
  max-width: 580px;
}

.hero-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--accent);
  color: white;
  padding: 12px 24px;
  border-radius: 50px;
  font-size: 0.95rem;
  font-weight: 600;
  margin-bottom: 28px;
}

.educateur-hero h1 {
  font-size: clamp(2.5rem, 4vw, 3.5rem);
  font-weight: 800;
  line-height: 1.1;
  margin: 0 0 24px;
  color: var(--black);
  letter-spacing: -0.02em;
}

.hero-desc {
  font-size: 1.2rem;
  color: var(--gray-700);
  margin: 0 0 36px;
  line-height: 1.7;
}

.hero-buttons {
  display: flex;
  gap: 16px;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.hero-trust {
  font-size: 0.95rem;
  color: var(--gray-500);
  margin: 0;
}

/* Buttons */
.educateur-page .btn {
  padding: 18px 36px;
  font-size: 1.05rem;
  font-weight: 600;
  border-radius: 14px;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: inherit;
  border: none;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.educateur-page .btn-primary {
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color: white;
  box-shadow: 0 8px 24px rgba(165, 118, 92, 0.3);
}

.educateur-page .btn-primary:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 32px rgba(165, 118, 92, 0.4);
}

.educateur-page .btn-secondary {
  background: transparent;
  color: var(--black);
  border: 2px solid var(--gray-300);
}

.educateur-page .btn-secondary:hover {
  border-color: var(--primary);
  color: var(--primary);
}

/* Hero Image */
.hero-image {
  position: relative;
}

.hero-image img {
  width: 100%;
  max-width: 550px;
  border-radius: 20px;
  box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12);
}

.float-card {
  position: absolute;
  background: var(--white);
  padding: 14px 20px;
  border-radius: 12px;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
  font-weight: 600;
  font-size: 0.9rem;
  display: flex;
  align-items: center;
  gap: 10px;
  animation: educFloat 4s ease-in-out infinite;
}

.float-card span {
  font-size: 1.3rem;
}

.float-1 {
  top: 5%;
  right: -10%;
  animation-delay: 0s;
}

.float-2 {
  bottom: 35%;
  left: -15%;
  animation-delay: 1.5s;
}

.float-3 {
  bottom: 10%;
  right: 0;
  animation-delay: 3s;
  background: linear-gradient(135deg, var(--gold), #F5D5A0);
}

@keyframes educFloat {

  0%,
  100% {
    transform: translateY(0);
  }

  50% {
    transform: translateY(-12px);
  }
}

/* ==========================================
   PROBLEMS SECTION
   ========================================== */
.educ-problems {
  padding: 100px 0;
  background: var(--white);
}

.educ-problems h2,
.educ-solution h2,
.educ-features h2,
.educ-testimonials h2,
.educ-faq h2 {
  font-size: clamp(2rem, 3.5vw, 2.8rem);
  font-weight: 800;
  text-align: center;
  margin: 0 0 60px;
  color: var(--black);
}

.section-subtitle {
  text-align: center;
  font-size: 1.15rem;
  color: var(--gray-500);
  margin: -40px auto 60px;
  max-width: 500px;
}

.problems-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 24px;
  gap: 24px;
}

.problem-card {
  background: var(--cream);
  padding: 32px 24px;
  border-radius: 16px;
  text-align: center;
  transition: all 0.3s ease;
}

.problem-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
  background: var(--white);
}

.problem-icon {
  font-size: 2.8rem;
  margin-bottom: 16px;
}

.problem-card h3 {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0 0 10px;
  color: var(--black);
}

.problem-card p {
  font-size: 0.95rem;
  color: var(--gray-500);
  margin: 0;
  line-height: 1.5;
}

/* ==========================================
   SOLUTION SECTION
   ========================================== */
.educ-solution {
  padding: 100px 0;
  background: var(--accent);
  color: white;
}

.educ-solution h2 {
  color: white;
}

.educ-solution .section-subtitle {
  color: rgba(255, 255, 255, 0.75);
}

.solutions-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 24px;
  gap: 24px;
  max-width: 1000px;
  margin: 0 auto;
}

.solution-card {
  display: flex;
  gap: 20px;
  padding: 28px;
  background: rgba(255, 255, 255, 0.08);
  border-radius: 16px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  transition: all 0.3s ease;
}

.solution-card:hover {
  background: rgba(255, 255, 255, 0.12);
  transform: translateY(-4px);
}

.solution-num {
  font-size: 2.5rem;
  font-weight: 800;
  color: var(--gold);
  line-height: 1;
}

.solution-card h3 {
  font-size: 1.15rem;
  font-weight: 700;
  margin: 0 0 8px;
}

.solution-card p {
  font-size: 0.95rem;
  color: rgba(255, 255, 255, 0.8);
  margin: 0;
  line-height: 1.6;
}

/* ==========================================
   FEATURES SECTION
   ========================================== */
.educ-features {
  padding: 100px 0;
  background: var(--cream);
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-gap: 24px;
  gap: 24px;
}

.feature-card {
  background: var(--white);
  padding: 32px 24px;
  border-radius: 16px;
  position: relative;
  border: 1px solid var(--gray-100);
  transition: all 0.3s ease;
}

.feature-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
  border-color: var(--gold);
}

.feature-card.featured {
  border: 2px solid var(--gold);
  background: linear-gradient(135deg, var(--white) 0%, rgba(232, 184, 109, 0.05) 100%);
}

.feature-tag {
  position: absolute;
  top: 16px;
  right: 16px;
  background: var(--gold);
  color: var(--black);
  padding: 5px 12px;
  border-radius: 50px;
  font-size: 0.7rem;
  font-weight: 700;
  text-transform: uppercase;
}

.feature-icon {
  font-size: 2.5rem;
  margin-bottom: 16px;
}

.feature-card h3 {
  font-size: 1.05rem;
  font-weight: 700;
  margin: 0 0 10px;
  color: var(--black);
}

.feature-card p {
  font-size: 0.9rem;
  color: var(--gray-500);
  margin: 0;
  line-height: 1.5;
}

/* ==========================================
   TESTIMONIALS SECTION
   ========================================== */
.educ-testimonials {
  padding: 100px 0;
  background: var(--white);
}

.testimonials-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-gap: 28px;
  gap: 28px;
}

.testimonial-card {
  background: var(--white);
  padding: 36px;
  border-radius: 20px;
  border: 1px solid var(--gray-100);
  transition: all 0.3s ease;
}

.testimonial-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
  border-color: var(--gold);
}

.stars {
  font-size: 1.2rem;
  margin-bottom: 20px;
  letter-spacing: 3px;
}

.quote {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--gray-700);
  margin: 0 0 24px;
  font-style: italic;
}

.author {
  display: flex;
  align-items: center;
  gap: 14px;
  padding-top: 20px;
  border-top: 1px solid var(--gray-100);
}

.avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--primary), var(--accent));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 700;
  font-size: 1rem;
}

.author strong {
  display: block;
  color: var(--black);
  font-size: 1rem;
}

.author span {
  font-size: 0.85rem;
  color: var(--gray-500);
}

/* ==========================================
   PRICING SECTION
   ========================================== */
.educ-pricing {
  padding: 100px 0;
  background: var(--white);
}

.educ-pricing h2 {
  font-size: clamp(2rem, 3.5vw, 2.8rem);
  font-weight: 800;
  text-align: center;
  margin: 0 0 16px;
  color: var(--black);
}

.pricing-subtitle {
  text-align: center;
  font-size: 1.15rem;
  color: var(--gray-500);
  margin: 0 0 40px;
}

.billing-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-bottom: 50px;
  font-size: 1rem;
  font-weight: 500;
  color: var(--gray-500);
}

.billing-toggle span.active {
  color: var(--black);
  font-weight: 600;
}

.toggle-switch {
  position: relative;
  width: 56px;
  height: 30px;
  background: var(--gray-300);
  border-radius: 50px;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  padding: 3px;
}

.toggle-switch.annual {
  background: var(--accent);
}

.toggle-knob {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 24px;
  height: 24px;
  background: white;
  border-radius: 50%;
  transition: all 0.3s ease;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.toggle-switch.annual .toggle-knob {
  left: calc(100% - 27px);
}

.discount-badge {
  background: var(--accent);
  color: white;
  padding: 4px 10px;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 700;
  margin-left: 8px;
}

.pricing-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 28px;
  gap: 28px;
  max-width: 800px;
  margin: 0 auto;
}

.pricing-card {
  background: var(--white);
  border: 2px solid var(--gray-100);
  border-radius: 20px;
  padding: 36px 28px;
  position: relative;
  transition: all 0.3s ease;
}

.pricing-card:hover {
  transform: translateY(-8px);
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
}

.pricing-card.featured {
  border-color: var(--primary);
  box-shadow: 0 12px 40px rgba(165, 118, 92, 0.15);
}

.pricing-card.promo {
  border-color: var(--gold);
  background: linear-gradient(135deg, var(--white) 0%, rgba(232, 184, 109, 0.08) 100%);
}

.popular-tag,
.promo-tag {
  position: absolute;
  top: -14px;
  left: 50%;
  transform: translateX(-50%);
  background: var(--primary);
  color: white;
  padding: 8px 20px;
  border-radius: 50px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  white-space: nowrap;
}

.promo-tag {
  background: var(--gold);
  color: var(--black);
}

.pricing-header {
  text-align: center;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--gray-100);
  margin-bottom: 28px;
}

.pricing-header h3 {
  font-size: 1.4rem;
  font-weight: 700;
  margin: 0 0 16px;
  color: var(--black);
}

.price {
  display: flex;
  align-items: baseline;
  justify-content: center;
  gap: 4px;
  margin-bottom: 8px;
}

.price .amount {
  font-size: 3rem;
  font-weight: 800;
  color: var(--black);
  line-height: 1;
}

.price .amount.old {
  font-size: 1.5rem;
  color: var(--gray-500);
  text-decoration: line-through;
  margin-right: 8px;
}

.price .amount.promo-price {
  color: var(--accent);
}

.price .period {
  font-size: 1rem;
  color: var(--gray-500);
  font-weight: 500;
}

.annual-note {
  font-size: 0.85rem;
  color: var(--accent);
  margin: 0 0 8px;
  font-weight: 600;
}

.pricing-desc {
  font-size: 0.95rem;
  color: var(--gray-500);
  margin: 0;
}

.pricing-features {
  list-style: none;
  padding: 0;
  margin: 0 0 28px;
}

.pricing-features li {
  padding: 10px 0;
  font-size: 0.95rem;
  color: var(--gray-700);
  border-bottom: 1px solid var(--gray-100);
}

.pricing-features li:last-child {
  border-bottom: none;
}

.pricing-features li.disabled {
  color: var(--gray-300);
}

.pricing-features li strong {
  color: var(--black);
}

.pricing-card .btn {
  width: 100%;
}

.pricing-card .btn-outline {
  background: transparent;
  border: 2px solid var(--gray-300);
  color: var(--black);
  padding: 16px 24px;
  font-size: 1rem;
  font-weight: 600;
  border-radius: 12px;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: inherit;
}

.pricing-card .btn-outline:hover {
  border-color: var(--primary);
  color: var(--primary);
}

/* ==========================================
   FAQ SECTION
   ========================================== */
.educ-faq {
  padding: 100px 0;
  background: linear-gradient(135deg, var(--cream) 0%, #fff 100%);
}

.educ-faq h2 {
  text-align: center;
  margin-bottom: 60px;
}

.educ-faq-list {
  max-width: 900px;
  margin: 0 auto;
}

.educ-faq-item {
  background: var(--white);
  border-radius: 16px;
  margin-bottom: 16px;
  overflow: hidden;
  border: 2px solid var(--gray-100);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.educ-faq-item:hover {
  border-color: var(--gold);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
  transform: translateY(-2px);
}

.educ-faq-item.open {
  border-color: var(--gold);
  box-shadow: 0 8px 24px rgba(232, 184, 109, 0.2);
  transform: translateY(0);
}

.educ-faq-question {
  width: 100%;
  padding: 24px 28px;
  background: none;
  border: none;
  display: flex;
  justify-content: space-between;
  align-items: center;
  cursor: pointer;
  font-family: inherit;
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--black);
  text-align: left;
  transition: all 0.3s ease;
  min-height: auto;
  gap: 16px;
}

.educ-faq-question span:first-child {
  flex: 1 1;
}

.educ-faq-question:hover {
  color: var(--primary);
}

.educ-faq-icon {
  font-size: 1.8rem;
  color: var(--gold);
  font-weight: 300;
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(232, 184, 109, 0.1);
  border-radius: 50%;
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  line-height: 1;
}

.educ-faq-item:hover .educ-faq-icon {
  background: rgba(232, 184, 109, 0.2);
  transform: scale(1.1);
}

.educ-faq-item.open .educ-faq-icon {
  background: var(--gold);
  color: #fff;
  transform: scale(1) rotate(0deg);
}

.educ-faq-item.open:hover .educ-faq-icon {
  transform: scale(1.1);
}

.educ-faq-answer {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    padding 0.4s cubic-bezier(0.4, 0, 0.2, 1),
    opacity 0.3s ease 0.1s;
  padding: 0 28px;
  opacity: 0;
}

.educ-faq-item.open .educ-faq-answer {
  max-height: 1000px;
  padding: 0 28px 24px 28px;
  opacity: 1;
}

.educ-faq-answer p {
  font-size: 1rem;
  line-height: 1.8;
  color: var(--gray-700);
  margin: 0;
}

/* ==========================================
   FINAL CTA
   ========================================== */
.educ-cta {
  padding: 120px 0;
  background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 40%, var(--accent) 100%);
  text-align: center;
  color: white;
}

.educ-cta h2 {
  font-size: clamp(1.8rem, 3.5vw, 2.8rem);
  font-weight: 800;
  margin: 0 0 16px;
  color: white;
}

.educ-cta p {
  font-size: 1.2rem;
  margin: 0 0 36px;
  opacity: 0.9;
}

.btn-cta {
  background: var(--gold);
  color: var(--black);
  padding: 20px 48px;
  font-size: 1.15rem;
  font-weight: 700;
  border-radius: 14px;
  border: none;
  cursor: pointer;
  transition: all 0.25s ease;
  font-family: inherit;
  box-shadow: 0 8px 24px rgba(232, 184, 109, 0.35);
}

.btn-cta:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(232, 184, 109, 0.45);
}

.cta-note {
  display: block;
  margin-top: 20px;
  font-size: 0.95rem;
  opacity: 0.75;
}

/* ==========================================
   RESPONSIVE
   ========================================== */
@media (max-width: 1100px) {

  .features-grid,
  .problems-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .pricing-grid {
    grid-template-columns: 1fr;
    max-width: 450px;
  }

  .pricing-card.featured {
    order: -1;
  }
}

@media (max-width: 992px) {
  .hero-container {
    grid-template-columns: 1fr;
    text-align: center;
    gap: 50px;
  }

  .hero-text {
    max-width: 100%;
  }

  .hero-buttons {
    justify-content: center;
  }

  .hero-image {
    display: flex;
    justify-content: center;
  }

  .hero-image img {
    max-width: 500px;
  }

  .float-card {
    display: none;
  }

  .solutions-grid {
    grid-template-columns: 1fr;
  }

  .testimonials-grid {
    grid-template-columns: 1fr;
    max-width: 600px;
    margin: 0 auto;
  }
}

@media (max-width: 768px) {
  :root {
    --promo-banner-height: 44px;
  }

  .educ-promo-banner {
    padding: 8px 15px;
  }

  .promo-banner-content {
    gap: 8px;
  }

  .promo-emoji {
    font-size: 1.1rem;
  }

  .promo-text {
    font-size: 0.8rem;
  }

  .promo-cta {
    padding: 4px 10px;
    font-size: 0.75rem;
  }

  .educateur-hero {
    padding-top: calc(48px + 60px + 30px);
    padding-top: calc(var(--promo-banner-height) + 60px + 30px);
    padding-bottom: 60px;
  }

  .educ-pricing {
    padding: 70px 0;
  }

  .billing-toggle {
    font-size: 0.9rem;
  }

  .pricing-header h3 {
    font-size: 1.2rem;
  }

  .price .amount {
    font-size: 2.5rem;
  }

  .hero-container {
    padding: 0 24px;
  }

  .hero-badge {
    font-size: 0.85rem;
    padding: 10px 20px;
  }

  .hero-buttons {
    flex-direction: column;
    align-items: center;
  }

  .educateur-page .btn {
    width: 100%;
    max-width: 320px;
  }

  .educ-problems,
  .educ-solution,
  .educ-features,
  .educ-testimonials,
  .educ-faq {
    padding: 70px 0;
  }

  .problems-grid,
  .features-grid {
    grid-template-columns: 1fr;
  }

  .educ-cta {
    padding: 80px 0;
  }
}

@media (max-width: 480px) {
  :root {
    --promo-banner-height: 40px;
  }

  .educ-promo-banner {
    padding: 6px 10px;
  }

  .promo-emoji:last-of-type {
    display: none;
  }

  .promo-text {
    font-size: 0.75rem;
  }

  .promo-cta {
    display: none;
  }

  .educateur-hero {
    padding-top: calc(48px + 60px + 20px);
    padding-top: calc(var(--promo-banner-height) + 60px + 20px);
    padding-bottom: 60px;
  }

  .educateur-hero h1 {
    font-size: 1.9rem;
  }

  .hero-desc {
    font-size: 1.05rem;
  }

  .solution-card {
    flex-direction: column;
    gap: 12px;
  }

  .solution-num {
    font-size: 2rem;
  }

  .educ-faq-question {
    padding: 20px;
    font-size: 1rem;
    gap: 12px;
  }

  .educ-faq-icon {
    width: 28px;
    height: 28px;
    font-size: 1.6rem;
  }

  .educ-faq-answer {
    padding: 0 20px;
  }

  .educ-faq-item.open .educ-faq-answer {
    padding: 0 20px 20px 20px;
  }

  .educ-faq-answer p {
    font-size: 0.95rem;
  }

  .testimonial-card {
    padding: 28px;
  }
}
/* ==========================================
   PROMENEUR CANIN PAGE
   All classes prefixed with prom- to avoid conflicts
   ========================================== */

.promeneur-page {
    --primary: #A5765C;
    --primary-dark: #8B6350;
    --accent: #1B4D3E;
    --accent-light: #2A7359;
    --gold: #E8B86D;
    --cream: #FBF8F4;
    --white: #FFFFFF;
    --black: #1A1A1A;
    --gray-700: #4A4A4A;
    --gray-500: #717171;
    --gray-300: #B8B8B8;
    --gray-100: #F0F0F0;

    font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--black);
    background: var(--white);
    line-height: 1.6;
}

.prom-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ==========================================
   PROMO BANNER (NOËL)
   ========================================== */
:root {
    --promo-banner-height: 48px;
}

.prom-promo-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 48px;
    height: var(--promo-banner-height);
    z-index: 10001;
    padding: 12px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.prom-promo-banner.christmas-banner {
    background: linear-gradient(90deg, #c41e3a, #1a472a, #c41e3a);
    background-size: 200% 100%;
    animation: christmasGradient 4s ease infinite;
}

@keyframes christmasGradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

.prom-promo-banner:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.promo-banner-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: nowrap;
}

.promo-emoji {
    font-size: 1.3rem;
    animation: bounce 1s ease infinite;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

.promo-text {
    color: white;
    font-size: 0.95rem;
    font-weight: 500;
}

.promo-text strong {
    font-weight: 700;
}

.promo-cta {
    background: rgba(255, 255, 255, 0.2);
    color: white;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 600;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.prom-promo-banner:hover .promo-cta {
    background: rgba(255, 255, 255, 0.3);
    transform: translateX(3px);
}


.promeneur-page .dot {
    color: var(--gold);
}

/* ==========================================
   HERO
   ========================================== */
.promeneur-hero {
    min-height: 100vh;
    background: linear-gradient(135deg, var(--cream) 0%, var(--white) 60%, rgba(27, 77, 62, 0.02) 100%);
    position: relative;
    overflow: hidden;
    padding-top: calc(48px + 80px + 50px);
    padding-top: calc(var(--promo-banner-height) + 80px + 50px);
    padding-bottom: 80px;
}

.hero-bg-pattern {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 15% 30%, rgba(232, 184, 109, 0.12) 0%, transparent 40%),
        radial-gradient(circle at 85% 70%, rgba(27, 77, 62, 0.06) 0%, transparent 40%);
    pointer-events: none;
}

.hero-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 80px;
    gap: 80px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.hero-text {
    max-width: 580px;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--accent);
    color: white;
    padding: 12px 24px;
    border-radius: 50px;
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 28px;
}

.promeneur-hero h1 {
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    font-weight: 800;
    line-height: 1.1;
    margin: 0 0 24px;
    color: var(--black);
    letter-spacing: -0.02em;
}

.hero-desc {
    font-size: 1.2rem;
    color: var(--gray-700);
    margin: 0 0 36px;
    line-height: 1.7;
}

.hero-buttons {
    display: flex;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.hero-trust {
    font-size: 0.95rem;
    color: var(--gray-500);
    margin: 0;
}

/* Buttons */
.promeneur-page .btn {
    padding: 18px 36px;
    font-size: 1.05rem;
    font-weight: 600;
    border-radius: 14px;
    cursor: pointer;
    transition: all 0.25s ease;
    font-family: inherit;
    border: none;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.promeneur-page .btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: white;
    box-shadow: 0 8px 24px rgba(165, 118, 92, 0.3);
}

.promeneur-page .btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(165, 118, 92, 0.4);
}

.promeneur-page .btn-secondary {
    background: transparent;
    color: var(--black);
    border: 2px solid var(--gray-300);
}

.promeneur-page .btn-secondary:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* Hero Image */
.hero-image {
    position: relative;
}

.hero-image img {
    width: 100%;
    max-width: 550px;
    border-radius: 20px;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12);
}

.float-card {
    position: absolute;
    background: var(--white);
    padding: 14px 20px;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
    font-weight: 600;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 10px;
    animation: promFloat 4s ease-in-out infinite;
}

.float-card span {
    font-size: 1.3rem;
}

.float-1 {
    top: 5%;
    right: -10%;
    animation-delay: 0s;
}

.float-2 {
    bottom: 35%;
    left: -15%;
    animation-delay: 1.5s;
}

.float-3 {
    bottom: 10%;
    right: 0;
    animation-delay: 3s;
    background: linear-gradient(135deg, var(--gold), #F5D5A0);
}

@keyframes promFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-12px);
    }
}

/* ==========================================
   PROBLEMS SECTION
   ========================================== */
.prom-problems {
    padding: 100px 0;
    background: var(--white);
}

.prom-problems h2,
.prom-solution h2,
.prom-features h2,
.prom-testimonials h2,
.prom-faq h2 {
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 800;
    text-align: center;
    margin: 0 0 60px;
    color: var(--black);
}

.section-subtitle {
    text-align: center;
    font-size: 1.15rem;
    color: var(--gray-500);
    margin: -40px auto 60px;
    max-width: 500px;
}

.problems-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 24px;
    gap: 24px;
}

.problem-card {
    background: var(--cream);
    padding: 32px 24px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s ease;
}

.problem-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    background: var(--white);
}

.problem-icon {
    font-size: 2.8rem;
    margin-bottom: 16px;
}

.problem-card h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--black);
}

.problem-card p {
    font-size: 0.95rem;
    color: var(--gray-500);
    margin: 0;
    line-height: 1.5;
}

/* ==========================================
   SOLUTION SECTION
   ========================================== */
.prom-solution {
    padding: 100px 0;
    background: var(--accent);
    color: white;
}

.prom-solution h2 {
    color: white;
}

.prom-solution .section-subtitle {
    color: rgba(255, 255, 255, 0.75);
}

.solutions-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 24px;
    gap: 24px;
    max-width: 1000px;
    margin: 0 auto;
}

.solution-card {
    display: flex;
    gap: 20px;
    padding: 28px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

.solution-card:hover {
    background: rgba(255, 255, 255, 0.12);
    transform: translateY(-4px);
}

.solution-num {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--gold);
    line-height: 1;
}

.solution-card h3 {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 8px;
}

.solution-card p {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.8);
    margin: 0;
    line-height: 1.6;
}

/* ==========================================
   FEATURES SECTION
   ========================================== */
.prom-features {
    padding: 100px 0;
    background: var(--cream);
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 24px;
    gap: 24px;
}

.feature-card {
    background: var(--white);
    padding: 32px 24px;
    border-radius: 16px;
    position: relative;
    border: 1px solid var(--gray-100);
    transition: all 0.3s ease;
}

.feature-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    border-color: var(--gold);
}

.feature-card.featured {
    border: 2px solid var(--gold);
    background: linear-gradient(135deg, var(--white) 0%, rgba(232, 184, 109, 0.05) 100%);
}

.feature-tag {
    position: absolute;
    top: 16px;
    right: 16px;
    background: var(--gold);
    color: var(--black);
    padding: 5px 12px;
    border-radius: 50px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
}

.feature-icon {
    font-size: 2.5rem;
    margin-bottom: 16px;
}

.feature-card h3 {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--black);
}

.feature-card p {
    font-size: 0.9rem;
    color: var(--gray-500);
    margin: 0;
    line-height: 1.5;
}

/* ==========================================
   TESTIMONIALS SECTION
   ========================================== */
.prom-testimonials {
    padding: 100px 0;
    background: var(--white);
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 28px;
    gap: 28px;
}

.testimonial-card {
    background: var(--white);
    padding: 36px;
    border-radius: 20px;
    border: 1px solid var(--gray-100);
    transition: all 0.3s ease;
}

.testimonial-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    border-color: var(--gold);
}

.stars {
    font-size: 1.2rem;
    margin-bottom: 20px;
    letter-spacing: 3px;
}

.quote {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--gray-700);
    margin: 0 0 24px;
    font-style: italic;
}

.author {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-top: 20px;
    border-top: 1px solid var(--gray-100);
}

.avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), var(--accent));
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 1rem;
}

.author strong {
    display: block;
    color: var(--black);
    font-size: 1rem;
}

.author span {
    font-size: 0.85rem;
    color: var(--gray-500);
}

/* ==========================================
   PRICING SECTION
   ========================================== */
.prom-pricing {
    padding: 100px 0;
    background: var(--white);
}

.prom-pricing h2 {
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 800;
    text-align: center;
    margin: 0 0 16px;
    color: var(--black);
}

.pricing-subtitle {
    text-align: center;
    font-size: 1.15rem;
    color: var(--gray-500);
    margin: 0 0 40px;
}

.billing-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 50px;
    font-size: 1rem;
    font-weight: 500;
    color: var(--gray-500);
}

.billing-toggle span.active {
    color: var(--black);
    font-weight: 600;
}

.toggle-switch {
    position: relative;
    width: 56px;
    height: 30px;
    background: var(--gray-300);
    border-radius: 50px;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 3px;
}

.toggle-switch.annual {
    background: var(--accent);
}

.toggle-knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    background: white;
    border-radius: 50%;
    transition: all 0.3s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.toggle-switch.annual .toggle-knob {
    left: calc(100% - 27px);
}

.discount-badge {
    background: var(--accent);
    color: white;
    padding: 4px 10px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    margin-left: 8px;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 28px;
    gap: 28px;
    max-width: 800px;
    margin: 0 auto;
}

.pricing-card {
    background: var(--white);
    border: 2px solid var(--gray-100);
    border-radius: 20px;
    padding: 36px 28px;
    position: relative;
    transition: all 0.3s ease;
}

.pricing-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
}

.pricing-card.featured {
    border-color: var(--primary);
    box-shadow: 0 12px 40px rgba(165, 118, 92, 0.15);
}

.pricing-card.promo {
    border-color: var(--gold);
    background: linear-gradient(135deg, var(--white) 0%, rgba(232, 184, 109, 0.08) 100%);
}

.popular-tag,
.promo-tag {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: white;
    padding: 8px 20px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.promo-tag {
    background: var(--gold);
    color: var(--black);
}

.pricing-header {
    text-align: center;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--gray-100);
    margin-bottom: 28px;
}

.pricing-header h3 {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 16px;
    color: var(--black);
}

.price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    margin-bottom: 8px;
}

.price .amount {
    font-size: 3rem;
    font-weight: 800;
    color: var(--black);
    line-height: 1;
}

.price .amount.old {
    font-size: 1.5rem;
    color: var(--gray-500);
    text-decoration: line-through;
    margin-right: 8px;
}

.price .amount.promo-price {
    color: var(--accent);
}

.price .period {
    font-size: 1rem;
    color: var(--gray-500);
    font-weight: 500;
}

.annual-note {
    font-size: 0.85rem;
    color: var(--accent);
    margin: 0 0 8px;
    font-weight: 600;
}

.pricing-desc {
    font-size: 0.95rem;
    color: var(--gray-500);
    margin: 0;
}

.pricing-features {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
}

.pricing-features li {
    padding: 10px 0;
    font-size: 0.95rem;
    color: var(--gray-700);
    border-bottom: 1px solid var(--gray-100);
}

.pricing-features li:last-child {
    border-bottom: none;
}

.pricing-features li.disabled {
    color: var(--gray-300);
}

.pricing-features li strong {
    color: var(--black);
}

.pricing-card .btn {
    width: 100%;
}

.pricing-card .btn-outline {
    background: transparent;
    border: 2px solid var(--gray-300);
    color: var(--black);
    padding: 16px 24px;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.25s ease;
    font-family: inherit;
}

.pricing-card .btn-outline:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* ==========================================
   FAQ SECTION
   ========================================== */
.prom-faq {
    padding: 100px 0;
    background: linear-gradient(135deg, var(--cream) 0%, #fff 100%);
}

.prom-faq h2 {
    text-align: center;
    margin-bottom: 60px;
}

.prom-faq-list {
    max-width: 800px;
    margin: 0 auto;
}

.prom-faq-item {
    margin-bottom: 16px;
    border-bottom: 1px solid var(--gray-300);
}

.prom-faq-item:last-child {
    border-bottom: none;
}

.prom-faq-question {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: none;
    border: none;
    padding: 24px 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--black);
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
    font-family: inherit;
}

.prom-faq-question:hover {
    color: var(--primary);
}

.prom-faq-icon {
    font-size: 1.5rem;
    color: var(--primary);
    font-weight: 300;
}

.prom-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.prom-faq-item.open .prom-faq-answer {
    max-height: 200px;
    /* approximatif */
}

.prom-faq-answer p {
    padding-bottom: 24px;
    color: var(--gray-500);
    margin: 0;
}

/* ==========================================
   CTA SECTION
   ========================================== */
.prom-cta {
    padding: 100px 0;
    background: var(--accent);
    color: white;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.prom-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        radial-gradient(circle at 10% 20%, rgba(255, 255, 255, 0.05) 0%, transparent 20%),
        radial-gradient(circle at 90% 80%, rgba(255, 255, 255, 0.05) 0%, transparent 20%);
}

.prom-cta h2 {
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 800;
    margin: 0 0 20px;
    color: white;
}

.prom-cta p {
    font-size: 1.25rem;
    color: rgba(255, 255, 255, 0.85);
    margin: 0 auto 40px;
    max-width: 600px;
}

.btn-cta {
    background: var(--gold);
    color: var(--black);
    padding: 20px 48px;
    font-size: 1.15rem;
    font-weight: 700;
    border-radius: 50px;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.btn-cta:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
    background: #f0c98d;
}

.cta-note {
    display: block;
    margin-top: 24px;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.6);
}

/* Responsive */
@media (max-width: 900px) {
    .hero-container {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 40px;
    }

    .hero-text {
        max-width: 100%;
        margin: 0 auto;
    }

    .hero-buttons {
        justify-content: center;
    }

    .problems-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .solutions-grid {
        grid-template-columns: 1fr;
    }

    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .testimonials-grid {
        grid-template-columns: 1fr;
    }

    .pricing-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .problems-grid {
        grid-template-columns: 1fr;
    }

    .features-grid {
        grid-template-columns: 1fr;
    }

    .educateur-hero h1 {
        font-size: 2.5rem;
    }
}
/* ==========================================
   PET SITTER PAGE
   All classes prefixed with petsit- to avoid conflicts
   ========================================== */

.petsitter-page {
    --primary: #A5765C;
    --primary-dark: #8B6350;
    --accent: #1B4D3E;
    --accent-light: #2A7359;
    --gold: #E8B86D;
    --cream: #FBF8F4;
    --white: #FFFFFF;
    --black: #1A1A1A;
    --gray-700: #4A4A4A;
    --gray-500: #717171;
    --gray-300: #B8B8B8;
    --gray-100: #F0F0F0;

    font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--black);
    background: var(--white);
    line-height: 1.6;
}

.petsit-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ==========================================
   PROMO BANNER (NOËL)
   ========================================== */
:root {
    --promo-banner-height: 48px;
}

.petsit-promo-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 48px;
    height: var(--promo-banner-height);
    z-index: 10001;
    padding: 12px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.petsit-promo-banner.christmas-banner {
    background: linear-gradient(90deg, #c41e3a, #1a472a, #c41e3a);
    background-size: 200% 100%;
    animation: christmasGradient 4s ease infinite;
}

@keyframes christmasGradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

.petsit-promo-banner:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.promo-banner-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: nowrap;
}

.promo-emoji {
    font-size: 1.3rem;
    animation: bounce 1s ease infinite;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

.promo-text {
    color: white;
    font-size: 0.95rem;
    font-weight: 500;
}

.promo-text strong {
    font-weight: 700;
}

.promo-cta {
    background: rgba(255, 255, 255, 0.2);
    color: white;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 600;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.petsit-promo-banner:hover .promo-cta {
    background: rgba(255, 255, 255, 0.3);
    transform: translateX(3px);
}


.petsitter-page .dot {
    color: var(--gold);
}

/* ==========================================
   HERO
   ========================================== */
.petsitter-hero {
    min-height: 100vh;
    background: linear-gradient(135deg, var(--cream) 0%, var(--white) 60%, rgba(27, 77, 62, 0.02) 100%);
    position: relative;
    overflow: hidden;
    padding-top: calc(48px + 80px + 50px);
    padding-top: calc(var(--promo-banner-height) + 80px + 50px);
    padding-bottom: 80px;
}

.hero-bg-pattern {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 15% 30%, rgba(232, 184, 109, 0.12) 0%, transparent 40%),
        radial-gradient(circle at 85% 70%, rgba(27, 77, 62, 0.06) 0%, transparent 40%);
    pointer-events: none;
}

.hero-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 80px;
    gap: 80px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.hero-text {
    max-width: 580px;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--accent);
    color: white;
    padding: 12px 24px;
    border-radius: 50px;
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 28px;
}

.petsitter-hero h1 {
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    font-weight: 800;
    line-height: 1.1;
    margin: 0 0 24px;
    color: var(--black);
    letter-spacing: -0.02em;
}

.hero-desc {
    font-size: 1.2rem;
    color: var(--gray-700);
    margin: 0 0 36px;
    line-height: 1.7;
}

.hero-buttons {
    display: flex;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.hero-trust {
    font-size: 0.95rem;
    color: var(--gray-500);
    margin: 0;
}

/* Buttons */
.petsitter-page .btn {
    padding: 18px 36px;
    font-size: 1.05rem;
    font-weight: 600;
    border-radius: 14px;
    cursor: pointer;
    transition: all 0.25s ease;
    font-family: inherit;
    border: none;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.petsitter-page .btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: white;
    box-shadow: 0 8px 24px rgba(165, 118, 92, 0.3);
}

.petsitter-page .btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(165, 118, 92, 0.4);
}

.petsitter-page .btn-secondary {
    background: transparent;
    color: var(--black);
    border: 2px solid var(--gray-300);
}

.petsitter-page .btn-secondary:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* Hero Image */
.hero-image {
    position: relative;
}

.hero-image img {
    width: 100%;
    max-width: 550px;
    border-radius: 20px;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12);
}

.float-card {
    position: absolute;
    background: var(--white);
    padding: 14px 20px;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
    font-weight: 600;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 10px;
    animation: petsitFloat 4s ease-in-out infinite;
}

.float-card span {
    font-size: 1.3rem;
}

.float-1 {
    top: 5%;
    right: -10%;
    animation-delay: 0s;
}

.float-2 {
    bottom: 35%;
    left: -15%;
    animation-delay: 1.5s;
}

.float-3 {
    bottom: 10%;
    right: 0;
    animation-delay: 3s;
    background: linear-gradient(135deg, var(--gold), #F5D5A0);
}

@keyframes petsitFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-12px);
    }
}

/* ==========================================
   PROBLEMS SECTION
   ========================================== */
.petsit-problems {
    padding: 100px 0;
    background: var(--white);
}

.petsit-problems h2,
.petsit-solution h2,
.petsit-features h2,
.petsit-testimonials h2,
.petsit-faq h2 {
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 800;
    text-align: center;
    margin: 0 0 60px;
    color: var(--black);
}

.section-subtitle {
    text-align: center;
    font-size: 1.15rem;
    color: var(--gray-500);
    margin: -40px auto 60px;
    max-width: 500px;
}

.problems-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 24px;
    gap: 24px;
}

.problem-card {
    background: var(--cream);
    padding: 32px 24px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s ease;
}

.problem-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    background: var(--white);
}

.problem-icon {
    font-size: 2.8rem;
    margin-bottom: 16px;
}

.problem-card h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--black);
}

.problem-card p {
    font-size: 0.95rem;
    color: var(--gray-500);
    margin: 0;
    line-height: 1.5;
}

/* ==========================================
   SOLUTION SECTION
   ========================================== */
.petsit-solution {
    padding: 100px 0;
    background: var(--accent);
    color: white;
}

.petsit-solution h2 {
    color: white;
}

.petsit-solution .section-subtitle {
    color: rgba(255, 255, 255, 0.75);
}

.solutions-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 24px;
    gap: 24px;
    max-width: 1000px;
    margin: 0 auto;
}

.solution-card {
    display: flex;
    gap: 20px;
    padding: 28px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

.solution-card:hover {
    background: rgba(255, 255, 255, 0.12);
    transform: translateY(-4px);
}

.solution-num {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--gold);
    line-height: 1;
}

.solution-card h3 {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 8px;
}

.solution-card p {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.8);
    margin: 0;
    line-height: 1.6;
}

/* ==========================================
   FEATURES SECTION
   ========================================== */
.petsit-features {
    padding: 100px 0;
    background: var(--cream);
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 24px;
    gap: 24px;
}

.feature-card {
    background: var(--white);
    padding: 32px 24px;
    border-radius: 16px;
    position: relative;
    border: 1px solid var(--gray-100);
    transition: all 0.3s ease;
}

.feature-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    border-color: var(--gold);
}

.feature-card.featured {
    border: 2px solid var(--gold);
    background: linear-gradient(135deg, var(--white) 0%, rgba(232, 184, 109, 0.05) 100%);
}

.feature-tag {
    position: absolute;
    top: 16px;
    right: 16px;
    background: var(--gold);
    color: var(--black);
    padding: 5px 12px;
    border-radius: 50px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
}

.feature-icon {
    font-size: 2.5rem;
    margin-bottom: 16px;
}

.feature-card h3 {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--black);
}

.feature-card p {
    font-size: 0.9rem;
    color: var(--gray-500);
    margin: 0;
    line-height: 1.5;
}

/* ==========================================
   TESTIMONIALS SECTION
   ========================================== */
.petsit-testimonials {
    padding: 100px 0;
    background: var(--white);
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 28px;
    gap: 28px;
}

.testimonial-card {
    background: var(--white);
    padding: 36px;
    border-radius: 20px;
    border: 1px solid var(--gray-100);
    transition: all 0.3s ease;
}

.testimonial-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    border-color: var(--gold);
}

.stars {
    font-size: 1.2rem;
    margin-bottom: 20px;
    letter-spacing: 3px;
}

.quote {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--gray-700);
    margin: 0 0 24px;
    font-style: italic;
}

.author {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-top: 20px;
    border-top: 1px solid var(--gray-100);
}

.avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), var(--accent));
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 1rem;
}

.author strong {
    display: block;
    color: var(--black);
    font-size: 1rem;
}

.author span {
    font-size: 0.85rem;
    color: var(--gray-500);
}

/* ==========================================
   PRICING SECTION
   ========================================== */
.petsit-pricing {
    padding: 100px 0;
    background: var(--white);
}

.petsit-pricing h2 {
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 800;
    text-align: center;
    margin: 0 0 16px;
    color: var(--black);
}

.pricing-subtitle {
    text-align: center;
    font-size: 1.15rem;
    color: var(--gray-500);
    margin: 0 0 40px;
}

.billing-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 50px;
    font-size: 1rem;
    font-weight: 500;
    color: var(--gray-500);
}

.billing-toggle span.active {
    color: var(--black);
    font-weight: 600;
}

.toggle-switch {
    position: relative;
    width: 56px;
    height: 30px;
    background: var(--gray-300);
    border-radius: 50px;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 3px;
}

.toggle-switch.annual {
    background: var(--accent);
}

.toggle-knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    background: white;
    border-radius: 50%;
    transition: all 0.3s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.toggle-switch.annual .toggle-knob {
    left: calc(100% - 27px);
}

.discount-badge {
    background: var(--accent);
    color: white;
    padding: 4px 10px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    margin-left: 8px;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 28px;
    gap: 28px;
    max-width: 800px;
    margin: 0 auto;
}

.pricing-card {
    background: var(--white);
    border: 2px solid var(--gray-100);
    border-radius: 20px;
    padding: 36px 28px;
    position: relative;
    transition: all 0.3s ease;
}

.pricing-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
}

.pricing-card.featured {
    border-color: var(--primary);
    box-shadow: 0 12px 40px rgba(165, 118, 92, 0.15);
}

.popular-tag {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: white;
    padding: 8px 20px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.pricing-header {
    text-align: center;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--gray-100);
    margin-bottom: 28px;
}

.pricing-header h3 {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 16px;
    color: var(--black);
}

.price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    margin-bottom: 8px;
}

.price .amount {
    font-size: 3rem;
    font-weight: 800;
    color: var(--black);
    line-height: 1;
}

.price .period {
    font-size: 1rem;
    color: var(--gray-500);
    font-weight: 500;
}

.annual-note {
    font-size: 0.85rem;
    color: var(--accent);
    margin: 0 0 8px;
    font-weight: 600;
}

.pricing-desc {
    font-size: 0.95rem;
    color: var(--gray-500);
    margin: 0;
}

.pricing-features {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
}

.pricing-features li {
    padding: 10px 0;
    font-size: 0.95rem;
    color: var(--gray-700);
    border-bottom: 1px solid var(--gray-100);
}

.pricing-features li:last-child {
    border-bottom: none;
}

.pricing-features li.disabled {
    color: var(--gray-300);
}

.pricing-features li strong {
    color: var(--black);
}

.pricing-card .btn {
    width: 100%;
}

.pricing-card .btn-outline {
    background: transparent;
    border: 2px solid var(--gray-300);
    color: var(--black);
    padding: 16px 24px;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.25s ease;
    font-family: inherit;
}

.pricing-card .btn-outline:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* ==========================================
   FAQ SECTION
   ========================================== */
.petsit-faq {
    padding: 100px 0;
    background: linear-gradient(135deg, var(--cream) 0%, #fff 100%);
}

.petsit-faq h2 {
    text-align: center;
    margin-bottom: 60px;
}

.petsit-faq-list {
    max-width: 800px;
    margin: 0 auto;
}

.petsit-faq-item {
    margin-bottom: 16px;
    border-bottom: 1px solid var(--gray-300);
}

.petsit-faq-item:last-child {
    border-bottom: none;
}

.petsit-faq-question {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: none;
    border: none;
    padding: 24px 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--black);
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
    font-family: inherit;
}

.petsit-faq-question:hover {
    color: var(--primary);
}

.petsit-faq-icon {
    font-size: 1.5rem;
    color: var(--primary);
    font-weight: 300;
}

.petsit-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.petsit-faq-item.open .petsit-faq-answer {
    max-height: 200px;
}

.petsit-faq-answer p {
    padding-bottom: 24px;
    color: var(--gray-500);
    margin: 0;
}

/* ==========================================
   CTA SECTION
   ========================================== */
.petsit-cta {
    padding: 100px 0;
    background: var(--accent);
    color: white;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.petsit-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        radial-gradient(circle at 10% 20%, rgba(255, 255, 255, 0.05) 0%, transparent 20%),
        radial-gradient(circle at 90% 80%, rgba(255, 255, 255, 0.05) 0%, transparent 20%);
}

.petsit-cta h2 {
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 800;
    margin: 0 0 20px;
    color: white;
}

.petsit-cta p {
    font-size: 1.25rem;
    color: rgba(255, 255, 255, 0.85);
    margin: 0 auto 40px;
    max-width: 600px;
}

.btn-cta {
    background: var(--gold);
    color: var(--black);
    padding: 20px 48px;
    font-size: 1.15rem;
    font-weight: 700;
    border-radius: 50px;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.btn-cta:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
    background: #f0c98d;
}

.cta-note {
    display: block;
    margin-top: 24px;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.6);
}

/* Responsive */
@media (max-width: 900px) {
    .hero-container {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 40px;
    }

    .hero-text {
        max-width: 100%;
        margin: 0 auto;
    }

    .hero-buttons {
        justify-content: center;
    }

    .problems-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .solutions-grid {
        grid-template-columns: 1fr;
    }

    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .testimonials-grid {
        grid-template-columns: 1fr;
    }

    .pricing-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .problems-grid {
        grid-template-columns: 1fr;
    }

    .features-grid {
        grid-template-columns: 1fr;
    }

    .petsitter-hero h1 {
        font-size: 2.5rem;
    }
}
/* ==========================================
   PENSION PAGE
   All classes prefixed with pension- to avoid conflicts
   ========================================== */

.pension-page {
    --primary: #A5765C;
    --primary-dark: #8B6350;
    --accent: #1B4D3E;
    --accent-light: #2A7359;
    --gold: #E8B86D;
    --cream: #FBF8F4;
    --white: #FFFFFF;
    --black: #1A1A1A;
    --gray-700: #4A4A4A;
    --gray-500: #717171;
    --gray-300: #B8B8B8;
    --gray-100: #F0F0F0;

    font-family: 'Outfit', -apple-system, BlinkMacSystemFont, sans-serif;
    color: var(--black);
    background: var(--white);
    line-height: 1.6;
}

.pension-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 24px;
}

/* ==========================================
   PROMO BANNER (NOËL)
   ========================================== */
:root {
    --promo-banner-height: 48px;
}

.pension-promo-banner {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    height: 48px;
    height: var(--promo-banner-height);
    z-index: 10001;
    padding: 12px 20px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pension-promo-banner.christmas-banner {
    background: linear-gradient(90deg, #c41e3a, #1a472a, #c41e3a);
    background-size: 200% 100%;
    animation: christmasGradient 4s ease infinite;
}

@keyframes christmasGradient {
    0% {
        background-position: 0% 50%;
    }

    50% {
        background-position: 100% 50%;
    }

    100% {
        background-position: 0% 50%;
    }
}

.pension-promo-banner:hover {
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3);
}

.promo-banner-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    flex-wrap: nowrap;
}

.promo-emoji {
    font-size: 1.3rem;
    animation: bounce 1s ease infinite;
}

@keyframes bounce {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-5px);
    }
}

.promo-text {
    color: white;
    font-size: 0.95rem;
    font-weight: 500;
}

.promo-text strong {
    font-weight: 700;
}

.promo-cta {
    background: rgba(255, 255, 255, 0.2);
    color: white;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 600;
    transition: all 0.3s ease;
    white-space: nowrap;
}

.pension-promo-banner:hover .promo-cta {
    background: rgba(255, 255, 255, 0.3);
    transform: translateX(3px);
}


.pension-page .dot {
    color: var(--gold);
}

/* ==========================================
   HERO
   ========================================== */
.pension-hero {
    min-height: 100vh;
    background: linear-gradient(135deg, var(--cream) 0%, var(--white) 60%, rgba(27, 77, 62, 0.02) 100%);
    position: relative;
    overflow: hidden;
    padding-top: calc(48px + 80px + 50px);
    padding-top: calc(var(--promo-banner-height) + 80px + 50px);
    padding-bottom: 80px;
}

.hero-bg-pattern {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(circle at 15% 30%, rgba(232, 184, 109, 0.12) 0%, transparent 40%),
        radial-gradient(circle at 85% 70%, rgba(27, 77, 62, 0.06) 0%, transparent 40%);
    pointer-events: none;
}

.hero-container {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 40px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 80px;
    gap: 80px;
    align-items: center;
    position: relative;
    z-index: 1;
}

.hero-text {
    max-width: 580px;
}

.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--accent);
    color: white;
    padding: 12px 24px;
    border-radius: 50px;
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 28px;
}

.pension-hero h1 {
    font-size: clamp(2.5rem, 4vw, 3.5rem);
    font-weight: 800;
    line-height: 1.1;
    margin: 0 0 24px;
    color: var(--black);
    letter-spacing: -0.02em;
}

.hero-desc {
    font-size: 1.2rem;
    color: var(--gray-700);
    margin: 0 0 36px;
    line-height: 1.7;
}

.hero-buttons {
    display: flex;
    gap: 16px;
    margin-bottom: 24px;
    flex-wrap: wrap;
}

.hero-trust {
    font-size: 0.95rem;
    color: var(--gray-500);
    margin: 0;
}

/* Buttons */
.pension-page .btn {
    padding: 18px 36px;
    font-size: 1.05rem;
    font-weight: 600;
    border-radius: 14px;
    cursor: pointer;
    transition: all 0.25s ease;
    font-family: inherit;
    border: none;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.pension-page .btn-primary {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
    color: white;
    box-shadow: 0 8px 24px rgba(165, 118, 92, 0.3);
}

.pension-page .btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(165, 118, 92, 0.4);
}

.pension-page .btn-secondary {
    background: transparent;
    color: var(--black);
    border: 2px solid var(--gray-300);
}

.pension-page .btn-secondary:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* Hero Image */
.hero-image {
    position: relative;
}

.hero-image img {
    width: 100%;
    max-width: 550px;
    border-radius: 20px;
    box-shadow: 0 30px 60px rgba(0, 0, 0, 0.12);
}

.float-card {
    position: absolute;
    background: var(--white);
    padding: 14px 20px;
    border-radius: 12px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
    font-weight: 600;
    font-size: 0.9rem;
    display: flex;
    align-items: center;
    gap: 10px;
    animation: pensionFloat 4s ease-in-out infinite;
}

.float-card span {
    font-size: 1.3rem;
}

.float-1 {
    top: 5%;
    right: -10%;
    animation-delay: 0s;
}

.float-2 {
    bottom: 35%;
    left: -15%;
    animation-delay: 1.5s;
}

.float-3 {
    bottom: 10%;
    right: 0;
    animation-delay: 3s;
    background: linear-gradient(135deg, var(--gold), #F5D5A0);
}

@keyframes pensionFloat {

    0%,
    100% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-12px);
    }
}

/* ==========================================
   PROBLEMS SECTION
   ========================================== */
.pension-problems {
    padding: 100px 0;
    background: var(--white);
}

.pension-problems h2,
.pension-solution h2,
.pension-features h2,
.pension-testimonials h2,
.pension-faq h2 {
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 800;
    text-align: center;
    margin: 0 0 60px;
    color: var(--black);
}

.section-subtitle {
    text-align: center;
    font-size: 1.15rem;
    color: var(--gray-500);
    margin: -40px auto 60px;
    max-width: 500px;
}

.problems-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 24px;
    gap: 24px;
}

.problem-card {
    background: var(--cream);
    padding: 32px 24px;
    border-radius: 16px;
    text-align: center;
    transition: all 0.3s ease;
}

.problem-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    background: var(--white);
}

.problem-icon {
    font-size: 2.8rem;
    margin-bottom: 16px;
}

.problem-card h3 {
    font-size: 1.1rem;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--black);
}

.problem-card p {
    font-size: 0.95rem;
    color: var(--gray-500);
    margin: 0;
    line-height: 1.5;
}

/* ==========================================
   SOLUTION SECTION
   ========================================== */
.pension-solution {
    padding: 100px 0;
    background: var(--accent);
    color: white;
}

.pension-solution h2 {
    color: white;
}

.pension-solution .section-subtitle {
    color: rgba(255, 255, 255, 0.75);
}

.solutions-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 24px;
    gap: 24px;
    max-width: 1000px;
    margin: 0 auto;
}

.solution-card {
    display: flex;
    gap: 20px;
    padding: 28px;
    background: rgba(255, 255, 255, 0.08);
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    transition: all 0.3s ease;
}

.solution-card:hover {
    background: rgba(255, 255, 255, 0.12);
    transform: translateY(-4px);
}

.solution-num {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--gold);
    line-height: 1;
}

.solution-card h3 {
    font-size: 1.15rem;
    font-weight: 700;
    margin: 0 0 8px;
}

.solution-card p {
    font-size: 0.95rem;
    color: rgba(255, 255, 255, 0.8);
    margin: 0;
    line-height: 1.6;
}

/* ==========================================
   FEATURES SECTION
   ========================================== */
.pension-features {
    padding: 100px 0;
    background: var(--cream);
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-gap: 24px;
    gap: 24px;
}

.feature-card {
    background: var(--white);
    padding: 32px 24px;
    border-radius: 16px;
    position: relative;
    border: 1px solid var(--gray-100);
    transition: all 0.3s ease;
}

.feature-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    border-color: var(--gold);
}

.feature-card.featured {
    border: 2px solid var(--gold);
    background: linear-gradient(135deg, var(--white) 0%, rgba(232, 184, 109, 0.05) 100%);
}

.feature-tag {
    position: absolute;
    top: 16px;
    right: 16px;
    background: var(--gold);
    color: var(--black);
    padding: 5px 12px;
    border-radius: 50px;
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
}

.feature-icon {
    font-size: 2.5rem;
    margin-bottom: 16px;
}

.feature-card h3 {
    font-size: 1.05rem;
    font-weight: 700;
    margin: 0 0 10px;
    color: var(--black);
}

.feature-card p {
    font-size: 0.9rem;
    color: var(--gray-500);
    margin: 0;
    line-height: 1.5;
}

/* ==========================================
   TESTIMONIALS SECTION
   ========================================== */
.pension-testimonials {
    padding: 100px 0;
    background: var(--white);
}

.testimonials-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 28px;
    gap: 28px;
}

.testimonial-card {
    background: var(--white);
    padding: 36px;
    border-radius: 20px;
    border: 1px solid var(--gray-100);
    transition: all 0.3s ease;
}

.testimonial-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
    border-color: var(--gold);
}

.stars {
    font-size: 1.2rem;
    margin-bottom: 20px;
    letter-spacing: 3px;
}

.quote {
    font-size: 1rem;
    line-height: 1.7;
    color: var(--gray-700);
    margin: 0 0 24px;
    font-style: italic;
}

.author {
    display: flex;
    align-items: center;
    gap: 14px;
    padding-top: 20px;
    border-top: 1px solid var(--gray-100);
}

.avatar {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary), var(--accent));
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 700;
    font-size: 1rem;
}

.author strong {
    display: block;
    color: var(--black);
    font-size: 1rem;
}

.author span {
    font-size: 0.85rem;
    color: var(--gray-500);
}

/* ==========================================
   PRICING SECTION
   ========================================== */
.pension-pricing {
    padding: 100px 0;
    background: var(--white);
}

.pension-pricing h2 {
    font-size: clamp(2rem, 3.5vw, 2.8rem);
    font-weight: 800;
    text-align: center;
    margin: 0 0 16px;
    color: var(--black);
}

.pricing-subtitle {
    text-align: center;
    font-size: 1.15rem;
    color: var(--gray-500);
    margin: 0 0 40px;
}

.billing-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    margin-bottom: 50px;
    font-size: 1rem;
    font-weight: 500;
    color: var(--gray-500);
}

.billing-toggle span.active {
    color: var(--black);
    font-weight: 600;
}

.toggle-switch {
    position: relative;
    width: 56px;
    height: 30px;
    background: var(--gray-300);
    border-radius: 50px;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    padding: 3px;
}

.toggle-switch.annual {
    background: var(--accent);
}

.toggle-knob {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 24px;
    height: 24px;
    background: white;
    border-radius: 50%;
    transition: all 0.3s ease;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15);
}

.toggle-switch.annual .toggle-knob {
    left: calc(100% - 27px);
}

.discount-badge {
    background: var(--accent);
    color: white;
    padding: 4px 10px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    margin-left: 8px;
}

.pricing-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-gap: 28px;
    gap: 28px;
    max-width: 800px;
    margin: 0 auto;
}

.pricing-card {
    background: var(--white);
    border: 2px solid var(--gray-100);
    border-radius: 20px;
    padding: 36px 28px;
    position: relative;
    transition: all 0.3s ease;
}

.pricing-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 50px rgba(0, 0, 0, 0.1);
}

.pricing-card.featured {
    border-color: var(--primary);
    box-shadow: 0 12px 40px rgba(165, 118, 92, 0.15);
}

.popular-tag {
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--primary);
    color: white;
    padding: 8px 20px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    white-space: nowrap;
}

.pricing-header {
    text-align: center;
    padding-bottom: 28px;
    border-bottom: 1px solid var(--gray-100);
    margin-bottom: 28px;
}

.pricing-header h3 {
    font-size: 1.4rem;
    font-weight: 700;
    margin: 0 0 16px;
    color: var(--black);
}

.price {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 4px;
    margin-bottom: 8px;
}

.price .amount {
    font-size: 3rem;
    font-weight: 800;
    color: var(--black);
    line-height: 1;
}

.price .period {
    font-size: 1rem;
    color: var(--gray-500);
    font-weight: 500;
}

.annual-note {
    font-size: 0.85rem;
    color: var(--accent);
    margin: 0 0 8px;
    font-weight: 600;
}

.pricing-desc {
    font-size: 0.95rem;
    color: var(--gray-500);
    margin: 0;
}

.pricing-features {
    list-style: none;
    padding: 0;
    margin: 0 0 28px;
}

.pricing-features li {
    padding: 10px 0;
    font-size: 0.95rem;
    color: var(--gray-700);
    border-bottom: 1px solid var(--gray-100);
}

.pricing-features li:last-child {
    border-bottom: none;
}

.pricing-features li.disabled {
    color: var(--gray-300);
}

.pricing-features li strong {
    color: var(--black);
}

.pricing-card .btn {
    width: 100%;
}

.pricing-card .btn-outline {
    background: transparent;
    border: 2px solid var(--gray-300);
    color: var(--black);
    padding: 16px 24px;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 12px;
    cursor: pointer;
    transition: all 0.25s ease;
    font-family: inherit;
}

.pricing-card .btn-outline:hover {
    border-color: var(--primary);
    color: var(--primary);
}

/* ==========================================
   FAQ SECTION
   ========================================== */
.pension-faq {
    padding: 100px 0;
    background: linear-gradient(135deg, var(--cream) 0%, #fff 100%);
}

.pension-faq h2 {
    text-align: center;
    margin-bottom: 60px;
}

.pension-faq-list {
    max-width: 800px;
    margin: 0 auto;
}

.pension-faq-item {
    margin-bottom: 16px;
    border-bottom: 1px solid var(--gray-300);
}

.pension-faq-item:last-child {
    border-bottom: none;
}

.pension-faq-question {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: none;
    border: none;
    padding: 24px 0;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--black);
    cursor: pointer;
    text-align: left;
    transition: all 0.2s ease;
    font-family: inherit;
}

.pension-faq-question:hover {
    color: var(--primary);
}

.pension-faq-icon {
    font-size: 1.5rem;
    color: var(--primary);
    font-weight: 300;
}

.pension-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
}

.pension-faq-item.open .pension-faq-answer {
    max-height: 200px;
}

.pension-faq-answer p {
    padding-bottom: 24px;
    color: var(--gray-500);
    margin: 0;
}

/* ==========================================
   CTA SECTION
   ========================================== */
.pension-cta {
    padding: 100px 0;
    background: var(--accent);
    color: white;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.pension-cta::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        radial-gradient(circle at 10% 20%, rgba(255, 255, 255, 0.05) 0%, transparent 20%),
        radial-gradient(circle at 90% 80%, rgba(255, 255, 255, 0.05) 0%, transparent 20%);
}

.pension-cta h2 {
    font-size: clamp(2rem, 3.5vw, 3rem);
    font-weight: 800;
    margin: 0 0 20px;
    color: white;
}

.pension-cta p {
    font-size: 1.25rem;
    color: rgba(255, 255, 255, 0.85);
    margin: 0 auto 40px;
    max-width: 600px;
}

.btn-cta {
    background: var(--gold);
    color: var(--black);
    padding: 20px 48px;
    font-size: 1.15rem;
    font-weight: 700;
    border-radius: 50px;
    border: none;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.btn-cta:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.3);
    background: #f0c98d;
}

.cta-note {
    display: block;
    margin-top: 24px;
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.6);
}

/* Responsive */
@media (max-width: 900px) {
    .hero-container {
        grid-template-columns: 1fr;
        text-align: center;
        gap: 40px;
    }

    .hero-text {
        max-width: 100%;
        margin: 0 auto;
    }

    .hero-buttons {
        justify-content: center;
    }

    .problems-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .solutions-grid {
        grid-template-columns: 1fr;
    }

    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .testimonials-grid {
        grid-template-columns: 1fr;
    }

    .pricing-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 600px) {
    .problems-grid {
        grid-template-columns: 1fr;
    }

    .features-grid {
        grid-template-columns: 1fr;
    }

    .pension-hero h1 {
        font-size: 2.5rem;
    }
}
/* Variables selon la charte graphique Rintintin */
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.messaging-page-container {
  flex: 1 1;
  display: flex;
  height: calc(100vh - 80px); /* Hauteur optimisée pour desktop */
  background-color: #F6F2EF;
  background-color: var(--light-gray);
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
  max-width: 100vw;
  overflow: hidden;
}

/* 🔧 Sur mobile, quand le footer est masqué, utiliser toute la hauteur */
@media (max-width: 768px) {
  .messaging-page-container {
    height: calc(100vh - 60px); /* Mobile: Header seulement (sans footer) */
  }
}

/* =========================
   Liste de conversations
   ========================= */
.conversation-list {
  width: 320px;
  flex-shrink: 0;
  border-right: 1px solid rgba(165, 118, 92, 0.2);
  overflow-y: auto;
  background-color: #ffffff;
  padding: 1.5rem;
  height: 100%;
  display: flex;
  flex-direction: column;
}

.conversation-list h2 {
  margin: 0 0 1.2rem;
  font-size: 1.3rem;
  color: #444444;
  font-weight: 700;
}

.conversation-item {
  display: flex;
  align-items: center;
  padding: 14px;
  gap: 14px;
  cursor: pointer;
  border-radius: 16px;
  border-radius: var(--border-radius);
  transition: all 0.3s ease;
  margin-bottom: 8px;
  border: 1px solid transparent;
}

.conversation-item:hover {
  background-color: rgba(246, 198, 116, 0.1);
  transform: translateX(4px);
}

.conversation-item.active {
  background: linear-gradient(to right, rgba(246, 198, 116, 0.1), rgba(246, 198, 116, 0.2));
  border-left: 3px solid #F6C674;
  border-left: 3px solid var(--gold);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
}

.conversation-avatar {
  width: 50px;
  height: 50px;
  flex-shrink: 0;
  position: relative;
}

.conversation-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #e5e5e5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.unread-indicator {
  position: absolute;
  top: -2px;
  right: -2px;
  width: 14px;
  height: 14px;
  background-color: #ff4d4f;
  border-radius: 50%;
  border: 2px solid #ffffff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
  animation: pulse-animation 1.5s infinite;
}

@keyframes pulse-animation {
  0% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 77, 79, 0.7);
  }
  70% {
    transform: scale(1);
    box-shadow: 0 0 0 6px rgba(255, 77, 79, 0);
  }
  100% {
    transform: scale(0.95);
    box-shadow: 0 0 0 0 rgba(255, 77, 79, 0);
  }
}

.conversation-info {
  flex: 1 1;
  min-width: 0;
}

.conversation-name {
  font-weight: 600;
  margin-bottom: 4px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #444444;
}

.conversation-last-message {
  font-size: 0.9rem;
  color: #666;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* =========================
   Panel de chat
   ========================= */
.chat-panel {
  flex: 1 1;
  display: flex;
  flex-direction: column;
  background-color: #ffffff;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  margin: 16px;
  margin-left: 0;
  border-radius: 0 16px 16px 0;
  border-radius: 0 var(--border-radius) var(--border-radius) 0;
  height: calc(100% - 32px);
  min-width: 0; /* Permet au contenu de se rétrécir */
}

.chat-header {
  padding: 20px 24px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  background-color: white;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-shrink: 0;
}

.chat-header-content {
  display: flex;
  align-items: center;
  gap: 16px;
  position: relative;
}

.chat-header-avatar {
  width: 48px;
  height: 48px;
}

.chat-header-avatar img {
  width: 100%;
  height: 100%;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid #e5e5e5;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.chat-header h3 {
  margin: 0;
  font-size: 1.2rem;
  color: #333333;
  font-weight: 600;
}

.chat-messages {
  flex: 1 1;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  background: #f9f9f9;
  min-height: 0; /* Important pour le flex shrinking */
}

/* Conteneur principal pour la zone messages */
.messaging-container {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  width: 100%; /* Assure que le conteneur prend toute la largeur disponible */
}

.messages-container {
  flex: 1 1;
  overflow-y: auto;
  padding: 24px;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-height: 0;
}

.messages-container::-webkit-scrollbar {
  width: 6px;
}

.messages-container::-webkit-scrollbar-thumb {
  background-color: rgba(200, 200, 200, 0.5);
  border-radius: 3px;
}

.messages-container::-webkit-scrollbar-track {
  background-color: rgba(246, 198, 116, 0.1);
}

/* =========================
   Messages individuels
   ========================= */
.message {
  margin-bottom: 16px;
  padding: 14px 18px;
  border-radius: 16px;
  position: relative;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  width: -webkit-fit-content;
  width: fit-content;
  max-width: min(600px, 75%); /* Plus large sur desktop */
  line-height: 1.5;
}

.message.received {
  align-self: flex-start;
  background-color: #f0f0f0;
  border-bottom-left-radius: 5px;
  margin-right: auto;
}

.message.sent {
  align-self: flex-end;
  background-color: #4f89c7;
  color: white;
  border-bottom-right-radius: 5px;
  margin-left: auto;
}

.message-text {
  word-wrap: break-word;
  line-height: 1.4;
  white-space: pre-wrap;
  max-width: 100%;
}

.message-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 6px;
}

.message-time {
  font-size: 11px;
  opacity: 0.7;
}

.message.sent .message-time {
  color: rgba(255, 255, 255, 0.8);
}

.message.received .message-time {
  color: rgba(0, 0, 0, 0.5);
}

/* Media */
.message-media {
  margin: -5px -10px 8px -10px;
}

.message-image-wrapper {
  position: relative;
  cursor: pointer;
  border-radius: inherit;
  overflow: hidden;
}

.message-image {
  width: 100%;
  max-width: 300px;
  height: auto;
  display: block;
  border-radius: 12px;
}

.message.sent .message-image {
  border-bottom-right-radius: 4px;
}

.message.received .message-image {
  border-bottom-left-radius: 4px;
}

.image-overlay {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(0,0,0,0.3);
  display: flex; align-items: center; justify-content: center;
  opacity: 0;
  transition: opacity 0.2s ease;
  border-radius: inherit;
}
.message-image-wrapper:hover .image-overlay {
  opacity: 1;
}

/* Styles pour les fichiers PDF */
.file-download-link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.file-preview {
  display: flex;
  align-items: center;
  padding: 10px;
  border-radius: 8px;
  margin: -5px -10px;
}

.message.sent .file-preview {
  background-color: rgba(255,255,255,0.1);
}

.message.received .file-preview {
  background-color: rgba(0,0,0,0.05);
}

.file-icon {
  margin-right: 12px;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.file-info {
  flex: 1 1; 
  min-width: 0;
}

.file-name {
  display: block;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 2px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.download-label {
  font-size: 12px;
  opacity: 0.7;
}

.message.sent .download-label {
  color: rgba(255, 255, 255, 0.8);
}

.message.received .download-label {
  color: rgba(0, 0, 0, 0.6);
}

/* =========================
   État "pas de conversation"
   ========================= */
.chat-empty-state {
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #999;
  background-color: #ffffff;
  flex-direction: column;
}

.chat-empty-state svg {
  color: #A5765C;
  color: var(--brown);
  opacity: 0.3;
  margin-bottom: 20px;
}

.chat-empty-state h3 {
  color: #A5765C;
  color: var(--brown);
  margin-bottom: 12px;
}

/* =========================
   Zone de saisie
   ========================= */
.chat-input-container {
  background: #ffffff;
  padding: 20px 24px;
  border-top: 1px solid rgba(165, 118, 92, 0.2);
  flex-shrink: 0;
}

.message-compose {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.input-row {
  display: flex;
  align-items: center;
  gap: 12px;
  background: #f9f9f9;
  border-radius: 28px;
  padding: 12px 20px;
  border: 1px solid rgba(165, 118, 92, 0.2);
  transition: all 0.3s ease;
  min-height: 48px;
}

.input-row:focus-within {
  border-color: #F6C674;
  border-color: var(--gold);
  box-shadow: 0 0 0 2px rgba(246, 198, 116, 0.2);
}

.input-row input {
  flex: 1 1;
  border: none;
  background: transparent;
  font-size: 1rem;
  padding: 10px;
  outline: none;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

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

.upload-button {
  position: relative;
  cursor: pointer;
  padding: 10px;
  border-radius: 50%;
  color: #666666;
  transition: all 0.2s ease;
}
.upload-button:hover {
  color: #F6C674;
  color: var(--gold);
  background: rgba(246, 198, 116, 0.1);
}

.send-button {
  background: #4f89c7;
  border: none;
  padding: 10px;
  cursor: pointer;
  color: white;
  border-radius: 50%;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
}

.send-button:hover {
  background: #F6C674;
  background: var(--gold);
  transform: scale(1.05);
}

.send-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Preview avant envoi */
.upload-preview-container {
  margin: 10px 0;
  border-radius: 12px;
  overflow: hidden;
  background: #f9f9f9;
  border: 1px solid rgba(165, 118, 92, 0.2);
  max-width: 300px;
}

.upload-preview-wrapper {
  position: relative;
}

.upload-preview-image {
  width: 100%;
  height: auto;
  display: block;
}

.upload-preview-info {
  padding: 10px 14px;
}

.upload-preview-name {
  display: block;
  font-size: 14px;
  font-weight: 500;
  color: #444444;
  margin-bottom: 2px;
}

.upload-preview-size {
  font-size: 12px;
  color: #666;
}

.remove-preview {
  position: absolute;
  top: 8px;
  right: 8px;
  background: rgba(0, 0, 0, 0.5);
  border: none;
  border-radius: 50%;
  width: 26px; 
  height: 26px;
  display: flex; 
  align-items: center; 
  justify-content: center;
  cursor: pointer;
  color: white;
  transition: all 0.2s ease;
}

.remove-preview:hover {
  background: rgba(0, 0, 0, 0.7);
  transform: scale(1.1);
}

/* =========================
   Skeletons
   ========================= */
.skeleton-container {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 20px;
}

.skeleton-conversation {
  background: #f9f9f9;
  padding: 16px;
  border-radius: 16px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.skeleton-avatar {
  width: 50px; 
  height: 50px; 
  border-radius: 50%;
  background: #e2e8f0;
}

.skeleton-content {
  flex: 1 1;
}

.skeleton-name {
  height: 20px;
  width: 150px;
  background: #e2e8f0;
  border-radius: 4px;
  margin-bottom: 8px;
}

.skeleton-message {
  height: 16px;
  width: 80%;
  background: #e2e8f0;
  border-radius: 4px;
}

.pulse {
  animation: pulse 1.5s ease-in-out infinite;
  background: linear-gradient(
    90deg,
    #e2e8f0 0%,
    #f8fafc 50%,
    #e2e8f0 100%
  );
  background-size: 200% 100%;
}

@keyframes pulse {
  0% {
    background-position: 200% 0;
  }
  100% {
    background-position: -200% 0;
  }
}

.message-skeleton-container {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 16px;
}

.message-skeleton {
  display: flex;
  flex-direction: column;
  gap: 4px;
  max-width: 60%;
}

.message-skeleton.left {
  align-self: flex-start;
}
.message-skeleton.right {
  align-self: flex-end;
}

.message-skeleton-content {
  height: 36px;
  background: #e2e8f0;
  border-radius: 16px;
  width: 100%;
}

.message-skeleton-time {
  height: 12px;
  width: 60px;
  background: #e2e8f0;
  border-radius: 4px;
  align-self: flex-end;
}

/* Styles améliorés pour la box "Prochaine réservation" */
.chat-next-reservation {
  margin: 10px 20px 20px;
  border-radius: 16px;
  overflow: hidden;
  background: linear-gradient(135deg, #f6f2ef 0%, #fff 100%);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  transition: all 0.3s ease;
  border: 1px solid rgba(165, 118, 92, 0.2);
}

.chat-next-reservation:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px);
}

.chat-next-reservation-header {
  display: flex;
  align-items: center;
  padding: 14px 18px;
  background: #4f89c7;
  color: white;
  font-weight: 600;
  font-size: 14px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.chat-next-reservation-header svg {
  margin-right: 10px;
  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.2));
}

.chat-next-reservation-content {
  transition: opacity 0.3s ease, transform 0.3s ease, padding 0.3s ease;
  overflow: hidden;
}

.chat-next-reservation-content.collapsed {
  padding: 0 !important;
  height: 0;
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}

.chat-next-reservation-content.expanded {
  padding: 18px;
  opacity: 1;
  transform: translateY(0);
  height: auto;
  pointer-events: auto;
}

.chat-next-reservation-date {
  font-size: 16px;
  font-weight: 700;
  color: #444444;
  margin-bottom: 12px;
  display: flex;
  align-items: center;
}

.chat-next-reservation-date:before {
  content: "";
  display: inline-block;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #FFA351;
  background-color: var(--orange);
  margin-right: 10px;
  box-shadow: 0 0 0 2px rgba(255, 163, 81, 0.2);
}

.chat-next-reservation-info {
  font-size: 15px;
  color: #333;
  margin-bottom: 10px;
  font-weight: 500;
  display: flex;
  align-items: center;
}

.chat-next-reservation-info:before {
  content: "•";
  color: #F6C674;
  color: var(--gold);
  margin-right: 10px;
  font-weight: bold;
}

.chat-next-reservation-animal {
  display: flex;
  align-items: center;
  font-size: 14px;
  color: #555;
  margin-bottom: 15px;
}

.chat-next-reservation-animal svg {
  margin-right: 8px;
  color: #EE9F99;
  color: var(--peach);
}

.chat-next-reservation-location {
  display: flex;
  align-items: center;
  font-size: 14px;
  color: #555;
  margin-bottom: 15px;
  font-style: italic;
}

.chat-next-reservation-location svg {
  margin-right: 8px;
  color: #A5765C;
  color: var(--brown);
}

.chat-next-reservation-action {
  margin-top: 12px;
  text-align: right;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 10px;
}

.chat-next-reservation-link {
  display: inline-flex;
  align-items: center;
  padding: 10px 16px;
  background-color: #4f89c7;
  color: white;
  border-radius: 8px;
  text-decoration: none;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.chat-next-reservation-link:hover {
  background-color: #F6C674;
  background-color: var(--gold);
  color: #333;
  box-shadow: 0 4px 8px rgba(246, 198, 116, 0.4);
  transform: translateY(-1px);
}

/* Style pour le bouton Créer une réservation */
a.chat-next-reservation-link.create-reservation,
button.chat-next-reservation-link.create-reservation {
  background-color: white;
  color: #333;
  border: 2px solid #F6C674;
  border: 2px solid var(--gold);
  padding: 10px 16px;
  font-weight: 600;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  cursor: pointer;
  font-family: inherit;
  font-size: 14px;
  border-radius: 8px;
  text-decoration: none;
  transition: all 0.2s ease;
}

a.chat-next-reservation-link.create-reservation:hover,
button.chat-next-reservation-link.create-reservation:hover {
  background-color: #F6C674;
  background-color: var(--gold);
  color: #333;
  box-shadow: 0 4px 12px rgba(246, 198, 116, 0.4);
}

a.chat-next-reservation-link.create-reservation svg,
button.chat-next-reservation-link.create-reservation svg {
  color: #F6C674;
  color: var(--gold);
  transition: all 0.2s ease;
}

a.chat-next-reservation-link.create-reservation:hover svg,
button.chat-next-reservation-link.create-reservation:hover svg {
  color: #333;
}

.chat-next-reservation-loading,
.chat-next-reservation-error {
  padding: 18px;
  text-align: center;
  color: #666;
  font-size: 14px;
  background-color: #f9fafb;
  border-radius: 12px;
  margin: 10px 15px;
  border: 1px dashed rgba(165, 118, 92, 0.2);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
}

.chat-next-reservation-loading svg,
.chat-next-reservation-error svg {
  margin-bottom: 5px;
}

.chat-next-reservation-error {
  border-color: rgba(238, 159, 153, 0.5);
  color: #b91c1c;
  background-color: rgba(238, 159, 153, 0.1);
}

.chat-next-reservation-error button {
  transition: all 0.2s ease;
  background-color: white;
  border: 1px solid #4f89c7;
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.chat-next-reservation-error button:hover {
  background-color: #4f89c7;
  color: white;
}

.chat-next-reservation-error button:hover svg {
  color: white;
}

.chat-next-reservation-date .status-badge {
  margin-left: auto;
  font-size: 12px;
  padding: 3px 8px;
  border-radius: 12px;
  font-weight: bold;
  display: inline-flex;
  align-items: center;
}

.animate-spin {
  animation: spin 1.5s linear infinite;
}

@keyframes spin {
  0% {
    transform: rotate(0deg);
  }
  100% {
    transform: rotate(360deg);
  }
}

.client-selector {
  padding: 18px;
  background-color: #fff;
  border-bottom: 1px solid rgba(165, 118, 92, 0.2);
}

.client-selector .MuiAutocomplete-root {
  width: 100%;
}

.client-selector .MuiTextField-root {
  width: 100%;
}

.client-option {
  width: 100%;
  padding: 10px;
}

.client-name {
  font-weight: 600;
  margin-bottom: 4px;
  color: #444444;
}

.client-details {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.875rem;
  color: #666;
}

.client-email {
  flex: 1 1;
}

.client-type {
  padding: 3px 10px;
  border-radius: 12px;
  font-size: 0.75rem;
  font-weight: 500;
}

.client-type.account {
  background-color: rgba(79, 137, 199, 0.15);
  color: #4f89c7;
}

.client-type.invited {
  background-color: rgba(238, 159, 153, 0.2);
  color: #9c27b0;
}

.conversation-list-header {
  display: flex;
  flex-direction: column;
  gap: 14px;
  margin-bottom: 24px;
  padding: 0;
}

.conversation-list-header h2 {
  margin: 0;
  font-size: 1.3rem;
  color: #444444;
  font-weight: 700;
}

.create-conversation-button {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  background: #4f89c7;
  color: white;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  transition: all 0.2s ease;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
  width: -webkit-fit-content;
  width: fit-content;
}

.create-conversation-button:hover {
  background: #F6C674;
  background: var(--gold);
  color: #333;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.create-conversation-button:active {
  transform: translateY(0);
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.create-conversation-button svg {
  width: 20px;
  height: 20px;
  transition: transform 0.2s ease;
}

.create-conversation-button:hover svg {
  transform: rotate(45deg);
}

.create-conversation-modal {
  padding: 20px 0;
}

.client-selection {
  margin-bottom: 20px;
}

.first-message {
  margin-top: 20px;
}

/* Styles pour la modale */
.MuiDialog-paper {
  border-radius: 16px;
  overflow: hidden;
}

.MuiDialogTitle-root {
  padding: 20px 24px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.1);
  background-color: #F6F2EF;
  background-color: var(--light-gray);
  color: #444444;
  font-weight: 600;
}

.MuiDialogContent-root {
  padding: 24px;
}

.MuiDialogActions-root {
  padding: 16px 24px;
  border-top: 1px solid rgba(165, 118, 92, 0.2);
  background-color: #F6F2EF;
  background-color: var(--light-gray);
}

/* Style pour le bouton de création désactivé */
.MuiButton-contained:disabled {
  background-color: #e0e0e0;
  color: #9e9e9e;
}

.back-to-conversations {
  display: none;
}

/* Afficher le bouton retour uniquement en mobile */
@media (max-width: 768px) {
  /* Bouton retour style flèche */
  .back-to-conversations {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    background: transparent;
    border: none;
    color: #444444;
    cursor: pointer;
    margin-right: 8px;
    transition: all 0.2s ease;
    padding: 0;
  }
  
  .back-to-conversations svg {
    width: 24px;
    height: 24px;
  }
  
  .back-to-conversations:active {
    transform: scale(0.95);
    opacity: 0.7;
  }
  
  /* Container principal en mode mobile */
  .messaging-page-container {
    flex-direction: column;
    position: relative;
    height: calc(100vh - 60px);
    overflow: hidden;
  }

  /* Liste des conversations en plein écran par défaut */
  .conversation-list {
    width: 100%;
    max-width: 100%;
    height: 100%;
    border-right: none;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
    opacity: 1;
    transform: translateX(0);
    z-index: 20;
    padding-top: 10px;
  }
  
  /* Panel de chat en plein écran quand affiché */
  .chat-panel {
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 0;
    box-shadow: none;
    position: absolute;
    top: 0;
    left: 0;
    transition: transform 0.3s ease, opacity 0.2s ease;
    transform: translateX(100%);
    opacity: 0;
    z-index: 10;
  }
  
  /* Animation style Instagram */
  .messaging-page-container.show-chat .conversation-list {
    transform: translateX(-100%);
    opacity: 0;
  }
  
  .messaging-page-container.show-chat .chat-panel {
    transform: translateX(0);
    opacity: 1;
    z-index: 20;
  }
  
  /* Style Instagram pour la liste des conversations */
  .conversation-list-header {
    padding: 10px 16px;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    background: white;
    z-index: 10;
    box-shadow: 0 1px 2px rgba(0,0,0,0.05);
  }
  
  .conversation-item {
    margin-bottom: 2px;
    border-radius: 0;
    padding: 12px 16px;
  }
  
  /* Ajustements du formulaire de message */
  .chat-input-container {
    position: -webkit-sticky;
    position: sticky;
    bottom: 0;
    padding: 12px;
    box-shadow: 0 -1px 5px rgba(0,0,0,0.05);
  }
  
  /* Ajustement espace messages */
  .chat-messages {
    padding: 10px;
    padding-bottom: 60px; /* Pour éviter que les derniers messages soient cachés */
  }
  
  /* Ajustements des animations de transition */
  .conversation-list,
  .chat-panel {
    will-change: transform, opacity;
    -webkit-backface-visibility: hidden;
            backface-visibility: hidden;
  }
  
  /* Gestion améliorée du tap sur mobile */
  .conversation-item:active {
    background-color: rgba(0,0,0,0.05);
  }
  
  /* Statut de chargement plus visible en mobile */
  .loading-overlay {
    z-index: 100;
  }
}

/* Pour le menu des messages dans la sidebar */
.sidebar-link .badge {
  position: relative;
}

.sidebar-link .unread-badge {
  position: absolute;
  top: -5px;
  right: -10px;
  width: 18px;
  height: 18px;
  background-color: #ff4d4f;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 10px;
  color: white;
  font-weight: bold;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

/* Loading overlay */
.loading-overlay {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(255,255,255,0.8);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 12px;
  z-index: 1000;
  -webkit-backdrop-filter: blur(3px);
          backdrop-filter: blur(3px);
}

.loading-overlay p {
  color: #444444;
  font-weight: 500;
}

.chat-next-reservation-link svg:not(:first-child) {
  margin-left: 8px;
}

/* Styles pour les fichiers HTML */
.html-preview {
  display: flex;
  flex-direction: column;
  width: 100%;
  margin-bottom: 8px;
}

.file-view-link {
  text-decoration: none;
  color: inherit;
  display: block;
}

.html-actions {
  display: flex;
  margin-top: 8px;
  gap: 8px;
}

.html-action-button {
  flex: 1 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  border-radius: 8px;
  font-size: 13px;
  text-decoration: none;
  gap: 5px;
  transition: all 0.2s ease;
}

.html-action-button.view {
  background-color: rgba(79, 137, 199, 0.15);
  color: #4f89c7;
  border: 1px solid rgba(79, 137, 199, 0.3);
}

.html-action-button.download {
  background-color: rgba(165, 118, 92, 0.15);
  color: #A5765C;
  border: 1px solid rgba(165, 118, 92, 0.3);
}

.html-action-button:hover {
  transform: translateY(-1px);
}

.html-action-button.view:hover {
  background-color: rgba(79, 137, 199, 0.25);
}

.html-action-button.download:hover {
  background-color: rgba(165, 118, 92, 0.25);
}

.message.sent .view-label,
.message.sent .download-label {
  color: rgba(255, 255, 255, 0.8);
}

.message.received .view-label,
.message.received .download-label {
  color: rgba(0, 0, 0, 0.6);
}
  
/* Palette et tokens (du dashboard d'accueil) */
:root {
  --brown: #A5765C;
  --gold: #F6C674;
  --peach: #EE9F99;
  --orange: #FFA351;
  --light-gray: #F6F2EF;
  --black: #000000;
  --text-color: #333333;
  --font-family: 'Lato', sans-serif;
  --border-radius: 16px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.accounting-page {
  padding: 32px;
  max-width: 1100px;
  margin: 0 auto;
  font-family: 'Lato', sans-serif;
  font-family: var(--font-family);
}

.accounting-hero {
  display: flex;
  align-items: stretch;
  justify-content: space-between;
  padding: 24px;
  border-radius: 16px;
  border-radius: var(--border-radius);
  background: linear-gradient(45deg, rgba(246, 198, 116, 0.15), rgba(238, 159, 153, 0.15));
  color: #333333;
  color: var(--text-color);
  position: relative;
  overflow: hidden;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
}

.hero-left {
  z-index: 1;
}

.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #A5765C;
  color: var(--brown);
  font-weight: 700;
  margin-bottom: 4px;
}

.hero-title {
  margin: 0;
  font-size: 32px;
  line-height: 1.2;
  color: #A5765C;
  color: var(--brown);
  font-weight: 800;
}

.hero-subtitle {
  margin: 8px 0 16px;
  color: #555;
}

.hero-filters {
  background: rgba(255, 255, 255, 0.7);
  padding: 8px 12px;
  border-radius: 12px;
}

.hero-right {
  position: relative;
}

.sparkle-circle {
  position: absolute;
  right: -40px;
  top: -40px;
  width: 220px;
  height: 220px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, rgba(246, 198, 116, 0.35), rgba(246, 198, 116, 0.12) 40%, transparent 70%);
  filter: blur(2px);
}

/* Cartes statistiques alignées avec la charte */
.stat-card {
  border-radius: 12px !important;
  background: linear-gradient(135deg, #fff, #F6F2EF);
  background: linear-gradient(135deg, #fff, var(--light-gray));
  border: none;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  overflow: hidden;
}

.stat-icon {
  width: 40px;
  height: 40px;
  border-radius: 10px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  margin-bottom: 8px;
}

.stat-icon.total {
  background: rgba(246, 198, 116, 0.15);
  color: #A5765C;
  color: var(--brown);
}

.stat-icon.month {
  background: rgba(174, 213, 255, 0.2);
  color: #3c91d9;
}

.stat-content .stat-label {
  color: #333333;
  color: var(--text-color);
  font-size: 12px;
  font-weight: 600;
}

.stat-content .stat-value {
  font-size: 20px;
  font-weight: 800;
  color: #A5765C;
  color: var(--brown);
}

.stat-categories {
  margin-top: 8px;
}

/* Table claire, conforme au reste de l'app */
.expenses-table .ant-table {
  background: #fff;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  border-radius: 12px;
  overflow: hidden;
}

.expenses-table .ant-table-thead>tr>th {
  background: #fafafa;
  color: #333333;
  color: var(--text-color);
  font-weight: 700;
}

.expenses-table .ant-table-tbody>tr>td {
  color: #333333;
  color: var(--text-color);
}

/* Espacement entre stats et liste */
.accounting-stats {
  margin-top: 16px;
  margin-bottom: 16px;
}

/* Carte générique pour sections */
.dashboard-card {
  border-radius: 16px !important;
  border-radius: var(--border-radius) !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  box-shadow: var(--shadow);
  border: none;
}

@media (max-width: 767px) {
  .accounting-hero {
    flex-direction: column;
    gap: 12px;
  }

  .sparkle-circle {
    display: none;
  }

  .accounting-page {
    padding: 16px;
  }
}
/* =========================== */
/* DESIGN SYSTEM PAGE - V3    */
/* Complete Reference Guide    */
/* =========================== */

/* Import Design Tokens - Single Source of Truth */

.design-system-page {
    padding: 24px;
    max-width: 1400px;
    margin: 0 auto;
    background-color: #f8f9fa;
    min-height: 100vh;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* =========================== */
/* HEADER                      */
/* =========================== */

.ds-header {
    text-align: center;
    margin-bottom: 40px;
    padding: 40px 20px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    border-radius: 24px;
    border: 1px solid #e2e8f0;
}

.ds-header h1 {
    margin: 0 0 12px 0;
    font-size: 36px;
    font-weight: 800;
    color: #1e293b;
    letter-spacing: -1px;
}

.ds-subtitle {
    font-size: 16px;
    color: #64748b;
    margin: 0;
    font-weight: 500;
}

/* =========================== */
/* NAVIGATION                  */
/* =========================== */

.ds-nav {
    display: flex;
    gap: 12px;
    padding: 16px;
    margin-bottom: 40px;
    background: white;
    border-radius: 20px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}

.ds-nav::-webkit-scrollbar {
    display: none;
}

.ds-nav a {
    padding: 10px 20px;
    border-radius: 12px;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    text-decoration: none;
    white-space: nowrap;
    transition: all 0.3s;
    background: #f8fafc;
}

.ds-nav a:hover {
    background: #e2e8f0;
    color: #1e293b;
    transform: translateY(-2px);
}

/* =========================== */
/* CATEGORY NAVIGATION         */
/* =========================== */

.category-navigation {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    grid-gap: 20px;
    gap: 20px;
    margin-bottom: 60px;
}

.category-card {
    background: white;
    border-radius: 24px;
    padding: 32px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    border: 2px solid transparent;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    gap: 20px;
    position: relative;
    overflow: hidden;
}

.category-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(165, 118, 92, 0.03), transparent);
    transition: left 0.5s ease;
}

.category-card:hover::before {
    left: 100%;
}

.category-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
    border-color: rgba(165, 118, 92, 0.2);
}

.category-icon {
    font-size: 48px;
    flex-shrink: 0;
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.1));
    transition: transform 0.3s ease;
}

.category-card:hover .category-icon {
    transform: scale(1.1);
}

.category-content {
    flex: 1 1;
}

.category-content h3 {
    font-size: 20px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 4px 0;
}

.category-content p {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 8px 0;
}

.category-count {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
    background: #f8fafc;
    padding: 4px 12px;
    border-radius: 8px;
    display: inline-block;
}

.category-arrow {
    color: #cbd5e1;
    font-size: 20px;
    transition: all 0.3s ease;
}

.category-card:hover .category-arrow {
    color: #A5765C;
    transform: translateX(4px);
}

/* =========================== */
/* CATEGORY SECTIONS           */
/* =========================== */

.ds-category {
    margin-bottom: 80px;
    scroll-margin-top: 80px;
}

.category-title {
    text-align: center;
    margin-bottom: 48px;
    padding: 40px 24px;
    background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
    border-radius: 24px;
    border: 1px solid #e2e8f0;
}

.category-number {
    font-size: 14px;
    font-weight: 700;
    color: #A5765C;
    letter-spacing: 2px;
    text-transform: uppercase;
    display: block;
    margin-bottom: 12px;
}

.category-title h2 {
    font-size: 32px;
    font-weight: 800;
    color: #1e293b;
    margin: 0 0 8px 0;
    letter-spacing: -1px;
}

.category-title p {
    font-size: 16px;
    color: #64748b;
    margin: 0;
}

/* =========================== */
/* SECTIONS                    */
/* =========================== */

.ds-section {
    margin-bottom: 60px;
    scroll-margin-top: 80px;
}

.section-header {
    margin-bottom: 32px;
    text-align: center;
}

.section-header h3 {
    font-size: 22px;
    font-weight: 800;
    color: #1e293b;
    margin: 0 0 8px 0;
    letter-spacing: -0.5px;
}

.section-header p {
    font-size: 15px;
    color: #64748b;
    margin: 0;
}

.ds-subsection {
    margin-bottom: 40px;
    background: white;
    padding: 32px;
    border-radius: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.ds-subsection h3 {
    font-size: 20px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 8px 0;
}

.ds-subsection h4 {
    font-size: 16px;
    font-weight: 700;
    color: #475569;
    margin: 0 0 16px 0;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-size: 13px;
}

.component-description {
    font-size: 14px;
    color: #64748b;
    margin: 0 0 24px 0;
    line-height: 1.6;
}

/* =========================== */
/* 1. COLORS                   */
/* =========================== */

.color-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    grid-gap: 16px;
    gap: 16px;
}

.color-card {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.color-swatch {
    width: 100%;
    height: 80px;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.color-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.color-info strong {
    font-size: 14px;
    font-weight: 700;
    color: #1e293b;
}

.color-info code {
    font-size: 13px;
    font-family: 'Monaco', monospace;
    color: #64748b;
    background: #f8fafc;
    padding: 4px 8px;
    border-radius: 6px;
    width: -webkit-fit-content;
    width: fit-content;
}

.color-usage {
    font-size: 12px;
    color: #94a3b8;
    font-style: italic;
}

/* =========================== */
/* 2. TYPOGRAPHY               */
/* =========================== */

.typography-showcase {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

.typo-example {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 24px;
    background: white;
    border-radius: 16px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
}

.typo-example code {
    font-size: 12px;
    color: #64748b;
    background: #f8fafc;
    padding: 8px 12px;
    border-radius: 8px;
    font-family: 'Monaco', monospace;
}

.typo-h1 {
    font-size: 28px;
    font-weight: 800;
    color: #1e293b;
    letter-spacing: -0.5px;
    margin: 0;
}

.typo-h2 {
    font-size: 24px;
    font-weight: 700;
    color: #1e293b;
    letter-spacing: -0.4px;
    margin: 0;
}

.typo-h3 {
    font-size: 20px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

.typo-h4 {
    font-size: 18px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
}

.typo-body {
    font-size: 15px;
    font-weight: 400;
    color: #64748b;
    line-height: 1.6;
    margin: 0;
}

.typo-small {
    font-size: 13px;
    font-weight: 500;
    color: #94a3b8;
    margin: 0;
}

.typo-label {
    font-size: 14px;
    font-weight: 600;
    color: #475569;
    margin: 0;
}

.typo-number {
    font-size: 28px;
    font-weight: 800;
    color: #1e293b;
    letter-spacing: -1px;
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
    margin: 0;
}

/* =========================== */
/* 3. SPACING                  */
/* =========================== */

.spacing-showcase {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.spacing-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.spacing-box {
    height: 40px;
    background: linear-gradient(135deg, #A5765C 0%, #8b5e48 100%);
    border-radius: 4px;
    box-shadow: 0 2px 8px rgba(165, 118, 92, 0.3);
}

.spacing-item code {
    font-size: 12px;
    font-weight: 700;
    color: #1e293b;
    font-family: 'Monaco', monospace;
}

.spacing-item span {
    font-size: 11px;
    color: #94a3b8;
}

.radius-showcase {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.radius-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
}

.radius-box {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #A5765C 0%, #8b5e48 100%);
    box-shadow: 0 4px 12px rgba(165, 118, 92, 0.3);
}

.radius-item code {
    font-size: 12px;
    font-weight: 700;
    color: #1e293b;
    font-family: 'Monaco', monospace;
}

.radius-item span {
    font-size: 11px;
    color: #94a3b8;
}

.shadow-showcase {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    grid-gap: 24px;
    gap: 24px;
}

.shadow-card {
    padding: 24px;
    background: white;
    border-radius: 16px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.shadow-card strong {
    font-size: 14px;
    font-weight: 700;
    color: #1e293b;
}

.shadow-card code {
    font-size: 11px;
    color: #64748b;
    background: #f8fafc;
    padding: 6px 8px;
    border-radius: 6px;
    font-family: 'Monaco', monospace;
}

.shadow-card span {
    font-size: 12px;
    color: #94a3b8;
    font-style: italic;
}

/* =========================== */
/* 4. WIDGET CARDS             */
/* =========================== */

.widgets-grid-demo {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    grid-gap: 16px;
    gap: 16px;
    margin-bottom: 24px;
}

.widget-card {
    background: white;
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border: 1px solid transparent;
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 140px;
}

.widget-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 15px 30px rgba(0, 0, 0, 0.08);
    border-color: #f1f5f9;
}

.widget-header-inline {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 12px;
}

.widget-icon-wrapper {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    background: #f8fafc;
}

.widget-content {
    flex: 1 1;
}

.widget-title {
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    margin-bottom: 4px;
}

.widget-value {
    font-size: 20px;
    font-weight: 800;
    color: #1e293b;
    margin-bottom: 4px;
    letter-spacing: -0.5px;
}

.widget-subtext {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
}

.widget-action-icon {
    color: #cbd5e1;
    font-size: 16px;
    opacity: 0.5;
    transition: all 0.3s;
}

.widget-card:hover .widget-action-icon {
    opacity: 1;
    color: #A5765C;
    transform: translateX(2px);
}

/* Widget color variants */
.widget-card.green .widget-icon-wrapper {
    background: #f0fdf4;
    color: #15803d;
}

.widget-card.orange .widget-icon-wrapper {
    background: #fff7ed;
    color: #c2410c;
}

.widget-card.purple .widget-icon-wrapper {
    background: #f5f3ff;
    color: #7e22ce;
}

.widget-card.blue .widget-icon-wrapper {
    background: #eff6ff;
    color: #1d4ed8;
}

.widget-card.red .widget-icon-wrapper {
    background: #fef2f2;
    color: #b91c1c;
}

.widget-card.grey .widget-icon-wrapper {
    background: #f8fafc;
    color: #64748b;
}

/* =========================== */
/* 5. COMPONENTS               */
/* =========================== */

.stat-badges-row {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* =========================== */
/* 6. PATTERNS                 */
/* =========================== */

/* Settings Widget Card Demo */
.settings-widget-card-demo {
    background: white;
    border-radius: 24px;
    padding: 32px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
    border: 1px solid #e2e8f0;
}

.widget-header {
    display: flex;
    align-items: center;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid #f8fafc;
}

.widget-icon-wrapper.green {
    background: #f0fdf4;
    color: #15803d;
}

.widget-title-container {
    flex: 1 1;
}

.widget-title {
    font-size: 18px;
    font-weight: 700;
    color: #1e293b;
    margin: 0;
    letter-spacing: -0.3px;
}

.widget-subtitle {
    font-size: 13px;
    color: #94a3b8;
    margin-top: 2px;
    font-weight: 500;
}

/* Info Boxes */
.info-box-modern {
    padding: 16px;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.6;
}

.info-box-modern.info {
    background: #eff6ff;
    color: #1e40af;
    border: 1px solid #bfdbfe;
}

.info-box-modern.success {
    background: #f0fdf4;
    color: #166534;
    border: 1px solid #bbf7d0;
}

.info-box-modern.warning {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fde68a;
}

.info-box-modern.error {
    background: #fef2f2;
    color: #991b1b;
    border: 1px solid #fecaca;
}

/* Client Card Modern */
.client-card-modern {
    background: white;
    border-radius: 20px;
    padding: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
    border: 1px solid #e2e8f0;
    transition: all 0.3s;
}

.client-card-modern:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 24px rgba(0, 0, 0, 0.08);
}

.client-header {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    margin-bottom: 16px;
}

.client-avatar-modern {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #A5765C 0%, #8b5e48 100%);
}

.client-initials-modern {
    font-size: 18px;
    font-weight: 700;
    color: white;
}

.client-name-modern {
    font-size: 18px;
    font-weight: 700;
    color: #1e293b;
    margin: 0 0 8px 0;
}

.client-contact-modern {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.contact-row {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: #64748b;
}

.contact-row svg {
    color: #94a3b8;
    flex-shrink: 0;
}

.divider-modern {
    height: 1px;
    background: #e2e8f0;
    margin: 16px 0;
}

.animals-section-modern {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.animal-tag {
    padding: 10px 14px;
    background: #f8fafc;
    border-radius: 12px;
    font-size: 14px;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.animal-tag strong {
    color: #1e293b;
    font-weight: 600;
}

.animal-details {
    font-size: 12px;
    color: #94a3b8;
}

/* =========================== */
/* 7. FORMS                    */
/* =========================== */

.form-showcase {
    display: flex;
    flex-direction: column;
    gap: 32px;
}

/* =========================== */
/* CODE EXAMPLES               */
/* =========================== */

.code-example {
    margin-top: 24px;
    padding: 20px;
    background: #1e293b;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.code-example strong {
    display: block;
    color: #94a3b8;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 12px;
}

.code-example pre {
    margin: 0;
    padding: 0;
    font-family: 'Monaco', 'Courier New', monospace;
    font-size: 13px;
    line-height: 1.6;
    color: #e2e8f0;
    overflow-x: auto;
}

/* =========================== */
/* FOOTER                      */
/* =========================== */

.ds-footer {
    text-align: center;
    padding: 40px 20px;
    margin-top: 60px;
    background: white;
    border-radius: 24px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03);
}

.ds-footer p {
    color: #64748b;
    margin: 0;
}

/* =========================== */
/* RESPONSIVE                  */
/* =========================== */

@media (max-width: 768px) {
    .design-system-page {
        padding: 16px;
    }

    .ds-header {
        padding: 24px 16px;
    }

    .ds-header h1 {
        font-size: 28px;
    }

    .section-header h2 {
        font-size: 24px;
    }

    .ds-subsection {
        padding: 20px;
    }

    .color-grid {
        grid-template-columns: 1fr 1fr;
    }

    .widgets-grid-demo {
        grid-template-columns: 1fr;
    }
}
/* ============================================
   BlogPage.css - Design Ultra-Premium
   Thème moderne avec glassmorphisme et animations
   ============================================ */

/* === ROOT VARIABLES === */
.blog-page {
    --bg-primary: #0a0a12;
    --bg-secondary: #12121f;
    --bg-tertiary: #1a1a2e;
    --glass-bg: rgba(26, 26, 46, 0.6);
    --glass-border: rgba(255, 255, 255, 0.08);

    --accent-primary: #f97316;
    --accent-secondary: #fb923c;
    --accent-gradient: linear-gradient(135deg, #f97316 0%, #fb923c 50%, #fdba74 100%);
    --accent-glow: rgba(249, 115, 22, 0.4);

    --secondary-accent: #6366f1;
    --secondary-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);
    --secondary-glow: rgba(99, 102, 241, 0.3);

    --text-primary: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.75);
    --text-muted: rgba(255, 255, 255, 0.45);

    --radius-sm: 8px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --radius-xl: 32px;

    min-height: 100vh;
    background: var(--bg-primary);
    background-image:
        radial-gradient(ellipse at 30% 0%, rgba(249, 115, 22, 0.12) 0%, transparent 50%),
        radial-gradient(ellipse at 70% 100%, rgba(99, 102, 241, 0.08) 0%, transparent 50%);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.blog-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

/* === HERO SECTION === */
.blog-hero {
    padding: 100px 24px 80px;
    position: relative;
    overflow: hidden;
}

.blog-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    background: linear-gradient(180deg,
            rgba(249, 115, 22, 0.08) 0%,
            transparent 60%);
    pointer-events: none;
}

.blog-hero::after {
    content: '';
    position: absolute;
    top: -200px;
    left: 50%;
    transform: translateX(-50%);
    width: 800px;
    height: 800px;
    background: radial-gradient(circle, rgba(249, 115, 22, 0.15) 0%, transparent 60%);
    animation: heroGlow 10s ease-in-out infinite alternate;
    pointer-events: none;
}

@keyframes heroGlow {
    0% {
        transform: translateX(-50%) scale(1);
        opacity: 0.5;
    }

    100% {
        transform: translateX(-50%) scale(1.2);
        opacity: 1;
    }
}

.blog-hero-content {
    position: relative;
    z-index: 2;
    max-width: 900px;
    margin: 0 auto;
    text-align: center;
}

.blog-title {
    font-size: clamp(2.5rem, 6vw, 4.5rem);
    font-weight: 900;
    color: var(--text-primary);
    margin-bottom: 24px;
    line-height: 1.1;
    letter-spacing: -0.03em;
}

.blog-title .highlight {
    background: var(--accent-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    position: relative;
}

.blog-title .highlight::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: var(--accent-gradient);
    border-radius: 2px;
    animation: shimmer 2s ease-in-out infinite;
}

@keyframes shimmer {

    0%,
    100% {
        opacity: 0.5;
        transform: scaleX(0.8);
    }

    50% {
        opacity: 1;
        transform: scaleX(1);
    }
}

.blog-subtitle {
    font-size: 1.25rem;
    color: var(--text-secondary);
    max-width: 650px;
    margin: 0 auto 40px;
    line-height: 1.7;
}

/* === SEARCH === */
.blog-actions {
    display: flex;
    justify-content: center;
}

.blog-search-wrapper {
    position: relative;
    width: 100%;
    max-width: 550px;
}

.blog-search-icon {
    position: absolute;
    left: 24px;
    top: 50%;
    transform: translateY(-50%);
    font-size: 1.2rem;
    z-index: 2;
}

.blog-search-input {
    width: 100%;
    padding: 18px 24px 18px 60px;
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border: 2px solid var(--glass-border);
    border-radius: 100px;
    font-size: 1rem;
    color: var(--text-primary);
    transition: all 0.3s ease;
}

.blog-search-input::placeholder {
    color: var(--text-muted);
}

.blog-search-input:focus {
    outline: none;
    border-color: var(--accent-primary);
    box-shadow:
        0 0 0 4px rgba(249, 115, 22, 0.2),
        0 0 40px rgba(249, 115, 22, 0.15);
}

/* === CATEGORIES === */
.blog-categories {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: center;
    margin-bottom: 60px;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 100;
    padding: 20px 24px;
    background: rgba(10, 10, 18, 0.85);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--glass-border);
}

.category-tag {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 100px;
    color: var(--text-secondary);
    font-weight: 600;
    font-size: 0.9375rem;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.category-tag::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.1), transparent);
    transition: left 0.5s;
}

.category-tag:hover {
    transform: translateY(-3px);
    border-color: rgba(249, 115, 22, 0.3);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3);
    color: var(--text-primary);
}

.category-tag:hover::before {
    left: 100%;
}

.category-tag.active {
    background: var(--accent-gradient);
    color: white;
    border-color: transparent;
    box-shadow:
        0 4px 20px var(--accent-glow),
        0 0 40px rgba(249, 115, 22, 0.2);
}

.category-icon {
    font-size: 1.1em;
}

/* === ARTICLES GRID === */
.blog-articles {
    padding-bottom: 80px;
}

.blog-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 32px;
    gap: 32px;
    margin-bottom: 60px;
}

/* === ARTICLE CARD === */
.blog-card {
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-lg);
    overflow: hidden;
    text-decoration: none;
    display: flex;
    flex-direction: column;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    animation: cardAppear 0.6s ease-out backwards;
}

@keyframes cardAppear {
    from {
        opacity: 0;
        transform: translateY(40px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.blog-card:nth-child(1) {
    animation-delay: 0.1s;
}

.blog-card:nth-child(2) {
    animation-delay: 0.2s;
}

.blog-card:nth-child(3) {
    animation-delay: 0.3s;
}

.blog-card:nth-child(4) {
    animation-delay: 0.15s;
}

.blog-card:nth-child(5) {
    animation-delay: 0.25s;
}

.blog-card:nth-child(6) {
    animation-delay: 0.35s;
}

.blog-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--accent-gradient);
    opacity: 0;
    transition: opacity 0.3s;
}

.blog-card:hover {
    transform: translateY(-12px) scale(1.02);
    border-color: rgba(249, 115, 22, 0.3);
    box-shadow:
        0 30px 60px rgba(0, 0, 0, 0.4),
        0 0 50px var(--accent-glow);
}

.blog-card:hover::before {
    opacity: 1;
}

.blog-card-image-wrapper {
    position: relative;
    width: 100%;
    padding-top: 60%;
    overflow: hidden;
    background: linear-gradient(135deg, var(--bg-tertiary) 0%, var(--bg-secondary) 100%);
}

.blog-card-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.blog-card:hover .blog-card-image {
    transform: scale(1.1);
}

.blog-card-placeholder {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--bg-tertiary), var(--secondary-accent));
    opacity: 0.3;
}

.blog-card-content {
    padding: 28px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}

.blog-card-category {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-weight: 700;
    margin-bottom: 12px;
    transition: color 0.3s;
}

.blog-card-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--text-primary);
    line-height: 1.35;
    margin-bottom: 14px;
    transition: color 0.3s;
}

.blog-card:hover .blog-card-title {
    color: var(--accent-secondary);
}

.blog-card-excerpt {
    color: var(--text-muted);
    line-height: 1.7;
    font-size: 0.95rem;
    margin-bottom: auto;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.blog-card-footer {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--glass-border);
}

.blog-card-meta {
    display: flex;
    align-items: center;
    gap: 16px;
}

.blog-meta-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.8rem;
    color: var(--text-muted);
}

/* === LOADING & EMPTY === */
.blog-loading,
.blog-empty {
    text-align: center;
    padding: 100px 24px;
}

.loading-spinner {
    width: 50px;
    height: 50px;
    border: 3px solid rgba(249, 115, 22, 0.2);
    border-top-color: var(--accent-primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 24px;
}

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

.blog-loading p {
    color: var(--text-secondary);
    font-size: 1rem;
}

.blog-empty .empty-icon {
    font-size: 5rem;
    display: block;
    margin-bottom: 24px;
    opacity: 0.5;
}

.blog-empty h2 {
    font-size: 1.75rem;
    color: var(--text-primary);
    margin: 0 0 12px;
}

.blog-empty p {
    color: var(--text-secondary);
}

/* === PAGINATION === */
.blog-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
}

.pagination-btn {
    padding: 14px 28px;
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-md);
    font-weight: 600;
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.3s ease;
}

.pagination-btn:hover:not(:disabled) {
    background: var(--accent-gradient);
    color: white;
    border-color: transparent;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px var(--accent-glow);
}

.pagination-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.pagination-pages {
    display: flex;
    gap: 8px;
}

.pagination-page {
    width: 44px;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-sm);
    color: var(--text-secondary);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s ease;
}

.pagination-page:hover {
    background: rgba(255, 255, 255, 0.1);
    color: var(--text-primary);
}

.pagination-page.active {
    background: var(--accent-gradient);
    color: white;
    border-color: transparent;
    box-shadow: 0 4px 15px var(--accent-glow);
}

/* === NEWSLETTER === */
.blog-newsletter {
    padding: 0 24px 80px;
}

.newsletter-section {
    background: linear-gradient(135deg, var(--bg-tertiary) 0%, var(--bg-secondary) 100%);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-xl);
    padding: 80px 48px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.newsletter-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--accent-primary), var(--secondary-accent), var(--accent-primary));
    background-size: 200% 100%;
    animation: gradientMove 3s linear infinite;
}

@keyframes gradientMove {
    0% {
        background-position: 0% 50%;
    }

    100% {
        background-position: 200% 50%;
    }
}

.newsletter-section::after {
    content: '';
    position: absolute;
    top: -100px;
    right: -100px;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, var(--accent-glow) 0%, transparent 60%);
    pointer-events: none;
}

.newsletter-content {
    position: relative;
    z-index: 2;
}

.newsletter-content h2 {
    font-size: 2.5rem;
    color: var(--text-primary);
    margin-bottom: 16px;
    font-weight: 800;
}

.newsletter-text {
    color: var(--text-secondary);
    margin-bottom: 36px;
    font-size: 1.1rem;
    max-width: 550px;
    margin-left: auto;
    margin-right: auto;
}

.newsletter-form {
    display: flex;
    justify-content: center;
    gap: 12px;
    max-width: 550px;
    margin: 0 auto;
}

.newsletter-input {
    flex: 1 1;
    padding: 18px 28px;
    background: var(--glass-bg);
    border: 2px solid var(--glass-border);
    border-radius: 100px;
    font-size: 1rem;
    color: var(--text-primary);
    transition: all 0.3s ease;
}

.newsletter-input::placeholder {
    color: var(--text-muted);
}

.newsletter-input:focus {
    outline: none;
    border-color: var(--accent-primary);
    box-shadow: 0 0 0 4px rgba(249, 115, 22, 0.2);
}

.newsletter-btn {
    padding: 18px 36px;
    background: var(--accent-gradient);
    color: white;
    border: none;
    border-radius: 100px;
    font-size: 1rem;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 20px var(--accent-glow);
    white-space: nowrap;
}

.newsletter-btn:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px var(--accent-glow);
}

/* === RESPONSIVE === */
@media (max-width: 1200px) {
    .blog-list {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .blog-hero {
        padding: 80px 16px 60px;
    }

    .blog-title {
        font-size: 2.5rem;
    }

    .blog-subtitle {
        font-size: 1.1rem;
    }

    .blog-list {
        grid-template-columns: 1fr;
        gap: 24px;
    }

    .blog-categories {
        gap: 8px;
        padding: 16px;
    }

    .category-tag {
        padding: 10px 18px;
        font-size: 0.875rem;
    }

    .newsletter-form {
        flex-direction: column;
    }

    .newsletter-section {
        padding: 50px 24px;
    }

    .newsletter-content h2 {
        font-size: 1.75rem;
    }

    .blog-card-content {
        padding: 20px;
    }

    .pagination-btn {
        padding: 12px 20px;
        font-size: 0.875rem;
    }
}

@media (max-width: 480px) {
    .blog-card-title {
        font-size: 1.2rem;
    }

    .pagination-pages {
        display: none;
    }
}

/* === SCROLLBAR === */
.blog-page::-webkit-scrollbar {
    width: 10px;
}

.blog-page::-webkit-scrollbar-track {
    background: var(--bg-primary);
}

.blog-page::-webkit-scrollbar-thumb {
    background: rgba(249, 115, 22, 0.3);
    border-radius: 5px;
}

.blog-page::-webkit-scrollbar-thumb:hover {
    background: rgba(249, 115, 22, 0.5);
}
/* ============================================
   BlogArticlePage.css - Design Ultra-Premium
   Page d'article avec thème moderne et lisibilité
   ============================================ */

/* === ROOT VARIABLES === */
.article-page {
    --bg-primary: #0a0a12;
    --bg-secondary: #12121f;
    --bg-tertiary: #1a1a2e;
    --glass-bg: rgba(26, 26, 46, 0.6);
    --glass-border: rgba(255, 255, 255, 0.08);

    --accent-primary: #f97316;
    --accent-secondary: #fb923c;
    --accent-gradient: linear-gradient(135deg, #f97316 0%, #fb923c 50%, #fdba74 100%);
    --accent-glow: rgba(249, 115, 22, 0.4);

    --secondary-accent: #6366f1;
    --secondary-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%);

    --text-primary: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.75);
    --text-muted: rgba(255, 255, 255, 0.45);

    --content-bg: rgba(20, 20, 35, 0.95);

    --radius-sm: 8px;
    --radius-md: 16px;
    --radius-lg: 24px;
    --radius-xl: 32px;

    min-height: 100vh;
    background: var(--bg-primary);
    background-image:
        radial-gradient(ellipse at 30% 0%, rgba(249, 115, 22, 0.1) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 100%, rgba(99, 102, 241, 0.08) 0%, transparent 50%);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    padding-bottom: 80px;
}

/* === HERO ARTICLE === */
.blog-article-hero {
    padding: 100px 24px 60px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.blog-article-hero::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100%;
    background: linear-gradient(180deg,
            rgba(249, 115, 22, 0.08) 0%,
            transparent 80%);
    pointer-events: none;
}

.blog-article-header {
    max-width: 900px;
    margin: 0 auto;
    position: relative;
    z-index: 2;
}

/* === BREADCRUMB === */
.blog-breadcrumb {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    margin-bottom: 32px;
    font-size: 0.9rem;
}

.breadcrumb-link {
    color: var(--text-muted);
    text-decoration: none;
    transition: color 0.3s ease;
    padding: 6px 12px;
    border-radius: var(--radius-sm);
}

.breadcrumb-link:hover {
    color: var(--accent-primary);
    background: rgba(249, 115, 22, 0.1);
}

.blog-breadcrumb span {
    color: var(--text-muted);
}

/* === CATEGORY BADGE === */
.blog-article-category {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 24px;
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
    border: 1px solid var(--glass-border);
    border-radius: 100px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    font-size: 0.8rem;
    margin-bottom: 24px;
    text-decoration: none;
    transition: all 0.3s ease;
}

.blog-article-category:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.3);
}

/* === ARTICLE TITLE === */
.blog-article-title {
    font-size: clamp(2rem, 5vw, 3.5rem);
    line-height: 1.15;
    color: var(--text-primary);
    font-weight: 800;
    margin-bottom: 32px;
    letter-spacing: -0.02em;
    text-shadow: 0 4px 30px rgba(0, 0, 0, 0.3);
}

/* === META INFO === */
.blog-article-meta {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 24px;
    color: var(--text-secondary);
    font-size: 0.95rem;
}

.meta-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: var(--glass-bg);
    border-radius: var(--radius-sm);
    border: 1px solid var(--glass-border);
}

/* === FEATURED IMAGE === */
.article-featured-image {
    max-width: 1100px;
    margin: 0 auto 60px;
    padding: 0 24px;
}

.article-featured-image img {
    width: 100%;
    height: auto;
    border-radius: var(--radius-xl);
    box-shadow:
        0 30px 60px rgba(0, 0, 0, 0.4),
        0 0 80px rgba(249, 115, 22, 0.1);
}

/* === CONTENT WRAPPER === */
.blog-content-wrapper {
    max-width: 1300px;
    margin: 0 auto;
    padding: 0 24px;
    display: grid;
    grid-template-columns: 280px 1fr;
    grid-gap: 60px;
    gap: 60px;
    align-items: start;
}

/* === SIDEBAR (TOC) === */
.blog-sidebar {
    position: -webkit-sticky;
    position: sticky;
    top: 32px;
}

.blog-toc {
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-lg);
    padding: 28px;
    margin-bottom: 24px;
}

.toc-title {
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 20px;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--glass-border);
}

.toc-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.toc-link {
    color: var(--text-muted);
    text-decoration: none;
    font-size: 0.9rem;
    transition: all 0.3s ease;
    padding: 10px 14px;
    border-radius: var(--radius-sm);
    border-left: 2px solid transparent;
    line-height: 1.4;
}

.toc-link:hover {
    color: var(--accent-primary);
    background: rgba(249, 115, 22, 0.08);
    border-left-color: var(--accent-primary);
}

.toc-link.toc-level-3 {
    padding-left: 28px;
    font-size: 0.85rem;
}

/* === SHARE BUTTONS === */
.blog-share {
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-lg);
    padding: 24px;
    text-align: center;
}

.share-buttons {
    display: flex;
    justify-content: center;
    gap: 12px;
    margin-top: 16px;
}

.share-btn {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1rem;
    color: white;
    cursor: pointer;
    transition: all 0.3s ease;
    border: none;
}

.share-btn:hover {
    transform: scale(1.15);
}

.share-facebook {
    background: #1877F2;
    box-shadow: 0 4px 15px rgba(24, 119, 242, 0.4);
}

.share-twitter {
    background: #000000;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
}

.share-linkedin {
    background: #0A66C2;
    box-shadow: 0 4px 15px rgba(10, 102, 194, 0.4);
}

/* === MAIN CONTENT === */
.blog-content {
    background: var(--content-bg);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-xl);
    padding: 60px;
}

.blog-markdown {
    font-size: 1.15rem;
    line-height: 1.85;
    color: var(--text-secondary);
}

.blog-markdown h1,
.blog-markdown h2,
.blog-markdown h3 {
    color: var(--text-primary);
    font-weight: 800;
    margin-top: 48px;
    margin-bottom: 24px;
    line-height: 1.3;
}

.blog-markdown h1 {
    font-size: 2.25rem;
    margin-top: 0;
}

.blog-markdown h2 {
    font-size: 1.85rem;
    padding-bottom: 16px;
    border-bottom: 2px solid var(--glass-border);
    position: relative;
}

.blog-markdown h2::after {
    content: '';
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 60px;
    height: 2px;
    background: var(--accent-gradient);
}

.blog-markdown h3 {
    font-size: 1.4rem;
    color: var(--accent-secondary);
}

.blog-markdown p {
    margin-bottom: 24px;
}

.blog-markdown ul,
.blog-markdown ol {
    margin-bottom: 32px;
    padding-left: 24px;
}

.blog-markdown li {
    margin-bottom: 12px;
    padding-left: 8px;
    position: relative;
}

.blog-markdown li::marker {
    color: var(--accent-primary);
}

.blog-markdown blockquote {
    margin: 40px 0;
    padding: 28px 36px;
    background: linear-gradient(135deg, rgba(249, 115, 22, 0.1) 0%, rgba(99, 102, 241, 0.05) 100%);
    border-left: 4px solid var(--accent-primary);
    border-radius: 0 var(--radius-md) var(--radius-md) 0;
    font-style: italic;
    font-size: 1.2rem;
    color: var(--text-primary);
    position: relative;
}

.blog-markdown blockquote::before {
    content: '"';
    position: absolute;
    top: 10px;
    left: 16px;
    font-size: 4rem;
    color: var(--accent-primary);
    opacity: 0.3;
    font-family: Georgia, serif;
    line-height: 1;
}

.blog-markdown img {
    max-width: 100%;
    border-radius: var(--radius-md);
    margin: 40px 0;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
}

.blog-markdown strong {
    color: var(--accent-secondary);
    font-weight: 700;
}

.blog-markdown a {
    color: var(--accent-primary);
    text-decoration: none;
    border-bottom: 1px solid var(--accent-primary);
    transition: all 0.2s ease;
}

.blog-markdown a:hover {
    color: var(--accent-secondary);
    border-color: var(--accent-secondary);
}

.blog-markdown code {
    background: rgba(99, 102, 241, 0.15);
    color: var(--accent-secondary);
    padding: 3px 8px;
    border-radius: 4px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 0.9em;
}

.blog-markdown pre {
    background: rgba(0, 0, 0, 0.4);
    padding: 24px;
    border-radius: var(--radius-md);
    overflow-x: auto;
    margin: 32px 0;
    border: 1px solid var(--glass-border);
}

.blog-markdown pre code {
    background: none;
    padding: 0;
    color: var(--text-secondary);
}

/* === TAGS === */
.article-tags {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 48px;
    padding-top: 32px;
    border-top: 1px solid var(--glass-border);
}

.tags-label {
    color: var(--text-muted);
    font-weight: 600;
}

.tag {
    display: inline-block;
    padding: 8px 18px;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: 100px;
    color: var(--text-secondary);
    font-size: 0.875rem;
    font-weight: 500;
    text-decoration: none;
    transition: all 0.3s ease;
}

.tag:hover {
    background: rgba(249, 115, 22, 0.15);
    border-color: rgba(249, 115, 22, 0.3);
    color: var(--accent-primary);
    transform: translateY(-2px);
}

/* === FAQ SECTION === */
.blog-faq-section {
    margin-top: 64px;
    padding-top: 48px;
    border-top: 1px solid var(--glass-border);
}

.faq-title {
    font-size: 1.75rem;
    margin-bottom: 32px;
    color: var(--text-primary);
    text-align: center;
}

.article-faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.article-faq-item {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: all 0.3s ease;
}

.article-faq-item:hover {
    border-color: rgba(249, 115, 22, 0.3);
}

.article-faq-question {
    width: 100%;
    text-align: left;
    padding: 24px 28px;
    background: none;
    border: none;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-primary);
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: color 0.3s;
}

.article-faq-question:hover {
    color: var(--accent-primary);
}

.article-faq-icon {
    font-size: 1.5rem;
    color: var(--accent-primary);
    transition: transform 0.3s ease;
}

.article-faq-item.active .article-faq-icon {
    transform: rotate(45deg);
}

.article-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: all 0.4s ease-out;
    padding: 0 28px;
    color: var(--text-secondary);
    line-height: 1.7;
}

.article-faq-item.active {
    border-color: var(--accent-primary);
    background: rgba(249, 115, 22, 0.05);
}

.article-faq-item.active .article-faq-answer {
    max-height: 500px;
    padding-bottom: 24px;
}

/* === RELATED ARTICLES === */
.article-related {
    margin-top: 64px;
    padding-top: 48px;
    border-top: 1px solid var(--glass-border);
}

.article-related h2 {
    font-size: 1.75rem;
    margin-bottom: 32px;
    color: var(--text-primary);
    text-align: center;
}

.related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 24px;
    gap: 24px;
}

.related-card {
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    text-decoration: none;
    transition: all 0.4s ease;
}

.related-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3);
    border-color: rgba(249, 115, 22, 0.3);
}

.related-image {
    width: 100%;
    height: 160px;
    object-fit: cover;
}

.related-content {
    padding: 20px;
}

.related-content h3 {
    font-size: 1.1rem;
    color: var(--text-primary);
    margin: 0 0 12px;
    line-height: 1.4;
}

.related-reading {
    color: var(--text-muted);
    font-size: 0.85rem;
}

/* === BACK BUTTON === */
.article-back {
    margin-top: 48px;
    text-align: center;
}

.btn-back {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 32px;
    background: var(--glass-bg);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-md);
    color: var(--text-secondary);
    font-weight: 600;
    text-decoration: none;
    transition: all 0.3s ease;
}

.btn-back:hover {
    background: var(--accent-gradient);
    color: white;
    border-color: transparent;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px var(--accent-glow);
}

/* === LOADING & ERROR === */
.article-loading,
.article-error {
    text-align: center;
    padding: 120px 24px;
}

.loading-spinner {
    width: 50px;
    height: 50px;
    border: 3px solid rgba(249, 115, 22, 0.2);
    border-top-color: var(--accent-primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 24px;
}

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

.article-loading p {
    color: var(--text-secondary);
    font-size: 1rem;
}

.article-error .error-icon {
    font-size: 5rem;
    display: block;
    margin-bottom: 24px;
}

.article-error h1 {
    font-size: 1.75rem;
    color: var(--text-primary);
    margin: 0 0 12px;
}

.article-error p {
    color: var(--text-secondary);
    margin-bottom: 32px;
}

/* === RESPONSIVE === */
@media (max-width: 1100px) {
    .blog-content-wrapper {
        grid-template-columns: 1fr;
    }

    .blog-sidebar {
        display: none;
    }

    .related-grid {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 768px) {
    .blog-article-hero {
        padding: 80px 16px 40px;
    }

    .blog-article-title {
        font-size: 2rem;
    }

    .blog-article-meta {
        gap: 12px;
    }

    .meta-item {
        padding: 6px 12px;
        font-size: 0.85rem;
    }

    .blog-content {
        padding: 32px 24px;
    }

    .blog-markdown {
        font-size: 1.05rem;
    }

    .blog-markdown h2 {
        font-size: 1.5rem;
    }

    .related-grid {
        grid-template-columns: 1fr;
    }

    .article-featured-image {
        padding: 0 16px;
    }
}

/* === SCROLLBAR === */
.article-page::-webkit-scrollbar {
    width: 10px;
}

.article-page::-webkit-scrollbar-track {
    background: var(--bg-primary);
}

.article-page::-webkit-scrollbar-thumb {
    background: rgba(249, 115, 22, 0.3);
    border-radius: 5px;
}

.article-page::-webkit-scrollbar-thumb:hover {
    background: rgba(249, 115, 22, 0.5);
}
/* ============================================
   Blog Admin Page - Premium Dark Theme
   Design moderne avec glassmorphisme et animations
   ============================================ */

/* === ROOT VARIABLES === */
.blog-admin-page {
    --bg-primary: #0f0f1a;
    --bg-secondary: #1a1a2e;
    --bg-tertiary: #16213e;
    --glass-bg: rgba(26, 26, 46, 0.7);
    --glass-border: rgba(255, 255, 255, 0.08);

    --accent-primary: #6366f1;
    --accent-secondary: #8b5cf6;
    --accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);
    --accent-glow: rgba(99, 102, 241, 0.4);

    --success: #10b981;
    --success-glow: rgba(16, 185, 129, 0.3);
    --warning: #f59e0b;
    --warning-glow: rgba(245, 158, 11, 0.3);
    --danger: #ef4444;
    --danger-glow: rgba(239, 68, 68, 0.3);

    --text-primary: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.7);
    --text-muted: rgba(255, 255, 255, 0.4);

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 20px;
    --radius-xl: 24px;

    min-height: 100vh;
    background: var(--bg-primary);
    background-image:
        radial-gradient(ellipse at 20% 0%, rgba(99, 102, 241, 0.15) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 100%, rgba(139, 92, 246, 0.1) 0%, transparent 50%);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

/* === CONTAINER === */
.admin-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 24px;
}

/* === HEADER === */
.admin-header {
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.2) 0%, transparent 100%);
    border-bottom: 1px solid var(--glass-border);
    padding: 40px 0 60px;
    position: relative;
    overflow: hidden;
}

.admin-header::before {
    content: '';
    position: absolute;
    top: -50%;
    left: -10%;
    width: 120%;
    height: 200%;
    background: radial-gradient(ellipse at center, rgba(99, 102, 241, 0.08) 0%, transparent 60%);
    animation: headerGlow 8s ease-in-out infinite alternate;
}

@keyframes headerGlow {
    0% {
        transform: translateX(-10%) rotate(-5deg);
        opacity: 0.5;
    }

    100% {
        transform: translateX(10%) rotate(5deg);
        opacity: 1;
    }
}

.header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;
    position: relative;
    z-index: 1;
}

.admin-header h1 {
    font-size: 2.5rem;
    font-weight: 800;
    margin: 0 0 8px;
    background: var(--accent-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
    letter-spacing: -0.02em;
}

.admin-header p {
    color: var(--text-secondary);
    margin: 0;
    font-size: 1.1rem;
}

.btn-new {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 16px 32px;
    background: var(--accent-gradient);
    color: var(--text-primary);
    border: none;
    border-radius: var(--radius-lg);
    font-size: 1rem;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    box-shadow:
        0 4px 20px var(--accent-glow),
        0 0 40px rgba(99, 102, 241, 0.2);
    position: relative;
    overflow: hidden;
}

.btn-new::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.btn-new:hover {
    transform: translateY(-3px) scale(1.02);
    box-shadow:
        0 8px 30px var(--accent-glow),
        0 0 60px rgba(99, 102, 241, 0.3);
}

.btn-new:hover::before {
    left: 100%;
}

/* === STATS === */
.admin-stats {
    margin-top: -40px;
    margin-bottom: 32px;
    position: relative;
    z-index: 2;
}

.stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 20px;
    gap: 20px;
}

.stat-card {
    background: var(--glass-bg);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-xl);
    padding: 28px 24px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--accent-gradient);
    opacity: 0;
    transition: opacity 0.3s;
}

.stat-card:hover {
    transform: translateY(-6px);
    border-color: rgba(99, 102, 241, 0.3);
    box-shadow:
        0 20px 40px rgba(0, 0, 0, 0.3),
        0 0 40px var(--accent-glow);
}

.stat-card:hover::before {
    opacity: 1;
}

.stat-value {
    display: block;
    font-size: 3rem;
    font-weight: 800;
    color: var(--text-primary);
    line-height: 1;
    margin-bottom: 8px;
    letter-spacing: -0.03em;
}

.stat-label {
    display: block;
    font-size: 0.9rem;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    font-weight: 500;
}

.stat-published .stat-value {
    color: var(--success);
    text-shadow: 0 0 30px var(--success-glow);
}

.stat-draft .stat-value {
    color: var(--warning);
    text-shadow: 0 0 30px var(--warning-glow);
}

/* === FILTERS === */
.admin-filters {
    margin-bottom: 28px;
}

.filter-tabs {
    display: inline-flex;
    gap: 4px;
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    padding: 6px;
    border-radius: var(--radius-lg);
}

.filter-tab {
    padding: 12px 28px;
    border: none;
    background: transparent;
    border-radius: var(--radius-md);
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
}

.filter-tab:hover {
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.05);
}

.filter-tab.active {
    background: var(--accent-gradient);
    color: var(--text-primary);
    box-shadow: 0 4px 15px var(--accent-glow);
}

/* === ARTICLES TABLE === */
.admin-articles {
    padding-bottom: 60px;
}

.articles-table {
    background: var(--glass-bg);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-xl);
    overflow: hidden;
}

.table-header,
.table-row {
    display: grid;
    grid-template-columns: 1.5fr 150px 120px 120px 80px 160px;
    align-items: center;
    padding: 18px 28px;
    grid-gap: 20px;
    gap: 20px;
}

.table-header {
    background: rgba(255, 255, 255, 0.03);
    border-bottom: 1px solid var(--glass-border);
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--text-muted);
    text-transform: uppercase;
    letter-spacing: 0.08em;
}

.table-row {
    border-bottom: 1px solid rgba(255, 255, 255, 0.04);
    transition: all 0.3s ease;
}

.table-row:last-child {
    border-bottom: none;
}

.table-row:hover {
    background: rgba(99, 102, 241, 0.05);
    transform: translateX(4px);
}

.article-title {
    display: block;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 4px;
    font-size: 1rem;
}

.article-slug {
    display: inline-flex;
    align-items: center;
    font-size: 0.75rem;
    color: var(--text-muted);
    padding: 2px 8px;
    background: rgba(99, 102, 241, 0.1);
    border-radius: 4px;
    font-family: 'Monaco', 'Menlo', monospace;
}

.category-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.2);
    border-radius: 50px;
    font-size: 0.8rem;
    color: var(--text-secondary);
}

.no-category {
    color: var(--text-muted);
}

.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 50px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.badge-published {
    background: rgba(16, 185, 129, 0.15);
    color: var(--success);
    border: 1px solid rgba(16, 185, 129, 0.3);
    box-shadow: 0 0 15px var(--success-glow);
}

.badge-draft {
    background: rgba(245, 158, 11, 0.15);
    color: var(--warning);
    border: 1px solid rgba(245, 158, 11, 0.3);
    box-shadow: 0 0 15px var(--warning-glow);
}

.badge-archived {
    background: rgba(255, 255, 255, 0.05);
    color: var(--text-muted);
    border: 1px solid var(--glass-border);
}

.col-date {
    color: var(--text-secondary);
    font-size: 0.875rem;
}

.col-views {
    font-size: 0.9rem;
    color: var(--text-secondary);
    font-weight: 500;
}

/* === ACTIONS === */
.col-actions {
    display: flex;
    gap: 8px;
}

.action-btn {
    width: 38px;
    height: 38px;
    border: none;
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-size: 1rem;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid var(--glass-border);
    text-decoration: none;
}

.action-btn:hover {
    transform: scale(1.15);
    background: rgba(255, 255, 255, 0.1);
}

.action-btn.edit:hover {
    background: rgba(99, 102, 241, 0.2);
    border-color: rgba(99, 102, 241, 0.4);
    box-shadow: 0 0 20px var(--accent-glow);
}

.action-btn.view:hover {
    background: rgba(59, 130, 246, 0.2);
    border-color: rgba(59, 130, 246, 0.4);
}

.action-btn.publish:hover {
    background: rgba(16, 185, 129, 0.2);
    border-color: rgba(16, 185, 129, 0.4);
    box-shadow: 0 0 20px var(--success-glow);
}

.action-btn.archive:hover {
    background: rgba(245, 158, 11, 0.2);
    border-color: rgba(245, 158, 11, 0.4);
}

.action-btn.delete:hover {
    background: rgba(239, 68, 68, 0.2);
    border-color: rgba(239, 68, 68, 0.4);
    box-shadow: 0 0 20px var(--danger-glow);
}

/* === LOADING & EMPTY === */
.admin-loading,
.admin-empty {
    text-align: center;
    padding: 100px 24px;
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-xl);
}

.loading-spinner {
    width: 50px;
    height: 50px;
    border: 3px solid rgba(99, 102, 241, 0.2);
    border-top-color: var(--accent-primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 20px;
}

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

.admin-loading p {
    color: var(--text-secondary);
    font-size: 1rem;
}

.admin-empty .empty-icon {
    font-size: 4rem;
    display: block;
    margin-bottom: 20px;
    filter: grayscale(50%);
}

.admin-empty h2 {
    font-size: 1.5rem;
    margin: 0 0 12px;
    color: var(--text-primary);
}

.admin-empty p {
    color: var(--text-secondary);
    margin: 0 0 32px;
    font-size: 1rem;
}

/* === PAGINATION === */
.admin-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 32px;
}

.pagination-btn {
    padding: 12px 28px;
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(10px);
            backdrop-filter: blur(10px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-md);
    font-weight: 500;
    color: var(--text-secondary);
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.pagination-btn:hover:not(:disabled) {
    background: var(--accent-gradient);
    color: var(--text-primary);
    border-color: transparent;
    box-shadow: 0 4px 20px var(--accent-glow);
    transform: translateY(-2px);
}

.pagination-btn:disabled {
    opacity: 0.3;
    cursor: not-allowed;
}

.pagination-info {
    font-size: 0.9rem;
    color: var(--text-muted);
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: var(--radius-sm);
}

/* === RESPONSIVE === */
@media (max-width: 1200px) {

    .table-header,
    .table-row {
        grid-template-columns: 1.2fr 130px 100px 100px 60px 140px;
    }
}

@media (max-width: 992px) {
    .stats-grid {
        grid-template-columns: 1fr 1fr 1fr;
        gap: 12px;
    }

    .table-header {
        display: none;
    }

    .table-row {
        grid-template-columns: 1fr;
        gap: 12px;
        padding: 20px;
        border-radius: var(--radius-md);
        margin-bottom: 12px;
        background: rgba(255, 255, 255, 0.02);
    }

    .articles-table {
        background: transparent;
        border: none;
    }

    .table-row:hover {
        transform: none;
        background: rgba(99, 102, 241, 0.08);
    }

    .col-title {
        order: 1;
    }

    .col-actions {
        order: 2;
        justify-content: flex-start;
        padding-top: 12px;
        border-top: 1px solid var(--glass-border);
    }

    .col-status {
        order: 3;
    }

    .col-category {
        order: 4;
    }

    .col-date,
    .col-views {
        display: none;
    }
}

@media (max-width: 640px) {
    .admin-header {
        padding: 30px 0 50px;
    }

    .header-content {
        flex-direction: column;
        text-align: center;
        gap: 20px;
    }

    .admin-header h1 {
        font-size: 2rem;
    }

    .stats-grid {
        grid-template-columns: 1fr;
    }

    .stat-card {
        padding: 20px;
    }

    .stat-value {
        font-size: 2.5rem;
    }

    .filter-tabs {
        flex-wrap: wrap;
        width: 100%;
    }

    .filter-tab {
        flex: 1 1;
        min-width: calc(50% - 4px);
        text-align: center;
        padding: 12px 16px;
    }

    .btn-new {
        padding: 14px 24px;
        width: 100%;
        justify-content: center;
    }
}

/* === SCROLLBAR CUSTOM === */
.blog-admin-page::-webkit-scrollbar {
    width: 10px;
}

.blog-admin-page::-webkit-scrollbar-track {
    background: var(--bg-primary);
}

.blog-admin-page::-webkit-scrollbar-thumb {
    background: rgba(99, 102, 241, 0.3);
    border-radius: 5px;
}

.blog-admin-page::-webkit-scrollbar-thumb:hover {
    background: rgba(99, 102, 241, 0.5);
}
/* ============================================
   Blog Article Editor - Premium Dark Theme
   Design moderne avec glassmorphisme et animations
   ============================================ */

/* === ROOT VARIABLES === */
.editor-page {
    --bg-primary: #0f0f1a;
    --bg-secondary: #1a1a2e;
    --bg-tertiary: #16213e;
    --glass-bg: rgba(26, 26, 46, 0.7);
    --glass-border: rgba(255, 255, 255, 0.08);

    --accent-primary: #6366f1;
    --accent-secondary: #8b5cf6;
    --accent-gradient: linear-gradient(135deg, #6366f1 0%, #8b5cf6 50%, #a855f7 100%);
    --accent-glow: rgba(99, 102, 241, 0.4);

    --success: #10b981;
    --success-glow: rgba(16, 185, 129, 0.3);
    --warning: #f59e0b;
    --warning-glow: rgba(245, 158, 11, 0.3);
    --danger: #ef4444;
    --danger-glow: rgba(239, 68, 68, 0.3);

    --text-primary: #ffffff;
    --text-secondary: rgba(255, 255, 255, 0.7);
    --text-muted: rgba(255, 255, 255, 0.4);

    --input-bg: rgba(255, 255, 255, 0.03);
    --input-border: rgba(255, 255, 255, 0.1);
    --input-focus: rgba(99, 102, 241, 0.5);

    --radius-sm: 8px;
    --radius-md: 12px;
    --radius-lg: 20px;
    --radius-xl: 24px;

    min-height: 100vh;
    background: var(--bg-primary);
    background-image:
        radial-gradient(ellipse at 20% 0%, rgba(99, 102, 241, 0.15) 0%, transparent 50%),
        radial-gradient(ellipse at 80% 100%, rgba(139, 92, 246, 0.1) 0%, transparent 50%);
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
}

.editor-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 24px;
}

/* === HEADER === */
.editor-header {
    background: linear-gradient(180deg, rgba(99, 102, 241, 0.15) 0%, rgba(15, 15, 26, 0.95) 100%);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--glass-border);
    padding: 20px 0;
    position: -webkit-sticky;
    position: sticky;
    top: 0;
    z-index: 100;
}

.editor-header .editor-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 20px;
}

.back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--text-secondary);
    text-decoration: none;
    font-size: 0.9375rem;
    padding: 8px 16px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: var(--radius-sm);
    border: 1px solid var(--glass-border);
    transition: all 0.3s ease;
}

.back-link:hover {
    color: var(--text-primary);
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(99, 102, 241, 0.3);
}

.editor-header h1 {
    font-size: 1.5rem;
    font-weight: 700;
    margin: 0;
    background: var(--accent-gradient);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.header-actions {
    display: flex;
    gap: 12px;
}

.btn-save {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    border: none;
    border-radius: var(--radius-md);
    font-size: 0.9375rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.btn-save::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s;
}

.btn-save:hover::before {
    left: 100%;
}

.btn-save.draft {
    background: rgba(255, 255, 255, 0.08);
    color: var(--text-primary);
    border: 1px solid var(--glass-border);
}

.btn-save.draft:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
}

.btn-save.publish {
    background: var(--accent-gradient);
    color: var(--text-primary);
    box-shadow: 0 4px 20px var(--accent-glow);
}

.btn-save.publish:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 30px var(--accent-glow);
}

.btn-save:disabled {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none !important;
}

/* === TABS === */
.editor-tabs {
    background: var(--glass-bg);
    -webkit-backdrop-filter: blur(20px);
            backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--glass-border);
    padding: 0;
}

.editor-tabs .editor-container {
    display: flex;
    gap: 0;
}

.tab {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 18px 28px;
    border: none;
    background: transparent;
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--text-muted);
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease;
}

.tab::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 50%;
    width: 0;
    height: 3px;
    background: var(--accent-gradient);
    border-radius: 3px 3px 0 0;
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

.tab:hover {
    color: var(--text-secondary);
}

.tab.active {
    color: var(--text-primary);
}

.tab.active::after {
    width: 80%;
}

/* === FORM === */
.editor-form {
    padding: 40px 0 60px;
}

.form-section {
    background: var(--glass-bg);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-xl);
    padding: 36px;
    position: relative;
    overflow: hidden;
}

.form-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(99, 102, 241, 0.5), transparent);
}

.form-group {
    margin-bottom: 28px;
}

.form-group:last-child {
    margin-bottom: 0;
}

.form-group label {
    display: block;
    font-weight: 600;
    color: var(--text-primary);
    margin-bottom: 10px;
    font-size: 0.9375rem;
    letter-spacing: 0.01em;
}

.form-group input,
.form-group textarea,
.form-group select {
    width: 100%;
    padding: 14px 18px;
    background: var(--input-bg);
    border: 2px solid var(--input-border);
    border-radius: var(--radius-md);
    color: var(--text-primary);
    font-size: 1rem;
    font-family: inherit;
    transition: all 0.3s ease;
}

.form-group input::placeholder,
.form-group textarea::placeholder {
    color: var(--text-muted);
}

.form-group input:focus,
.form-group textarea:focus,
.form-group select:focus {
    outline: none;
    border-color: var(--accent-primary);
    background: rgba(99, 102, 241, 0.05);
    box-shadow: 0 0 0 4px var(--input-focus), 0 0 30px rgba(99, 102, 241, 0.15);
}

.form-group select {
    cursor: pointer;
    -webkit-appearance: none;
            appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 viewBox=%270 0 24 24%27 fill=%27none%27 stroke=%27rgba%28255,255,255,0.4%29%27 stroke-width=%272%27%3E%3Cpolyline points=%276,9 12,15 18,9%27%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 20px;
    padding-right: 44px;
}

.form-group select option {
    background: var(--bg-secondary);
    color: var(--text-primary);
    padding: 12px;
}

.form-group textarea {
    resize: vertical;
    min-height: 120px;
    line-height: 1.6;
}

.form-group textarea#content {
    font-family: 'JetBrains Mono', 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
    font-size: 0.9375rem;
    min-height: 400px;
    line-height: 1.7;
    background: rgba(0, 0, 0, 0.2);
    border-color: rgba(255, 255, 255, 0.05);
}

.form-help {
    display: block;
    margin-top: 10px;
    font-size: 0.8125rem;
    color: var(--text-muted);
    padding: 10px 14px;
    background: rgba(99, 102, 241, 0.08);
    border-radius: var(--radius-sm);
    border-left: 3px solid var(--accent-primary);
}

.char-count {
    display: block;
    text-align: right;
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 8px;
    font-feature-settings: "tnum";
    font-variant-numeric: tabular-nums;
}

.form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    grid-gap: 20px;
    gap: 20px;
}

/* === SLUG INPUT === */
.slug-input {
    display: flex;
    align-items: center;
    border: 2px solid var(--input-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition: all 0.3s ease;
}

.slug-input:focus-within {
    border-color: var(--accent-primary);
    box-shadow: 0 0 0 4px var(--input-focus);
}

.slug-prefix {
    padding: 14px 16px;
    background: rgba(99, 102, 241, 0.1);
    color: var(--accent-primary);
    font-size: 0.9375rem;
    white-space: nowrap;
    font-family: 'JetBrains Mono', monospace;
    border-right: 1px solid var(--input-border);
}

.slug-input input {
    border: none;
    border-radius: 0;
    background: var(--input-bg);
}

.slug-input input:focus {
    box-shadow: none;
}

/* === TAGS === */
.tags-input {
    display: flex;
    gap: 10px;
}

.tags-input input {
    flex: 1 1;
}

.tags-input button {
    width: 52px;
    background: var(--accent-gradient);
    color: var(--text-primary);
    border: none;
    border-radius: var(--radius-md);
    font-size: 1.5rem;
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px var(--accent-glow);
}

.tags-input button:hover {
    transform: scale(1.05);
    box-shadow: 0 6px 25px var(--accent-glow);
}

.tags-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 16px;
}

.tag-item {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    background: rgba(139, 92, 246, 0.15);
    border: 1px solid rgba(139, 92, 246, 0.3);
    border-radius: 50px;
    font-size: 0.875rem;
    color: var(--text-secondary);
    animation: tagAppear 0.3s ease;
}

@keyframes tagAppear {
    from {
        opacity: 0;
        transform: scale(0.8);
    }

    to {
        opacity: 1;
        transform: scale(1);
    }
}

.tag-item button {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 1.1rem;
    line-height: 1;
    color: var(--text-muted);
    padding: 2px;
    transition: all 0.2s;
}

.tag-item button:hover {
    color: var(--danger);
    transform: scale(1.2);
}

/* === SEO PREVIEW === */
.seo-preview {
    margin-bottom: 36px;
}

.seo-preview h3 {
    font-size: 0.8rem;
    color: var(--text-muted);
    margin: 0 0 16px;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    display: flex;
    align-items: center;
    gap: 8px;
}

.seo-preview h3::before {
    content: '🔍';
}

.google-preview {
    background: rgba(255, 255, 255, 0.97);
    border-radius: var(--radius-md);
    padding: 20px 24px;
    position: relative;
    overflow: hidden;
}

.google-preview::before {
    content: 'Google Preview';
    position: absolute;
    top: 8px;
    right: 12px;
    font-size: 0.65rem;
    color: rgba(0, 0, 0, 0.3);
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.gp-title {
    font-size: 1.25rem;
    color: #1a0dab;
    margin-bottom: 6px;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-family: 'Arial', sans-serif;
}

.gp-url {
    font-size: 0.875rem;
    color: #006621;
    margin-bottom: 6px;
    font-family: 'Arial', sans-serif;
}

.gp-description {
    font-size: 0.875rem;
    color: #545454;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-family: 'Arial', sans-serif;
}

.seo-tips {
    background: linear-gradient(135deg, rgba(99, 102, 241, 0.1) 0%, rgba(139, 92, 246, 0.1) 100%);
    border: 1px solid rgba(99, 102, 241, 0.2);
    border-radius: var(--radius-md);
    padding: 24px;
    margin-top: 28px;
}

.seo-tips h4 {
    margin: 0 0 16px;
    font-size: 1rem;
    color: var(--text-primary);
    display: flex;
    align-items: center;
    gap: 8px;
}

.seo-tips ul {
    margin: 0;
    padding-left: 0;
    list-style: none;
}

.seo-tips li {
    font-size: 0.875rem;
    color: var(--text-secondary);
    margin-bottom: 10px;
    padding-left: 24px;
    position: relative;
}

.seo-tips li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--success);
    font-weight: bold;
}

.seo-tips li:last-child {
    margin-bottom: 0;
}

/* === FAQ SECTION === */
.editor-faq-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 28px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--glass-border);
}

.editor-faq-header h3 {
    margin: 0 0 6px;
    font-size: 1.25rem;
    color: var(--text-primary);
}

.editor-faq-header p {
    margin: 0;
    font-size: 0.9rem;
    color: var(--text-muted);
}

.btn-add-faq {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 24px;
    background: var(--accent-gradient);
    color: var(--text-primary);
    border: none;
    border-radius: var(--radius-md);
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px var(--accent-glow);
}

.btn-add-faq:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px var(--accent-glow);
}

.editor-faq-empty {
    text-align: center;
    padding: 60px 24px;
    background: rgba(255, 255, 255, 0.02);
    border: 2px dashed var(--glass-border);
    border-radius: var(--radius-lg);
}

.editor-faq-empty span {
    font-size: 4rem;
    display: block;
    margin-bottom: 16px;
    opacity: 0.5;
}

.editor-faq-empty p {
    margin: 0;
    color: var(--text-muted);
    font-size: 1rem;
}

.editor-faq-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.editor-faq-item {
    display: flex;
    gap: 20px;
    padding: 24px;
    background: rgba(255, 255, 255, 0.02);
    border: 1px solid var(--glass-border);
    border-radius: var(--radius-lg);
    transition: all 0.3s ease;
    animation: faqAppear 0.4s ease;
}

@keyframes faqAppear {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.editor-faq-item:hover {
    border-color: rgba(99, 102, 241, 0.3);
    background: rgba(99, 102, 241, 0.03);
}

.editor-faq-number {
    width: 40px;
    height: 40px;
    background: var(--accent-gradient);
    color: var(--text-primary);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1rem;
    flex-shrink: 0;
    box-shadow: 0 4px 15px var(--accent-glow);
}

.editor-faq-content {
    flex: 1 1;
}

.editor-faq-content .form-group {
    margin-bottom: 16px;
}

.editor-faq-content .form-group:last-child {
    margin-bottom: 0;
}

.editor-faq-content .form-group label {
    font-size: 0.8125rem;
    margin-bottom: 6px;
    color: var(--text-secondary);
}

.editor-faq-remove {
    width: 40px;
    height: 40px;
    background: rgba(239, 68, 68, 0.1);
    border: 1px solid rgba(239, 68, 68, 0.2);
    border-radius: var(--radius-sm);
    cursor: pointer;
    font-size: 1.25rem;
    padding: 0;
    opacity: 0.6;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.editor-faq-remove:hover {
    opacity: 1;
    background: rgba(239, 68, 68, 0.2);
    border-color: rgba(239, 68, 68, 0.4);
    transform: scale(1.1);
    box-shadow: 0 0 20px var(--danger-glow);
}

/* === LOADING === */
.editor-loading {
    text-align: center;
    padding: 120px 24px;
}

.loading-spinner {
    width: 50px;
    height: 50px;
    border: 3px solid rgba(99, 102, 241, 0.2);
    border-top-color: var(--accent-primary);
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 20px;
}

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

.editor-loading p {
    color: var(--text-secondary);
    font-size: 1rem;
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .form-row {
        grid-template-columns: 1fr;
    }

    .editor-header .editor-container {
        flex-direction: column;
        align-items: stretch;
        gap: 16px;
    }

    .header-left {
        justify-content: space-between;
    }

    .header-actions {
        display: grid;
        grid-template-columns: 1fr 1fr;
        grid-gap: 10px;
        gap: 10px;
    }

    .btn-save {
        justify-content: center;
    }

    .form-section {
        padding: 24px;
    }

    .faq-header {
        flex-direction: column;
    }

    .btn-add-faq {
        width: 100%;
        justify-content: center;
    }

    .faq-item {
        flex-direction: column;
        padding: 20px;
    }

    .faq-number {
        align-self: flex-start;
    }

    .faq-remove {
        align-self: flex-end;
        margin-top: -50px;
    }

    .tab {
        padding: 14px 18px;
        font-size: 0.875rem;
    }
}

@media (max-width: 480px) {
    .editor-container {
        padding: 0 16px;
    }

    .editor-header h1 {
        font-size: 1.25rem;
    }

    .form-section {
        padding: 20px 16px;
    }

    .tab {
        padding: 12px 14px;
        font-size: 0.8125rem;
    }
}

/* === SCROLLBAR === */
.editor-page::-webkit-scrollbar {
    width: 10px;
}

.editor-page::-webkit-scrollbar-track {
    background: var(--bg-primary);
}

.editor-page::-webkit-scrollbar-thumb {
    background: rgba(99, 102, 241, 0.3);
    border-radius: 5px;
}

.editor-page::-webkit-scrollbar-thumb:hover {
    background: rgba(99, 102, 241, 0.5);
}
/* src/components/LanguageSwitcher/LanguageSwitcher.css */

.language-switcher-dropdown {
  position: relative;
  display: inline-block;
}

.lang-trigger {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 12px;
  background: #ffffff;
  background: var(--surface-color, #ffffff);
  border: 1px solid #e5e7eb;
  border: 1px solid var(--border-color, #e5e7eb);
  border-radius: 8px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: #1f2937;
  color: var(--text-primary, #1f2937);
  transition: all 0.2s ease;
}

.lang-trigger:hover {
  background: #f9fafb;
  background: var(--surface-hover, #f9fafb);
  border-color: #d1d5db;
  border-color: var(--border-hover, #d1d5db);
}

.lang-trigger:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

.lang-flag {
  font-size: 18px;
  line-height: 1;
}

.lang-label {
  font-size: 14px;
}

.chevron {
  transition: transform 0.2s ease;
}

.chevron.open {
  transform: rotate(180deg);
}

.lang-backdrop {
  position: fixed;
  inset: 0;
  z-index: 999;
  background: transparent;
}

.lang-menu {
  position: absolute;
  top: calc(100% + 4px);
  right: 0;
  min-width: 180px;
  background: #ffffff;
  background: var(--surface-color, #ffffff);
  border: 1px solid #e5e7eb;
  border: 1px solid var(--border-color, #e5e7eb);
  border-radius: 8px;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  padding: 4px;
  z-index: 1000;
  animation: slideDown 0.15s ease-out;
}

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.lang-option {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  padding: 10px 12px;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: #1f2937;
  color: var(--text-primary, #1f2937);
  transition: all 0.15s ease;
  text-align: left;
}

.lang-option:hover {
  background: #f3f4f6;
  background: var(--surface-hover, #f3f4f6);
}

.lang-option.active {
  background: #eff6ff;
  background: var(--primary-light, #eff6ff);
  color: #3b82f6;
  color: var(--primary-color, #3b82f6);
}

.lang-option .lang-name {
  flex: 1 1;
}

.checkmark {
  color: #3b82f6;
  color: var(--primary-color, #3b82f6);
}

/* Inline variant */
.language-switcher-inline {
  display: flex;
  gap: 8px;
  padding: 4px;
  background: #f9fafb;
  background: var(--surface-color, #f9fafb);
  border-radius: 10px;
  border: 1px solid #e5e7eb;
  border: 1px solid var(--border-color, #e5e7eb);
}

.language-switcher-inline .lang-button {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 8px 12px;
  background: transparent;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  color: #6b7280;
  color: var(--text-secondary, #6b7280);
  transition: all 0.2s ease;
}

.language-switcher-inline .lang-button:hover {
  background: #ffffff;
  background: var(--surface-hover, #ffffff);
  color: #1f2937;
  color: var(--text-primary, #1f2937);
}

.language-switcher-inline .lang-button.active {
  background: #ffffff;
  background: var(--surface-color, #ffffff);
  color: #3b82f6;
  color: var(--primary-color, #3b82f6);
  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1);
}

.language-switcher-inline .lang-button:disabled {
  opacity: 0.5;
  cursor: not-allowed;
}

/* Dark mode support */
@media (prefers-color-scheme: dark) {
  .lang-trigger,
  .lang-menu {
    --surface-color: #1f2937;
    --surface-hover: #374151;
    --border-color: #374151;
    --border-hover: #4b5563;
    --text-primary: #f9fafb;
    --text-secondary: #d1d5db;
    --primary-light: #1e3a8a;
    --primary-color: #60a5fa;
  }

  .language-switcher-inline {
    --surface-color: #111827;
    --surface-hover: #1f2937;
    --border-color: #374151;
    --text-primary: #f9fafb;
    --text-secondary: #9ca3af;
    --primary-color: #60a5fa;
  }
}

.notification-history-page {
    max-width: 1400px;
    margin: 0 auto;
    padding: 24px;
    min-height: 100vh;
}

/* Header styles removed */

.notifications-list {
    background: white;
    border-radius: 16px;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

.history-notification-item {
    display: flex;
    gap: 16px;
    padding: 20px;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
    transition: all 0.3s ease;
    position: relative;
}

.history-notification-item:hover {
    background: #f8f9fa;
}

.history-notification-item.unread {
    background: #e3f2fd;
    border-left: 4px solid #2196F3;
}

.history-notification-item:last-child {
    border-bottom: none;
}

.notification-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 12px;
    flex-shrink: 0;
    box-shadow: 0 4px 12px rgba(102, 126, 234, 0.3);
}

.notification-content {
    flex: 1 1;
    min-width: 0;
}

.notification-header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 8px;
}

.notification-header h3 {
    font-size: 16px;
    font-weight: 600;
    color: #2c3e50;
    margin: 0;
    flex: 1 1;
}

.notification-type-badge {
    padding: 4px 12px;
    background: #e9ecef;
    color: #495057;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.notification-message {
    font-size: 14px;
    color: #6c757d;
    margin: 0 0 8px 0;
    line-height: 1.5;
}

.notification-time {
    font-size: 12px;
    color: #adb5bd;
}

.notification-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.unread-dot {
    width: 10px;
    height: 10px;
    background: #2196F3;
    border-radius: 50%;
    animation: pulse 2s infinite;
}

@keyframes pulse {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: 0.5;
    }
}

.delete-btn {
    padding: 8px;
    background: transparent;
    border: none;
    font-size: 18px;
    cursor: pointer;
    transition: transform 0.2s ease;
    opacity: 0.5;
}

.delete-btn:hover {
    transform: scale(1.2);
    opacity: 1;
}

.empty-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 80px 20px;
    gap: 16px;
}

.empty-icon {
    font-size: 64px;
}

.empty-state p {
    font-size: 18px;
    color: #7f8c8d;
}

.loading-state {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 400px;
    gap: 16px;
}

.spinner {
    width: 48px;
    height: 48px;
    border: 4px solid #f3f3f3;
    border-top: 4px solid #667eea;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.loading-state p {
    font-size: 16px;
    color: #7f8c8d;
}

/* Responsive Design */
@media (max-width: 768px) {
    .notification-history-page {
        padding: 16px;
    }

    .header-top {
        flex-direction: column;
        gap: 16px;
        align-items: stretch;
    }

    .mark-all-read-btn {
        width: 100%;
    }

    .filters-container {
        flex-direction: column;
    }

    .search-box {
        min-width: 100%;
    }

    .history-notification-item {
        flex-direction: column;
        gap: 12px;
    }

    .notification-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .notification-actions {
        position: absolute;
        top: 20px;
        right: 20px;
    }
}
/* FeaturesPage.css - Rintintin Design System */
/* Aligned with site DA: brown, gold, peach, Lato font */

/* ===== Reset scoped variables to match site DA ===== */
.features-page {
    --brown: #A5765C;
    --gold: #F6C674;
    --peach: #EE9F99;
    --orange: #FFA351;
    --light-gray: #F6F2EF;
    --black: #000000;
    --text-color: #333333;
    --font-family: 'Lato', sans-serif;
    --border-radius: 16px;
    --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);

    font-family: var(--font-family);
    color: var(--text-color);
    background: #fff;
}

/* ===== Hero Section ===== */
.features-hero {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 120px 50px 80px;
    background: linear-gradient(180deg, #fff 0%, var(--light-gray) 100%);
    position: relative;
    overflow: hidden;
}

.features-hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.12%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
    background-size: 100px 100px;
    opacity: 0.5;
    z-index: 0;
}

.features-hero-content {
    position: relative;
    z-index: 1;
    max-width: 800px;
}

.features-badge {
    display: inline-block;
    padding: 10px 24px;
    background: linear-gradient(135deg, var(--gold), var(--orange));
    color: var(--black);
    border-radius: 50px;
    font-size: 0.9rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin-bottom: 24px;
    animation: featuresSlideDown 0.6s ease;
}

.features-title {
    font-size: 3.2rem;
    font-weight: 800;
    color: var(--black);
    line-height: 1.2;
    margin: 0 0 24px;
    animation: featuresSlideUp 0.7s ease 0.1s both;
}

.features-title::after {
    content: ".";
    color: var(--gold);
}

.features-subtitle {
    font-size: 1.3rem;
    color: var(--text-color);
    line-height: 1.7;
    margin: 0;
    opacity: 0.9;
    animation: featuresSlideUp 0.7s ease 0.2s both;
}

/* Hero Visual - Floating Icons */
.features-hero-visual {
    display: none;
    /* Hidden for cleaner look */
}

.features-floating-icons {
    display: none;
}

/* ===== Features Grid Section ===== */
.features-grid-section {
    background: #fff;
    padding: 80px 50px;
}

.features-grid-container {
    max-width: 1200px;
    margin: 0 auto;
}

.features-grid-title {
    font-size: 2.5rem;
    font-weight: 800;
    color: var(--black);
    text-align: center;
    margin: 0 0 16px;
    position: relative;
    display: inline-block;
    width: 100%;
}

.features-grid-title::after {
    content: ".";
    color: var(--gold);
}

.features-grid-subtitle {
    font-size: 1.15rem;
    color: var(--text-color);
    text-align: center;
    max-width: 650px;
    margin: 0 auto 60px;
    opacity: 0.85;
}

.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 30px;
    gap: 30px;
}

/* Feature Card */
.features-card {
    background: #fff;
    border-radius: var(--border-radius);
    padding: 35px 30px;
    text-decoration: none;
    color: inherit;
    border: 1px solid rgba(246, 198, 116, 0.2);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    display: flex;
    flex-direction: column;
    position: relative;
    overflow: hidden;
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.05);
    animation: featuresSlideUp 0.5s ease both;
    animation-delay: calc(var(--index) * 0.08s);
}

.features-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 6px;
    background: linear-gradient(90deg, var(--gold), var(--peach));
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s ease;
}

.features-card:hover {
    transform: translateY(-12px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.12);
    border-color: transparent;
}

.features-card:hover::before {
    transform: scaleX(1);
}

.features-card-icon {
    font-size: 2.8rem;
    margin-bottom: 20px;
    transition: transform 0.3s ease;
}

.features-card:hover .features-card-icon {
    transform: scale(1.15) rotate(5deg);
}

.features-card-title {
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--brown);
    margin: 0 0 12px;
}

.features-card-description {
    font-size: 1rem;
    color: var(--text-color);
    line-height: 1.7;
    margin: 0 0 20px;
    flex-grow: 1;
    opacity: 0.85;
}

.features-card-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--brown);
    transition: all 0.3s ease;
}

.features-card:hover .features-card-link {
    gap: 12px;
    color: var(--orange);
}

.features-card-link svg {
    stroke: currentColor;
    transition: transform 0.3s ease;
}

.features-card:hover .features-card-link svg {
    transform: translateX(4px);
}

/* ===== CTA Section ===== */
.features-cta {
    padding: 100px 50px;
    background: linear-gradient(135deg, var(--brown), #8e6651);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.features-cta::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28255,255,255,0.08%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
    background-size: 100px 100px;
    opacity: 0.5;
    z-index: 0;
}

.features-cta-content {
    max-width: 700px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.features-cta h2 {
    font-size: 2.5rem;
    font-weight: 800;
    color: white;
    margin: 0 0 16px;
}

.features-cta p {
    font-size: 1.2rem;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 35px;
    line-height: 1.7;
}

.features-cta-buttons {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

.features-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 32px;
    font-size: 1.1rem;
    font-weight: 600;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    min-width: 200px;
    font-family: var(--font-family);
}

.features-cta-btn.primary {
    background: linear-gradient(135deg, var(--gold), var(--orange));
    color: var(--black);
    box-shadow: 0 4px 14px rgba(246, 198, 116, 0.4);
}

.features-cta-btn.primary:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(246, 198, 116, 0.5);
}

.features-cta-btn.secondary {
    background: transparent;
    color: white;
    border: 2px solid rgba(255, 255, 255, 0.5);
}

.features-cta-btn.secondary:hover {
    background: rgba(255, 255, 255, 0.1);
    border-color: rgba(255, 255, 255, 0.8);
    transform: translateY(-4px);
}

/* ===== Animations ===== */
@keyframes featuresSlideUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes featuresSlideDown {
    from {
        opacity: 0;
        transform: translateY(-20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ===== Responsive ===== */
@media (max-width: 1024px) {
    .features-hero {
        padding: 100px 30px 60px;
    }

    .features-title {
        font-size: 2.5rem;
    }

    .features-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

@media (max-width: 768px) {
    .features-hero {
        padding: 80px 20px 50px;
    }

    .features-title {
        font-size: 2rem;
    }

    .features-subtitle {
        font-size: 1.1rem;
    }

    .features-grid-section {
        padding: 60px 20px;
    }

    .features-grid-title {
        font-size: 2rem;
    }

    .features-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .features-card {
        padding: 28px 24px;
    }

    .features-cta {
        padding: 60px 20px;
    }

    .features-cta h2 {
        font-size: 1.8rem;
    }

    .features-cta-btn {
        width: 100%;
        max-width: 300px;
    }
}

@media (max-width: 480px) {
    .features-title {
        font-size: 1.75rem;
    }

    .features-badge {
        font-size: 0.8rem;
        padding: 8px 18px;
    }
}
/* FeatureDetailPage.css - Rintintin Design System */
/* Aligned with site DA: brown, gold, peach, Lato font */

.feature-detail-page {
    --brown: #A5765C;
    --gold: #F6C674;
    --peach: #EE9F99;
    --orange: #FFA351;
    --light-gray: #F6F2EF;
    --black: #000000;
    --text-color: #333333;
    --font-family: 'Lato', sans-serif;
    --border-radius: 16px;
    --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);

    font-family: var(--font-family);
    color: var(--text-color);
    background: #fff;
}

/* ===== Breadcrumb ===== */
.fd-breadcrumb {
    max-width: 1200px;
    margin: 0 auto;
    padding: 24px 50px 0;
    font-size: 0.9rem;
    color: var(--text-color);
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

.fd-breadcrumb a {
    color: var(--text-color);
    text-decoration: none;
    transition: color 0.2s ease;
    opacity: 0.7;
}

.fd-breadcrumb a:hover {
    color: var(--brown);
    opacity: 1;
}

.fd-breadcrumb .separator {
    display: inline-block;
    padding: 0 4px;
    color: var(--brown);
    font-size: 0.85rem;
    opacity: 0.5;
}

.fd-breadcrumb .current {
    color: var(--brown);
    font-weight: 600;
}

/* ===== Hero Section ===== */
.fd-hero {
    text-align: center;
    padding: 60px 50px 80px;
    background: linear-gradient(180deg, #fff 0%, var(--light-gray) 100%);
    position: relative;
    overflow: hidden;
}

.fd-hero::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28246, 198, 116, 0.1%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
    background-size: 100px 100px;
    opacity: 0.5;
    z-index: 0;
}

.fd-hero-content {
    max-width: 800px;
    margin: 0 auto;
    position: relative;
    z-index: 1;
}

.fd-hero-icon {
    font-size: 4.5rem;
    margin-bottom: 20px;
    display: inline-block;
    animation: fdBounceIn 0.8s ease;
}

.fd-hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 24px;
    background: linear-gradient(135deg, var(--gold), var(--orange));
    color: var(--black);
    border-radius: 50px;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    margin-bottom: 24px;
    word-spacing: 4px;
}

.fd-hero-title {
    font-size: 2.8rem;
    font-weight: 800;
    color: var(--black);
    line-height: 1.2;
    margin: 0 0 20px;
    animation: fdFadeInUp 0.6s ease 0.1s both;
}

.fd-hero-subtitle {
    font-size: 1.25rem;
    color: var(--text-color);
    line-height: 1.7;
    margin: 0 0 35px;
    opacity: 0.9;
    animation: fdFadeInUp 0.6s ease 0.2s both;
}

.fd-hero-cta {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
    animation: fdFadeInUp 0.6s ease 0.3s both;
}

.fd-btn-primary,
.fd-btn-secondary {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 14px 28px;
    font-size: 1rem;
    font-weight: 600;
    border-radius: 12px;
    text-decoration: none;
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    font-family: var(--font-family);
}

.fd-btn-primary {
    background: linear-gradient(135deg, var(--brown), #8e6651);
    color: #fff;
    box-shadow: 0 4px 14px rgba(165, 118, 92, 0.3);
}

.fd-btn-primary:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 24px rgba(165, 118, 92, 0.4);
}

.fd-btn-secondary {
    background: transparent;
    color: var(--brown);
    border: 2px solid var(--brown);
}

.fd-btn-secondary:hover {
    background: rgba(165, 118, 92, 0.1);
    transform: translateY(-4px);
}

/* ===== Section Styles ===== */
.fd-section-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 50px;
}

.fd-section-title {
    font-size: 2.2rem;
    font-weight: 800;
    color: var(--black);
    text-align: center;
    margin: 0 0 50px;
    position: relative;
}

.fd-section-title::after {
    content: ".";
    color: var(--gold);
}

/* ===== Benefits Section ===== */
.fd-benefits {
    padding: 80px 0;
    background: #fff;
}

.fd-benefits-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    grid-gap: 30px;
    gap: 30px;
}

.fd-benefit-card {
    background: var(--light-gray);
    border-radius: var(--border-radius);
    padding: 35px 30px;
    text-align: center;
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    animation: fdFadeInUp 0.5s ease both;
    animation-delay: calc(var(--index) * 0.08s);
    border: 1px solid rgba(246, 198, 116, 0.1);
}

.fd-benefit-card:hover {
    transform: translateY(-10px);
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.1);
    background: #fff;
    border-color: rgba(246, 198, 116, 0.3);
}

.fd-benefit-icon {
    font-size: 2.8rem;
    margin-bottom: 16px;
    transition: transform 0.3s ease;
}

.fd-benefit-card:hover .fd-benefit-icon {
    transform: scale(1.15) rotate(5deg);
}

.fd-benefit-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: var(--brown);
    margin: 0 0 12px;
}

.fd-benefit-description {
    font-size: 1rem;
    color: var(--text-color);
    line-height: 1.7;
    margin: 0;
    opacity: 0.85;
}

/* ===== How It Works Section ===== */
.fd-how-it-works {
    padding: 80px 0;
    background: var(--light-gray);
}

.fd-steps-container {
    max-width: 800px;
    margin: 0 auto;
}

.fd-step-item {
    display: flex;
    gap: 30px;
    margin-bottom: 40px;
    align-items: flex-start;
}

.fd-step-item:last-child {
    margin-bottom: 0;
}

.fd-step-number {
    flex-shrink: 0;
    width: 60px;
    height: 60px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--gold), var(--orange));
    color: var(--black);
    font-size: 1.4rem;
    font-weight: 800;
    border-radius: 50%;
    box-shadow: 0 4px 15px rgba(246, 198, 116, 0.4);
}

.fd-step-content {
    flex: 1 1;
    padding-top: 8px;
}

.fd-step-title {
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--brown);
    margin: 0 0 8px;
}

.fd-step-description {
    font-size: 1.05rem;
    color: var(--text-color);
    line-height: 1.7;
    margin: 0;
    opacity: 0.9;
}

/* ===== Demo Section ===== */
.fd-demo {
    padding: 80px 0;
    background: #fff;
}

.fd-demo-placeholder {
    max-width: 900px;
    margin: 0 auto;
}

.fd-demo-mockup {
    background: white;
    border-radius: 20px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    border: 1px solid rgba(246, 198, 116, 0.2);
}

.fd-mockup-header {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 16px 24px;
    background: var(--light-gray);
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.fd-mockup-dots {
    display: flex;
    gap: 8px;
}

.fd-mockup-dots span {
    width: 12px;
    height: 12px;
    border-radius: 50%;
}

.fd-mockup-dots span:first-child {
    background: var(--peach);
}

.fd-mockup-dots span:nth-child(2) {
    background: var(--gold);
}

.fd-mockup-dots span:last-child {
    background: var(--brown);
}

.fd-mockup-title {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--brown);
}

.fd-mockup-content {
    padding: 60px 40px;
    min-height: 200px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--text-color);
    font-style: italic;
    font-size: 1.1rem;
    opacity: 0.7;
}

/* ===== Plans Section ===== */
.fd-plans {
    padding: 50px 0;
    background: #fff;
    text-align: center;
}

.fd-plans-badges {
    display: flex;
    gap: 16px;
    justify-content: center;
    flex-wrap: wrap;
}

.fd-plan-badge {
    padding: 12px 24px;
    background: linear-gradient(135deg, rgba(246, 198, 116, 0.2), rgba(238, 159, 153, 0.15));
    border: 2px solid var(--gold);
    color: var(--brown);
    border-radius: 50px;
    font-size: 0.95rem;
    font-weight: 700;
}

/* ===== FAQ Section ===== */
.fd-faq {
    padding: 80px 0;
    background: var(--light-gray);
}

.fd-faq-list {
    max-width: 800px;
    margin: 0 auto;
}

.fd-faq-item {
    background: white;
    border-radius: var(--border-radius);
    margin-bottom: 16px;
    overflow: hidden;
    cursor: pointer;
    transition: all 0.3s ease;
    border: 1px solid rgba(246, 198, 116, 0.15);
}

.fd-faq-item:hover {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.08);
    border-color: rgba(246, 198, 116, 0.3);
}

.fd-faq-question {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 20px 24px;
}

.fd-faq-question h3 {
    font-size: 1.05rem;
    font-weight: 600;
    color: var(--black);
    margin: 0;
}

.fd-faq-toggle {
    font-size: 1.5rem;
    color: var(--brown);
    transition: transform 0.3s ease;
    font-weight: 700;
}

.fd-faq-item.open .fd-faq-toggle {
    transform: rotate(45deg);
}

.fd-faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, padding 0.3s ease;
}

.fd-faq-item.open .fd-faq-answer {
    max-height: 500px;
    padding: 0 24px 20px;
}

.fd-faq-answer p {
    font-size: 1rem;
    color: var(--text-color);
    line-height: 1.7;
    margin: 0;
    opacity: 0.85;
}

/* ===== Final CTA ===== */
.fd-final-cta {
    padding: 100px 50px;
    background: linear-gradient(135deg, var(--brown), #8e6651);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.fd-final-cta::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: url("data:image/svg+xml,%3Csvg width=%27100%27 height=%27100%27 viewBox=%270 0 100 100%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cpath d=%27M30,50 C35,40 40,35 50,35 C60,35 65,40 70,50 C75,60 80,65 90,65 M30,50 C25,60 20,65 10,65 M30,50 C35,60 40,65 50,65 C60,65 65,60 70,50%27 stroke=%27rgba%28255,255,255,0.08%29%27 fill=%27none%27 stroke-width=%275%27 stroke-linecap=%27round%27/%3E%3C/svg%3E");
    background-size: 100px 100px;
    opacity: 0.5;
    z-index: 0;
}

.fd-final-cta .fd-section-container {
    position: relative;
    z-index: 1;
}

.fd-final-cta h2 {
    font-size: 2.5rem;
    font-weight: 800;
    color: white;
    margin: 0 0 16px;
}

.fd-final-cta p {
    font-size: 1.2rem;
    color: rgba(255, 255, 255, 0.9);
    margin: 0 0 35px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.7;
}

.fd-btn-cta-large {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 16px 40px;
    font-size: 1.1rem;
    font-weight: 700;
    background: linear-gradient(135deg, var(--gold), var(--orange));
    color: var(--black);
    border-radius: 12px;
    text-decoration: none;
    box-shadow: 0 4px 20px rgba(246, 198, 116, 0.5);
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    font-family: var(--font-family);
}

.fd-btn-cta-large:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 30px rgba(246, 198, 116, 0.6);
}

/* ===== Back Link ===== */
.fd-back-link {
    text-align: center;
    padding: 50px;
    background: #fff;
}

.fd-back-link a {
    font-size: 1rem;
    font-weight: 600;
    color: var(--brown);
    text-decoration: none;
    transition: all 0.2s ease;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.fd-back-link a:hover {
    color: var(--orange);
    gap: 12px;
}

/* ===== Animations ===== */
@keyframes fdFadeInUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fdBounceIn {
    0% {
        opacity: 0;
        transform: scale(0.5);
    }

    60% {
        transform: scale(1.1) rotate(5deg);
    }

    100% {
        opacity: 1;
        transform: scale(1) rotate(0);
    }
}

/* ===== Responsive ===== */
@media (max-width: 1024px) {
    .fd-benefits-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .fd-section-container {
        padding: 0 30px;
    }
}

@media (max-width: 768px) {
    .fd-breadcrumb {
        padding: 20px 20px 0;
    }

    .fd-hero {
        padding: 40px 20px 60px;
    }

    .fd-hero-icon {
        font-size: 3.5rem;
    }

    .fd-hero-title {
        font-size: 2rem;
    }

    .fd-hero-subtitle {
        font-size: 1.1rem;
    }

    .fd-section-title {
        font-size: 1.8rem;
        margin-bottom: 40px;
    }

    .fd-section-container {
        padding: 0 20px;
    }

    .fd-benefits {
        padding: 60px 0;
    }

    .fd-benefits-grid {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .fd-benefit-card {
        padding: 28px 24px;
    }

    .fd-how-it-works {
        padding: 60px 0;
    }

    .fd-step-item {
        flex-direction: column;
        gap: 16px;
        text-align: center;
        align-items: center;
    }

    .fd-step-number {
        width: 50px;
        height: 50px;
        font-size: 1.2rem;
    }

    .fd-mockup-content {
        padding: 40px 20px;
    }

    .fd-final-cta {
        padding: 60px 20px;
    }

    .fd-final-cta h2 {
        font-size: 1.8rem;
    }

    .fd-back-link {
        padding: 40px 20px;
    }
}

@media (max-width: 480px) {
    .fd-hero-title {
        font-size: 1.75rem;
    }

    .fd-hero-cta {
        flex-direction: column;
        align-items: center;
    }

    .fd-btn-primary,
    .fd-btn-secondary {
        width: 100%;
        max-width: 280px;
    }

    .fd-faq-question h3 {
        font-size: 0.95rem;
    }
}
:root {
  /* Brand palette */
  --brown: #A5765C;
  --brown-700: #8e6651;
  --brown-500: #A5765C;
  --brown-300: #c59b86;
  --gold: #F6C674;
  --gold-600: #E6B664;
  --gold-300: #ffd89a;
  --peach: #EE9F99;

  /* Neutrals */
  --white: #ffffff;
  --black: #1a1a1a;
  --light-gray: #f5f5f5;
  --gray-100: #fafafa;
  --gray-300: #e9ecef;
  --gray-500: #999999;
  --text-color: #333333;

  /* Effects */
  --border-radius: 12px;
  --shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
  --shadow-subtle: 0 2px 8px rgba(0, 0, 0, 0.06);
  --shadow-hover: 0 6px 16px rgba(0, 0, 0, 0.1);
}

/* Ant Design harmonization for brand look (non-invasive) */
.ant-btn-primary {
  border-radius: 24px;
}

.ant-tag-gold {
  color: #A5765C;
  color: var(--brown);
}





/*# sourceMappingURL=main.7e3c6179.css.map*/