/* ============================================================
   Verkiezing Vibecheck — Global styles
   Palette: teal #a0f5e9 · sky #9ddcf2 · lilac #a6a0f5
            mauve #eaa0f5 · apple #99f09f · orange #f5ad6e
   ============================================================ */

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

h1, h2, h3, h4, h5, h6 {
  letter-spacing: -0.025em;
}

/* --- Logo: saturated teal → violet gradient + permanent underline --- */
/* Using more vivid hues than the pastel palette so the text reads on white */
.site-logo {
  font-size: 0.875rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  background: linear-gradient(120deg, #2dd4bf 0%, #a78bfa 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  text-decoration: none;
  position: relative;
  padding-bottom: 3px;
}

.site-logo::after {
  content: '';
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 2px;
  border-radius: 1px;
  background: linear-gradient(120deg, #2dd4bf 0%, #a78bfa 100%);
}

/* --- Nav links: slide-in colored underline on hover --- */
.nav-link {
  position: relative;
  font-size: 0.875rem;
  font-weight: 500;
  color: #6b7280;
  text-decoration: none;
  transition: color 0.15s ease;
  padding-bottom: 2px;
}

.nav-link:hover {
  color: #111827;
}

.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px;
  left: 0;
  right: 0;
  height: 2px;
  border-radius: 1px;
  background: var(--accent, #a6a0f5);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.2s ease;
}

.nav-link:hover::after {
  transform: scaleX(1);
}

/* --- Gradient top border for cards ---
   Usage: add class="card-accent-top" + style="--card-accent: linear-gradient(...)"
   overflow:hidden lets border-radius clip the ::before strip cleanly            --- */
.card-accent-top {
  position: relative;
  overflow: hidden;
}

.card-accent-top::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--card-accent, linear-gradient(90deg, #2dd4bf, #a78bfa));
}

/* --- Gradient border button (white fill, gradient ring) ---
   Uses ::after mask-composite to cut the interior out of a
   gradient fill, leaving only a coloured border.               --- */
.btn-gradient-border {
  position: relative;
  background: white;
  color: #374151;
  font-weight: 500;
  border: none;
  cursor: pointer;
  transition: background-color 0.15s ease;
}

.btn-gradient-border:hover {
  background-color: rgba(160, 245, 233, 0.15);
}

.btn-gradient-border::after {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1.5px;
  background: linear-gradient(90deg, #a0f5e9, #a6a0f5);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

/* --- Active nav link --- */
.nav-link--active {
  color: #111827;
}

.nav-link--active::after {
  transform: scaleX(1);
}

/* --- Motion type badges (replace generic Tailwind blue/purple) --- */
.badge-motie {
  background: rgba(160, 245, 233, 0.4);
  color: #134e4a;
}

.badge-amendement {
  background: rgba(166, 160, 245, 0.4);
  color: #312e81;
}

/* --- Search suggestion chips --- */
.suggestion-chip:hover {
  border-color: #a0f5e9;
  background: rgba(160, 245, 233, 0.25);
  color: #111827;
}

/* --- Cards: lighter shadow + subtle border, more editorial --- */
.shadow {
  box-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.04) !important;
  border: 1px solid #e5e7eb !important;
}
.shadow-md {
  box-shadow: 0 2px 8px 0 rgb(0 0 0 / 0.07) !important;
  border: 1px solid #e5e7eb !important;
}
.hover\:shadow-md:hover {
  box-shadow: 0 2px 8px 0 rgb(0 0 0 / 0.07) !important;
  border-color: #d1d5db !important;
}
