/* ═══════════════════════════════════════════════════════
   SCAN360 Design System — Shared Stylesheet v2.0
   Kitzanos Soc. Coop. — All rights reserved
═══════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:opsz,wght@9..40,300;9..40,400;9..40,500;9..40,600;9..40,700;9..40,800&display=swap');

/* ── TOKENS ─────────────────────────────────────────── */
:root {
  --primary-50:  #EEEEF9; --primary-100: #D4D4F0; --primary-200: #ABABDE;
  --primary-300: #7777C8; --primary-400: #4444B0; --primary-500: #2020A0;
  --primary-600: #191970; --primary-700: #131360; --primary-800: #0E0E50;
  --primary-900: #070730;
  --gold-50:#FDF8EC; --gold-100:#FAF0CE; --gold-200:#F4DC8C;
  --gold-300:#EDCA50; --gold-400:#E4B820; --gold-500:#C49400;
  --gold-600:#A07800; --gold-700:#7C5C00;
  /* ── Product brand tokens ───────────────────────────── */
  --prod-aef-dark:#1E2D78;  --prod-aef-mid:#3D54C8;  --prod-aef-50:#ECEFFE;
  --prod-zmot-dark:#0A6E6E; --prod-zmot-mid:#0FAAAA; --prod-zmot-50:#E6F8F8;
  --prod-cda-dark:#4A1E7A;  --prod-cda-mid:#7B3FBF;  --prod-cda-50:#F2EAFE;
  --prod-bil-dark:#8C3010;  --prod-bil-mid:#C85020;  --prod-bil-50:#FCF0EB;
  --neutral-0:#FFFFFF; --neutral-50:#F8F9FC; --neutral-100:#F0F1F6;
  --neutral-200:#E2E4ED; --neutral-300:#C8CADE; --neutral-400:#9699B8;
  --neutral-500:#6A6D8E; --neutral-600:#474A6A; --neutral-700:#2F3154;
  --neutral-800:#1E2040; --neutral-900:#0F1028; --white:#FFFFFF;
  --success-50:#ECFAF3; --success-100:#C6F0D8; --success-600:#1A8C52; --success-700:#146B3E;
  --warning-50:#FFF8EB; --warning-100:#FEECC0; --warning-600:#B87D00; --warning-700:#8C5F00;
  --danger-50:#FFF0F0;  --danger-100:#FFD6D6;  --danger-600:#C52B2B;  --danger-700:#A01F1F;
  --info-50:#EEF6FF; --info-100:#CCE4FF; --info-600:#1C6FD4;
  --font-body:    'DM Sans', system-ui, sans-serif;
  --font-display: 'DM Sans', system-ui, sans-serif;
  --text-xs:0.75rem; --text-sm:0.8125rem; --text-base:0.9375rem;
  --text-lg:1.0625rem; --text-xl:1.1875rem; --text-2xl:1.375rem;
  --text-3xl:1.75rem; --text-4xl:2.25rem;
  --sp-1:.25rem; --sp-2:.5rem; --sp-3:.75rem; --sp-4:1rem;
  --sp-5:1.25rem; --sp-6:1.5rem; --sp-8:2rem; --sp-10:2.5rem; --sp-12:3rem;
  --r-sm:4px; --r-md:8px; --r-lg:12px; --r-xl:16px; --r-2xl:24px;
  --shadow-sm:0 1px 3px rgba(25,25,112,.08),0 1px 2px rgba(0,0,0,.04);
  --shadow-md:0 4px 12px rgba(25,25,112,.10),0 2px 4px rgba(0,0,0,.04);
  --shadow-lg:0 8px 28px rgba(25,25,112,.14),0 4px 8px rgba(0,0,0,.06);
  --fast:120ms ease; --mid:240ms ease; --slow:360ms cubic-bezier(.4,0,.2,1);
  --sidebar-w:248px; --topbar-h:56px;
}

/* ── RESET ───────────────────────────────────────────── */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body{font-family:var(--font-body);font-size:var(--text-base);color:var(--neutral-800);background:var(--neutral-50);line-height:1.6;overflow-x:hidden;max-width:100vw}
h1,h2,h3,h4,h5,h6{line-height:1.3;font-weight:600}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}
img{max-width:100%;display:block}
table{border-collapse:collapse;width:100%}

/* ── APP SHELL ───────────────────────────────────────── */
.app-shell{display:flex;height:100vh;overflow:hidden;max-width:100vw}

/* ── SIDEBAR ─────────────────────────────────────────── */
.sidebar{
  width:var(--sidebar-w);background:var(--primary-800);
  display:flex;flex-direction:column;flex-shrink:0;
  overflow-y:auto;z-index:100;
}
.sidebar::-webkit-scrollbar{width:3px}
.sidebar::-webkit-scrollbar-thumb{background:rgba(255,255,255,.12);border-radius:2px}
.sidebar__brand{
  padding:var(--sp-5) var(--sp-6) var(--sp-5);
  border-bottom:1px solid rgba(255,255,255,.08);flex-shrink:0;
}
.sidebar__logo{display:flex;align-items:center;margin-bottom:var(--sp-4)}
.sidebar__logo svg{width:148px;height:auto;display:block}
.sidebar__logo-mark{display:none} /* replaced by inline SVG */
.sidebar__logo-text{display:none}  /* replaced by inline SVG */
.sidebar__module-tag{
  display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;color:rgba(255,255,255,.6);background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.15);border-radius:999px;padding:2px var(--sp-3);
}
.sidebar__nav{flex:1;padding:var(--sp-3) 0}
.sidebar__section{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;
  color:rgba(255,255,255,.3);padding:var(--sp-4) var(--sp-6) var(--sp-2);
}
.sidebar__item{
  display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-5) var(--sp-3) calc(var(--sp-6) - 3px);
  font-size:var(--text-sm);font-weight:500;color:rgba(255,255,255,.55);
  border-left:3px solid transparent;transition:var(--fast);
  cursor:pointer;
}
.sidebar__item:hover:not(.sidebar__item--disabled){
  background:rgba(255,255,255,.06);color:rgba(255,255,255,.9);
}
.sidebar__item.active{
  color:var(--white);border-left-color:rgba(255,255,255,.7);
  background:rgba(255,255,255,.1);font-weight:600;
}
.sidebar__item--disabled{color:rgba(255,255,255,.22);cursor:default}
.sidebar__item-icon{width:16px;height:16px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.sidebar__lock{margin-left:auto;opacity:.25;flex-shrink:0}
.sidebar__footer{
  padding:var(--sp-4) var(--sp-6);border-top:1px solid rgba(255,255,255,.08);flex-shrink:0;
}
.sidebar__company-label{font-size:10px;color:rgba(255,255,255,.3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
.sidebar__company-name{font-size:var(--text-sm);font-weight:600;color:rgba(255,255,255,.65)}
.sidebar__home-link{
  display:flex;align-items:center;gap:var(--sp-2);
  font-size:var(--text-xs);color:rgba(255,255,255,.35);
  margin-top:var(--sp-3);transition:var(--fast);
}
.sidebar__home-link:hover{color:rgba(255,255,255,.6)}

/* ── MAIN AREA ───────────────────────────────────────── */
.main-area{flex:1;display:flex;flex-direction:column;overflow:hidden;transition:margin-right var(--slow)}
.app-shell.panel-open .main-area{margin-right:400px}

/* ── TOPBAR ──────────────────────────────────────────── */
.topbar{
  height:var(--topbar-h);background:var(--white);
  border-bottom:1px solid var(--neutral-200);
  display:flex;align-items:center;padding:0 clamp(var(--sp-4),3vw,var(--sp-8));gap:var(--sp-3);
  flex-shrink:0;z-index:50;overflow:hidden;
}
.topbar__breadcrumb{
  font-size:var(--text-xs);color:var(--neutral-400);
  display:flex;align-items:center;gap:var(--sp-2);
}
.topbar__breadcrumb-sep{color:var(--neutral-300)}
.topbar__breadcrumb-current{color:var(--neutral-600);font-weight:600}
.topbar__title{font-size:var(--text-base);font-weight:600;color:var(--neutral-800);flex:1}
.topbar__date{font-size:var(--text-xs);color:var(--neutral-400)}
.topbar__divider{width:1px;height:20px;background:var(--neutral-200)}
.topbar__analyst-btn{
  display:flex;align-items:center;gap:var(--sp-2);
  padding:var(--sp-2) var(--sp-4);background:var(--primary-600);color:var(--white);
  border-radius:var(--r-md);font-size:var(--text-sm);font-weight:600;transition:var(--fast);
}
.topbar__analyst-btn:hover{background:var(--primary-700)}
.topbar__hamburger{
  display:none;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:var(--r-md);
  color:var(--neutral-600);transition:var(--fast);flex-shrink:0;
}
.topbar__hamburger:hover{background:var(--neutral-100);color:var(--neutral-900)}

/* ── INSIGHT STRIP ───────────────────────────────────── */
.insight-strip{
  display:flex;align-items:stretch;gap:0;
  background:var(--white);border-bottom:1px solid var(--neutral-200);
  flex-shrink:0;overflow:hidden;
}
.insight-strip__item{
  display:flex;align-items:center;gap:var(--sp-3);
  padding:0 var(--sp-6);flex:1;min-width:0;
  border-right:1px solid var(--neutral-200);
  height:48px;
}
.insight-strip__item:last-child{border-right:none}
.insight-strip__dot{
  width:8px;height:8px;border-radius:50%;flex-shrink:0;
}
.insight-strip__dot--danger{background:var(--danger-600)}
.insight-strip__dot--warning{background:var(--warning-600)}
.insight-strip__dot--success{background:var(--success-600)}
.insight-strip__text{
  font-size:12px;color:var(--neutral-600);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  flex:1;min-width:0;
}
.insight-strip__text strong{color:var(--neutral-900)}
.insight-strip__cta{
  font-size:11px;font-weight:700;color:var(--primary-600);
  white-space:nowrap;flex-shrink:0;margin-left:var(--sp-2);
  transition:color var(--fast);
}
.insight-strip__item:hover .insight-strip__cta{color:var(--primary-800)}
.insight-strip__item:hover{background:var(--neutral-50);cursor:pointer}


/* ── CONTENT ─────────────────────────────────────────── */
.content{flex:1;overflow-y:auto;overflow-x:hidden;padding:clamp(var(--sp-4),4vw,var(--sp-8));background:var(--neutral-50)}
.content::-webkit-scrollbar{width:6px}
.content::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:3px}
.content__header{margin-bottom:var(--sp-8)}
.content__title{font-size:var(--text-3xl);font-weight:800;color:var(--primary-700);margin-bottom:var(--sp-2)}
.content__sub{font-size:var(--text-sm);color:var(--neutral-500)}
.section-label{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  color:var(--neutral-500);margin-bottom:var(--sp-4);
  padding-bottom:var(--sp-3);border-bottom:1px solid var(--neutral-200);
}

/* ── SUMMARY HERO ─────────────────────────────────────── */
.summary-hero{
  background:var(--white);border:1px solid var(--neutral-200);
  border-radius:var(--r-xl);padding:var(--sp-8);box-shadow:var(--shadow-md);
  margin-bottom:var(--sp-8);display:grid;
  grid-template-columns:220px 1fr;gap:var(--sp-8);align-items:center;
}
.summary-hero__score{
  text-align:center;padding-right:var(--sp-8);
  border-right:1px solid var(--neutral-200);
}
.summary-hero__score-label{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;
  color:var(--neutral-500);margin-bottom:var(--sp-3);
}
.summary-hero__score-num{
  font-size:3.2rem;font-weight:800;line-height:1;
  color:var(--primary-700);margin-bottom:var(--sp-1);
}
.summary-hero__score-max{font-size:var(--text-xl);color:var(--neutral-400)}
.summary-hero__kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-6);margin-bottom:var(--sp-5)}
.summary-hero__kpi-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--neutral-500);margin-bottom:2px}
.summary-hero__kpi-val{font-size:var(--text-2xl);font-weight:800;color:var(--neutral-900)}
.summary-hero__kpi-delta{font-size:var(--text-xs);font-weight:600;color:var(--neutral-400);display:flex;align-items:center;gap:3px;margin-top:2px}
.delta--up{color:var(--success-600)} .delta--down{color:var(--danger-600)}

/* ── KPI GRID ────────────────────────────────────────── */
.kpi-grid{display:flex;flex-wrap:wrap;gap:var(--sp-4);margin-bottom:var(--sp-8)}
.kpi-card{
  background:var(--white);border:1px solid var(--neutral-200);
  border-radius:var(--r-lg);padding:var(--sp-5) var(--sp-5);
  box-shadow:var(--shadow-sm);transition:var(--fast);position:relative;overflow:hidden;
  flex:1;min-width:min(180px,100%);
}
.kpi-card:hover{box-shadow:var(--shadow-md);border-color:var(--neutral-300);transform:translateY(-1px)}
.kpi-card::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--neutral-200)}
.kpi-card--pos::before{background:var(--success-600)}
.kpi-card--neg::before{background:var(--danger-600)}
.kpi-card--warn::before{background:var(--warning-600)}
.kpi-card--gold::before{background:var(--gold-500)}
.kpi-card--blue::before{background:var(--primary-600)}
.kpi-card__label{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
  color:var(--neutral-500);margin-bottom:var(--sp-2);
  display:flex;align-items:center;justify-content:space-between;
}
.kpi-card__val{font-size:clamp(1.25rem,4vw,var(--text-3xl));font-weight:800;color:var(--neutral-900);line-height:1.1;margin-bottom:var(--sp-1)}
.kpi-card__delta{font-size:var(--text-xs);font-weight:600;color:var(--neutral-400);display:flex;align-items:center;gap:3px}
.kpi-card__note{font-size:var(--text-xs);color:var(--neutral-400);margin-top:var(--sp-2)}
/* trigger button */
.kpi-card__ask{
  position:absolute;bottom:var(--sp-3);right:var(--sp-3);
  display:flex;align-items:center;gap:4px;
  padding:3px 9px;border-radius:999px;border:none;cursor:pointer;
  font-size:10px;font-weight:700;letter-spacing:.04em;
  background:var(--primary-700);color:var(--white);
  opacity:0;transform:translateY(4px);
  transition:opacity .18s ease,transform .18s ease;
  white-space:nowrap;pointer-events:none;
}
.kpi-card__ask svg{flex-shrink:0}
.kpi-card:hover .kpi-card__ask{opacity:1;transform:translateY(0);pointer-events:auto}

/* ── CHART CARDS ─────────────────────────────────────── */
.chart-row{display:flex;flex-wrap:wrap;gap:var(--sp-6);margin-bottom:var(--sp-8)}
.chart-card{background:var(--white);border:1px solid var(--neutral-200);border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--shadow-sm);flex:1;min-width:min(340px,100%)}
.chart-card--full{flex:0 0 100%;min-width:100%}
.chart-card__title{font-size:var(--text-sm);font-weight:700;color:var(--neutral-800);margin-bottom:var(--sp-5);display:flex;align-items:center;gap:var(--sp-2)}
.chart-wrap{position:relative;height:clamp(160px,30vw,220px)}

/* ── BADGES ──────────────────────────────────────────── */
.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:3px 10px;border-radius:999px;letter-spacing:.04em}
.badge--ok    {background:var(--success-50);color:var(--success-700);border:1px solid var(--success-100)}
.badge--warn  {background:var(--warning-50);color:var(--warning-700);border:1px solid var(--warning-100)}
.badge--crit  {background:var(--danger-50);color:var(--danger-700);border:1px solid var(--danger-100)}
.badge--blue  {background:var(--primary-50);color:var(--primary-700);border:1px solid var(--primary-100)}
.badge--gold  {background:var(--gold-50);color:var(--gold-700);border:1px solid var(--gold-100)}
.badge--neutral{background:var(--neutral-100);color:var(--neutral-600);border:1px solid var(--neutral-200)}
.badge--irp-a {background:#ECFAF3;color:#146B3E;border-color:#C6F0D8}
.badge--irp-b {background:#F0FAE8;color:#3D7A20;border-color:#C8EAB0}
.badge--irp-c {background:#FFF8EB;color:#8C5F00;border-color:#FEECC0}
.badge--irp-d {background:#FFF3EB;color:#A04010;border-color:#FFD8B8}
.badge--irp-e {background:#FFF0F0;color:#A01F1F;border-color:#FFD6D6}
.status-dot{width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:5px}
.status-dot--ok  {background:var(--success-600)}
.status-dot--warn{background:var(--warning-600)}
.status-dot--crit{background:var(--danger-600)}

/* ── TABLES ──────────────────────────────────────────── */
.data-table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--r-md);border:1px solid var(--neutral-200);max-width:100%}
.data-table{font-size:var(--text-sm);border-radius:var(--r-md);overflow:hidden;border:none;min-width:480px}
.data-table th{background:var(--neutral-50);padding:var(--sp-3) var(--sp-4);text-align:left;font-weight:700;font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--neutral-600);border-bottom:1px solid var(--neutral-200)}
.data-table td{padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--neutral-100);color:var(--neutral-700)}
.data-table tr:last-child td{border-bottom:none}
.data-table tr:hover td{background:var(--neutral-50)}
.td-good{color:var(--success-600);font-weight:600}
.td-warn{color:var(--warning-600);font-weight:600}
.td-crit{color:var(--danger-600);font-weight:600}

/* ── BUTTONS ─────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5);border-radius:var(--r-md);font-size:var(--text-sm);font-weight:600;font-family:var(--font-body);transition:var(--fast);cursor:pointer;text-decoration:none}
.btn--primary{background:var(--primary-600);color:var(--white);border:none}
.btn--primary:hover{background:var(--primary-700)}
.btn--gold{background:var(--gold-500);color:var(--white);border:none}
.btn--gold:hover{background:var(--gold-600)}
.btn--ghost{background:transparent;color:var(--primary-600);border:1.5px solid var(--primary-200)}
.btn--ghost:hover{background:var(--primary-50)}
.btn--sm{padding:var(--sp-2) var(--sp-3);font-size:var(--text-xs)}

/* ── ALERT ITEMS ─────────────────────────────────────── */
.alert-list{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-8)}
.alert-item{
  background:var(--white);border:1px solid var(--neutral-200);border-radius:var(--r-lg);
  padding:var(--sp-5) var(--sp-6);display:flex;gap:var(--sp-4);
  align-items:flex-start;box-shadow:var(--shadow-sm);
}
.alert-item--crit{border-left:4px solid var(--danger-600)}
.alert-item--warn{border-left:4px solid var(--warning-600)}
.alert-item__dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;margin-top:5px}
.alert-item--crit .alert-item__dot{background:var(--danger-600)}
.alert-item--warn .alert-item__dot{background:var(--warning-600)}
.alert-item__title{font-size:var(--text-sm);font-weight:700;color:var(--neutral-800);margin-bottom:var(--sp-1);display:flex;align-items:center;gap:var(--sp-3)}
.alert-item__desc{font-size:var(--text-sm);color:var(--neutral-600);line-height:1.6}
.alert-item__num{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex-shrink:0}
.alert-item--crit .alert-item__num{background:var(--danger-50);color:var(--danger-700)}
.alert-item--warn .alert-item__num{background:var(--warning-50);color:var(--warning-700)}

/* ── EXEC SUMMARY (CDA) ──────────────────────────────── */
.exec-summary{
  background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-800) 100%);
  border-radius:var(--r-xl);padding:var(--sp-8);color:var(--white);margin-bottom:var(--sp-8);
}
.exec-summary__title{font-size:var(--text-2xl);font-weight:800;margin-bottom:var(--sp-4);opacity:.95}
.exec-summary__text{font-size:var(--text-sm);line-height:1.8;opacity:.82;max-width:760px}

/* ── ZMOT COMPONENTS ─────────────────────────────────── */
.zmot-score-ring{
  width:156px;height:156px;position:relative;margin:0 auto var(--sp-4);
}
.zmot-score-ring svg{width:156px;height:156px}
.zmot-score-ring__inner{
  position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;
  padding:0 var(--sp-5);
}
.zmot-score-ring__num{font-size:2.2rem;line-height:1;font-weight:800;color:var(--neutral-900);text-align:center;width:100%}
.zmot-score-ring__label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--neutral-500)}
/* ring colors by grade */
.zmot-ring--a{--ring-color:#1A8C52}
.zmot-ring--b{--ring-color:#3D7A20}
.zmot-ring--c{--ring-color:#B87D00}
.zmot-ring--d{--ring-color:#A04010}
.zmot-ring--e{--ring-color:#C52B2B}
.zmot-ring--a circle.fill,.zmot-ring--b circle.fill,.zmot-ring--c circle.fill,
.zmot-ring--d circle.fill,.zmot-ring--e circle.fill{stroke:var(--ring-color)}
/* dimension bars */
.dim-bar-list{display:flex;flex-direction:column;gap:var(--sp-3)}
.dim-bar{display:flex;align-items:center;gap:var(--sp-3)}
.dim-bar__label{font-size:var(--text-xs);font-weight:600;color:var(--neutral-600);width:clamp(80px,25%,110px);flex-shrink:0}
.dim-bar__track{flex:1;height:8px;background:var(--neutral-100);border-radius:999px;overflow:hidden}
.dim-bar__fill{height:100%;border-radius:999px;background:var(--primary-600);transition:width .8s ease}
.dim-bar__fill--a{background:#1A8C52}
.dim-bar__fill--b{background:#3D7A20}
.dim-bar__fill--c{background:#B87D00}
.dim-bar__fill--d{background:#A04010}
.dim-bar__fill--e{background:#C52B2B}
.dim-bar__val{font-size:var(--text-xs);font-weight:700;color:var(--neutral-700);width:28px;text-align:right;flex-shrink:0}
/* double-bar wrapper for benchmark comparisons (azienda vs settore) */
.dim-bar__double{flex:1;display:grid;grid-template-rows:8px 8px;gap:3px}
/* ask button inside dim-bar: always visible but subtle until hover */
.dim-bar .kpi-card__ask{
  position:static;opacity:0;transform:none;pointer-events:none;
  margin-left:var(--sp-2);padding:2px 8px;font-size:10px;
  transition:opacity .18s ease;
}
.dim-bar:hover .kpi-card__ask{opacity:1;pointer-events:auto}
/* ── LINEAR GAUGE ────────────────────────────────────── */
.linear-gauge{margin-bottom:var(--sp-6)}
.linear-gauge__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-2)}
.linear-gauge__label{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--neutral-600)}
.linear-gauge__val{font-size:var(--text-sm);font-weight:800;color:var(--neutral-800)}
.linear-gauge__track{height:12px;border-radius:999px;background:var(--neutral-100);position:relative;overflow:visible}
.linear-gauge__fill{height:100%;border-radius:999px;transition:width .8s ease;position:relative}
.linear-gauge__needle{
  position:absolute;top:50%;right:-1px;transform:translateY(-50%);
  width:18px;height:18px;border-radius:50%;background:var(--white);
  border:2.5px solid currentColor;box-shadow:var(--shadow-sm);
}
.linear-gauge__scale{display:flex;justify-content:space-between;margin-top:var(--sp-2)}
.linear-gauge__scale span{font-size:10px;color:var(--neutral-400);font-weight:600}
.linear-gauge__zones{display:flex;height:4px;border-radius:999px;overflow:hidden;margin-bottom:6px;gap:1px}
.linear-gauge__zone{flex:1;border-radius:2px}
.z-e{background:#C52B2B} .z-d{background:#E04820} .z-c{background:#B87D00}
.z-b{background:#3D7A20} .z-a{background:#1A8C52}

/* ── BILANCIO PLUS COMPARE ───────────────────────────── */
.compare-grid{display:flex;flex-wrap:wrap;gap:var(--sp-5);margin-bottom:var(--sp-8)}
.compare-card{background:var(--white);border:1px solid var(--neutral-200);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);flex:1;min-width:min(260px,100%)}
.compare-card__header{padding:var(--sp-4) var(--sp-5);background:var(--neutral-50);border-bottom:1px solid var(--neutral-200);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--neutral-600)}
.compare-card__row{display:grid;grid-template-columns:1fr 1fr;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--neutral-100);gap:var(--sp-4)}
.compare-card__row:last-child{border-bottom:none}
.compare-cell__lbl{font-size:var(--text-xs);color:var(--neutral-500);margin-bottom:2px}
.compare-cell__val{font-size:var(--text-base);font-weight:700;color:var(--neutral-800)}
.compare-cell__val--better{color:var(--success-600)}
.compare-cell__val--worse{color:var(--danger-600)}

/* ── MODULE CARDS (index) ────────────────────────────── */
.module-grid{display:flex;flex-wrap:wrap;gap:var(--sp-6)}
.module-card{
  background:var(--white);border:1px solid var(--neutral-200);border-radius:var(--r-xl);
  padding:var(--sp-8);box-shadow:var(--shadow-sm);transition:var(--mid);
  display:flex;flex-direction:column;gap:var(--sp-4);text-decoration:none;color:inherit;
  position:relative;overflow:hidden;flex:1;min-width:min(280px,100%);max-width:420px;
}
.module-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-lg);border-color:var(--primary-200)}
.module-card__accent{position:absolute;top:0;left:0;right:0;height:4px}
.module-card__icon{width:52px;height:52px;border-radius:var(--r-lg);display:flex;align-items:center;justify-content:center}
.module-card__status{display:flex;align-items:center;gap:var(--sp-2);font-size:var(--text-xs);font-weight:600;color:var(--success-700)}
.module-card__title{font-size:var(--text-xl);font-weight:800;color:var(--primary-700);margin-top:var(--sp-4);margin-bottom:var(--sp-2)}
.module-card__desc{font-size:var(--text-sm);color:var(--neutral-500);line-height:1.65;flex:1}
.module-card__footer{display:flex;align-items:center;justify-content:space-between;padding-top:var(--sp-5);border-top:1px solid var(--neutral-100)}
.module-card__cta{font-size:var(--text-sm);font-weight:700;color:var(--primary-600);display:flex;align-items:center;gap:var(--sp-2)}

/* ── Module card — product variants ─────────────────── */
.module-card--aef  .module-card__accent{background:linear-gradient(90deg,var(--prod-aef-dark),var(--prod-aef-mid))}
.module-card--zmot .module-card__accent{background:linear-gradient(90deg,var(--prod-zmot-dark),var(--prod-zmot-mid))}
.module-card--cda  .module-card__accent{background:linear-gradient(90deg,var(--prod-cda-dark),var(--prod-cda-mid))}
.module-card--bil  .module-card__accent{background:linear-gradient(90deg,var(--prod-bil-dark),var(--prod-bil-mid))}
.module-card--aef  .module-card__icon{background:var(--prod-aef-50)}
.module-card--zmot .module-card__icon{background:var(--prod-zmot-50)}
.module-card--cda  .module-card__icon{background:var(--prod-cda-50)}
.module-card--bil  .module-card__icon{background:var(--prod-bil-50)}

/* ── INDEX PAGE LAYOUT ───────────────────────────────── */
.index-wrap{min-height:100vh;display:flex;flex-direction:column;background:var(--neutral-50)}
.index-header{
  background:linear-gradient(135deg,var(--primary-800) 0%,var(--primary-600) 100%);
  padding:var(--sp-8) var(--sp-8) var(--sp-6);color:var(--white);
}
.index-header__brand{display:flex;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-8)}
.index-header__logo-svg{display:block}
.index-header__logo-svg svg{width:220px;height:auto;display:block}
.index-header__logo-mark{display:none}
.index-header__logo-text{display:none}
.index-header__logo-text{font-size:var(--text-2xl);font-weight:800;letter-spacing:.02em}
.index-header__tagline{font-size:var(--text-xs);opacity:.5;text-transform:uppercase;letter-spacing:.14em;font-weight:600}
.index-header__company{
  display:flex;align-items:flex-start;gap:var(--sp-6);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  border-radius:var(--r-xl);padding:var(--sp-6);
}
.index-header__company-name{font-size:var(--text-3xl);font-weight:800;margin-bottom:var(--sp-2)}
.index-header__company-meta{display:flex;flex-wrap:wrap;gap:var(--sp-4)}
.index-header__company-pill{
  font-size:var(--text-xs);font-weight:600;color:rgba(255,255,255,.65);
  background:rgba(255,255,255,.1);border-radius:999px;padding:3px var(--sp-3);
  display:flex;align-items:center;gap:var(--sp-2);
}
.index-content{flex:1;padding:var(--sp-8) var(--sp-8)}
.index-content__title{font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--neutral-500);margin-bottom:var(--sp-6)}
.index-footer{padding:var(--sp-6) var(--sp-8);border-top:1px solid var(--neutral-200);background:var(--white);font-size:var(--text-xs);color:var(--neutral-400);display:flex;align-items:center;justify-content:space-between}

/* ── ANALYST PANEL ───────────────────────────────────── */
.analyst-panel{
  position:fixed;top:0;right:0;bottom:0;width:400px;
  background:var(--white);z-index:200;
  box-shadow:-4px 0 32px rgba(25,25,112,.12);display:flex;flex-direction:column;
  transform:translateX(100%);transition:transform var(--slow);
  border-left:1px solid var(--neutral-200);
}
.analyst-panel.open{transform:translateX(0)}
.panel-handle{
  display:none;width:36px;height:4px;border-radius:2px;
  background:var(--neutral-300);margin:10px auto 4px;flex-shrink:0;
}
@media(max-width:900px){.panel-handle{display:block}}
.analyst-panel__header{
  padding:var(--sp-5) var(--sp-6);border-bottom:1px solid rgba(255,255,255,.1);
  background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-800) 100%);
  color:var(--white);flex-shrink:0;
}
.analyst-panel__header-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3)}
.analyst-panel__title{font-size:var(--text-xl);font-weight:800}
.analyst-panel__context{font-size:var(--text-xs);opacity:.7;display:flex;align-items:center;gap:var(--sp-2)}
.analyst-panel__mode-tabs{display:flex;gap:var(--sp-2);margin-top:var(--sp-4)}
.analyst-mode-tab{font-size:var(--text-xs);font-weight:600;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-sm);border:1px solid rgba(255,255,255,.3);color:rgba(255,255,255,.65);background:transparent;cursor:pointer;transition:var(--fast)}
.analyst-mode-tab.active{background:var(--white);color:var(--primary-700);border-color:var(--white)}
.analyst-panel__body{flex:1;overflow-y:auto;padding:var(--sp-5) var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}
.analyst-panel__body::-webkit-scrollbar{width:4px}
.analyst-panel__body::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:2px}
.analyst-panel__close{background:rgba(255,255,255,.15);border:none;border-radius:50%;width:30px;height:30px;cursor:pointer;color:var(--white);display:flex;align-items:center;justify-content:center;transition:var(--fast)}
.analyst-panel__close:hover{background:rgba(255,255,255,.25)}
.analyst-panel__footer{padding:var(--sp-4) var(--sp-6);border-top:1px solid var(--neutral-200);background:var(--neutral-50);flex-shrink:0}
.analyst-input-wrap{display:flex;align-items:flex-end;gap:var(--sp-3)}
.analyst-input{flex:1;border:1.5px solid var(--neutral-300);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-family:var(--font-body);font-size:var(--text-sm);resize:none;outline:none;min-height:52px;max-height:140px;transition:var(--fast);background:var(--white);line-height:1.5}
.analyst-input:focus{border-color:var(--primary-400);box-shadow:0 0 0 3px rgba(25,25,112,.08)}
.analyst-send-btn{height:52px;width:52px;background:var(--primary-600);color:var(--white);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:var(--fast)}
.analyst-send-btn:hover{background:var(--primary-700)}
.analyst-msg{display:flex;flex-direction:column;gap:var(--sp-2)}
.analyst-msg__bubble{padding:var(--sp-4) var(--sp-5);border-radius:var(--r-md);font-size:var(--text-sm);line-height:1.7}
.analyst-msg__bubble.system{background:linear-gradient(135deg,var(--primary-50) 0%,#F5F5FF 100%);border:1px solid var(--primary-200);color:var(--neutral-800)}
.analyst-msg__bubble.user{background:var(--primary-600);color:var(--white);align-self:flex-end;max-width:85%}
.analyst-msg__data-card{background:var(--white);border:1px solid var(--neutral-200);border-radius:var(--r-sm);padding:var(--sp-4);margin-top:var(--sp-3)}
.analyst-msg__data-card h4{font-size:var(--text-sm);font-weight:600;color:var(--neutral-900);margin-bottom:var(--sp-2)}
.analyst-typing{display:flex;align-items:center;gap:5px;padding:var(--sp-3) var(--sp-4);background:linear-gradient(135deg,var(--primary-50) 0%,#F5F5FF 100%);border:1px solid var(--primary-200);border-radius:var(--r-md);width:fit-content}
.typing-dot{width:7px;height:7px;border-radius:50%;background:var(--primary-400);animation:typing-bounce 1.2s ease-in-out infinite}
.typing-dot:nth-child(2){animation-delay:.2s} .typing-dot:nth-child(3){animation-delay:.4s}
.analyst-suggestions{display:flex;flex-wrap:wrap;gap:var(--sp-2);padding:var(--sp-3) var(--sp-5) var(--sp-3);border-top:1px solid var(--neutral-100);background:var(--neutral-50);flex-shrink:0}
.analyst-suggestion-chip{flex-shrink:0;font-size:11px;font-weight:600;padding:5px 12px;border-radius:999px;border:1.5px solid var(--primary-200);color:var(--primary-700);background:var(--white);cursor:pointer;transition:var(--fast);white-space:nowrap}
.analyst-suggestion-chip:hover{background:var(--primary-600);color:var(--white);border-color:var(--primary-600)}
.overlay{display:none}

/* ── SECTION HEADER with action button ───────────────── */
.section-header{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:var(--sp-8);margin-bottom:var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--neutral-200);
}
/* first section-header immediately after summary-hero: margin already provided by summary-hero mb */
.summary-hero + .section-header,
.content__header + .section-header{margin-top:0}
.section-header__label{
  font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--neutral-500);
}
.section-header__btn{
  display:flex;align-items:center;gap:5px;
  font-size:11px;font-weight:600;color:var(--primary-600);
  background:var(--primary-50);border:1px solid var(--primary-200);
  border-radius:var(--r-md);padding:4px var(--sp-3);
  transition:var(--fast);cursor:pointer;flex-shrink:0;
}
.section-header__btn:hover{background:var(--primary-600);color:var(--white);border-color:var(--primary-600)}
.section-header__btn svg{opacity:.7}
.section-header__btn:hover svg{opacity:1}

/* ── STUDIO STRATEGICO sidebar items ─────────────────── */
.sidebar__studio-item{
  display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-5) var(--sp-3) calc(var(--sp-6) - 3px);
  font-size:var(--text-sm);font-weight:500;color:rgba(255,255,255,.7);
  border-left:3px solid transparent;transition:var(--fast);cursor:pointer;
}
.sidebar__studio-item:hover{background:rgba(255,255,255,.08);color:var(--white);border-left-color:rgba(255,255,255,.3)}
.sidebar__studio-item.active{color:var(--white);border-left-color:rgba(255,255,255,.7);background:rgba(255,255,255,.1);font-weight:600}

/* ── STUDIO WORKSPACE (full-screen overlay) ──────────── */
.studio-overlay{
  position:fixed;inset:0;z-index:800;
  background:var(--neutral-50);display:flex;flex-direction:column;
  transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);
  overflow:hidden;
}
.studio-overlay.open{transform:translateY(0)}

/* studio topbar */
.studio-topbar{
  height:56px;background:var(--primary-800);
  display:flex;align-items:center;padding:0 clamp(var(--sp-4),3vw,var(--sp-8));gap:var(--sp-3);
  flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.1);overflow:hidden;
}
.studio-topbar__back{
  display:flex;align-items:center;gap:var(--sp-2);
  font-size:var(--text-sm);font-weight:600;color:rgba(255,255,255,.65);
  transition:var(--fast);cursor:pointer;white-space:nowrap;
}
.studio-topbar__back:hover{color:var(--white)}
.studio-topbar__divider{width:1px;height:20px;background:rgba(255,255,255,.15);flex-shrink:0}
.studio-topbar__tabs{display:flex;gap:var(--sp-2);flex:1}
.studio-tab{
  font-size:var(--text-sm);font-weight:600;padding:var(--sp-2) var(--sp-4);
  border-radius:var(--r-md);color:rgba(255,255,255,.55);
  transition:var(--fast);cursor:pointer;
}
.studio-tab:hover{background:rgba(255,255,255,.08);color:rgba(255,255,255,.9)}
.studio-tab.active{background:rgba(255,255,255,.15);color:var(--white)}
.studio-topbar__company{
  font-size:var(--text-xs);color:rgba(255,255,255,.4);white-space:nowrap;
}

/* studio body */
.studio-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:clamp(var(--sp-4),4vw,var(--sp-8))}
.studio-body::-webkit-scrollbar{width:6px}
.studio-body::-webkit-scrollbar-thumb{background:var(--neutral-300);border-radius:3px}
.studio-section-title{
  font-size:var(--text-2xl);font-weight:800;color:var(--primary-700);margin-bottom:var(--sp-2);
}
.studio-section-sub{
  font-size:var(--text-sm);color:var(--neutral-500);margin-bottom:var(--sp-8);
}

/* ── PIANO ACCORDION ─────────────────────────────────── */
.piano-list{display:flex;flex-direction:column;gap:var(--sp-4)}
.piano-item{
  background:var(--white);border:1px solid var(--neutral-200);
  border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-sm);
  transition:box-shadow var(--fast);
}
.piano-item:hover{box-shadow:var(--shadow-md)}
.piano-item__header{
  display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-4) var(--sp-5);cursor:pointer;
}
.piano-item__num{
  width:36px;height:36px;border-radius:var(--r-md);
  background:var(--primary-50);color:var(--primary-700);
  font-size:var(--text-sm);font-weight:800;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
}
.piano-item.open .piano-item__num{background:var(--primary-600);color:var(--white)}
.piano-item__meta{flex:1;min-width:0}
.piano-item__title{font-size:var(--text-base);font-weight:700;color:var(--neutral-900);margin-bottom:var(--sp-2)}
.piano-item__tags{display:flex;flex-wrap:wrap;gap:var(--sp-2);align-items:center}
.piano-tag{
  font-size:10px;font-weight:700;padding:2px var(--sp-2);border-radius:999px;
}
.piano-tag--impact{background:var(--success-50);color:var(--success-700);border:1px solid var(--success-100)}
.piano-tag--effort-low{background:var(--success-50);color:var(--success-600)}
.piano-tag--effort-mid{background:var(--warning-50);color:var(--warning-600)}
.piano-tag--effort-high{background:var(--danger-50);color:var(--danger-600)}
.piano-tag--timeline{background:var(--neutral-100);color:var(--neutral-600)}
.piano-item__chevron{
  color:var(--neutral-400);transition:transform var(--mid);flex-shrink:0;
}
.piano-item.open .piano-item__chevron{transform:rotate(180deg)}
.piano-item__body{
  max-height:0;overflow:hidden;transition:max-height .3s ease;
}
.piano-item.open .piano-item__body{max-height:400px}
.piano-item__inner{
  padding:var(--sp-4) var(--sp-5) var(--sp-5);
  border-top:1px solid var(--neutral-100);
}
.piano-item__desc{font-size:var(--text-sm);color:var(--neutral-600);line-height:1.7;margin-bottom:var(--sp-4)}
.piano-item__kpi-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--neutral-500);margin-bottom:var(--sp-2)}
.piano-item__kpis{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:var(--sp-5)}
.piano-kpi-chip{font-size:11px;font-weight:600;padding:3px 10px;border-radius:999px;background:var(--primary-50);color:var(--primary-700);border:1px solid var(--primary-100)}
.piano-item__actions{display:flex;gap:var(--sp-3)}
.piano-btn{
  display:flex;align-items:center;gap:var(--sp-2);
  padding:var(--sp-3) var(--sp-5);border-radius:var(--r-md);
  font-size:var(--text-sm);font-weight:600;transition:var(--fast);cursor:pointer;
}
.piano-btn--primary{background:var(--primary-600);color:var(--white)}
.piano-btn--primary:hover{background:var(--primary-700)}
.piano-btn--secondary{background:var(--white);color:var(--primary-600);border:1.5px solid var(--primary-200)}
.piano-btn--secondary:hover{background:var(--primary-50)}

/* ── SCENARIO LAB ────────────────────────────────────── */
.scenario-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(260px,100%),1fr));gap:var(--sp-5);margin-bottom:var(--sp-8)}

.scenario-card{
  background:var(--white);border:1.5px solid var(--neutral-200);
  border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--shadow-sm);
  display:flex;flex-direction:column;gap:var(--sp-4);
  transition:var(--mid);cursor:pointer;
}
.scenario-card:hover{border-color:var(--primary-300);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.scenario-card.selected{border-color:var(--primary-500);background:var(--primary-50)}
.scenario-card--custom{border-style:dashed;background:var(--neutral-50)}
.scenario-card__title{font-size:var(--text-base);font-weight:700;color:var(--neutral-900)}
.scenario-card__sub{font-size:var(--text-xs);color:var(--neutral-500)}
.scenario-card__rows{display:flex;flex-direction:column;gap:var(--sp-2)}
.scenario-card__row{display:flex;justify-content:space-between;font-size:12px}
.scenario-card__row-label{color:var(--neutral-500)}
.scenario-card__row-val{font-weight:700;color:var(--neutral-800)}
.scenario-card__row-val span{color:var(--success-600);margin-left:4px}
.scenario-impact{
  background:var(--success-50);border:1px solid var(--success-100);
  border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);
  font-size:var(--text-sm);font-weight:700;color:var(--success-700);
}
.scenario-btn{
  display:flex;align-items:center;justify-content:center;gap:var(--sp-2);
  padding:var(--sp-3);background:var(--primary-600);color:var(--white);
  border-radius:var(--r-md);font-size:var(--text-sm);font-weight:600;
  transition:var(--fast);cursor:pointer;
}
.scenario-btn:hover{background:var(--primary-700)}

/* scenario results */
.scenario-results{
  background:var(--white);border:1px solid var(--neutral-200);
  border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--shadow-sm);
  margin-bottom:var(--sp-6);display:none;
}
.scenario-results.visible{display:block}
.scenario-results__title{font-size:var(--text-lg);font-weight:700;color:var(--neutral-900);margin-bottom:var(--sp-5)}
.scenario-results__chart{height:clamp(160px,30vw,220px);margin-bottom:var(--sp-5)}
.scenario-results__kpis{display:flex;flex-direction:column;gap:var(--sp-3)}
.scenario-result-row{
  display:flex;align-items:center;flex-wrap:wrap;gap:var(--sp-2);
  padding:var(--sp-3) var(--sp-4);background:var(--neutral-50);
  border-radius:var(--r-md);border:1px solid var(--neutral-200);
  font-size:var(--text-sm);
}
.scenario-result-row__label{flex:1;color:var(--neutral-700);font-weight:600}
.scenario-result-row__val{font-weight:700;color:var(--neutral-800)}
.scenario-result-row__delta{font-weight:700;color:var(--success-600);margin-left:var(--sp-2)}
.scenario-results__actions{display:flex;gap:var(--sp-3);margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--neutral-200)}

/* ── DOC GENERATOR WIZARD ────────────────────────────── */
.wizard-wrap{max-width:min(720px,100%);margin:0 auto}
.wizard-stepper{display:flex;align-items:center;margin-bottom:var(--sp-8)}
.wizard-step{
  display:flex;align-items:center;gap:var(--sp-3);flex:1;position:relative;
}
.wizard-step:not(:last-child)::after{
  content:'';position:absolute;left:32px;right:0;top:50%;
  height:2px;background:var(--neutral-200);z-index:0;
}
.wizard-step.done::after{background:var(--primary-400)}
.wizard-step__dot{
  width:32px;height:32px;border-radius:50%;border:2px solid var(--neutral-300);
  background:var(--white);color:var(--neutral-500);
  display:flex;align-items:center;justify-content:center;
  font-size:var(--text-sm);font-weight:700;flex-shrink:0;z-index:1;position:relative;
  transition:var(--mid);
}
.wizard-step.active .wizard-step__dot{border-color:var(--primary-600);background:var(--primary-600);color:var(--white)}
.wizard-step.done .wizard-step__dot{border-color:var(--primary-400);background:var(--primary-400);color:var(--white)}
.wizard-step__label{font-size:var(--text-xs);font-weight:600;color:var(--neutral-500);white-space:nowrap;position:relative;z-index:1}
.wizard-step.active .wizard-step__label{color:var(--primary-700)}
.wizard-panel{background:var(--white);border:1px solid var(--neutral-200);border-radius:var(--r-xl);padding:var(--sp-8);box-shadow:var(--shadow-sm)}
.wizard-panel__title{font-size:var(--text-xl);font-weight:700;color:var(--neutral-900);margin-bottom:var(--sp-2)}
.wizard-panel__sub{font-size:var(--text-sm);color:var(--neutral-500);margin-bottom:var(--sp-6)}

/* template cards */
.template-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(160px,100%),1fr));gap:var(--sp-4);margin-bottom:var(--sp-6)}
.template-card{
  border:1.5px solid var(--neutral-200);border-radius:var(--r-lg);padding:var(--sp-5);
  cursor:pointer;transition:var(--mid);text-align:center;background:var(--white);
}
.template-card:hover{border-color:var(--primary-300);background:var(--primary-50)}
.template-card.selected{border-color:var(--primary-600);background:var(--primary-50)}
.template-card__icon{width:48px;height:48px;border-radius:var(--r-lg);background:var(--primary-50);
  display:flex;align-items:center;justify-content:center;margin:0 auto var(--sp-3);color:var(--primary-600)}
.template-card__name{font-size:var(--text-sm);font-weight:700;color:var(--neutral-900);margin-bottom:var(--sp-1)}
.template-card__desc{font-size:11px;color:var(--neutral-500);line-height:1.5}

/* kpi checklist */
.kpi-checklist{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-6)}
.kpi-check-row{
  display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4);border:1.5px solid var(--neutral-200);
  border-radius:var(--r-md);cursor:pointer;transition:var(--fast);
}
.kpi-check-row:hover{border-color:var(--primary-300);background:var(--neutral-50)}
.kpi-check-row.checked{border-color:var(--primary-400);background:var(--primary-50)}
.kpi-check-row__box{
  width:18px;height:18px;border-radius:4px;border:2px solid var(--neutral-300);
  flex-shrink:0;display:flex;align-items:center;justify-content:center;
  transition:var(--fast);
}
.kpi-check-row.checked .kpi-check-row__box{background:var(--primary-600);border-color:var(--primary-600)}
.kpi-check-row__label{flex:1;font-size:var(--text-sm);font-weight:600;color:var(--neutral-800)}
.kpi-check-row__badge{font-size:10px;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--primary-50);color:var(--primary-600);border:1px solid var(--primary-100)}

/* tone radio */
.tone-options{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-6)}
.tone-option{
  display:flex;align-items:center;gap:var(--sp-3);
  padding:var(--sp-4) var(--sp-5);border:1.5px solid var(--neutral-200);
  border-radius:var(--r-md);cursor:pointer;transition:var(--fast);
}
.tone-option:hover{border-color:var(--primary-300)}
.tone-option.selected{border-color:var(--primary-600);background:var(--primary-50)}
.tone-radio{
  width:18px;height:18px;border-radius:50%;border:2px solid var(--neutral-300);flex-shrink:0;
  display:flex;align-items:center;justify-content:center;transition:var(--fast);
}
.tone-option.selected .tone-radio{border-color:var(--primary-600)}
.tone-radio::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--primary-600);display:none}
.tone-option.selected .tone-radio::after{display:block}
.wizard-input{
  width:100%;border:1.5px solid var(--neutral-300);border-radius:var(--r-md);
  padding:var(--sp-3) var(--sp-4);font-family:var(--font-body);font-size:var(--text-sm);
  outline:none;transition:var(--fast);background:var(--white);
}
.wizard-input:focus{border-color:var(--primary-400);box-shadow:0 0 0 3px rgba(25,25,112,.08)}

/* wizard summary */
.wizard-summary{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-6)}
.wizard-summary-row{display:flex;justify-content:space-between;padding:var(--sp-3) 0;border-bottom:1px solid var(--neutral-100)}
.wizard-summary-row__label{font-size:var(--text-sm);color:var(--neutral-500)}
.wizard-summary-row__val{font-size:var(--text-sm);font-weight:700;color:var(--neutral-900)}

/* wizard nav */
.wizard-nav{display:flex;gap:var(--sp-3);justify-content:space-between;margin-top:var(--sp-6)}
.wizard-nav-btn{
  display:flex;align-items:center;gap:var(--sp-2);padding:var(--sp-3) var(--sp-6);
  border-radius:var(--r-md);font-size:var(--text-sm);font-weight:600;transition:var(--fast);cursor:pointer;
}
.wizard-nav-btn--back{background:var(--white);color:var(--neutral-600);border:1.5px solid var(--neutral-300)}
.wizard-nav-btn--back:hover{border-color:var(--neutral-400);color:var(--neutral-900)}
.wizard-nav-btn--next{background:var(--primary-600);color:var(--white);flex:1;justify-content:center}
.wizard-nav-btn--next:hover{background:var(--primary-700)}
.wizard-nav-btn--generate{
  flex:1;justify-content:center;
  background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-800) 100%);
  color:var(--white);font-size:var(--text-base);
}
.wizard-nav-btn--generate:hover{background:linear-gradient(135deg,var(--primary-700) 0%,var(--primary-900) 100%)}

/* ai pre-selected badge */
.ai-badge{
  display:inline-flex;align-items:center;gap:5px;
  font-size:10px;font-weight:700;padding:3px 10px;border-radius:999px;
  background:var(--primary-50);color:var(--primary-600);border:1px solid var(--primary-100);
  margin-left:var(--sp-3);
}

/* results section in scenario */
.studio-results-bar{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(140px,100%),1fr));gap:var(--sp-4);
  margin-bottom:var(--sp-6);
}
.studio-results-bar__item{
  background:var(--white);border:1.5px solid var(--neutral-200);
  border-radius:var(--r-lg);padding:var(--sp-4) var(--sp-5);
  text-align:center;box-shadow:var(--shadow-sm);
}
.studio-results-bar__val{font-size:var(--text-2xl);font-weight:800;color:var(--primary-700);line-height:1.1}
.studio-results-bar__delta{font-size:var(--text-xs);font-weight:700;color:var(--success-600);margin:var(--sp-1) 0}
.studio-results-bar__label{font-size:10px;color:var(--neutral-500);text-transform:uppercase;letter-spacing:.08em}


@keyframes fadeInUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes pulse-dot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
@keyframes typing-bounce{0%,60%,100%{transform:translateY(0);opacity:.4}30%{transform:translateY(-6px);opacity:1}}
.live-dot{width:8px;height:8px;border-radius:50%;background:var(--success-600);animation:pulse-dot 2s infinite;display:inline-block}
.fade-in{animation:fadeInUp .4s ease both}
.delay-1{animation-delay:.06s} .delay-2{animation-delay:.12s} .delay-3{animation-delay:.18s} .delay-4{animation-delay:.24s}

/* ── RESPONSIVE ──────────────────────────────────────── */

/* ≤1200px — wide tablet */
@media(max-width:1200px){
  .analyst-panel{width:360px}
  .app-shell.panel-open .main-area{margin-right:360px}
  .summary-hero{grid-template-columns:1fr}
  .summary-hero__score{
    border-right:none;border-bottom:1px solid var(--neutral-200);
    padding:0 0 var(--sp-5) 0;text-align:left;
    display:flex;align-items:center;gap:var(--sp-5);flex-direction:row;
  }
  .index-header,.index-content{padding-left:var(--sp-6);padding-right:var(--sp-6)}
}

/* ≤900px — tablet / phablet */
@media(max-width:900px){
  /* Sidebar: off-canvas drawer */
  .sidebar{
    position:fixed;top:0;left:0;height:100%;width:var(--sidebar-w);
    transform:translateX(-100%);transition:transform var(--slow);z-index:300;
  }
  .sidebar.mobile-open{transform:translateX(0)}
  /* Show hamburger */
  .topbar__hamburger{display:flex !important}
  .topbar__date,.topbar__divider{display:none}
  /* No split-screen push */
  .app-shell.panel-open .main-area{margin-right:0}
  /* Analyst panel → bottom sheet */
  .analyst-panel{
    top:auto !important;bottom:0;right:0;left:0;
    width:100% !important;height:72vh;
    border-radius:var(--r-2xl) var(--r-2xl) 0 0;
    border-left:none;border-top:1px solid var(--neutral-200);
    transform:translateY(100%);
    box-shadow:0 -8px 32px rgba(25,25,112,.14);
  }
  .analyst-panel.open{transform:translateY(0)}
  /* Overlay */
  .overlay{
    display:block;position:fixed;inset:0;
    background:rgba(0,0,10,.45);z-index:199;
    opacity:0;pointer-events:none;transition:opacity var(--mid);
  }
  .overlay.active{opacity:1;pointer-events:all}
  /* Layout */
  .chart-row{flex-direction:column}
  .chart-card{min-width:100%;flex:0 0 100%}
  .kpi-card{min-width:calc(50% - var(--sp-2));flex-basis:calc(50% - var(--sp-2))}
  .summary-hero{display:flex;flex-direction:column;gap:var(--sp-5)}
  .summary-hero__score{
    border-right:none;border-bottom:1px solid var(--neutral-200);
    padding-right:0;padding-bottom:var(--sp-5);margin-bottom:0;
    display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--sp-3);
  }
  .summary-hero__kpis{grid-template-columns:repeat(2,1fr)}
  /* ZMOT ring: scale down on tablet */
  .zmot-score-ring{width:min(156px,40vw);height:min(156px,40vw)}
  .zmot-score-ring svg{width:min(156px,40vw);height:min(156px,40vw)}
  .compare-grid{flex-direction:column}
  .compare-card{min-width:100%}
  .module-card{min-width:100%;max-width:100%}
  /* Studio */
  .studio-topbar__company{display:none}
  .insight-strip{display:none}
  /* Index */
  .index-header,.index-content{padding-left:var(--sp-5);padding-right:var(--sp-5)}
}

/* ≤600px — phone */
@media(max-width:600px){
  /* Core layout */
  :root{--sp-8:1.5rem}
  .kpi-card{min-width:100%;flex:0 0 100%}
  .kpi-grid{gap:var(--sp-3)}
  /* Topbar */
  .topbar__breadcrumb{display:none}
  .topbar__title{
    font-size:var(--text-sm);
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    max-width:40vw;
  }
  .topbar__analyst-btn .btn-label{display:none}
  .topbar__analyst-btn{padding:var(--sp-2) 10px}
  /* Analyst panel */
  .analyst-panel{height:88vh}
  .analyst-panel__header{padding:var(--sp-4) var(--sp-4)}
  .analyst-panel__body{padding:var(--sp-4) var(--sp-4)}
  .analyst-panel__footer{padding:var(--sp-3) var(--sp-4)}
  .analyst-panel__mode-tabs{gap:var(--sp-1)}
  .analyst-mode-tab{font-size:10px;padding:5px var(--sp-2)}
  /* Content header */
  .content__title{font-size:var(--text-2xl)}
  .content__header{margin-bottom:var(--sp-5)}
  /* Summary hero */
  .summary-hero{padding:var(--sp-5);gap:var(--sp-5)}
  .summary-hero__score{gap:var(--sp-3);align-items:center}
  .summary-hero__score-num{font-size:2.2rem}
  .summary-hero__kpis{grid-template-columns:repeat(2,1fr);gap:var(--sp-3)}
  /* ZMOT ring: smaller on phone */
  .zmot-score-ring{width:120px;height:120px}
  .zmot-score-ring svg{width:120px;height:120px}
  .zmot-score-ring__num{font-size:1.8rem}
  /* Section header */
  .section-header{flex-wrap:wrap;gap:var(--sp-2)}
  .section-header__btn{font-size:10px;padding:3px 8px}
  /* Tables */
  .data-table-wrap{border-radius:0;border-left:none;border-right:none;margin:0 calc(-1 * clamp(var(--sp-4),4vw,var(--sp-8)))}
  /* Exec summary */
  .exec-summary{padding:var(--sp-5)}
  /* Alert items */
  .alert-item{padding:var(--sp-4) var(--sp-4)}
  /* Piano */
  .piano-item__actions{flex-direction:column}
  .piano-btn{width:100%;justify-content:center}
  /* Scenario results */
  .scenario-results{padding:var(--sp-4)}
  .scenario-results__actions{flex-wrap:wrap}
  .scenario-results__actions .piano-btn{flex:1 1 auto;min-width:0;justify-content:center}
  /* Custom builder */
  .custom-builder{padding:var(--sp-4)}
  .custom-preview{grid-template-columns:repeat(3,1fr)}
  .custom-preview__val{font-size:var(--text-base)}
  .custom-preview__label{font-size:9px}
  .custom-builder__actions{flex-direction:column}
  .custom-btn--generate,.custom-btn--analyst{width:100%;justify-content:center}
  /* Studio */
  .studio-topbar{padding:0 var(--sp-4);gap:var(--sp-2)}
  .studio-topbar__back{font-size:11px}
  .studio-topbar__back .back-label{display:none}
  .studio-topbar__tabs{gap:4px}
  .studio-tab{font-size:11px;padding:6px 10px}
  .studio-section-title{font-size:var(--text-xl)}
  .studio-section-sub{margin-bottom:var(--sp-5)}
  /* Wizard */
  .wizard-stepper{margin-bottom:var(--sp-5)}
  .wizard-steps{gap:var(--sp-2)}
  .wizard-step__label{display:none}
  .wizard-step__num{width:28px;height:28px;font-size:11px}
  .wizard-step:not(:last-child)::after{left:28px}
  .wizard-panel{padding:var(--sp-5)}
  .wizard-nav{flex-direction:column-reverse;gap:var(--sp-2)}
  .wizard-nav-btn--back,.wizard-nav-btn--next,.wizard-nav-btn--generate{width:100%;justify-content:center}
  /* Index */
  .index-header{padding:var(--sp-6) var(--sp-4) var(--sp-5)}
  .index-header__company{flex-direction:column;gap:var(--sp-5)}
  .index-header__company-name{font-size:var(--text-2xl)}

  .index-header__brand{margin-bottom:var(--sp-5)}
  .index-content{padding:var(--sp-5) var(--sp-4) var(--sp-8)}
  .index-footer{flex-direction:column;gap:var(--sp-2);text-align:center;padding:var(--sp-5) var(--sp-4)}
  .module-grid{gap:var(--sp-4)}
  .module-card{padding:var(--sp-5)}
  /* 404 */
  .error-code{font-size:72px}
}

/* ── CUSTOM SCENARIO BUILDER ─────────────────────────── */
.custom-builder{
  background:var(--white);border:1.5px solid var(--primary-200);
  border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--shadow-sm);
  margin-bottom:var(--sp-6);
}
.custom-builder__title{
  font-size:var(--text-base);font-weight:700;color:var(--neutral-900);
  margin-bottom:var(--sp-2);
}
.custom-builder__sub{
  font-size:var(--text-sm);color:var(--neutral-500);margin-bottom:var(--sp-6);
}
.custom-sliders{display:flex;flex-direction:column;gap:var(--sp-5);margin-bottom:var(--sp-6)}
.custom-slider-row{display:flex;flex-direction:column;gap:var(--sp-2)}
.custom-slider-row__header{display:flex;justify-content:space-between;align-items:baseline}
.custom-slider-row__label{font-size:var(--text-sm);font-weight:600;color:var(--neutral-700)}
.custom-slider-row__value{
  font-size:var(--text-sm);font-weight:800;color:var(--primary-700);
  min-width:80px;text-align:right;
}
.custom-slider-row__range{display:flex;justify-content:space-between;margin-top:2px}
.custom-slider-row__range span{font-size:10px;color:var(--neutral-400)}
input[type=range].custom-range{
  width:100%;height:4px;border-radius:2px;
  accent-color:var(--primary-600);cursor:pointer;
  background:linear-gradient(to right,var(--primary-600) 0%,var(--primary-600) var(--pct,50%),var(--neutral-200) var(--pct,50%),var(--neutral-200) 100%);
}
.custom-preview{
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);
  margin-bottom:var(--sp-6);padding:var(--sp-4);
  background:var(--neutral-50);border-radius:var(--r-md);
  border:1px solid var(--neutral-200);
}
.custom-preview__item{text-align:center}
.custom-preview__val{
  font-size:var(--text-lg);font-weight:800;color:var(--neutral-900);
  margin-bottom:2px;
}
.custom-preview__val.positive{color:var(--success-600)}
.custom-preview__val.negative{color:var(--danger-600)}
.custom-preview__delta{font-size:11px;font-weight:700;color:var(--success-600);margin-bottom:2px}
.custom-preview__delta.neg{color:var(--danger-500)}
.custom-preview__label{font-size:10px;color:var(--neutral-500);text-transform:uppercase;letter-spacing:.06em}
.custom-builder__actions{display:flex;gap:var(--sp-3)}
.custom-btn--generate{
  flex:1;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);
  padding:var(--sp-3) var(--sp-5);
  background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-800) 100%);
  color:var(--white);border-radius:var(--r-md);font-size:var(--text-sm);font-weight:700;
  cursor:pointer;transition:var(--fast);border:none;
}
.custom-btn--generate:hover{background:linear-gradient(135deg,var(--primary-700) 0%,var(--primary-900) 100%)}
.custom-btn--analyst{
  display:flex;align-items:center;gap:var(--sp-2);
  padding:var(--sp-3) var(--sp-5);border:1.5px solid var(--primary-200);
  color:var(--primary-600);background:var(--white);border-radius:var(--r-md);
  font-size:var(--text-sm);font-weight:600;cursor:pointer;transition:var(--fast);
}
.custom-btn--analyst:hover{background:var(--primary-50)}

/* ══════════════════════════════════════════════════════
   RESPONSIVE OVERRIDES — Systematic mobile fixes
   All rules use high specificity to override components
══════════════════════════════════════════════════════ */

/* ── TIMELINE GRID ───────────────────────────────────── */
.timeline-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:var(--sp-4);
}
@media(max-width:900px){
  .timeline-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:500px){
  .timeline-grid{grid-template-columns:1fr}
}

/* summary-hero responsive: handled in main 900px/600px blocks above */

/* ── WIZARD TEMPLATE GRID — 2 col on mobile ──────────── */
@media(max-width:600px){
  .template-grid{
    grid-template-columns:repeat(2,1fr) !important;
    gap:var(--sp-3) !important;
  }
  .template-card{padding:var(--sp-3)}
  .template-card__icon{width:36px;height:36px}
  .template-card__name{font-size:11px}
  .template-card__desc{font-size:10px}
}

/* ── STUDIO TOPBAR — prevent tab overflow ────────────── */
@media(max-width:600px){
  .studio-topbar{flex-wrap:nowrap;overflow:hidden}
  .studio-topbar__back{flex-shrink:0;font-size:12px}
  .studio-topbar__back span{display:none} /* icon only */
  .studio-topbar__tabs{flex:1;justify-content:center;gap:2px;overflow:hidden}
  .studio-tab{font-size:10px;padding:var(--sp-2) var(--sp-2);white-space:nowrap}
}

/* ── GLOBAL OVERFLOW PREVENTION ─────────────────────── */
@media(max-width:900px){
  /* Prevent any child from exceeding viewport */
  .content > *{max-width:100%;overflow-x:hidden}
  .chart-card,
  .kpi-card,
  .chart-card > *,
  .section-content{max-width:100%;box-sizing:border-box}
  /* But allow tables to scroll horizontally */
  .data-table-wrap{overflow-x:auto !important;max-width:100% !important}
  /* Studio body overflow */
  .studio-body > *{max-width:100%}
}

/* index-irp-score: handled in base styles below */

/* ── INDEX IRP SCORE BLOCK ───────────────────────────── */
.index-irp-score{
  text-align:center;
  flex-shrink:0;
}
.index-irp-score__label{
  font-size:10px;font-weight:700;text-transform:uppercase;
  letter-spacing:.1em;opacity:.5;margin-bottom:8px;
  font-family:var(--font-body);
}
.index-irp-score__num{
  font-family:var(--font-body);font-weight:800;
  font-size:3.5rem;line-height:1;margin-bottom:4px;color:var(--white);
}
@media(max-width:600px){
  .index-irp-score{
    width:100%;
    display:flex;
    flex-direction:row;
    align-items:center;
    gap:var(--sp-4);
    padding-top:var(--sp-4);
    border-top:1px solid rgba(255,255,255,.15);
    text-align:left;
    flex-shrink:1;
  }
  .index-irp-score__label{margin-bottom:0;white-space:nowrap}
  .index-irp-score__num{font-size:2.4rem;margin-bottom:0}
}

/* ── UTILITY CLASSES ─────────────────────────────────── */

/* tipografia */
.text-meta   {font-size:12px;color:var(--neutral-600)}
.text-detail {font-size:11px;color:var(--neutral-600);line-height:1.6;margin-bottom:var(--sp-3)}
.text-body   {font-size:13px;color:var(--neutral-700);line-height:1.7}
.text-summary{font-size:13px;color:var(--neutral-600);line-height:1.7;padding:16px;background:var(--neutral-50);border-radius:var(--r-md);border:1px solid var(--neutral-200)}

/* badge varianti */
.badge--sm   {font-size:9px;margin-left:var(--sp-2)}

/* kpi-card sub-unit e half-width */
.kpi-card__val-unit{font-size:1rem;font-weight:500;color:var(--neutral-400)}
.kpi-card--half    {min-width:calc(50% - var(--sp-2));flex:1 1 300px}

/* dim-bar sub-value */
.dim-bar__val-sub{font-size:10px;color:var(--neutral-400);font-weight:400}

/* layout utility */
.flex-between{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--sp-3)}
.flex-row-sm {display:flex;gap:10px;font-size:13px;color:var(--neutral-700)}
.mb-8        {margin-bottom:var(--sp-8)}

/* box semantici */
.note-box     {margin-top:var(--sp-4);padding:var(--sp-3) var(--sp-4);background:var(--neutral-50);border-radius:var(--r-md);border:1px solid var(--neutral-200);font-size:12px;color:var(--neutral-500)}
.hint-success {font-size:11px;color:var(--success-700);background:var(--success-50);border-radius:var(--r-sm);padding:6px 10px}
.hint-success--lg{padding:12px;background:var(--success-50);border-radius:var(--r-md);border-left:3px solid var(--success-400)}

/* valori colorati */
.val-pos {color:var(--success-600);font-weight:700}
.val-warn{color:var(--warning-600);font-weight:700}
.val-neg {color:var(--danger-600);font-weight:700}
.module-card__header{display:flex;align-items:flex-start;justify-content:space-between}
.module-card__footer-note{font-size:13px;color:var(--neutral-500)}
.flex-col-gap{display:flex;flex-direction:column;gap:10px;margin-top:4px}
.hint-danger--lg{padding:12px;background:var(--danger-50);border-radius:var(--r-md);border-left:3px solid var(--danger-600)}
.hint-warn--lg  {padding:12px;background:var(--warning-50);border-radius:var(--r-md);border-left:3px solid var(--warning-600)}

/* additional utility — round 2 */
.text-detail-alt{font-size:12px;color:var(--neutral-700);line-height:1.6;font-style:italic}
.text-note-sm   {font-size:10px;color:var(--neutral-400);margin-top:6px}
.text-sub-sm    {font-size:11px;color:var(--neutral-400)}

/* ── ROADMAP ──────────────────────────────────────────── */
.roadmap{
  position:relative;
  padding-top:var(--sp-8);
  overflow:hidden;
}

/* asse orizzontale */
.roadmap__track{
  position:absolute;
  top:calc(var(--sp-8) + 22px); /* allineato al centro dot */
  left:0;right:0;
  height:2px;
  background:var(--neutral-200);
  z-index:0;
}
.roadmap__track-fill{
  height:100%;
  background:linear-gradient(90deg,var(--primary-600),var(--primary-300));
  width:0%;
  transition:width 1.2s cubic-bezier(.4,0,.2,1);
}

/* griglia milestone */
.roadmap__items{
  display:grid;
  grid-template-columns:repeat(var(--roadmap-cols,4),1fr);
  gap:0;
  position:relative;
  z-index:1;
}

/* singola milestone */
.roadmap__item{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:0 var(--sp-3);
}

/* dot */
.roadmap__dot{
  width:44px;height:44px;
  border-radius:50%;
  border:3px solid var(--neutral-200);
  background:var(--white);
  display:flex;align-items:center;justify-content:center;
  font-size:13px;font-weight:700;color:var(--neutral-400);
  flex-shrink:0;
  transition:border-color var(--mid), background var(--mid), color var(--mid);
  box-shadow:var(--shadow-sm);
  position:relative;
  z-index:2;
}

.roadmap__item--done   .roadmap__dot{background:var(--primary-600);border-color:var(--primary-600);color:var(--white)}
.roadmap__item--active .roadmap__dot{background:var(--white);border-color:var(--primary-600);color:var(--primary-600);box-shadow:0 0 0 4px var(--primary-100)}
.roadmap__item--soon   .roadmap__dot{border-color:var(--warning-600);color:var(--warning-600)}
.roadmap__item--future .roadmap__dot{border-color:var(--neutral-200);color:var(--neutral-300)}

/* fase label sopra il dot */
.roadmap__phase{
  font-size:9px;font-weight:700;text-transform:uppercase;
  letter-spacing:.12em;color:var(--neutral-400);
  margin-bottom:var(--sp-2);
  white-space:nowrap;
}
.roadmap__item--done   .roadmap__phase{color:var(--primary-600)}
.roadmap__item--active .roadmap__phase{color:var(--primary-600)}
.roadmap__item--soon   .roadmap__phase{color:var(--warning-600)}

/* contenuto sotto il dot */
.roadmap__content{
  margin-top:var(--sp-4);
  text-align:center;
}
.roadmap__title{
  font-size:13px;font-weight:700;color:var(--neutral-800);
  margin-bottom:var(--sp-1);
  line-height:1.35;
}
.roadmap__desc{
  font-size:11px;color:var(--neutral-500);
  line-height:1.55;
  margin-bottom:var(--sp-2);
}
.roadmap__badge{
  display:inline-flex;align-items:center;gap:4px;
  font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;
  padding:2px 8px;border-radius:var(--r-sm);
}
.roadmap__badge--done  {background:var(--primary-50);color:var(--primary-600)}
.roadmap__badge--active{background:var(--primary-100);color:var(--primary-700)}
.roadmap__badge--soon  {background:var(--warning-50);color:var(--warning-600)}
.roadmap__badge--future{background:var(--neutral-100);color:var(--neutral-500)}

/* connettore verticale tra dot e content — optional accent */
.roadmap__item--active .roadmap__content::before{
  content:'';display:block;
  width:2px;height:12px;
  background:var(--primary-200);
  margin:0 auto var(--sp-2);
}

/* responsive */
@media(max-width:900px){
  .roadmap__items{grid-template-columns:repeat(2,1fr);row-gap:var(--sp-8)}
  .roadmap__track{display:none}
}
@media(max-width:500px){
  .roadmap__items{grid-template-columns:1fr;row-gap:var(--sp-6)}
}

/* ============================================================
   DATA-TABLE — expanded
   ============================================================ */
.data-table td.td--num{text-align:right;font-variant-numeric:tabular-nums;font-weight:700;color:var(--neutral-800)}
.data-table td.td--pct{color:var(--neutral-400);font-size:11px;text-align:right}
.data-table td.td--val{font-weight:700;color:var(--neutral-800)}
.data-table tr.row--crit td{background:var(--danger-50);border-bottom:1px solid var(--danger-100)}
.data-table tr.row--crit td:first-child{border-left:3px solid var(--danger-500);padding-left:calc(var(--sp-4) - 3px)}

/* ============================================================
   TREND INDICATORS — inline utility
   ============================================================ */
.trend--up{color:var(--success-700);font-weight:700}
.trend--up::before{content:"↑ ";font-size:.85em}
.trend--down{color:var(--danger-600);font-weight:700}
.trend--down::before{content:"↓ ";font-size:.85em}
.trend--warn{color:var(--warning-700);font-weight:700}
.trend--warn::before{content:"→ ";font-size:.85em}

/* ============================================================
   SWOT — 2×2 grid + bubble chart toggle
   ============================================================ */
.swot{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}
.swot__cell{border-radius:var(--r-md);padding:var(--sp-4) var(--sp-5);border:1px solid transparent}
.swot__cell--strength{background:#EDF7F1;border-color:#A8DCBC}
.swot__cell--weakness{background:#FEF2F2;border-color:#FCA5A5}
.swot__cell--opportunity{background:#EEF4FF;border-color:#A5B4FC}
.swot__cell--threat{background:#FFFBEB;border-color:#FCD34D}
.swot__title{font-size:var(--text-xs);font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin-bottom:var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}
.swot__cell--strength .swot__title{color:#166534}
.swot__cell--weakness .swot__title{color:#991B1B}
.swot__cell--opportunity .swot__title{color:#1E40AF}
.swot__cell--threat .swot__title{color:#92400E}
.swot__list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--sp-2)}
.swot__item{font-size:var(--text-sm);color:var(--neutral-700);line-height:1.45;padding-left:var(--sp-4);position:relative}
.swot__item::before{content:"·";position:absolute;left:0;color:var(--neutral-400);font-weight:700}
/* bubble chart view */
.swot-bubble{display:none;position:relative;width:100%;aspect-ratio:1.6/1;background:var(--neutral-50);border-radius:var(--r-lg);border:1px solid var(--neutral-200);overflow:hidden}
.swot-bubble.visible{display:block}
.swot.bubble-mode{display:none}
.swot-bubble__axis-x{position:absolute;bottom:32px;left:0;right:0;height:1px;background:var(--neutral-200)}
.swot-bubble__axis-y{position:absolute;left:50%;top:0;bottom:32px;width:1px;background:var(--neutral-200)}
.swot-bubble__label-x{position:absolute;bottom:8px;left:50%;transform:translateX(-50%);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--neutral-400)}
.swot-bubble__label-y{position:absolute;top:8px;left:8px;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--neutral-400)}
.swot-bubble__node{position:absolute;border-radius:50%;transform:translate(-50%,-50%);cursor:pointer;transition:opacity .2s,transform .2s;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;color:#fff;border:2px solid rgba(255,255,255,.6)}
.swot-bubble__node:hover{opacity:.85;transform:translate(-50%,-50%) scale(1.12);z-index:10}
.swot-bubble__tooltip{position:absolute;background:var(--neutral-900);color:#fff;font-size:11px;border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-3);pointer-events:none;opacity:0;transition:opacity .15s;max-width:180px;line-height:1.4;z-index:20;white-space:normal}
.swot-bubble__tooltip.visible{opacity:1}
.swot-bubble__quadrant-label{position:absolute;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;opacity:.35}
@media(max-width:600px){
  .swot{grid-template-columns:1fr}
}

/* ============================================================
   LINEAR-GAUGE — IRP variant (label override)
   ============================================================ */
.linear-gauge--irp .linear-gauge__scale span:nth-child(1)::after{content:" · E"}
.linear-gauge--irp .linear-gauge__scale span:nth-child(2)::after{content:" · D"}
.linear-gauge--irp .linear-gauge__scale span:nth-child(3)::after{content:" · C+"}
.linear-gauge--irp .linear-gauge__scale span:nth-child(4)::after{content:" · B"}
.linear-gauge--irp .linear-gauge__scale span:nth-child(5)::after{content:" · A"}

/* ============================================================
   TD--LABEL — etichetta riga in tabelle anagrafica/profilo
   ============================================================ */
.data-table td.td--label{color:var(--neutral-500);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;width:140px;white-space:nowrap}

/* ============================================================
   IRP-SCALE — striscia fasce rating sotto linear-gauge--irp
   ============================================================ */
.irp-scale{display:grid;grid-template-columns:repeat(5,1fr);gap:var(--sp-2);margin-top:var(--sp-5)}
.irp-scale__band{text-align:center;padding:var(--sp-2) var(--sp-1);border-radius:var(--r-sm);border:1px solid transparent}
.irp-scale__label{font-size:10px;font-weight:800;line-height:1.3}
.irp-scale__range{font-size:10px;color:var(--neutral-500);margin-top:2px}
.irp-scale__band--e{background:var(--danger-50);border-color:var(--danger-100)} .irp-scale__band--e .irp-scale__label{color:var(--danger-700)}
.irp-scale__band--d{background:#FFF7ED;border-color:#FDBA74}               .irp-scale__band--d .irp-scale__label{color:#9A3412}
.irp-scale__band--c{background:var(--warning-50);border-color:var(--warning-600)} .irp-scale__band--c .irp-scale__label{color:var(--warning-700)}
.irp-scale__band--b{background:var(--success-50);border-color:var(--success-100)} .irp-scale__band--b .irp-scale__label{color:var(--success-700)}
.irp-scale__band--a{background:var(--success-50);border-color:var(--success-100)} .irp-scale__band--a .irp-scale__label{color:var(--success-700)}
.irp-scale__band--active{box-shadow:0 0 0 2px var(--warning-600)}

/* ── INLINE STYLE REPLACEMENTS ─────────────────────────── */
.z-a { flex: 2 }
#api-key-btn-wrap { margin-left: auto; padding-left: 8px }
.dim-bar-list--mt { margin-top: var(--sp-3) }
.dim-bar__val--wide { min-width: 90px }
.ring-center { display: flex; justify-content: center }
.badge--inline { vertical-align: middle }

/* ── UTILITY CLASSES (sostituiscono inline residui) ─────── */
.text-success { color: var(--success-600) }
.text-warning { color: var(--warning-600) }
.linear-gauge--hero { margin-top: var(--sp-5); width: 100% }
.linear-gauge__track--light { background: var(--neutral-100) }

/* ── HOME: GLOBAL KPI STRIP ─────────────────────────────── */
.global-kpi-strip{
  display:flex; flex-wrap:wrap; gap:0;
  background:var(--white);
  border-top:1px solid var(--neutral-200);
  border-bottom:1px solid var(--neutral-200);
}
.global-kpi-strip__item{
  flex:1; min-width:140px;
  display:flex; flex-direction:column; justify-content:center;
  padding:var(--sp-4) var(--sp-6);
  border-right:1px solid var(--neutral-200);
  gap:var(--sp-1);
}
.global-kpi-strip__item:last-child{ border-right:none }
.global-kpi-strip__label{
  font-size:var(--text-xs); font-weight:700;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--neutral-400);
}
.global-kpi-strip__val{
  font-size:1.35rem; font-weight:800;
  color:var(--neutral-800); line-height:1.1;
}
.global-kpi-strip__delta{
  font-size:var(--text-xs); font-weight:600;
  display:flex; align-items:center; gap:4px;
}
.global-kpi-strip__delta--up  { color:var(--success-600) }
.global-kpi-strip__delta--warn { color:var(--warning-600) }
.global-kpi-strip__delta--neu  { color:var(--neutral-400) }
.global-kpi-strip__divider{
  width:1px; background:var(--neutral-200); align-self:stretch;
}

/* ── HOME: ALERT STRIP ──────────────────────────────────── */
.home-alert-strip{
  display:flex; flex-direction:column; gap:var(--sp-2);
  padding:var(--sp-5) var(--sp-8);
  background:var(--neutral-50);
  border-bottom:1px solid var(--neutral-200);
}
.home-alert-strip__title{
  font-size:var(--text-xs); font-weight:700;
  text-transform:uppercase; letter-spacing:.1em;
  color:var(--neutral-400); margin-bottom:var(--sp-1);
}
.home-alert-strip__list{
  display:flex; flex-wrap:wrap; gap:var(--sp-3);
}
.home-alert-item{
  display:flex; align-items:flex-start; gap:var(--sp-3);
  background:var(--white);
  border:1px solid var(--neutral-200);
  border-radius:var(--r-lg);
  padding:var(--sp-3) var(--sp-4);
  flex:1; min-width:260px;
  cursor:pointer; transition:box-shadow .15s, border-color .15s;
  text-decoration:none; color:inherit;
}
.home-alert-item:hover{
  box-shadow:var(--shadow-md); border-color:var(--primary-200);
}
.home-alert-item--crit { border-left:3px solid var(--danger-600) }
.home-alert-item--warn { border-left:3px solid var(--warning-600) }
.home-alert-item--info { border-left:3px solid var(--prod-zmot-mid) }
.home-alert-item__dot{
  width:8px; height:8px; border-radius:50%; flex-shrink:0; margin-top:5px;
}
.home-alert-item--crit .home-alert-item__dot{ background:var(--danger-600) }
.home-alert-item--warn .home-alert-item__dot{ background:var(--warning-600) }
.home-alert-item--info .home-alert-item__dot{ background:var(--prod-zmot-mid) }
.home-alert-item__body{ flex:1 }
.home-alert-item__title{
  font-size:var(--text-sm); font-weight:700; color:var(--neutral-800);
  line-height:1.3; margin-bottom:2px;
}
.home-alert-item__desc{
  font-size:var(--text-xs); color:var(--neutral-500); line-height:1.5;
}
.home-alert-item__badge{
  font-size:11px; font-weight:700; flex-shrink:0;
  padding:2px 8px; border-radius:999px; align-self:flex-start;
}
.home-alert-item--crit .home-alert-item__badge{
  background:var(--danger-50); color:var(--danger-700);
}
.home-alert-item--warn .home-alert-item__badge{
  background:var(--warning-50); color:var(--warning-700);
}
.home-alert-item--info .home-alert-item__badge{
  background:var(--prod-zmot-50); color:var(--prod-zmot-dark);
}

@media(max-width:767px){
  .global-kpi-strip__item{ min-width:calc(50% - 1px); padding:var(--sp-3) var(--sp-5) }
  .home-alert-strip{ padding:var(--sp-4) var(--sp-5) }
  .home-alert-item{ min-width:100% }
}

/* ── SCENARIO COMPARE MODE ──────────────────────────── */
.scenario-compare-bar{
  display:flex; align-items:center; gap:var(--sp-3);
  background:var(--primary-50); border:1px solid var(--primary-200);
  border-radius:var(--r-lg); padding:var(--sp-3) var(--sp-4);
  margin-bottom:var(--sp-5); flex-wrap:wrap;
}
.scenario-compare-bar__text{
  flex:1; font-size:var(--text-sm); font-weight:600;
  color:var(--primary-700);
}
.scenario-compare-bar__count{
  font-size:var(--text-xs); color:var(--neutral-500);
}
.scenario-compare-run{
  padding:var(--sp-2) var(--sp-4); border-radius:var(--r-md);
  font-size:var(--text-sm); font-weight:700;
  background:var(--primary-600); color:var(--white);
  border:none; cursor:pointer; transition:background .15s;
  display:flex; align-items:center; gap:6px;
}
.scenario-compare-run:disabled{
  background:var(--neutral-300); cursor:not-allowed;
}
.scenario-compare-run:not(:disabled):hover{ background:var(--primary-700) }
.scenario-compare-cancel{
  padding:var(--sp-2) var(--sp-3); border-radius:var(--r-md);
  font-size:var(--text-sm); font-weight:600;
  background:transparent; color:var(--neutral-500);
  border:1px solid var(--neutral-300); cursor:pointer;
}
.scenario-compare-cancel:hover{ background:var(--neutral-100) }
.scenario-card.compare-selected{
  border-color:var(--primary-500);
  background:var(--primary-50);
  box-shadow:0 0 0 2px var(--primary-300);
}
.scenario-card__compare-check{
  display:none; position:absolute; top:var(--sp-3); right:var(--sp-3);
  width:22px; height:22px; border-radius:50%;
  background:var(--primary-600); color:var(--white);
  align-items:center; justify-content:center;
  font-size:12px; font-weight:800;
}
.compare-mode .scenario-card{ position:relative; cursor:pointer }
.compare-mode .scenario-card.compare-selected .scenario-card__compare-check{ display:flex }
.scenario-compare-btn{
  display:flex; align-items:center; gap:6px;
  padding:var(--sp-2) var(--sp-3); border-radius:var(--r-md);
  font-size:12px; font-weight:600;
  background:var(--neutral-100); color:var(--neutral-600);
  border:1px solid var(--neutral-200); cursor:pointer;
  transition:background .15s, color .15s, border-color .15s;
  margin-left:auto;
}
.scenario-compare-btn:hover,.scenario-compare-btn.active{
  background:var(--primary-50); color:var(--primary-700);
  border-color:var(--primary-300);
}

/* ── COMPARE RESULTS ────────────────────────────────── */
.compare-results{
  display:none; margin-top:var(--sp-6);
  border:1px solid var(--neutral-200); border-radius:var(--r-xl);
  overflow:hidden; background:var(--white);
}
.compare-results.visible{ display:block }
.compare-results__header{
  padding:var(--sp-4) var(--sp-5);
  border-bottom:1px solid var(--neutral-200);
  display:flex; align-items:center; justify-content:space-between;
}
.compare-results__title{
  font-size:var(--text-base); font-weight:700; color:var(--neutral-900);
}
.compare-grid{
  display:grid; grid-template-columns:1fr 1fr;
  border-bottom:1px solid var(--neutral-200);
}
.compare-col{
  padding:var(--sp-5);
}
.compare-col + .compare-col{
  border-left:1px solid var(--neutral-200);
}
.compare-col__badge{
  font-size:11px; font-weight:700;
  padding:2px 10px; border-radius:999px;
  margin-bottom:var(--sp-3); display:inline-block;
}
.compare-col--a .compare-col__badge{ background:var(--primary-50); color:var(--primary-700) }
.compare-col--b .compare-col__badge{ background:var(--prod-zmot-50); color:var(--prod-zmot-dark) }
.compare-col__title{
  font-size:var(--text-base); font-weight:800;
  color:var(--neutral-900); margin-bottom:var(--sp-1);
}
.compare-col__sub{
  font-size:var(--text-xs); color:var(--neutral-500);
  margin-bottom:var(--sp-4);
}
.compare-kpi-list{ display:flex; flex-direction:column; gap:var(--sp-2) }
.compare-kpi-row{
  display:flex; align-items:center; justify-content:space-between;
  font-size:var(--text-sm); padding:var(--sp-2) 0;
  border-bottom:1px solid var(--neutral-100);
}
.compare-kpi-row:last-child{ border-bottom:none }
.compare-kpi-row__label{ color:var(--neutral-500); flex:1 }
.compare-kpi-row__val{ font-weight:700; color:var(--neutral-900) }
.compare-kpi-row__delta{
  font-size:11px; font-weight:700;
  color:var(--success-600); margin-left:var(--sp-2); min-width:40px; text-align:right;
}
.compare-kpi-row__delta--neg{ color:var(--danger-600) }
.compare-impact{
  margin-top:var(--sp-4); padding:var(--sp-3) var(--sp-4);
  border-radius:var(--r-md); font-size:var(--text-sm);
  font-weight:700;
}
.compare-col--a .compare-impact{ background:var(--primary-50); color:var(--primary-700) }
.compare-col--b .compare-impact{ background:var(--prod-zmot-50); color:var(--prod-zmot-dark) }
.compare-diff{
  padding:var(--sp-4) var(--sp-5);
  background:var(--neutral-50);
  border-bottom:1px solid var(--neutral-200);
}
.compare-diff__title{
  font-size:11px; font-weight:700; text-transform:uppercase;
  letter-spacing:.1em; color:var(--neutral-400);
  margin-bottom:var(--sp-3);
}
.compare-diff__list{ display:flex; flex-wrap:wrap; gap:var(--sp-3) }
.compare-diff__item{
  flex:1; min-width:160px;
  background:var(--white); border:1px solid var(--neutral-200);
  border-radius:var(--r-md); padding:var(--sp-3) var(--sp-4);
}
.compare-diff__item-label{ font-size:var(--text-xs); color:var(--neutral-500); margin-bottom:4px }
.compare-diff__item-vals{
  font-size:var(--text-sm); font-weight:700; color:var(--neutral-800);
}
.compare-diff__item-delta{
  font-size:11px; font-weight:700; margin-top:2px; color:var(--primary-600);
}
.compare-results__actions{
  display:flex; gap:var(--sp-3); padding:var(--sp-4) var(--sp-5);
  flex-wrap:wrap;
}
@media(max-width:600px){
  .compare-grid{ grid-template-columns:1fr }
  .compare-col + .compare-col{ border-left:none; border-top:1px solid var(--neutral-200) }
}
/* ── STUDIO DOC OUTPUT ──────────────────────────────── */
.studio-doc-output{
  margin-top:var(--sp-6);
  border:1px solid var(--neutral-200);
  border-radius:var(--r-xl);
  background:var(--white);
  overflow:hidden;
}
.studio-doc-output__header{
  display:flex; align-items:center; gap:var(--sp-3);
  padding:var(--sp-4) var(--sp-5);
  border-bottom:1px solid var(--neutral-200);
  background:var(--neutral-50);
}
.studio-doc-output__title{
  font-size:var(--text-sm); font-weight:700;
  color:var(--neutral-800); flex:1;
}
.studio-doc-output__meta{
  font-size:11px; color:var(--neutral-400);
}
.studio-doc-output__copy{
  display:flex; align-items:center; gap:6px;
  padding:6px var(--sp-3); border-radius:var(--r-md);
  font-size:12px; font-weight:700;
  background:var(--neutral-100); color:var(--neutral-700);
  border:1px solid var(--neutral-200); cursor:pointer;
  transition:background .15s;
}
.studio-doc-output__copy:hover{ background:var(--neutral-200) }
.studio-doc-output__copy.copied{
  background:var(--success-50); color:var(--success-700);
  border-color:var(--success-100);
}
.studio-doc-output__refine{
  display:flex; align-items:center; gap:6px;
  padding:6px var(--sp-3); border-radius:var(--r-md);
  font-size:12px; font-weight:700;
  background:var(--primary-600); color:var(--white);
  border:none; cursor:pointer; transition:background .15s;
}
.studio-doc-output__refine:hover{ background:var(--primary-700) }
.studio-doc-output__body{
  padding:var(--sp-5) var(--sp-6);
  font-size:var(--text-sm); line-height:1.8;
  color:var(--neutral-800);
  white-space:pre-wrap;
  max-height:60vh; overflow-y:auto;
}
.studio-doc-output__body h1,.studio-doc-output__body h2,.studio-doc-output__body h3{
  font-weight:800; color:var(--primary-700);
  margin:var(--sp-5) 0 var(--sp-2);
  font-size:var(--text-base);
}
.studio-doc-output__body h1{ font-size:var(--text-xl); margin-top:0 }
.studio-doc-output__body strong{ color:var(--neutral-900) }
.studio-doc-loading{
  display:flex; flex-direction:column; align-items:center;
  gap:var(--sp-4); padding:var(--sp-10) var(--sp-6);
  color:var(--neutral-500);
}
.studio-doc-loading__spinner{
  width:32px; height:32px; border-radius:50%;
  border:3px solid var(--neutral-200);
  border-top-color:var(--primary-600);
  animation:spin .8s linear infinite;
}
.studio-doc-loading__text{
  font-size:var(--text-sm); font-weight:600;
}
.studio-doc-loading__sub{
  font-size:var(--text-xs); color:var(--neutral-400);
}
@keyframes spin { from { transform: rotate(0deg) } to { transform: rotate(360deg) } }


/* ── Nota Integrativa — XBRL table sanitization ── */
.ni-content table {
  width: 100% !important;
  max-width: 100% !important;
  border-collapse: collapse;
  font-size: 12px;
  line-height: 1.5;
  margin: var(--sp-4) 0;
  border: 1px solid var(--neutral-200);
  border-radius: var(--r-md);
  overflow: hidden;
  table-layout: auto !important;
}
.ni-content table col { width: auto !important; }
.ni-content table td,
.ni-content table th {
  padding: var(--sp-2) var(--sp-3) !important;
  border: 1px solid var(--neutral-200) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
  vertical-align: middle;
  word-break: break-word;
  width: auto !important;
  max-width: none !important;
}
.ni-content table tr:first-child td,
.ni-content table thead td,
.ni-content table thead th {
  background: var(--neutral-50) !important;
  font-weight: 700 !important;
  font-size: 11px !important;
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--neutral-600) !important;
}
.ni-content table tr:hover td {
  background: rgba(66, 99, 235, 0.03);
}
.ni-content table td[style*="bold"],
.ni-content table p[style*="bold"] {
  font-weight: 700 !important;
  color: var(--neutral-800) !important;
}
/* Right-align numeric cells (XBRL often uses text-align:right) */
.ni-content table td[style*="text-align:right"] p,
.ni-content table td[style*="text-align: right"] p {
  text-align: right;
  font-variant-numeric: tabular-nums;
}
/* Kill inline paragraph margins inside cells */
.ni-content table p {
  margin: 0 !important;
  padding: 0 !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}
/* Prose text in NI */
.ni-content > p,
.ni-content > div > p {
  font-size: 13px;
  line-height: 1.75;
  margin-bottom: var(--sp-3);
  color: var(--neutral-700);
}
.ni-content p[style*="font-weight:bold"] {
  color: var(--primary-700) !important;
  font-size: 14px !important;
  margin-top: var(--sp-5) !important;
  margin-bottom: var(--sp-2) !important;
}

/* ── Alert item OK (positive) ── */
.alert-item--ok{border-left:4px solid var(--success-600)}
.alert-item--ok .alert-item__dot{background:var(--success-600)}
.alert-item--ok .alert-item__num{background:var(--success-50);color:var(--success-700)}

/* ── Narrative semaphore tags ── */
.sem {
  display: inline;
  font-weight: 600;
  padding: 1px 6px;
  border-radius: 4px;
  font-size: inherit;
  line-height: inherit;
}
.sem--cri {
  background: var(--danger-50);
  color: var(--danger-700);
  border-left: 3px solid var(--danger-600);
}
.sem--att {
  background: var(--warning-50);
  color: var(--warning-700);
  border-left: 3px solid var(--warning-600);
}
.sem--pos {
  background: var(--success-50);
  color: var(--success-700);
  border-left: 3px solid var(--success-600);
}
/* Narrative headings */
.nar-heading {
  display: block;
  margin-top: var(--sp-5);
  margin-bottom: var(--sp-2);
  font-size: var(--text-base);
}
.nar-p { margin-top: var(--sp-3); }
