[hidden] { display: none !important; }
:focus-visible { outline: 3px solid #1d75a4; outline-offset: 4px; }
html { scroll-padding-top: 105px; }
#country-other, #region-other { margin-top: 8px; }
.file-input { position: absolute; width: 1px; height: 1px; clip-path: inset(50%); }
.drop:has(+ .file-input:focus-visible) { outline: 3px solid #1d75a4; outline-offset: 4px; }
.analysis-mode { min-inline-size: 0; margin: 20px 0 0; padding: 16px; border: 1px solid var(--line); border-radius: 10px; }
.analysis-mode legend { font-weight: 800; color: var(--navy); }
.analysis-mode label { display: block; line-height: 1.5; margin: 6px 0; }
.analysis-mode p, #report-documents { font-size: 14px; line-height: 1.5; color: var(--muted); overflow-wrap: anywhere; }
.analysis-mode #ai-consent { padding: 12px; margin-top: 12px; border-radius: 8px; background: var(--mint); }
#label-note a, #ai-status a { color: var(--green); text-decoration: underline; font-weight: 750; }
.file-item, .result, #report-title { overflow-wrap: anywhere; }
.result blockquote { margin-inline: 0; }
.sdg-fallback { display: none; color: var(--navy); font-size: 12px; font-weight: 750; padding: 6px; }
.sdg-official[hidden] + .sdg-fallback { display: block; }
@media (max-width: 520px) {
  .top-inner { flex-wrap: wrap; gap: 8px; }
  .top nav { gap: 14px; flex-wrap: wrap; }
  .wizard .steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .diagnostic .orbit { animation: none; }
}
@media print {
  .top, .intro, .steps, .footer, .bottom, .learning-section, .shell > p, .report-lead .actions, .screen:not([data-screen="3"]) { display: none !important; }
  body, .shell, .wizard, .screen { background: #fff; padding: 0; margin: 0; box-shadow: none; border: 0; }
  .score-layout { display: block; }
  .score-layout .stat { margin-bottom: 12px; }
  .result { break-inside: avoid; }
}
.data-notice { margin-block: 12px; font-size: 14px; }
.data-notice summary { cursor: pointer; color: var(--green); font-weight: 750; }
.data-notice a { color: var(--green); text-decoration: underline; }
