/* СтройБух — пользовательские стили поверх Tailwind */

:root {
  --blue-600: #2563EB;
  --blue-700: #1D4ED8;
  --blue-100: #DBEAFE;
  --blue-400: #60A5FA;
  --gray-800: #1F2937;
  --gray-900: #111827;
  --gold: #D97706;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* Тёмное стекло для шапки и меню */
.glass-dark {
  background: rgba(17, 24, 39, 0.85);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* Навигация */
.nav-link {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.625rem 0.875rem;
  border-radius: 0.625rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
  transition: background 0.15s, color 0.15s;
}
.nav-link:hover { background: rgba(255, 255, 255, 0.08); color: #fff; }
.nav-link.active { background: var(--blue-600); color: #fff; }

/* Поля форм */
.form-input {
  padding: 0.5rem 0.75rem;
  border: 1px solid #E5E7EB;
  border-radius: 0.5rem;
  font-size: 0.875rem;
  color: #111827;
  background: #fff;
  transition: border-color 0.15s, box-shadow 0.15s;
}
.form-input:focus {
  outline: none;
  border-color: var(--blue-400);
  box-shadow: 0 0 0 3px rgba(96, 165, 250, 0.3);
}
.form-input:disabled { background: #F9FAFB; color: #9CA3AF; cursor: not-allowed; }

/* Тости */
.toast {
  background: var(--gray-900);
  color: #fff;
  border-radius: 0.75rem;
  padding: 0.75rem 1rem;
  font-size: 0.875rem;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.2);
  animation: toast-in 0.25s ease-out;
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
}
.toast-error { background: #DC2626; }
.toast-success { background: #16A34A; }
@keyframes toast-in {
  from { opacity: 0; transform: translateY(-8px); }
  to { opacity: 1; transform: translateY(0); }
}
.toast-out { animation: toast-out 0.3s ease-in forwards; }
@keyframes toast-out {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(-8px); }
}

/* Фиксация z-index карт Leaflet относительно остальных элементов */
.leaflet-pane, .leaflet-control { z-index: 10 !important; }
.leaflet-top, .leaflet-bottom { z-index: 10 !important; }

/* Календарь платёжный */
.fc .fc-toolbar-title { font-size: 0.9rem; font-weight: 600; color: #374151; }
.fc .fc-col-header-cell-cushion { font-size: 0.7rem; font-weight: 600; color: #6B7280; }
.fc .fc-daygrid-day-number { font-size: 0.75rem; color: #4B5563; }
.fc .fc-event { border-radius: 6px; font-size: 0.7rem; font-weight: 500; border: 0; }
.fc .fc-button { font-size: 0.75rem; padding: 0.2rem 0.5rem; background: #F3F4F6; color: #374151; border: 1px solid #E5E7EB; }
.fc .fc-button:hover { background: #E5E7EB; }
.fc .fc-button-primary:not(:disabled).fc-button-active { background: var(--blue-600); border-color: var(--blue-600); color: #fff; }

/* Скроллбары */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #D1D5DB; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: #9CA3AF; }

/* Анимация появления */
.fade-in { animation: fade-in 0.25s ease-out; }
@keyframes fade-in {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}

/* Спиннер */
.spinner {
  display: inline-block;
  width: 1rem;
  height: 1rem;
  border: 2px solid rgba(255,255,255,.3);
  border-top-color: #fff;
  border-radius: 50%;
  animation: spin .6s linear infinite;
}
.spinner-dark {
  border-color: rgba(0,0,0,.15);
  border-top-color: var(--blue-600);
}
@keyframes spin { to { transform: rotate(360deg); } }