@tailwind base;@tailwind components;@tailwind utilities;:root{--color-accent: #2563eb;--color-accent-hover: #1d4ed8;--ease-out-expo: cubic-bezier(.16, 1, .3, 1)}.font-serif{font-family:"Instrument Serif",Georgia,serif}.font-sans{font-family:DM Sans,system-ui,sans-serif}*{-webkit-tap-highlight-color:transparent}.upload-zone{@apply relative overflow-hidden rounded-2xl border-2 border-dashed border-stone-300 bg-white transition-all duration-300 cursor-pointer;}.upload-zone>*{pointer-events:none}.upload-zone:hover,.upload-zone.dz-drag-hover{@apply border-stone-400 bg-stone-50;}.upload-zone.dz-drag-hover{@apply border-blue-500 bg-blue-50/50;transform:scale(1.01)}.dropzone.upload-zone{border:2px dashed #d6d3d1!important;border-radius:1rem!important;background:transparent!important;padding:0!important;min-height:auto!important}.dropzone.upload-zone:hover{border-color:#a8a29e!important}.dropzone .dz-message{margin:0!important}.dropzone .dz-preview{display:none!important}.custom-select{@apply appearance-none bg-white border border-stone-200 rounded-xl px-4 py-3 pr-10 text-stone-700 text-sm font-medium transition-all duration-200 cursor-pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2378716c'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M19 9l-7 7-7-7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:16px;min-width:80px}.custom-select:hover{@apply border-stone-300;}.custom-select:focus{@apply outline-none ring-2 ring-blue-500/20 border-blue-500;}.custom-checkbox{@apply w-5 h-5 rounded-md border-2 border-stone-300 bg-white transition-all duration-200 cursor-pointer appearance-none;}.custom-checkbox:checked{@apply bg-blue-600 border-blue-600;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='white' stroke-width='3'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M5 13l4 4L19 7'%3E%3C/path%3E%3C/svg%3E");background-repeat:no-repeat;background-position:center;background-size:14px}.custom-checkbox:hover{@apply border-stone-400;}.custom-checkbox:focus{@apply outline-none ring-2 ring-blue-500/20;}.file-card{@apply bg-white rounded-2xl border border-stone-200 p-5 transition-all duration-300;animation:slideUp .4s var(--ease-out-expo) forwards}.file-card:hover{@apply border-stone-300 shadow-sm;}@keyframes slideUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.btn-download{@apply inline-flex items-center gap-2 px-5 py-2.5 bg-stone-900 text-white text-sm font-medium rounded-xl transition-all duration-200;}.btn-download:hover{@apply bg-stone-800;transform:translateY(-1px)}.btn-download:active{transform:translateY(0)}.btn-uniquify{@apply relative inline-flex items-center justify-center w-14 h-14 bg-gradient-to-br from-violet-500 to-fuchsia-500 text-white rounded-xl transition-all duration-200 cursor-pointer;}.btn-uniquify:hover{@apply from-violet-600 to-fuchsia-600;transform:translateY(-1px);box-shadow:0 4px 12px #8b5cf64d}.btn-uniquify:active{transform:translateY(0)}.upload-icon{@apply transition-transform duration-300;}.upload-zone:hover .upload-icon{transform:translateY(-2px)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn .5s var(--ease-out-expo) forwards}.thumbnail{@apply w-16 h-16 rounded-xl object-cover bg-stone-100 border border-stone-200;}.format-badge{@apply inline-flex items-center px-2 py-0.5 rounded-md text-xs font-medium uppercase tracking-wider;}.format-badge-original{@apply bg-stone-100 text-stone-600;}.format-badge-converted{@apply bg-emerald-50 text-emerald-700;}.converter-card{@apply bg-white rounded-2xl border border-stone-200 p-6;}.result-card{@apply bg-white rounded-2xl border-2 border-emerald-200 p-6;animation:slideUp .4s var(--ease-out-expo) forwards}.history-card{@apply bg-white rounded-xl border border-stone-200 p-4 transition-all duration-300;animation:slideUp .4s var(--ease-out-expo) forwards}.history-card:hover{@apply border-stone-300 shadow-sm;}
