@tailwind base;@tailwind components;@tailwind utilities;@layer base{html{scroll-behavior:smooth}body{@apply bg-gray-50 dark:bg-gray-900 text-gray-900 dark:text-white;font-feature-settings:"rlig" 1,"calt" 1}*:focus-visible{@apply outline-2 outline-offset-2 outline-blue-500;}*{transition-property:background-color,border-color,color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}}@layer components{.btn{@apply inline-flex items-center justify-center px-4 py-2 border border-transparent text-sm font-medium rounded-lg transition-colors duration-200 focus:outline-none focus:ring-2 focus:ring-offset-2;}.btn-primary{@apply btn bg-blue-600 hover:bg-blue-700 text-white focus:ring-blue-500 disabled:bg-gray-300 disabled:cursor-not-allowed;}.btn-secondary{@apply btn bg-gray-100 hover:bg-gray-200 text-gray-900 dark:bg-gray-800 dark:hover:bg-gray-700 dark:text-white focus:ring-gray-500 disabled:bg-gray-50 dark:disabled:bg-gray-900 disabled:cursor-not-allowed;}.btn-ghost{@apply btn bg-transparent hover:bg-gray-100 dark:hover:bg-gray-800 text-gray-700 dark:text-gray-300 focus:ring-gray-500;}.btn-danger{@apply btn bg-red-600 hover:bg-red-700 text-white focus:ring-red-500 disabled:bg-gray-300 disabled:cursor-not-allowed;}.btn-sm{@apply px-3 py-1.5 text-xs;}.btn-lg{@apply px-6 py-3 text-base;}.card{@apply bg-white dark:bg-gray-800 border border-gray-200 dark:border-gray-700 rounded-xl shadow-sm;}.card-header{@apply px-6 py-4 border-b border-gray-200 dark:border-gray-700;}.card-body{@apply px-6 py-4;}.card-footer{@apply px-6 py-4 border-t border-gray-200 dark:border-gray-700 bg-gray-50 dark:bg-gray-900 rounded-b-xl;}.form-group{@apply space-y-2;}.form-label{@apply block text-sm font-medium text-gray-700 dark:text-gray-300;}.form-input{@apply w-full px-3 py-2 border border-gray-300 dark:border-gray-600 rounded-lg shadow-sm focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent bg-white dark:bg-gray-800 text-gray-900 dark:text-white placeholder-gray-500 dark:placeholder-gray-400 disabled:bg-gray-50 dark:disabled:bg-gray-900 disabled:cursor-not-allowed;}.form-textarea{@apply form-input resize-vertical;}.form-select{@apply form-input;}.form-checkbox{@apply h-4 w-4 text-blue-600 border-gray-300 rounded focus:ring-blue-500 disabled:opacity-50;}.form-radio{@apply h-4 w-4 text-blue-600 border-gray-300 focus:ring-blue-500 disabled:opacity-50;}.badge{@apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium;}.badge-primary{@apply badge bg-blue-100 text-blue-800 dark:bg-blue-900 dark:text-blue-200;}.badge-secondary{@apply badge bg-gray-100 text-gray-800 dark:bg-gray-900 dark:text-gray-200;}.badge-success{@apply badge bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-200;}.badge-warning{@apply badge bg-yellow-100 text-yellow-800 dark:bg-yellow-900 dark:text-yellow-200;}.badge-danger{@apply badge bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-200;}.status-dot{@apply inline-flex items-center space-x-1;}.status-dot:before{content:"";@apply w-2 h-2 rounded-full;}.status-online:before{@apply bg-green-500;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.status-offline:before{@apply bg-gray-400;}.status-busy:before{@apply bg-yellow-500;animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.status-error:before{@apply bg-red-500;}.loading-spinner{@apply inline-block w-4 h-4 border-2 border-current border-t-transparent rounded-full animate-spin;}.loading-dots:after{content:"";animation:loading-dots 1.5s steps(4,end) infinite}@keyframes loading-dots{0%,20%{content:""}40%{content:"."}60%{content:".."}80%,to{content:"..."}}.truncate-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.truncate-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.custom-scrollbar{scrollbar-width:thin;scrollbar-color:rgb(156 163 175 / .3) transparent}.custom-scrollbar::-webkit-scrollbar{width:6px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.custom-scrollbar::-webkit-scrollbar-thumb{background-color:#9ca3af4d;border-radius:3px}.custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#9ca3af80}.dark .custom-scrollbar{scrollbar-color:rgb(75 85 99 / .3) transparent}.dark .custom-scrollbar::-webkit-scrollbar-thumb{background-color:#4b55634d}.dark .custom-scrollbar::-webkit-scrollbar-thumb:hover{background-color:#4b556380}}@layer utilities{.text-shadow{text-shadow:0 1px 2px rgba(0,0,0,.1)}.text-shadow-md{text-shadow:0 2px 4px rgba(0,0,0,.1)}.text-shadow-lg{text-shadow:0 4px 8px rgba(0,0,0,.15)}.safe-top{padding-top:env(safe-area-inset-top)}.safe-bottom{padding-bottom:env(safe-area-inset-bottom)}.safe-left{padding-left:env(safe-area-inset-left)}.safe-right{padding-right:env(safe-area-inset-right)}.scrollbar-hide{-ms-overflow-style:none;scrollbar-width:none}.scrollbar-hide::-webkit-scrollbar{display:none}.glass{background:#fffc;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.2)}.dark .glass{background:#000c;border:1px solid rgba(255,255,255,.1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes bounce{0%,to{transform:translateY(-25%);animation-timing-function:cubic-bezier(.8,0,1,1)}50%{transform:none;animation-timing-function:cubic-bezier(0,0,.2,1)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ping{75%,to{transform:scale(2);opacity:0}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes slide-in-up{0%{transform:translateY(10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-down{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}@media print{.no-print{display:none!important}.print-break-before{page-break-before:always}.print-break-after{page-break-after:always}.print-break-inside-avoid{page-break-inside:avoid}}@media (prefers-contrast: high){.btn-primary{@apply border-2 border-blue-800 dark:border-blue-300;}.form-input{@apply border-2 border-gray-600 dark:border-gray-400;}}@media (prefers-reduced-motion: reduce){*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (max-width: 640px){.mobile-menu-overlay{@apply fixed inset-0 bg-black bg-opacity-50 z-40;}.mobile-menu{@apply fixed inset-y-0 left-0 w-64 bg-white dark:bg-gray-800 shadow-xl z-50 transform transition-transform duration-300 ease-in-out;}.mobile-menu-closed{@apply -translate-x-full;}}
