/* System font override for daisyUI cupcake theme. */

:root {
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, system-ui, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
  --color-info: oklch(0.88 0.06 230);
  --color-info-content: oklch(0.35 0.09 230);
}

html, body, button, input, select, textarea, .btn, .input, .table, .navbar {
  font-family: var(--font-sans) !important;
}

/* Ensure navbars scroll with page content (never sticky/fixed). */
.navbar {
  position: static !important;
  top: auto !important;
  z-index: auto !important;
}

code, pre, kbd, samp {
  font-family: var(--font-mono) !important;
}

@media print {
  header, footer, form, #pdf-btn, .navbar { display: none !important; }
  body { background: white !important; }
  #report-content { padding: 0 !important; }
}

/* Hide native <details> marker on hamburger summary */
details.dropdown summary::-webkit-details-marker,
details.dropdown summary::marker {
  display: none;
}

/* Visible focus ring for keyboard navigation. DaisyUI's defaults are subtle on cupcake. */
:focus-visible {
  outline: 2px solid oklch(0.55 0.13 250);
  outline-offset: 2px;
  border-radius: 0.25rem;
}
.btn:focus-visible,
.input:focus-visible,
.select:focus-visible,
.textarea:focus-visible,
.checkbox:focus-visible,
.range:focus-visible,
a:focus-visible {
  outline: 2px solid oklch(0.55 0.13 250);
  outline-offset: 2px;
}

/* Skip-to-content link: visually hidden until focused via Tab. */
.skip-link {
  position: absolute;
  top: 0.5rem;
  left: 0.5rem;
  z-index: 9999;
  padding: 0.5rem 0.75rem;
  background: oklch(0.99 0.01 95);
  color: oklch(0.25 0.04 250);
  border: 2px solid oklch(0.55 0.13 250);
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 600;
  transform: translateY(-150%);
  transition: transform 150ms ease;
}
.skip-link:focus {
  transform: translateY(0);
}

.hero-fade {
  animation: heroFadeIn 1.2s ease-out forwards;
}
@keyframes heroFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

/* Used by JS-rendered sign-in fallback in js/personalised.js */
.personal-form-section {
  display: grid;
  gap: 1rem;
  padding: 1.5rem;
  border-radius: 0.5rem;
  background: oklch(var(--b1));
  border: 1px solid oklch(var(--b3));
}

.personal-section-label {
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  opacity: 0.6;
}
