@import url('https://fonts.bunny.net/css?family=inter:400,500,600,700&display=swap');

body {
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

[v-cloak] { display: none !important; }

::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: transparent;
}
::-webkit-scrollbar-thumb {
  background: #d1d5db;
  border-radius: 3px;
}
::-webkit-scrollbar-thumb:hover {
  background: #9ca3af;
}

input[type="month"]::-webkit-calendar-picker-indicator {
  opacity: 0.5;
  cursor: pointer;
}

.toast-enter-active { animation: toast-in 0.3s ease; }
.toast-leave-active { animation: toast-out 0.3s ease; }
@keyframes toast-in {
  from { transform: translateY(1rem); opacity: 0; }
  to { transform: translateY(0); opacity: 1; }
}
@keyframes toast-out {
  from { transform: translateY(0); opacity: 1; }
  to { transform: translateY(-1rem); opacity: 0; }
}

.spreadsheet-cell {
  min-width: 100px;
  text-align: right;
  padding: 0.375rem 0.5rem;
  font-size: 0.8125rem;
  font-variant-numeric: tabular-nums;
}

.spreadsheet-cell input {
  width: 100%;
  text-align: right;
  border: none;
  outline: none;
  background: transparent;
  font-size: inherit;
  font-variant-numeric: tabular-nums;
  padding: 0;
}

.spreadsheet-cell:focus-within {
  background-color: #eef2ff;
  outline: 2px solid #6366f1;
  outline-offset: -2px;
}

.pnl-row-header { font-weight: 600; background-color: #f9fafb; }
.pnl-row-subtotal { font-weight: 600; }
.pnl-row-total { font-weight: 700; background-color: #f3f4f6; }
.pnl-row-separator { font-weight: 700; background-color: #e5e7eb; }

.pnl-forecast { background-color: #eff6ff; }

.negative-value { color: #dc2626; }

.skeleton {
  background: linear-gradient(90deg, #f3f4f6 25%, #e5e7eb 50%, #f3f4f6 75%);
  background-size: 200% 100%;
  animation: skeleton-pulse 1.5s ease-in-out infinite;
  border-radius: 0.375rem;
}
@keyframes skeleton-pulse {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}
