.no-scrollbar::-webkit-scrollbar {
  display: none;
}
.no-scrollbar {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

@page {
  size: A4;
  margin: 0;
}

@media print {
  body, html {
    height: auto;
    overflow: visible;
  }
  
  body > * {
    display: none !important;
  }

  #printable-content, #printable-content * {
      visibility: visible;
  }
  #printable-content {
      display: block !important;
      position: absolute;
      left: 0;
      top: 0;
      width: 210mm;
      min-height: 297mm;
      margin: 0;
      padding: 0;
      transform: none !important;
  }

  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }
}

/* Uiverse Delete Button Styles */
.uiverse-delete-btn {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background-color: rgb(20, 20, 20);
  border: none;
  font-weight: 600;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0px 0px 20px rgba(0, 0, 0, 0.164);
  cursor: pointer;
  transition-duration: .3s;
  overflow: hidden;
  position: relative;
}

.uiverse-svgIcon {
  width: 12px;
  transition-duration: .3s;
}

.uiverse-svgIcon path {
  fill: white;
}

.uiverse-delete-btn:hover {
  width: 110px;
  border-radius: 50px;
  transition-duration: .3s;
  background-color: rgb(255, 69, 69);
  align-items: center;
}

.uiverse-delete-btn:hover .uiverse-svgIcon {
  width: 40px;
  transition-duration: .3s;
  transform: translateY(60%);
}

.uiverse-delete-btn::before {
  position: absolute;
  top: -20px;
  content: "Delete";
  color: white;
  transition-duration: .3s;
  font-size: 2px;
}

.uiverse-delete-btn:hover::before {
  font-size: 13px;
  opacity: 1;
  transform: translateY(30px);
  transition-duration: .3s;
}

/* --- Dark Mode Toggle Switch CSS (Uiverse) --- */
#checkbox {
  display: none;
}

.switch {
  position: relative;
  width: 50px; /* Reduced slightly for nav bar fit */
  height: 50px;
  background-color: rgb(99, 99, 99);
  border-radius: 50%;
  z-index: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid rgb(126, 126, 126);
  box-shadow: 0px 0px 3px rgb(2, 2, 2) inset;
  transition: all 0.3s;
}
.switch svg {
  width: 1.2em;
}
.switch svg path {
  fill: rgb(48, 48, 48);
}
#checkbox:checked + .switch {
  box-shadow: 0px 0px 1px rgb(151, 243, 255) inset,
    0px 0px 2px rgb(151, 243, 255) inset, 0px 0px 10px rgb(151, 243, 255) inset,
    0px 0px 40px rgb(151, 243, 255), 0px 0px 100px rgb(151, 243, 255),
    0px 0px 5px rgb(151, 243, 255);
  border: 2px solid rgb(255, 255, 255);
  background-color: rgb(146, 180, 184);
}
#checkbox:checked + .switch svg {
  filter: drop-shadow(0px 0px 5px rgb(151, 243, 255));
}
#checkbox:checked + .switch svg path {
  fill: rgb(255, 255, 255);
}

/* ========================================
   ANTI-FOCUS BLUR SYSTEM
   Protection contre les captures d'écran
   ======================================== */

.anti-focus-blur {
  filter: blur(15px) !important;
  pointer-events: none !important;
  user-select: none !important;
  transition: filter 0.3s ease-out;
}

.anti-focus-overlay {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.85);
  backdrop-filter: blur(4px);
  z-index: 9999;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  animation: fadeIn 0.2s ease-out;
}

.anti-focus-overlay-icon {
  width: 80px;
  height: 80px;
  background: rgba(239, 68, 68, 0.2);
  border: 2px solid rgba(239, 68, 68, 0.5);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: pulse 2s infinite;
}

.anti-focus-overlay-text {
  color: white;
  font-size: 1.25rem;
  font-weight: 600;
  text-align: center;
  max-width: 300px;
}

.anti-focus-overlay-subtext {
  color: rgba(255, 255, 255, 0.6);
  font-size: 0.875rem;
  text-align: center;
}

@keyframes fadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes pulse {
  0%, 100% { transform: scale(1); opacity: 1; }
  50% { transform: scale(1.05); opacity: 0.8; }
}

/* ========================================
   MOBILE RESPONSIVE UTILITIES
   ======================================== */

/* Carousel scrollable pour mobile */
.mobile-carousel {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  -webkit-overflow-scrolling: touch;
  gap: 1rem;
  padding-bottom: 1rem;
  margin: 0 -1rem;
  padding-left: 1rem;
  padding-right: 1rem;
}

.mobile-carousel::-webkit-scrollbar {
  height: 4px;
}

.mobile-carousel::-webkit-scrollbar-track {
  background: rgba(0, 0, 0, 0.1);
  border-radius: 2px;
}

.mobile-carousel::-webkit-scrollbar-thumb {
  background: rgba(59, 130, 246, 0.5);
  border-radius: 2px;
}

.mobile-carousel > * {
  scroll-snap-align: start;
  flex-shrink: 0;
}

/* Indicateurs de scroll horizontal */
.scroll-hint {
  position: relative;
}

.scroll-hint::after {
  content: '';
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 40px;
  background: linear-gradient(to right, transparent, rgba(255, 255, 255, 0.9));
  pointer-events: none;
}

.dark .scroll-hint::after {
  background: linear-gradient(to right, transparent, rgba(15, 23, 42, 0.9));
}


/* Responsive styles for Anti-Focus Overlay on mobile */
@media (max-width: 640px) {
  .anti-focus-overlay-icon {
    width: 60px;
    height: 60px;
  }
  .anti-focus-overlay-icon svg {
    width: 24px;
    height: 24px;
  }
  .anti-focus-overlay-text {
    font-size: 1.1rem;
    max-width: 90%;
  }
  .anti-focus-overlay-subtext {
    font-size: 0.85rem;
    padding: 0 1rem;
  }
}

