/* 看護記録アシスタント - Custom Styles */

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Hiragino Sans', 'Noto Sans JP', sans-serif;
}

/* Custom scrollbar for textareas */
.custom-scrollbar::-webkit-scrollbar {
  width: 8px;
}

.custom-scrollbar::-webkit-scrollbar-track {
  background: #f1f1f1;
  border-radius: 4px;
}

.custom-scrollbar::-webkit-scrollbar-thumb {
  background: #c1c1c1;
  border-radius: 4px;
}

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

/* Animation for loading spinner */
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.animate-spin {
  animation: spin 1s linear infinite;
}

/* Button transition effects */
.transition-colors {
  transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
}

/* Focus styles for accessibility */
textarea:focus,
button:focus {
  outline: 2px solid #ec4899;
  outline-offset: 2px;
}

/* Voice input button animation */
.voice-active {
  animation: pulse 1.5s ease-in-out infinite alternate;
}

@keyframes pulse {
  from {
    box-shadow: 0 0 0 0 rgba(236, 72, 153, 0.7);
  }
  to {
    box-shadow: 0 0 0 10px rgba(236, 72, 153, 0);
  }
}

/* Responsive improvements */
@media (max-width: 768px) {
  .grid.lg\:grid-cols-2 {
    grid-template-columns: 1fr;
  }
  
  .grid.md\:grid-cols-3 {
    grid-template-columns: 1fr;
  }
  
  .h-80 {
    height: 15rem;
  }
}

/* Pink-themed slider styles */
.slider-pink {
  -webkit-appearance: none;
  appearance: none;
  background: linear-gradient(to right, #f9a8d4 0%, #f9a8d4 100%);
  outline: none;
  opacity: 0.8;
  transition: opacity 0.2s;
}

.slider-pink:hover {
  opacity: 1;
}

.slider-pink::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #ec4899;
  cursor: pointer;
  border: 2px solid #ffffff;
  box-shadow: 0 2px 4px rgba(236, 72, 153, 0.3);
  transition: all 0.2s ease-in-out;
}

.slider-pink::-webkit-slider-thumb:hover {
  background: #be185d;
  transform: scale(1.1);
  box-shadow: 0 4px 8px rgba(236, 72, 153, 0.4);
}

.slider-pink::-moz-range-thumb {
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #ec4899;
  cursor: pointer;
  border: 2px solid #ffffff;
  box-shadow: 0 2px 4px rgba(236, 72, 153, 0.3);
  transition: all 0.2s ease-in-out;
}

.slider-pink::-moz-range-thumb:hover {
  background: #be185d;
  transform: scale(1.1);
  box-shadow: 0 4px 8px rgba(236, 72, 153, 0.4);
}

/* Character counter styles */
.char-counter-warning {
  color: #dc2626 !important;
  font-weight: 600;
}

.char-counter-danger {
  color: #991b1b !important;
  font-weight: 700;
  animation: pulse-warning 1s ease-in-out infinite alternate;
}

@keyframes pulse-warning {
  from {
    opacity: 0.6;
  }
  to {
    opacity: 1;
  }
}

/* Print styles */
@media print {
  .no-print {
    display: none !important;
  }
  
  .print-break {
    page-break-before: always;
  }
}