/* NB Invicta Rede — Design System 2.0 / consolidação v51.
   Camada global e semântica carregada por último. Mantém os jogos reais isolados. */

:root {
  --nb51-bg: #f4f7fb;
  --nb51-bg-elevated: #ffffff;
  --nb51-surface: #ffffff;
  --nb51-surface-soft: #edf4fb;
  --nb51-surface-strong: #dce9f7;
  --nb51-text: #0b1f38;
  --nb51-text-secondary: #405670;
  --nb51-link: #075ec8;
  --nb51-link-hover: #03479b;
  --nb51-border: #b9c9da;
  --nb51-border-strong: #829bb5;
  --nb51-focus: #0078d4;
  --nb51-success: #176b43;
  --nb51-warning: #835000;
  --nb51-danger: #a51d32;
  --nb51-on-accent: #ffffff;
  --nb51-shadow: 0 14px 36px rgba(7, 31, 61, .09);
  --nb51-radius-sm: 12px;
  --nb51-radius-md: 18px;
  --nb51-radius-lg: 24px;
  color-scheme: light;
}

html[data-nb-theme="dark"] {
  --nb51-bg: #061321;
  --nb51-bg-elevated: #0b1d32;
  --nb51-surface: #102943;
  --nb51-surface-soft: #163552;
  --nb51-surface-strong: #1d4265;
  --nb51-text: #f7fbff;
  --nb51-text-secondary: #c8d8e9;
  --nb51-link: #8bc4ff;
  --nb51-link-hover: #c3e1ff;
  --nb51-border: #426485;
  --nb51-border-strong: #6f91b4;
  --nb51-focus: #70c8ff;
  --nb51-success: #6ed7a4;
  --nb51-warning: #ffd58a;
  --nb51-danger: #ff9dad;
  --nb51-on-accent: #ffffff;
  --nb51-shadow: 0 18px 44px rgba(0, 0, 0, .28);
  color-scheme: dark;
}

body:not(.games-page):not([data-games-project]) {
  color: var(--nb51-text);
  background-color: var(--nb51-bg);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body:not(.games-page):not([data-games-project]) :where(
  h1, h2, h3, h4, h5, h6, p, li, label, legend, summary, th, td,
  input, select, textarea, button
) {
  font-family: inherit;
}

body:not(.games-page):not([data-games-project]) :where(a:not([class*="button"]):not([role="button"])) {
  text-underline-offset: .18em;
}

body:not(.games-page):not([data-games-project]) :where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
  outline: 3px solid var(--nb51-focus) !important;
  outline-offset: 3px !important;
}

body:not(.games-page):not([data-games-project]) :where(
  input:not([type="checkbox"]):not([type="radio"]), select, textarea
) {
  max-width: 100%;
  min-height: 44px;
  border-color: var(--nb51-border);
  color: var(--nb51-text);
  background-color: var(--nb51-surface);
}

body:not(.games-page):not([data-games-project]) :where(input, textarea)::placeholder {
  color: var(--nb51-text-secondary);
  opacity: .9;
}

body:not(.games-page):not([data-games-project]) :where(button, [role="button"], a[class*="button"]) {
  min-height: 44px;
  touch-action: manipulation;
}

body:not(.games-page):not([data-games-project]) :where(button, input, select, textarea):disabled {
  opacity: .68;
  cursor: not-allowed;
}

body:not(.games-page):not([data-games-project]) :where(table) {
  max-width: 100%;
}

body:not(.games-page):not([data-games-project]) :where(.table-wrap, .table-responsive, [data-table-scroll]) {
  max-width: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
}

/* Superfícies partilhadas que antes mantinham cores fixas de light mode. */
html[data-nb-theme="dark"] body:not(.games-page):not([data-games-project]) :where(
  .faq-grid > details,
  .faq-grid > article,
  .progression-grid-v37 > a,
  .progression-grid-v37 > article,
  .depth-grid > article,
  .two-col-depth > article,
  .seo-guide,
  .seo-guide__step,
  .seo-guide__faq details,
  .seo-guide__source-grid a,
  .seo-guide__related-grid a,
  .nl-recommendation-v2,
  .dashboard-v2-actions a,
  .dashboard-v2-project-card > a
) {
  border-color: var(--nb51-border) !important;
  color: var(--nb51-text) !important;
  background: var(--nb51-surface) !important;
  box-shadow: var(--nb51-shadow);
}

html[data-nb-theme="dark"] body:not(.games-page):not([data-games-project]) :where(
  .faq-grid summary,
  .faq-grid h2,
  .faq-grid h3,
  .progression-grid-v37 strong,
  .depth-grid h2,
  .depth-grid h3,
  .two-col-depth h2,
  .two-col-depth h3,
  .seo-guide h2,
  .seo-guide h3,
  .seo-guide summary,
  .nl-recommendation-v2 strong
) {
  color: var(--nb51-text) !important;
}

html[data-nb-theme="dark"] body:not(.games-page):not([data-games-project]) :where(
  .faq-grid p,
  .progression-grid-v37 span,
  .depth-grid p,
  .depth-grid li,
  .two-col-depth p,
  .two-col-depth li,
  .seo-guide p,
  .seo-guide li,
  .seo-guide__editorial,
  .nl-recommendation-v2 p
) {
  color: var(--nb51-text-secondary) !important;
}

/* Guias editoriais: os tokens acompanham o tema em todos os modelos de página. */
.seo-guide {
  --seo-ink: var(--nb51-text);
  --seo-muted: var(--nb51-text-secondary);
  --seo-line: var(--nb51-border);
  --seo-soft: var(--nb51-surface-soft);
}

html[data-nb-theme="dark"] .seo-guide__eyebrow {
  color: #d9ecff !important;
  background: #17456f !important;
}

html[data-nb-theme="dark"] .seo-guide :where(.seo-guide__source-grid a, .seo-guide__related-grid a) {
  color: var(--nb51-link) !important;
}

/* Bússola Jovem: superfície semântica compatível com ambos os temas. */
html[data-nb-theme="dark"] .bj-compass-card-v2 {
  border-color: var(--nb51-border) !important;
  color: var(--nb51-text) !important;
  background: var(--nb51-surface) !important;
}

html[data-nb-theme="dark"] .bj-compass-card-v2 :where(h2, h3, strong) { color: var(--nb51-text) !important; }
html[data-nb-theme="dark"] .bj-compass-card-v2 :where(p, small, span) { color: var(--nb51-text-secondary) !important; }
html[data-nb-theme="dark"] .bj-compass-card-v2 :where(.bj-status-chip-v2, .bj-route-state-v2) {
  border: 1px solid var(--nb51-border) !important;
  color: var(--nb51-text) !important;
  background: var(--nb51-surface-soft) !important;
}
html[data-nb-theme="dark"] .bj-compass-card-v2 .bj-route-number-v2 {
  border-color: var(--nb51-border) !important;
  color: #d9d8ff !important;
  background: #2e326c !important;
}
html[data-nb-theme="dark"] .bj-hero-v2 .nb-button-v2:not(.is-secondary) {
  border-color: #6193c2 !important;
  color: var(--nb51-text) !important;
  background: #173f67 !important;
}

/* NavegaLetras e Meu NB: corrigem cartões internos e ações que permaneciam claros. */
html[data-nb-theme="dark"] .nl-route-icon-v2 {
  color: #ffd6dd !important;
  background: #692135 !important;
}
html[data-nb-theme="dark"] .nl-recommendation-v2 a { color: var(--nb51-link) !important; }
html[data-nb-theme="dark"] :where(.dashboard-v2-actions a, .dashboard-v2-project-card > a) {
  border-color: #6689ad !important;
  color: #eaf4ff !important;
  background: #173c62 !important;
}
html[data-nb-theme="dark"] .dashboard-v2-actions .is-secondary {
  color: #ffffff !important;
  background: #1e4268 !important;
}

/* Estados de projetos e barras de progresso. */
html[data-nb-theme="dark"] .projects-page-grid .is-development > span {
  border: 1px solid #739bd0 !important;
  color: #e6f1ff !important;
  background: #234f82 !important;
}
html[data-nb-theme="dark"] .projects-page-grid .is-soon > span {
  border: 1px solid #a88448 !important;
  color: #fff0c9 !important;
  background: #624114 !important;
}
html[data-nb-theme="dark"] .nb-v50-progress,
html[data-nb-theme="dark"] .dashboard-v2-progress {
  background: #31506f !important;
}

/* Elementos flutuantes: zonas seguras e ausência de sobreposição no mobile. */
body:not(.games-page):not([data-games-project]) main {
  min-width: 0;
  padding-bottom: max(1.5rem, env(safe-area-inset-bottom));
}

@media (max-width: 760px) {
  body:not(.games-page):not([data-games-project]) {
    overflow-x: clip;
    font-size: 16px;
  }

  body:not(.games-page):not([data-games-project]) :where(h1) {
    font-size: clamp(2rem, 10vw, 2.55rem);
    line-height: 1.06;
    overflow-wrap: anywhere;
  }

  body:not(.games-page):not([data-games-project]) :where(h2) {
    font-size: clamp(1.45rem, 7vw, 1.8rem);
    line-height: 1.14;
    overflow-wrap: anywhere;
  }

  body:not(.games-page):not([data-games-project]) :where(
    .seo-guide,
    .nb-v50-panel,
    .nb-v50-cloud,
    .dashboard-v2-panel,
    .dashboard-v2-project-card,
    .settings-card,
    .profile-card
  ) {
    border-radius: var(--nb51-radius-md);
    padding: 1rem;
  }

  body:not(.games-page):not([data-games-project]) :where(
    .faq-grid,
    .progression-grid-v37,
    .depth-grid,
    .two-col-depth,
    .dashboard-v2-projects,
    .dashboard-v2-favorites,
    .nl-route-grid-v2
  ) {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body:not(.games-page):not([data-games-project]) :where(
    input:not([type="checkbox"]):not([type="radio"]), select, textarea
  ) {
    width: 100%;
    font-size: 16px;
  }

  body:not(.games-page):not([data-games-project]) :where(.titor-fab, .titor-launcher, [data-titor-launcher]) {
    right: max(.75rem, env(safe-area-inset-right)) !important;
    bottom: max(.75rem, env(safe-area-inset-bottom)) !important;
  }

  body:not(.games-page):not([data-games-project]) :where(.nb-favorite-floating, .favorite-floating, [data-favorite-floating]) {
    right: max(.75rem, env(safe-area-inset-right)) !important;
    bottom: calc(max(.75rem, env(safe-area-inset-bottom)) + 4.25rem) !important;
  }

  body:not(.games-page):not([data-games-project]) :where(
    .nb-favorite-floating .label,
    .favorite-floating .label,
    [data-favorite-floating] .label
  ) {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip-path: inset(50%) !important;
    white-space: nowrap !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body:not(.games-page):not([data-games-project]) *,
  body:not(.games-page):not([data-games-project]) *::before,
  body:not(.games-page):not([data-games-project]) *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}

@media (forced-colors: active) {
  body:not(.games-page):not([data-games-project]) :where(a, button, input, select, textarea, summary) {
    forced-color-adjust: auto;
  }
}
