/*
 * V5 PROD POLISH — Phase 1
 *
 * Additive overlay per pagine prod (dashboard, analysis, report, compare-v2).
 * Scope: scrollbar hover-only + heatmap contrast bump compare-v2.
 *
 * NON tocca markup, NON tocca componenti (ScoreArcGauge intact, Chart.js intact).
 * Pattern: pure CSS additive, override mirati.
 *
 * Sess 106 — 2026-05-11
 * Linked from: dashboard.html, analysis.html, report.html, compare-v2.html
 */

/* ============================================================
 * A) Scrollbar hover-only — main page scroll (body)
 * ============================================================ */
body {
  scrollbar-width: thin;
  scrollbar-color: transparent transparent;
}

body:hover {
  scrollbar-color: var(--hair-strong, rgba(26,26,36,0.12)) transparent;
}

body::-webkit-scrollbar {
  width: 8px;
}

body::-webkit-scrollbar-track {
  background: transparent;
}

body::-webkit-scrollbar-thumb {
  background: transparent;
  border-radius: 4px;
}

body:hover::-webkit-scrollbar-thumb {
  background: var(--hair-strong, rgba(26,26,36,0.12));
}

body:hover::-webkit-scrollbar-thumb:hover {
  background: var(--ink-500, rgba(125,125,138,1));
}

/* Dark theme scrollbar */
[data-theme="dark"] body:hover {
  scrollbar-color: var(--hair-strong, rgba(255,255,255,0.14)) transparent;
}

[data-theme="dark"] body:hover::-webkit-scrollbar-thumb {
  background: var(--hair-strong, rgba(255,255,255,0.14));
}

[data-theme="dark"] body:hover::-webkit-scrollbar-thumb:hover {
  background: var(--ink-500, rgba(122,122,135,1));
}

/* ============================================================
 * B) Compare-v2 heatmap contrast bump (uniforme con preview-v5)
 *
 * Aumenta saturazione cell background via color-mix 32% per coerenza
 * cromatica e leggibilità. Fallback Safari ≤17 via @supports.
 * ============================================================ */
.cmpv2-multi-heatmap__cell[data-band="0"] {
  background: color-mix(in oklch, var(--insolvency) 32%, var(--surface));
}
.cmpv2-multi-heatmap__cell[data-band="1"] {
  background: color-mix(in oklch, var(--grave) 32%, var(--surface));
}
.cmpv2-multi-heatmap__cell[data-band="2"] {
  background: color-mix(in oklch, var(--critico) 32%, var(--surface));
}
.cmpv2-multi-heatmap__cell[data-band="3"] {
  background: color-mix(in oklch, var(--monitor) 32%, var(--surface));
}
.cmpv2-multi-heatmap__cell[data-band="4"] {
  background: color-mix(in oklch, var(--buono) 32%, var(--surface));
}
.cmpv2-multi-heatmap__cell[data-band="5"] {
  background: color-mix(in oklch, var(--ottimo) 32%, var(--surface));
}

@supports not (background: color-mix(in oklch, white, black)) {
  .cmpv2-multi-heatmap__cell[data-band="0"] { background: var(--insolvency-bg); }
  .cmpv2-multi-heatmap__cell[data-band="1"] { background: var(--grave-bg); }
  .cmpv2-multi-heatmap__cell[data-band="2"] { background: var(--critico-bg); }
  .cmpv2-multi-heatmap__cell[data-band="3"] { background: var(--monitor-bg); }
  .cmpv2-multi-heatmap__cell[data-band="4"] { background: var(--buono-bg); }
  .cmpv2-multi-heatmap__cell[data-band="5"] { background: var(--ottimo-bg); }
}

/* ============================================================
 * Phase 3.5 — HIDE page-header user-chip + user-name doppione
 * (user identity ora in topbar V5 via .rtb-avatar)
 * ============================================================ */
body.has-topbar-v5 .page-header .user-chip,
body.has-topbar-v5 .page-header #user-name,
body.has-topbar-v5 .page-header #admin-user-name,
body.has-topbar-v5 .page-header #settings-user-name,
body.has-topbar-v5 .page-header .page-header-actions .user-chip {
  display: none !important;
}

/* ============================================================
 * Phase 6 hotfix — FOUC fix sidebar-placeholder striscia nera
 * (#sidebar-placeholder default bg var(--color-primary-dark) navy in globals.css —
 * override paper-tone quando V5 attivo per match con sidebar V5 paper)
 * ============================================================ */
body.has-topbar-v5 #sidebar-placeholder {
  background: var(--paper, #faf9f6);
}

[data-theme="dark"] body.has-topbar-v5 #sidebar-placeholder {
  background: var(--ink-100, #13131c);
}

/* ============================================================
 * Phase 6 hotfix — AI text boxes sobri (bg bianco, testo nero)
 * User feedback: "i riquadri con il testo AI dovrebbero avere una immagine
 * più sobria. i colorini di sfondo lasciano posto al bianco, il testo è nero"
 * ============================================================ */
body.has-topbar-v5 .ai-hero {
  background: var(--surface, #ffffff) !important;
  color: var(--ink-900) !important;
  border-left: 3px solid var(--ai);
  box-shadow: none;
}

body.has-topbar-v5 .ai-hero * {
  color: var(--ink-900);
}

body.has-topbar-v5 .ai-summary-section {
  background: var(--surface, #ffffff);
  border-left: 3px solid var(--ai);
  padding: 16px 18px;
  border-radius: 10px;
  border-top: 1px solid var(--hair);
  border-right: 1px solid var(--hair);
  border-bottom: 1px solid var(--hair);
}

body.has-topbar-v5 .ai-summary-text,
body.has-topbar-v5 .ai-strengths li,
body.has-topbar-v5 .ai-risks li {
  color: var(--ink-900) !important;
}

body.has-topbar-v5 .ai-recommendation {
  background: var(--surface, #ffffff) !important;
  border: 1px solid var(--hair);
  color: var(--ink-900) !important;
  font-style: normal;
}

/* Document insights / NI analysis AI boxes */
body.has-topbar-v5 .di-card,
body.has-topbar-v5 .di-summary,
body.has-topbar-v5 .gov-ai-summary,
body.has-topbar-v5 .tr-ai-summary,
body.has-topbar-v5 [data-ai-section],
body.has-topbar-v5 .rp-ai-card,
body.has-topbar-v5 .rp-exec-summary,
body.has-topbar-v5 .rp-viewpoint-content {
  background: var(--surface, #ffffff) !important;
  color: var(--ink-900) !important;
  border: 1px solid var(--hair);
  border-radius: 10px;
}

/* Compare verdict modal — sobri */
body.has-topbar-v5 .cmpv2-verdict-content,
body.has-topbar-v5 .cmpv2-verdict-lens-content,
body.has-topbar-v5 .cmpv2-verdict-summary {
  background: var(--surface, #ffffff) !important;
  color: var(--ink-900) !important;
}

/* Dark theme: testo bianco su bg ink-100 */
[data-theme="dark"] body.has-topbar-v5 .ai-hero,
[data-theme="dark"] body.has-topbar-v5 .ai-summary-section,
[data-theme="dark"] body.has-topbar-v5 .ai-recommendation,
[data-theme="dark"] body.has-topbar-v5 .di-card,
[data-theme="dark"] body.has-topbar-v5 .di-summary,
[data-theme="dark"] body.has-topbar-v5 .gov-ai-summary,
[data-theme="dark"] body.has-topbar-v5 .tr-ai-summary,
[data-theme="dark"] body.has-topbar-v5 [data-ai-section],
[data-theme="dark"] body.has-topbar-v5 .rp-ai-card,
[data-theme="dark"] body.has-topbar-v5 .rp-exec-summary,
[data-theme="dark"] body.has-topbar-v5 .rp-viewpoint-content,
[data-theme="dark"] body.has-topbar-v5 .cmpv2-verdict-content {
  background: var(--ink-100, #232330) !important;
  color: var(--ink-900) !important;
  border-color: var(--hair);
}

[data-theme="dark"] body.has-topbar-v5 .ai-hero *,
[data-theme="dark"] body.has-topbar-v5 .ai-summary-text,
[data-theme="dark"] body.has-topbar-v5 .ai-strengths li,
[data-theme="dark"] body.has-topbar-v5 .ai-risks li {
  color: var(--ink-900);
}

/* ============================================================
 * Phase 6 hotfix — Report .rp-main score-aware bg → paper neutrale
 * (user feedback: "lo sfondo del report deve ora essere coerente con
 * l'impostazione del nuovo design e non più sfumato con il colore
 * dello score aziendale")
 * ============================================================ */
body.has-topbar-v5 .rp-main,
body.has-topbar-v5 .rp-main[data-score-band],
body.has-topbar-v5 .rp-main[data-score-band="insolvency"],
body.has-topbar-v5 .rp-main[data-score-band="grave"],
body.has-topbar-v5 .rp-main[data-score-band="critico"],
body.has-topbar-v5 .rp-main[data-score-band="monitor"],
body.has-topbar-v5 .rp-main[data-score-band="buono"],
body.has-topbar-v5 .rp-main[data-score-band="ottimo"] {
  background: var(--paper, #faf9f6) !important;
}

[data-theme="dark"] body.has-topbar-v5 .rp-main,
[data-theme="dark"] body.has-topbar-v5 .rp-main[data-score-band] {
  background: var(--ink-100, #13131c) !important;
}

/* Mobile: sidebar-placeholder shifted under topbar — preserva collapse 0 width */
@media (max-width: 768px) {
  body.has-topbar-v5 #sidebar-placeholder {
    background: transparent;
  }

  /* page-body padding mobile per evitare overflow main content */
  body.has-topbar-v5 .page-body {
    padding-left: var(--space-3, 12px);
    padding-right: var(--space-3, 12px);
  }

  /* page-header sticky mobile: già top 0 globals → adjust per topbar 56 */
  body.has-topbar-v5 .page-header {
    top: 56px;
  }

  /* main-content padding-top mobile */
  body.has-topbar-v5 .main-content {
    padding-top: 56px;
  }
}

/* ============================================================
 * C) Topbar V5 Phase 2 — sidebar placeholder height guard
 *
 * Belt-and-suspenders for sidebar-placeholder min-height correction.
 * Primary shift rules live in topbar-v5-prod.css.
 * Ensures no layout flash if topbar-v5-prod.css loads after polish.css.
 * ============================================================ */
body.has-topbar-v5 #sidebar-placeholder {
  min-height: calc(100vh - var(--rtb-h, 56px));
}
