:root {
  --ui-ring: var(--ui-ring, 0 0 0 3px rgba(15, 118, 110, 0.22));
  --ui-ease: var(--ui-ease, cubic-bezier(0.2, 0.8, 0.2, 1));
  --ui-fast: var(--ui-fast, 160ms);
  --ui-med: var(--ui-med, 260ms);
}

* {
  -webkit-tap-highlight-color: rgba(0,0,0,0);
}

:focus-visible {
  outline: none;
  box-shadow: var(--ui-ring);
}

a, button, input, select, textarea {
  transition: color var(--ui-fast) var(--ui-ease),
              background var(--ui-fast) var(--ui-ease),
              border-color var(--ui-fast) var(--ui-ease),
              box-shadow var(--ui-fast) var(--ui-ease),
              transform var(--ui-fast) var(--ui-ease),
              opacity var(--ui-fast) var(--ui-ease);
}

.btn, .btn-add, .btn-filter, .btn-export, .btn-link, .btn-reset, .act, .btn-modal, .btn-save {
  transform: translateY(0);
}

.btn:hover, .btn-add:hover, .btn-filter:hover, .btn-export:hover, .btn-link:hover, .btn-reset:hover,
.act:hover, .btn-modal:hover, .btn-save:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 20px rgba(20, 24, 28, 0.12);
}

.btn:active, .btn-add:active, .btn-filter:active, .btn-export:active, .btn-link:active, .btn-reset:active,
.act:active, .btn-modal:active, .btn-save:active {
  transform: translateY(0);
}

input:focus, select:focus, textarea:focus {
  border-color: var(--accent, var(--color-primary));
  box-shadow: var(--ui-ring);
}

.nav-item {
  position: relative;
}

.nav-item.active::after {
  content: "";
  position: absolute;
  right: 10px;
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--accent-2, var(--color-accent, #f3b35c));
}

.booking-tile, .stat-card, .prop-card, .rev-item, .panel, .calendar-section, .house-card {
  transform: translateY(0);
}

.booking-tile:hover, .stat-card:hover, .prop-card:hover, .rev-item:hover, .panel:hover, .calendar-section:hover, .house-card:hover {
  transform: translateY(-2px);
}

.main {
  animation: uiFadeIn var(--ui-med) var(--ui-ease);
}

.year-accordion > .year-panel {
  animation: uiRise 420ms var(--ui-ease) both;
}

.year-accordion > .year-panel:nth-child(1) { animation-delay: 30ms; }
.year-accordion > .year-panel:nth-child(2) { animation-delay: 60ms; }
.year-accordion > .year-panel:nth-child(3) { animation-delay: 90ms; }
.year-accordion > .year-panel:nth-child(4) { animation-delay: 120ms; }

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

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

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; }
}
