:root {
  --qa-blue: #3498db;
  --qa-blue-deep: #2980b9;
  --qa-blue-ink: #1f5f94;
  --qa-red: #d32f2f;
  --qa-bg: #f4f7fb;
  --qa-surface: #ffffff;
  --qa-surface-soft: #f9f9f9;
  --qa-text: #333333;
  --qa-muted: #66717b;
  --qa-line: #dddddd;
  --qa-radius: 12px;
  --qa-shadow: 0 4px 10px rgba(0, 0, 0, .10);
}

html[data-theme="dark"] {
  color-scheme: dark;
  --qa-bg: #121a21;
  --qa-surface: #1b2731;
  --qa-surface-soft: #22313d;
  --qa-text: #edf3f7;
  --qa-muted: #b9c4cc;
  --qa-line: #3a4a56;
  --qa-shadow: 0 5px 16px rgba(0, 0, 0, .30);
}

html { scroll-behavior: smooth; }

body {
  background-color: var(--qa-bg) !important;
  color: var(--qa-text) !important;
  line-height: 1.6;
}

.qa-breadcrumbs {
  width: min(100% - 32px, 1000px);
  margin: 18px auto 4px;
  padding: 10px 14px;
  color: var(--qa-muted);
  font-size: 15px;
  line-height: 1.45;
  text-align: left;
  grid-column: 1 / -1;
}
.qa-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.qa-breadcrumbs li { display: inline-flex; align-items: center; gap: 7px; }
.qa-breadcrumbs li:not(:last-child)::after { content: "›"; color: var(--qa-muted); font-weight: 700; }
.qa-breadcrumbs a { color: var(--qa-blue-ink); font-weight: 650; text-decoration: none; }
.qa-breadcrumbs a:hover { text-decoration: underline; }
.qa-breadcrumbs [aria-current="page"] { color: var(--qa-text); }

body.home .main-header { height: 24px !important; }

.intro,
.section-card,
.content-card,
.faq-section,
.login-card,
.registro-hero,
.registro-choice,
.glossary-intro,
.term-card {
  text-align: center !important;
}

.intro p,
.section-card:not(#quiz-container) > p,
.content-card p,
.faq-section > p,
.login-card p,
.registro-hero p,
.registro-choice p,
.glossary-intro p,
.term-card dt {
  text-align: center !important;
}

#quiz-container,
.quiz-domanda,
.answer-list,
.answer-option,
.registro-table-wrap,
.registro-faq details,
.registro-builder,
.term-card dd {
  text-align: left !important;
}

/* La navbar riprende l'impostazione bianca della nuova homepage. */
.navbar {
  background: #ffffff !important;
  border-bottom: 1px solid #dddddd !important;
  box-shadow: 0 3px 10px rgba(0, 0, 0, .10) !important;
}

.navbar p,
.navbar a { color: #333333 !important; }
.navbar img { filter: none !important; opacity: 1 !important; }
.navbar .nav-left img {
  width: auto !important;
  max-height: 120px !important;
  object-fit: contain;
}
.navbar-banner {
  width: auto !important;
  height: 100px !important;
  max-width: min(48vw, 560px) !important;
  object-fit: contain;
}

.qa-login-page { padding-top: 140px !important; }
.qa-login-navbar { height: 130px !important; }
.qa-login-navbar .nav-left img { height: 86px !important; max-height: 86px !important; }
.qa-login-navbar .nav-left p { margin: 0 !important; font-size: 12px !important; }
.qa-login-navbar .navbar-banner { height: 72px !important; }

.main-header {
  background: #eeeeee !important;
  border-bottom: 1px solid #dddddd !important;
}

.intro,
.section-card,
.faq-section,
.login-card,
.content-card,
.quiz-container,
.result-box {
  border-radius: var(--qa-radius) !important;
  box-shadow: var(--qa-shadow) !important;
}

.intro,
.section-card:not(.card-blue),
.faq-section,
.login-card,
.content-card,
.quiz-container,
.result-box {
  background-color: var(--qa-surface) !important;
  color: var(--qa-text) !important;
}

h1,
h2,
h3,
h4 { color: var(--qa-blue-ink) !important; }

main p,
main li,
.section-card p,
.faq-answer p,
.footer-content p { color: var(--qa-text) !important; }

.btn,
a.back-btn,
input[type="button"],
input[type="submit"] {
  border-radius: 8px !important;
  background-color: var(--qa-blue) !important;
  color: #ffffff !important;
  font-weight: 600 !important;
  box-shadow: none !important;
  transition: background-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.btn:hover,
a.back-btn:hover,
input[type="button"]:hover,
input[type="submit"]:hover {
  background-color: var(--qa-blue-deep) !important;
  transform: translateY(-1px);
  box-shadow: 0 4px 10px rgba(0, 0, 0, .12) !important;
}

.home-tools .registro-card,
.home-tools .manutentori-card { border-top-color: var(--qa-red) !important; }

.home-tools .registro-card .btn,
.home-tools .manutentori-card .btn,
#vaiQuizBtn { background-color: var(--qa-red) !important; }

.home-tools .registro-card .btn:hover,
.home-tools .manutentori-card .btn:hover,
#vaiQuizBtn:hover { background-color: #b71c1c !important; }

.card-blue {
  background: var(--qa-blue) !important;
  color: #ffffff !important;
}

.card-blue h2,
.card-blue h3,
.card-blue p { color: #ffffff !important; }

.btn-white {
  background: #ffffff !important;
  color: var(--qa-blue-deep) !important;
  border-color: #ffffff !important;
}

.document-item,
.material-item { background-color: var(--qa-surface-soft) !important; }

.document-item p,
.material-item p {
  color: var(--qa-muted) !important;
  min-height: 3.3em;
  margin: 0 0 18px !important;
}

input,
select,
textarea {
  background: var(--qa-surface) !important;
  color: var(--qa-text) !important;
  border-color: var(--qa-line) !important;
}

table { border-color: var(--qa-line) !important; }
th { background: var(--qa-surface-soft) !important; color: var(--qa-text) !important; }
td { background: var(--qa-surface) !important; color: var(--qa-text) !important; border-color: var(--qa-line) !important; }

.contact-section {
  background: var(--qa-surface) !important;
  color: var(--qa-text) !important;
  border-top-color: var(--qa-line) !important;
}

.footer-content a { color: var(--qa-blue-ink) !important; }
.footer-content hr { border-color: var(--qa-line) !important; }

html[data-theme="dark"] h1,
html[data-theme="dark"] h2,
html[data-theme="dark"] h3,
html[data-theme="dark"] h4 { color: #80c8f4 !important; }

html[data-theme="dark"] .main-header {
  background: #202c35 !important;
  border-bottom-color: var(--qa-line) !important;
}

html[data-theme="dark"] .faq-question { color: var(--qa-text) !important; }

/* Registro: contrasto completo nel tema scuro. */
html[data-theme="dark"] .registro-page,
html[data-theme="dark"] .registro-hero,
html[data-theme="dark"] .registro-panel,
html[data-theme="dark"] .registro-choice,
html[data-theme="dark"] .presidio-card,
html[data-theme="dark"] .registro-faq details,
html[data-theme="dark"] .registro-summary {
  background: var(--qa-surface) !important;
  color: var(--qa-text) !important;
  border-color: var(--qa-line) !important;
}

html[data-theme="dark"] .registro-hero p,
html[data-theme="dark"] .registro-choice p,
html[data-theme="dark"] .registro-builder__head p,
html[data-theme="dark"] .registro-deadlines__intro,
html[data-theme="dark"] .registro-deadlines__sources,
html[data-theme="dark"] .registro-faq__intro,
html[data-theme="dark"] .registro-faq details p,
html[data-theme="dark"] .presidio-quantity { color: var(--qa-muted) !important; }

html[data-theme="dark"] .registro-note,
html[data-theme="dark"] .registro-deadlines__note {
  background: #38272a !important;
  color: #ffd9d9 !important;
}

html[data-theme="dark"] .registro-privacy {
  background: #20372b !important;
  color: #d9f7e4 !important;
}

html[data-theme="dark"] .registro-btn--secondary,
html[data-theme="dark"] .registro-type-btn {
  background: var(--qa-surface-soft) !important;
  color: #8fd0f5 !important;
  border-color: #5ca8d4 !important;
}

html[data-theme="dark"] .registro-type-btn.is-active {
  background: var(--qa-blue) !important;
  color: #ffffff !important;
}

html[data-theme="dark"] .presidio-card:has(.presidio-check:checked) {
  background: #17364a !important;
  border-color: #5ca8d4 !important;
}

html[data-theme="dark"] .presidio-qty:disabled {
  background: #2b3842 !important;
  color: #9caab5 !important;
}

/* Schede 2FOR e 3FOR */
html[data-theme="dark"] #quiz-container,
html[data-theme="dark"] #quiz-container.section-card,
html[data-theme="dark"] .quiz-domanda,
html[data-theme="dark"] .quiz-domanda:hover,
html[data-theme="dark"] .main-content:hover .quiz-domanda,
html[data-theme="dark"] .quiz-risultato {
  background: var(--qa-surface) !important;
  color: var(--qa-text) !important;
  border-color: var(--qa-line) !important;
}

html[data-theme="dark"] #quiz-container .quiz-domanda h3,
html[data-theme="dark"] #quiz-container .quiz-domanda label,
html[data-theme="dark"] #quiz-container > p,
html[data-theme="dark"] .quiz-risultato p {
  color: var(--qa-text);
}

html[data-theme="dark"] #quiz-container input[type="radio"] {
  accent-color: #5eb1e5;
}

/* Glossario addetti e glossario tecnici */
html[data-theme="dark"] body.glossary-page,
html[data-theme="dark"] .glossary-main,
html[data-theme="dark"] .glossary-intro,
html[data-theme="dark"] .search-panel,
html[data-theme="dark"] .term-card,
html[data-theme="dark"] .glossary-section,
html[data-theme="dark"] .glossary-toolbar {
  background: var(--qa-surface) !important;
  color: var(--qa-text) !important;
  border-color: var(--qa-line) !important;
}

html[data-theme="dark"] .page-strip { background: #202c35 !important; border-color: var(--qa-line) !important; }
html[data-theme="dark"] .breadcrumbs,
html[data-theme="dark"] .glossary-intro p,
html[data-theme="dark"] .term-card dd,
html[data-theme="dark"] .term-alias,
html[data-theme="dark"] #resultCount,
html[data-theme="dark"] .search-label,
html[data-theme="dark"] .glossary-section p,
html[data-theme="dark"] .glossary-section li { color: var(--qa-text) !important; }
html[data-theme="dark"] #termSearch,
html[data-theme="dark"] .alphabet button {
  background: var(--qa-surface-soft) !important;
  color: #8fd0f5 !important;
  border-color: var(--qa-line) !important;
}
html[data-theme="dark"] .alphabet button.is-active { background: var(--qa-blue) !important; color: #fff !important; }

@media (max-width: 999px) {
  html, body { width: 100%; min-width: 0 !important; overflow-x: hidden !important; }
  body { font-size: 16px !important; }
  input, select, textarea { font-size: 16px !important; }
  main h1 { font-size: clamp(24px, 7vw, 30px) !important; line-height: 1.2 !important; }
  main h2 { font-size: clamp(20px, 5.8vw, 25px) !important; line-height: 1.25 !important; }
  main p, main li { font-size: 16px !important; line-height: 1.65 !important; }
  .navbar {
    height: 120px !important;
    padding: 0 20px !important;
    flex-direction: row !important;
    justify-content: flex-start !important;
  }

  .navbar .nav-left img { height: 80px !important; width: auto !important; }
  .navbar .nav-left p { display: none; }
  .navbar-banner,
  .navbar .nav-center { display: none !important; }

  main,
  .main-content {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .main-content > ins.adsbygoogle {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-inline: auto !important;
    justify-self: stretch !important;
  }

  .qa-breadcrumbs {
    width: calc(100% - 24px);
    margin: 10px auto 2px;
    padding: 8px 4px;
    font-size: 15px;
  }

  .section-card,
  .main-content > .section-card,
  .main-section .section-card,
  .quiz-grid .section-card { min-height: 0 !important; }

  .qa-login-page { padding-top: 106px !important; }
  .qa-login-navbar { height: 96px !important; }
  .qa-login-navbar .nav-left img { height: 68px !important; max-height: 68px !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition: none !important;
  }
}
