@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@400;500;600;700;900&display=swap');
body { font-family: 'Noto Sans TC', sans-serif; }
.fade-in { animation: fadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1); }
@keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

input:focus, select:focus { outline: none; box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.2) !important; border-color: #14b8a6 !important; }
.dark input:focus { box-shadow: 0 0 0 3px rgba(20, 184, 166, 0.4) !important; }

/* Flatpickr 深色模式覆蓋 */
.dark .flatpickr-calendar { background: #1f2937; border-color: #374151; box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.5); }
.dark .flatpickr-day { color: #d1d5db; }
.dark .flatpickr-day:hover { background: #374151; border-color: #374151; }
.dark .flatpickr-day.selected { background: #0d9488 !important; border-color: #0d9488 !important; color: white; }
.dark .flatpickr-month, .dark .flatpickr-weekday { color: #e5e7eb; fill: #e5e7eb; }
.dark span.flatpickr-weekday { color: #9ca3af; }