:root {
  --sui-primary: #a1572a;
  --sui-nav: #253544;
  --sui-ink: #172331;
  --sui-line: #d8dee6;
  --sui-paper: #f5f7fa;
}

* {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

body {
  margin: 0;
  font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: var(--sui-ink);
  background: var(--sui-paper);
}

.app-scrollbar {
  scrollbar-width: thin;
  scrollbar-color: rgba(37, 53, 68, 0.28) transparent;
}

.app-scrollbar::-webkit-scrollbar {
  width: 10px;
  height: 10px;
}

.app-scrollbar::-webkit-scrollbar-thumb {
  background: rgba(37, 53, 68, 0.24);
  border: 3px solid transparent;
  border-radius: 999px;
  background-clip: content-box;
}

.field-error {
  border-color: rgb(185 28 28) !important;
  background: rgb(254 242 242) !important;
}

.sidebar-link {
  color: rgba(255, 255, 255, 0.76);
}

.sidebar-link:hover,
.sidebar-link.is-active {
  color: #fff;
  background: rgba(255, 255, 255, 0.08);
}

.sidebar-link.is-active {
  box-shadow: inset 3px 0 0 var(--sui-primary);
}

.status-pulse {
  animation: statusPulse 2.1s ease-in-out infinite;
}

@keyframes statusPulse {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.55;
  }
}

#sidebar.is-open,
#ai-panel.is-open {
  transform: translateX(0);
}

@media (min-width: 1024px) {
  #sidebar.is-collapsed {
    width: 5rem;
  }

  #sidebar.is-collapsed .sidebar-label,
  #sidebar.is-collapsed .sidebar-caption,
  #sidebar.is-collapsed .sidebar-section,
  #sidebar.is-collapsed .sidebar-count,
  #sidebar.is-collapsed .sidebar-profile {
    display: none;
  }

  #sidebar.is-collapsed .sidebar-link,
  #sidebar.is-collapsed .sidebar-action {
    justify-content: center;
  }
}

.hero-image {
  background-image:
    linear-gradient(90deg, rgba(23, 35, 49, 0.92) 0%, rgba(23, 35, 49, 0.78) 42%, rgba(23, 35, 49, 0.18) 100%),
    url("/static/assets/hero-law-office.jpg");
  background-position: center;
  background-size: cover;
}

.nav-blur {
  background: rgba(245, 247, 250, 0.96);
  backdrop-filter: blur(16px);
  box-shadow: 0 8px 24px rgba(23, 35, 49, 0.08);
}

.section-kicker {
  letter-spacing: 0.12em;
}

section[id] {
  scroll-margin-top: 104px;
}
