body { background-color: #f3f4f6; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; -webkit-tap-highlight-color: transparent; }
.card { @apply bg-white rounded-xl shadow-sm p-5; }
.input { @apply border border-gray-300 rounded-lg px-3 py-2 w-full focus:outline-none focus:ring-2 focus:ring-blue-500; }
.input-lg { @apply text-2xl font-bold py-3 text-center border-blue-200 focus:border-blue-500; }
.btn { @apply px-4 py-2 rounded-lg font-medium transition-colors active:scale-95 transform; }
.btn-primary { @apply bg-blue-600 text-white hover:bg-blue-700 shadow-md shadow-blue-200; }
.btn-danger { @apply bg-red-500 text-white hover:bg-red-600; }
.btn-ghost { @apply text-gray-500 hover:text-gray-700; }
.fab { position: fixed; bottom: 1.5rem; right: 1.5rem; z-index: 50; }
.fab-btn { @apply w-16 h-16 rounded-full bg-blue-600 text-white shadow-lg flex items-center justify-center text-4xl transition-transform hover:scale-105 active:scale-90; }
.overlay { @apply fixed inset-0 bg-black/50 z-50 flex items-end sm:items-center justify-center backdrop-blur-sm p-0 sm:p-4; }
.modal-box { @apply bg-white w-full sm:max-w-md rounded-t-2xl sm:rounded-2xl p-6 shadow-2xl animate-slide-up sm:animate-none; }
.modal-box-lg { @apply bg-white w-full sm:max-w-2xl rounded-t-2xl sm:rounded-2xl p-6 shadow-2xl animate-slide-up sm:animate-none max-h-[85vh] overflow-y-auto; }
@keyframes slide-up { from { transform: translateY(100%); } to { transform: translateY(0); } }
