body { font-family: 'Inter', sans-serif; color: #333333; }
h1, h2, h3, h4, .font-display { font-family: 'Sora', sans-serif; }

.shadow-soft { box-shadow: 0 1px 2px rgba(17,34,30,0.04), 0 8px 24px -4px rgba(31,116,99,0.10), 0 2px 6px rgba(31,116,99,0.06); }
.shadow-soft-lg { box-shadow: 0 4px 8px rgba(17,34,30,0.04), 0 24px 48px -12px rgba(30,58,95,0.18), 0 8px 16px -4px rgba(31,116,99,0.10); }
.shadow-float { box-shadow: 0 2px 4px rgba(17,34,30,0.06), 0 16px 32px -8px rgba(31,116,99,0.16); }

.btn-primary {
  background-color: #1F7463;
  color: #fff;
  transition: transform 220ms cubic-bezier(0.34, 1.56, 0.64, 1), background-color 200ms ease, box-shadow 200ms ease;
}
.btn-primary:hover { background-color: #155047; transform: translateY(-2px); box-shadow: 0 12px 24px -6px rgba(31,116,99,0.35); }
.btn-primary:active { transform: translateY(0) scale(0.98); }
.btn-primary:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.btn-primary:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(244,180,0,0.55), 0 12px 24px -6px rgba(31,116,99,0.35); }

.btn-secondary {
  background-color: transparent;
  color: #1E3A5F;
  border: 1.5px solid #d6e0eb;
  transition: transform 220ms cubic-bezier(0.34, 1.56, 0.64, 1), border-color 200ms ease, background-color 200ms ease;
}
.btn-secondary:hover { background-color: #eef2f6; border-color: #aac0d7; }
.btn-secondary:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(30,58,95,0.25); }

.nav-link { position: relative; transition: background-color 200ms ease, color 200ms ease; }
.nav-link.active { background-color: #eef6f3; color: #1F7463; font-weight: 600; }

.sidebar-icon { transition: transform 200ms ease; }
.nav-link:hover .sidebar-icon { transform: scale(1.08); }

.card { background: #fff; border: 1px solid #d7ebe3; border-radius: 1rem; }

.slot-cell { transition: transform 180ms cubic-bezier(0.34, 1.56, 0.64, 1), background-color 180ms ease, box-shadow 180ms ease; }
.slot-cell.available:hover { transform: translateY(-2px); box-shadow: 0 8px 16px -4px rgba(31,116,99,0.25); }

input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline: none; border-color: #1F7463; box-shadow: 0 0 0 3px rgba(31,116,99,0.15);
}

@keyframes spin-soft { to { transform: rotate(360deg); } }
.spinner { animation: spin-soft 0.8s linear infinite; }
