@tailwind base;@tailwind components;@tailwind utilities;@layer base{*{@apply border-secondary-200;}body{@apply bg-secondary-50 text-secondary-900 antialiased;font-feature-settings:"cv02","cv03","cv04","cv11"}html{scroll-behavior:smooth}::selection{@apply bg-primary-500 text-white;}}@layer components{.container{@apply max-w-7xl mx-auto px-4 sm:px-6 lg:px-8;}.btn{@apply inline-flex items-center justify-center px-4 py-2 rounded-lg font-medium transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2 disabled:opacity-50 disabled:cursor-not-allowed;}.btn-primary{@apply btn bg-primary-600 text-white hover:bg-primary-700 focus:ring-primary-500;}.btn-secondary{@apply btn bg-secondary-100 text-secondary-900 hover:bg-secondary-200 focus:ring-secondary-500;}.btn-outline{@apply btn border-2 border-primary-600 text-primary-600 hover:bg-primary-50 focus:ring-primary-500;}.btn-ghost{@apply btn text-secondary-600 hover:bg-secondary-100 focus:ring-secondary-500;}.btn-danger{@apply btn bg-red-600 text-white hover:bg-red-700 focus:ring-red-500;}.btn-sm{@apply px-3 py-1.5 text-sm;}.btn-lg{@apply px-6 py-3 text-base;}.input{@apply w-full px-4 py-2.5 rounded-lg border border-secondary-300 bg-white text-secondary-900 placeholder-secondary-400 transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-primary-500 focus:border-transparent;}.input-error{@apply border-red-500 focus:ring-red-500;}.label{@apply block text-sm font-medium text-secondary-700 mb-1.5;}.card{@apply bg-white rounded-xl shadow-card border border-secondary-100 overflow-hidden transition-shadow duration-200 hover:shadow-soft;}.card-hover{@apply card hover:shadow-elevated hover:-translate-y-1;}.badge{@apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;}.badge-primary{@apply badge bg-primary-100 text-primary-800;}.badge-secondary{@apply badge bg-secondary-100 text-secondary-800;}.badge-success{@apply badge bg-green-100 text-green-800;}.badge-warning{@apply badge bg-yellow-100 text-yellow-800;}.badge-danger{@apply badge bg-red-100 text-red-800;}.link{@apply text-primary-600 hover:text-primary-700 underline-offset-2 hover:underline transition-colors;}}@layer utilities{.text-balance{text-wrap:balance}.animate-in{animation:fadeIn .3s ease-out}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}}.leaflet-container{@apply rounded-xl;}.leaflet-popup-content-wrapper{@apply rounded-lg shadow-elevated;}.leaflet-popup-content{@apply p-2;}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{@apply bg-secondary-100;}::-webkit-scrollbar-thumb{@apply bg-secondary-300 rounded-full hover:bg-secondary-400;}:focus-visible{@apply outline-none ring-2 ring-primary-500 ring-offset-2;}.error-message{@apply text-red-600 text-sm mt-1;}.form-group{@apply mb-4;}.spinner{@apply animate-spin rounded-full border-2 border-secondary-200 border-t-primary-600;}.skeleton{@apply animate-pulse bg-secondary-200 rounded;}.toast{@apply bg-white rounded-lg shadow-elevated border border-secondary-100 p-4;}.toast-success{@apply toast border-l-4 border-l-green-500;}.toast-error{@apply toast border-l-4 border-l-red-500;}.toast-info{@apply toast border-l-4 border-l-blue-500;}.modal-backdrop{@apply fixed inset-0 bg-black/50 backdrop-blur-sm z-50;}.dropdown-menu{@apply absolute right-0 mt-2 w-48 bg-white rounded-lg shadow-elevated border border-secondary-100 py-1 z-50;}.dropdown-item{@apply w-full px-4 py-2 text-left text-sm text-secondary-700 hover:bg-secondary-50 transition-colors;}.table-container{@apply overflow-x-auto;}.table{@apply w-full text-sm text-left;}.table th{@apply px-4 py-3 font-medium text-secondary-500 uppercase tracking-wider border-b border-secondary-200;}.table td{@apply px-4 py-3 text-secondary-900 border-b border-secondary-100;}.table tbody tr{@apply hover:bg-secondary-50 transition-colors;}.avatar{@apply inline-flex items-center justify-center rounded-full bg-primary-100 text-primary-700 font-medium;}.avatar-sm{@apply h-8 w-8 text-xs;}.avatar-md{@apply h-10 w-10 text-sm;}.avatar-lg{@apply h-12 w-12 text-base;}.avatar-xl{@apply h-16 w-16 text-lg;}.page-enter{@apply animate-fade-in animate-slide-up;}.grid-auto-fit{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid-auto-fill{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
