*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.6;color:#1f2937}.btn-primary{@apply bg-green-600 hover:bg-green-700 text-white font-semibold py-2 px-6 rounded-lg transition duration-300;@apply disabled:opacity-50 disabled:cursor-not-allowed;}.btn-secondary{@apply bg-gray-100 hover:bg-gray-200 text-gray-700 font-semibold py-2 px-6 rounded-lg transition duration-300 border border-gray-300;}.input-field{@apply w-full px-4 py-2 border border-gray-300 rounded-lg;@apply focus:outline-none focus:ring-2 focus:ring-green-500 focus:border-transparent;@apply transition-all duration-200;}.input-field:focus{@apply border-green-500;}.input-field:disabled{@apply bg-gray-100 cursor-not-allowed;}textarea.input-field{resize:vertical;min-height:80px}select.input-field{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='M6 8l4 4 4-4'/%3e%3c/svg%3e");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;appearance:none}input[type=file]{cursor:pointer}input[type=file]::file-selector-button{margin-right:1rem;padding:.5rem 1rem;border-radius:.375rem;border:0;font-size:.875rem;font-weight:600;background-color:#d1fae5;color:#065f46;cursor:pointer;transition:background-color .2s}input[type=file]::file-selector-button:hover{background-color:#a7f3d0}input[type=checkbox]{width:1.25rem;height:1.25rem;border-radius:.25rem;border:1px solid #d1d5db;cursor:pointer;accent-color:#10b981}.badge-green{@apply inline-block bg-green-100 text-green-800 px-3 py-1 rounded-full text-sm font-semibold;}.badge-red{@apply inline-block bg-red-100 text-red-800 px-3 py-1 rounded-full text-sm font-semibold;}.badge-yellow{@apply inline-block bg-yellow-100 text-yellow-800 px-3 py-1 rounded-full text-sm font-semibold;}.badge-blue{@apply inline-block bg-blue-100 text-blue-800 px-3 py-1 rounded-full text-sm font-semibold;}.badge-purple{@apply inline-block bg-purple-100 text-purple-800 px-3 py-1 rounded-full text-sm font-semibold;}.card{@apply bg-white rounded-lg shadow-md overflow-hidden transition-transform hover:scale-105;}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .5s ease-in-out}@keyframes slideIn{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}.slide-in{animation:slideIn .3s ease-out}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner{border:3px solid #f3f4f6;border-top:3px solid #10b981;border-radius:50%;width:40px;height:40px;animation:spin 1s linear infinite}body.modal-open{overflow:hidden}.modal-backdrop{position:fixed;inset:0;background-color:#00000080;z-index:9998;display:flex;align-items:center;justify-content:center}.modal-content{background:#fff;border-radius:.5rem;box-shadow:0 25px 50px -12px #00000040;z-index:9999;max-height:90vh;overflow-y:auto}table{border-collapse:collapse}th{text-align:left;font-weight:600;text-transform:uppercase;font-size:.75rem;letter-spacing:.05em}tr:hover{@apply bg-gray-50;}.text-shadow{text-shadow:0 2px 4px rgba(0,0,0,.1)}.shadow-soft{box-shadow:0 2px 8px #00000014}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}::-webkit-scrollbar-thumb{background:#cbd5e0;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#a0aec0}@media (max-width: 768px){.btn-primary,.btn-secondary{@apply py-2 px-4 text-sm;}.input-field{@apply text-sm;}}.input-error{@apply border-red-500 focus:ring-red-500;}.input-success{@apply border-green-500 focus:ring-green-500;}.error-message{@apply text-red-500 text-sm mt-1;}.success-message{@apply text-green-600 text-sm mt-1;}*{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}button,a{transition:all .2s ease-in-out}:focus-visible{outline:2px solid #10b981;outline-offset:2px}button:focus-visible,a:focus-visible{@apply ring-2 ring-green-500 ring-offset-2;}
