:root {
  --accent-color: #fc8396;
  --radius: 0.625rem;
}

* {
  box-sizing: border-box;
}

html, body {
  margin: 0;
  padding: 0;
}

body {
  font-family: Inter, sans-serif;
  background: #fff;
  color: #111;
}

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.scrollbar-hide::-webkit-scrollbar { display: none; }
.scrollbar-hide { -ms-overflow-style: none; scrollbar-width: none; }

@keyframes fadeDown {
  from { opacity: 0; transform: translateY(-20px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes fadeUp {
  from { opacity: 0; transform: translateY(32px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes slideUp {
  from { transform: translateY(110%); }
  to { transform: translateY(0); }
}

.anim-fade-down {
  animation: fadeDown 0.5s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.anim-fade-up {
  animation: fadeUp 0.6s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.anim-slide-up {
  animation: slideUp 0.7s cubic-bezier(0.22, 1, 0.36, 1) both;
}

@keyframes shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}

.animate-shake { animation: shake 0.4s ease; }

.theme-moon { display: none; }
.dark .theme-sun { display: none; }
.dark .theme-moon { display: block; }

.file-ready {
  border-color: #fc8396 !important;
  background: rgba(252, 131, 150, 0.05);
  box-shadow: 0 0 20px rgba(252, 131, 150, 0.1);
}

.upload-busy {
  background: #f3f4f6 !important;
  color: #9ca3af !important;
  cursor: not-allowed;
}
