/* ============================================================
   Legal Business Plan — app styles
   Built on Paolo Monaco design tokens (colors_and_type.css).
   Direction: the studio identity, LIGHTENED — paper & white
   dominate, navy is the anchor, peach the warm accent.
   ============================================================ */

#lbp-app {
  /* Score / state palette — brand-coherent, derived via oklch to
     harmonise with the studio peach. No traffic-light saturation. */
  --state-good:    var(--color-navy);          /* "Sì" / buona base — confident navy   */
  --state-good-bg: #E7ECF7;
  --state-check:   #E0935A;                     /* "Da verificare" — deepened brand peach */
  --state-check-bg:#FBEAD9;
  --state-risk:    #C2685C;                     /* "No" / critico — desaturated terracotta */
  --state-risk-bg: #F6E3DF;

  --line: rgba(159, 173, 189, 0.34);            /* navy-mute hairline */
  --line-strong: rgba(159, 173, 189, 0.6);
  --maxw: 1140px;
  --nav-h: 64px;
}

#lbp-app * { box-sizing: border-box; }

#lbp-app { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) {
  #lbp-app { scroll-behavior: auto; }
}

#lbp-app, #lbp-app {
  margin: 0;
  padding: 0;
  background: var(--color-white);
  color: var(--color-ink);
}

#lbp-app {
  font-family: var(--font-sans);
  scroll-padding-top: calc(var(--nav-h) + 18px);
}

#lbp-app ::selection { background: var(--color-orange-soft); color: var(--color-navy); }

#lbp-app a { color: var(--color-navy); text-underline-offset: 3px; }

/* ---------- Layout primitives ---------- */
#lbp-app .wrap { width: 100%; max-width: var(--maxw); margin: 0 auto; padding: 0 32px; }
#lbp-app .wrap-narrow { max-width: 820px; }

#lbp-app .section { padding: 96px 0; position: relative; }
#lbp-app .section--paper { background: var(--color-paper); }
#lbp-app .section--navy { background: var(--color-navy-deep); color: var(--color-white); }

#lbp-app .eyebrow {
  font-size: var(--fs-12);
  font-weight: var(--fw-semibold);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--color-ink-3);
  display: inline-flex;
  align-items: center;
  gap: 10px;
}
#lbp-app .eyebrow::before {
  content: "";
  width: 26px; height: 2px;
  background: var(--color-orange);
  display: inline-block;
}
#lbp-app .section--navy .eyebrow { color: var(--color-orange-soft); }
#lbp-app .section--navy .eyebrow::before { background: var(--color-orange); }

#lbp-app .display-serif {
  font-family: var(--font-display);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.04;
}

/* ---------- Top navigation ---------- */
#lbp-app .nav {
  position: sticky; top: 0; z-index: 60;
  height: var(--nav-h);
  background: rgba(255,255,255,0.86);
  -webkit-backdrop-filter: saturate(1.4) blur(12px);
  backdrop-filter: saturate(1.4) blur(12px);
  border-bottom: 1px solid var(--line);
}
#lbp-app .nav__inner { height: 100%; display: flex; align-items: center; gap: 20px; }
#lbp-app .nav__brand { display: flex; align-items: center; gap: 11px; flex: 0 0 auto; text-decoration: none; }
#lbp-app .nav__avatar { width: 34px; height: 34px; border-radius: 50%; object-fit: cover; background: var(--color-navy); }
#lbp-app .nav__name { font-family: var(--font-display); font-weight: 700; font-size: 16px; color: var(--color-navy); line-height: 1; letter-spacing: -0.01em; }
#lbp-app .nav__name span { font-weight: 300; font-style: italic; color: var(--color-ink-3); font-size: 13px; }
#lbp-app .nav__spacer { flex: 1 1 auto; }

#lbp-app .nav__links { display: flex; align-items: center; gap: 2px; }
#lbp-app .nav__link {
  font-size: 13px; font-weight: 500; color: var(--color-ink-2);
  text-decoration: none; padding: 7px 11px; border-radius: var(--radius-pill);
  transition: background var(--dur-fast), color var(--dur-fast);
  white-space: nowrap;
}
#lbp-app .nav__link:hover { background: var(--color-paper); color: var(--color-navy); }
#lbp-app .nav__link.is-active { color: var(--color-navy); font-weight: 600; }

#lbp-app .nav__progress { display: flex; align-items: center; gap: 9px; flex: 0 0 auto; }
#lbp-app .nav__progress-track { width: 96px; height: 6px; border-radius: 999px; background: var(--line); overflow: hidden; }
#lbp-app .nav__progress-fill { height: 100%; background: var(--color-orange); border-radius: 999px; transition: width var(--dur-base) var(--ease-standard); }
#lbp-app .nav__progress-num { font-size: 12px; font-weight: 700; color: var(--color-navy); font-variant-numeric: tabular-nums; min-width: 30px; }

#lbp-app .nav__menu-btn { display: none; }

/* Mobile menu */
#lbp-app .navmenu {
  position: fixed; inset: var(--nav-h) 0 0 0; z-index: 55;
  background: rgba(255,255,255,0.98);
  -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px);
  padding: 18px 24px 40px; overflow-y: auto;
  display: flex; flex-direction: column; gap: 4px;
  transform: translateY(-8px); opacity: 0; pointer-events: none;
  transition: opacity var(--dur-base), transform var(--dur-base);
}
#lbp-app .navmenu.is-open { opacity: 1; transform: none; pointer-events: auto; }
#lbp-app .navmenu a {
  text-decoration: none; color: var(--color-ink); font-size: 17px; font-weight: 500;
  padding: 14px 8px; border-bottom: 1px solid var(--line); display: flex; gap: 14px; align-items: center;
}
#lbp-app .navmenu a .n { color: var(--color-orange); font-weight: 700; font-variant-numeric: tabular-nums; width: 26px; }

/* ---------- Buttons (from DS button spec) ---------- */
#lbp-app .btn {
  display: inline-flex; align-items: center; gap: 9px; justify-content: center;
  padding: 15px 26px; border-radius: var(--radius-pill);
  font-family: var(--font-sans); font-weight: 600; font-size: 15px;
  border: none; cursor: pointer; text-decoration: none;
  transition: filter var(--dur-fast) var(--ease-standard), transform 90ms, box-shadow var(--dur-fast);
}
#lbp-app .btn:hover { filter: brightness(0.95); }
#lbp-app .btn:active { transform: scale(0.98); filter: brightness(0.92); }
#lbp-app .btn--primary { background: var(--color-navy); color: #fff; box-shadow: var(--shadow-navy); }
#lbp-app .btn--accent { background: var(--color-orange); color: var(--color-navy); }
#lbp-app .btn--ghost { background: transparent; color: var(--color-navy); border: 1.5px solid var(--color-navy); }
#lbp-app .btn--ghost-light { background: transparent; color: #fff; border: 1.5px solid rgba(255,255,255,0.5); }
#lbp-app .btn--lg { padding: 18px 32px; font-size: 16px; }
#lbp-app .btn svg { width: 18px; height: 18px; }

/* ---------- Hero ---------- */
#lbp-app .hero { position: relative; overflow: hidden; background: var(--color-navy-deep); color: #fff; }
#lbp-app .hero__bg {
  position: absolute; inset: 0; opacity: 0.5;
  background:
    radial-gradient(900px 520px at 82% -8%, rgba(246,175,123,0.22), transparent 60%),
    radial-gradient(760px 620px at 8% 118%, rgba(33,62,138,0.7), transparent 62%);
  pointer-events: none;
}
#lbp-app .hero__grid {
  position: absolute; inset: 0; opacity: 0.5; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.045) 1px, transparent 1px);
  background-size: 64px 64px;
  -webkit-mask-image: radial-gradient(ellipse 80% 80% at 50% 0%, #000 30%, transparent 75%);
  mask-image: radial-gradient(ellipse 80% 80% at 50% 0%, #000 30%, transparent 75%);
}
#lbp-app .hero__inner { position: relative; padding: 92px 0 84px; }
#lbp-app .hero__kicker { color: var(--color-orange-soft); }
#lbp-app .hero__title { font-size: clamp(2.6rem, 6vw, 4.4rem); margin: 22px 0 0; max-width: 16ch; }
#lbp-app .hero__title .accent { color: var(--color-orange); font-style: italic; font-weight: 700; }
#lbp-app .hero__lead { font-size: clamp(1.05rem, 2vw, 1.3rem); line-height: 1.5; color: rgba(255,255,255,0.82); max-width: 56ch; margin: 26px 0 0; font-weight: 400; }
#lbp-app .hero__sub { font-size: 1rem; line-height: 1.55; color: rgba(255,255,255,0.62); max-width: 60ch; margin: 14px 0 0; }
#lbp-app .hero__cta { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; margin-top: 38px; }
#lbp-app .hero__meta { display: flex; align-items: center; gap: 9px; color: rgba(255,255,255,0.7); font-size: 14px; }
#lbp-app .hero__meta svg { width: 17px; height: 17px; color: var(--color-orange); }

/* ---------- Section header ---------- */
#lbp-app .shead { display: flex; gap: 22px; align-items: flex-start; margin-bottom: 40px; }
#lbp-app .shead__num {
  font-family: var(--font-display); font-weight: 700; font-size: 18px;
  color: var(--color-orange); line-height: 1; flex: 0 0 auto;
  padding-top: 6px; position: relative;
}
#lbp-app .shead__num::after { content: ""; display: block; width: 1px; height: 30px; background: var(--line-strong); margin: 10px auto 0; }
#lbp-app .shead__icon {
  flex: 0 0 auto; width: 52px; height: 52px; border-radius: var(--radius-md);
  background: var(--color-navy); color: #fff; display: grid; place-items: center;
}
#lbp-app .shead__icon svg { width: 26px; height: 26px; }
#lbp-app .shead__text { flex: 1 1 auto; padding-top: 2px; }
#lbp-app .shead__title { font-size: var(--fs-40); font-weight: 700; letter-spacing: -0.02em; line-height: 1.08; margin: 0; color: var(--color-navy); }
#lbp-app .shead__intro { font-size: var(--fs-18); line-height: 1.55; color: var(--color-ink-2); margin: 14px 0 0; max-width: 64ch; }
#lbp-app .section--navy .shead__title { color: #fff; }
#lbp-app .section--navy .shead__intro { color: rgba(255,255,255,0.78); }

/* ---------- Card / panels ---------- */
#lbp-app .card {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg);
  padding: 28px; box-shadow: var(--shadow-sm);
}
#lbp-app .section--paper .card { box-shadow: var(--shadow-md); border-color: transparent; }

/* Guiding questions + fields */
#lbp-app .qfield { border-top: 1px solid var(--line); padding: 20px 0; }
#lbp-app .qfield:first-child { border-top: none; padding-top: 0; }
#lbp-app .qfield__label { display: flex; gap: 11px; align-items: flex-start; font-weight: 600; font-size: var(--fs-16); color: var(--color-navy); line-height: 1.4; }
#lbp-app .qfield__q { flex: 0 0 auto; width: 22px; height: 22px; border-radius: 50%; background: var(--color-orange-soft); color: var(--color-navy); display: grid; place-items: center; font-size: 12px; font-weight: 700; margin-top: 1px; }
#lbp-app .qfield textarea, #lbp-app .qfield input[type="text"] {
  width: 100%; margin-top: 11px; resize: vertical; min-height: 58px;
  font-family: var(--font-sans); font-size: 15px; line-height: 1.5; color: var(--color-ink);
  background: var(--color-paper); border: 1px solid transparent; border-radius: var(--radius-md);
  padding: 13px 15px; transition: border-color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast);
}
#lbp-app .qfield textarea::placeholder, #lbp-app .qfield input::placeholder { color: var(--color-ink-3); }
#lbp-app .qfield textarea:focus, #lbp-app .qfield input:focus {
  outline: none; background: #fff; border-color: var(--color-navy);
  box-shadow: 0 0 0 3px rgba(33,62,138,0.12);
}
#lbp-app .qfield.is-filled .qfield__q { background: var(--color-navy); color: #fff; }

/* Box attenzione */
#lbp-app .attn {
  display: flex; gap: 15px; align-items: flex-start;
  background: var(--color-orange-soft); border-radius: var(--radius-md);
  padding: 20px 22px; margin-top: 8px;
}
#lbp-app .attn__icon { flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; background: rgba(33,62,138,0.1); color: var(--color-navy); display: grid; place-items: center; }
#lbp-app .attn__icon svg { width: 19px; height: 19px; }
#lbp-app .attn__body { flex: 1 1 auto; }
#lbp-app .attn__title { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-navy); margin: 2px 0 5px; }
#lbp-app .attn__text { font-size: 15px; line-height: 1.5; color: var(--color-navy); margin: 0; }

/* Chip servizi */
#lbp-app .chips { display: flex; flex-wrap: wrap; gap: 9px; }
#lbp-app .chip {
  position: relative; font-size: 13px; font-weight: 500; color: var(--color-navy);
  border: 1.5px solid var(--line-strong); background: #fff; border-radius: var(--radius-pill);
  padding: 8px 15px; cursor: default; transition: border-color var(--dur-fast), background var(--dur-fast);
}
#lbp-app .chip[data-tip] { cursor: help; }
#lbp-app .chip:hover { border-color: var(--color-navy); background: var(--color-paper); }
#lbp-app .chip[data-tip]:hover::after {
  content: attr(data-tip); position: absolute; left: 50%; bottom: calc(100% + 9px); transform: translateX(-50%);
  width: max-content; max-width: 260px; background: var(--color-navy-deep); color: #fff;
  font-size: 12px; font-weight: 400; line-height: 1.4; padding: 9px 12px; border-radius: var(--radius-sm);
  box-shadow: var(--shadow-md); z-index: 5; pointer-events: none;
}
#lbp-app .chip[data-tip]:hover::before {
  content: ""; position: absolute; left: 50%; bottom: calc(100% + 3px); transform: translateX(-50%) rotate(45deg);
  width: 9px; height: 9px; background: var(--color-navy-deep); z-index: 5;
}
#lbp-app .chips__label { font-size: 12px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--color-ink-3); margin-bottom: 13px; }

/* Output operativo */
#lbp-app .output {
  background: var(--color-paper); border-radius: var(--radius-md);
  padding: 22px 24px; margin-top: 26px; border: 1px solid var(--line);
}
#lbp-app .section--paper .output { background: #fff; }
#lbp-app .output__head { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
#lbp-app .output__head svg { width: 19px; height: 19px; color: var(--color-navy); }
#lbp-app .output__head span { font-size: 12px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--color-navy); }
#lbp-app .output__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
#lbp-app .output__list li { display: flex; gap: 11px; align-items: flex-start; font-size: 15px; line-height: 1.45; color: var(--color-ink-2); }
#lbp-app .output__list li svg { flex: 0 0 auto; width: 16px; height: 16px; color: var(--color-orange); margin-top: 3px; }

/* Sub-label for interactive widgets */
#lbp-app .widget-label { font-size: 12px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: var(--color-ink-3); margin: 0 0 14px; }

/* Pull-quote on navy */
#lbp-app .pullquote {
  font-family: var(--font-display); font-weight: 300; font-style: italic;
  font-size: clamp(1.5rem, 3.2vw, 2.3rem); line-height: 1.28; letter-spacing: -0.01em;
  color: #fff; max-width: 24ch;
}
#lbp-app .pullquote .hl { color: var(--color-orange); font-style: italic; }

/* Grid helpers */
#lbp-app .grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
#lbp-app .grid-3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }

/* ---------- Steps (come funziona) ---------- */
#lbp-app .step { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); padding: 30px 28px; position: relative; }
#lbp-app .step__n { font-family: var(--font-display); font-weight: 700; font-size: 15px; color: var(--color-orange); }
#lbp-app .step__icon { width: 46px; height: 46px; border-radius: var(--radius-md); background: var(--color-paper); color: var(--color-navy); display: grid; place-items: center; margin: 16px 0 18px; }
#lbp-app .step__icon svg { width: 24px; height: 24px; }
#lbp-app .step__title { font-size: var(--fs-20); font-weight: 700; color: var(--color-navy); margin: 0 0 9px; letter-spacing: -0.01em; }
#lbp-app .step__text { font-size: 15px; line-height: 1.55; color: var(--color-ink-2); margin: 0; }

/* ---------- Premessa keyword tiles ---------- */
#lbp-app .kwgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-top: 12px; }
#lbp-app .kw {
  background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md);
  padding: 22px 22px; display: flex; flex-direction: column; gap: 12px;
  opacity: 0; transform: translateY(14px);
}
#lbp-app .kw.is-in { opacity: 1; transform: none; transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
#lbp-app .kw__icon { width: 40px; height: 40px; border-radius: var(--radius-sm); background: var(--color-navy); color: #fff; display: grid; place-items: center; }
#lbp-app .kw__icon svg { width: 21px; height: 21px; }
#lbp-app .kw__word { font-family: var(--font-display); font-weight: 600; font-size: var(--fs-24); color: var(--color-navy); letter-spacing: -0.01em; }
#lbp-app .kw__desc { font-size: 14px; line-height: 1.5; color: var(--color-ink-2); margin: 0; }
@media (prefers-reduced-motion: reduce) {
  #lbp-app .kw { opacity: 1; transform: none; }
}

/* ---------- Reveal on scroll ---------- */
#lbp-app .reveal { opacity: 0; transform: translateY(20px); transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
#lbp-app .reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  #lbp-app .reveal { opacity: 1; transform: none; transition: none; }
}

/* ============================================================
   Interactive widgets
   ============================================================ */

/* Idea — biglietto da visita preview */
#lbp-app .idea-grid { display: grid; grid-template-columns: 1.1fr 0.9fr; gap: 28px; align-items: start; }
#lbp-app .idea-headline {
  width: 100%; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.4rem, 3vw, 2rem);
  line-height: 1.2; color: var(--color-navy); background: transparent; border: none;
  border-bottom: 2px solid var(--line-strong); padding: 8px 2px; resize: none; min-height: 96px;
}
#lbp-app .idea-headline:focus { outline: none; border-bottom-color: var(--color-orange); }
#lbp-app .idea-headline::placeholder { color: var(--color-navy-mute); }
#lbp-app .idea-counter { font-size: 12px; color: var(--color-ink-3); text-align: right; margin-top: 8px; font-variant-numeric: tabular-nums; }
#lbp-app .idea-counter.over { color: var(--state-risk); }
#lbp-app .bizcard {
  background: var(--color-navy-deep); color: #fff; border-radius: var(--radius-lg); padding: 26px;
  box-shadow: var(--shadow-navy); position: relative; overflow: hidden; min-height: 200px;
  display: flex; flex-direction: column; justify-content: space-between;
}
#lbp-app .bizcard__dots { display: flex; gap: 7px; }
#lbp-app .bizcard__dots i { width: 9px; height: 9px; border-radius: 50%; display: block; }
#lbp-app .bizcard__idea { font-family: var(--font-display); font-weight: 400; font-size: 1.25rem; line-height: 1.3; margin: 18px 0; }
#lbp-app .bizcard__idea.empty { color: rgba(255,255,255,0.4); font-style: italic; }
#lbp-app .bizcard__foot { display: flex; align-items: center; gap: 11px; }
#lbp-app .bizcard__foot img { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; }
#lbp-app .bizcard__foot .nm { font-weight: 700; font-size: 14px; }
#lbp-app .bizcard__foot .rl { font-size: 12px; color: rgba(255,255,255,0.6); }

/* Client type selector */
#lbp-app .ct-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
#lbp-app .ct-opt {
  text-align: left; background: #fff; border: 1.5px solid var(--line-strong); border-radius: var(--radius-md);
  padding: 18px; cursor: pointer; transition: border-color var(--dur-fast), background var(--dur-fast), box-shadow var(--dur-fast);
}
#lbp-app .ct-opt:hover { border-color: var(--color-navy); }
#lbp-app .ct-opt.is-sel { border-color: var(--color-navy); background: var(--state-good-bg); box-shadow: 0 0 0 3px rgba(33,62,138,0.1); }
#lbp-app .ct-opt__icon { width: 38px; height: 38px; border-radius: var(--radius-sm); background: var(--color-paper); color: var(--color-navy); display: grid; place-items: center; margin-bottom: 12px; }
#lbp-app .ct-opt.is-sel .ct-opt__icon { background: var(--color-navy); color: #fff; }
#lbp-app .ct-opt__icon svg { width: 20px; height: 20px; }
#lbp-app .ct-opt__name { font-weight: 700; font-size: 15px; color: var(--color-navy); }
#lbp-app .ct-opt__hint { font-size: 13px; color: var(--color-ink-3); margin-top: 3px; }
#lbp-app .ct-rules { margin-top: 20px; display: flex; flex-wrap: wrap; gap: 10px; }
#lbp-app .ct-rule {
  font-size: 13px; font-weight: 500; padding: 9px 14px; border-radius: var(--radius-pill);
  background: var(--color-paper); color: var(--color-ink-3); border: 1px solid var(--line);
  display: inline-flex; align-items: center; gap: 8px; transition: all var(--dur-base);
}
#lbp-app .ct-rule svg { width: 15px; height: 15px; }
#lbp-app .ct-rule.on { background: var(--state-good-bg); color: var(--color-navy); border-color: rgba(33,62,138,0.3); font-weight: 600; }
#lbp-app .ct-rule.on svg { color: var(--color-orange); }
#lbp-app .ct-hint-empty { font-size: 14px; color: var(--color-ink-3); margin-top: 18px; font-style: italic; }

/* Incluso / Escluso */
#lbp-app .ie-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
#lbp-app .ie-col { border-radius: var(--radius-md); padding: 20px; border: 1.5px solid var(--line); background: #fff; }
#lbp-app .ie-col--in { border-color: rgba(33,62,138,0.3); }
#lbp-app .ie-col--out { border-style: dashed; }
#lbp-app .ie-col__head { display: flex; align-items: center; gap: 9px; font-weight: 700; font-size: 14px; letter-spacing: 0.04em; text-transform: uppercase; margin-bottom: 16px; }
#lbp-app .ie-col--in .ie-col__head { color: var(--color-navy); }
#lbp-app .ie-col--out .ie-col__head { color: var(--color-ink-3); }
#lbp-app .ie-col__head svg { width: 18px; height: 18px; }
#lbp-app .ie-list { list-style: none; margin: 0 0 14px; padding: 0; display: grid; gap: 8px; }
#lbp-app .ie-item { display: flex; align-items: center; gap: 10px; background: var(--color-paper); border-radius: var(--radius-sm); padding: 10px 12px; font-size: 14px; color: var(--color-ink); }
#lbp-app .ie-item span { flex: 1 1 auto; }
#lbp-app .ie-item button { border: none; background: none; cursor: pointer; color: var(--color-ink-3); display: grid; place-items: center; padding: 2px; border-radius: 4px; }
#lbp-app .ie-item button:hover { color: var(--state-risk); }
#lbp-app .ie-item button svg { width: 15px; height: 15px; }
#lbp-app .ie-item .dot { width: 7px; height: 7px; border-radius: 50%; flex: 0 0 auto; }
#lbp-app .ie-add { display: flex; gap: 8px; }
#lbp-app .ie-add input { flex: 1 1 auto; font-family: var(--font-sans); font-size: 14px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--color-paper); }
#lbp-app .ie-add input:focus { outline: none; border-color: var(--color-navy); background: #fff; }
#lbp-app .ie-add button { flex: 0 0 auto; width: 40px; border: none; border-radius: var(--radius-sm); background: var(--color-navy); color: #fff; cursor: pointer; display: grid; place-items: center; }
#lbp-app .ie-add button:hover { filter: brightness(0.95); }
#lbp-app .ie-add button svg { width: 18px; height: 18px; }
#lbp-app .ie-empty { font-size: 13px; color: var(--color-ink-3); font-style: italic; padding: 4px 2px 12px; }

/* Cashflow timeline */
#lbp-app .flow { display: flex; align-items: stretch; gap: 0; flex-wrap: wrap; }
#lbp-app .flow__node { flex: 1 1 0; min-width: 150px; position: relative; padding: 0 6px; }
#lbp-app .flow__dot { width: 16px; height: 16px; border-radius: 50%; background: var(--color-navy); border: 3px solid #fff; box-shadow: 0 0 0 1px var(--line-strong); margin: 0 auto 0; position: relative; z-index: 2; }
#lbp-app .flow__line { position: absolute; top: 8px; left: 50%; right: -50%; height: 2px; background: var(--line-strong); z-index: 1; }
#lbp-app .flow__node:last-child .flow__line { display: none; }
#lbp-app .flow__card { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); padding: 16px; margin-top: 18px; text-align: center; }
#lbp-app .flow__stage { font-weight: 700; font-size: 14px; color: var(--color-navy); }
#lbp-app .flow__risk { font-size: 12.5px; line-height: 1.45; color: var(--color-ink-2); margin: 8px 0 0; display: flex; gap: 7px; text-align: left; }
#lbp-app .flow__risk svg { flex: 0 0 auto; width: 14px; height: 14px; color: var(--state-check); margin-top: 2px; }

/* Asset vault */
#lbp-app .vault { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
#lbp-app .vault__cell { border: 1px solid var(--line); border-radius: var(--radius-md); padding: 16px; background: #fff; }
#lbp-app .vault__top { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
#lbp-app .vault__top svg { width: 19px; height: 19px; color: var(--color-navy); }
#lbp-app .vault__name { font-weight: 600; font-size: 14px; color: var(--color-navy); }
#lbp-app .vault__states { display: flex; gap: 6px; }
#lbp-app .vault__state { flex: 1 1 0; font-size: 11.5px; font-weight: 600; padding: 7px 4px; border-radius: var(--radius-sm); border: 1px solid var(--line); background: var(--color-paper); color: var(--color-ink-3); cursor: pointer; text-align: center; transition: all var(--dur-fast); }
#lbp-app .vault__state:hover { border-color: var(--color-navy); }
#lbp-app .vault__state.sel-mine { background: var(--state-good-bg); color: var(--color-navy); border-color: rgba(33,62,138,0.4); }
#lbp-app .vault__state.sel-third { background: var(--state-risk-bg); color: var(--state-risk); border-color: rgba(194,104,92,0.4); }
#lbp-app .vault__state.sel-check { background: var(--state-check-bg); color: #9a5a23; border-color: rgba(224,147,90,0.5); }

/* Org map */
#lbp-app .org { display: flex; flex-direction: column; gap: 12px; }
#lbp-app .org__node { display: flex; gap: 14px; align-items: center; background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); padding: 14px 16px; }
#lbp-app .org__node.no-agreement { border-color: rgba(224,147,90,0.6); background: var(--state-check-bg); }
#lbp-app .org__role { flex: 0 0 auto; width: 42px; height: 42px; border-radius: 50%; background: var(--color-navy); color: #fff; display: grid; place-items: center; }
#lbp-app .org__role svg { width: 20px; height: 20px; }
#lbp-app .org__fields { flex: 1 1 auto; display: grid; grid-template-columns: 1fr 1.4fr; gap: 10px; }
#lbp-app .org__fields input { font-family: var(--font-sans); font-size: 14px; padding: 9px 11px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--color-paper); width: 100%; }
#lbp-app .org__fields input:focus { outline: none; border-color: var(--color-navy); background: #fff; }
#lbp-app .org__agree { flex: 0 0 auto; display: flex; align-items: center; gap: 7px; font-size: 12px; color: var(--color-ink-2); cursor: pointer; user-select: none; white-space: nowrap; }
#lbp-app .org__agree input { width: 16px; height: 16px; accent-color: var(--color-navy); }
#lbp-app .org__del { flex: 0 0 auto; border: none; background: none; cursor: pointer; color: var(--color-ink-3); padding: 4px; }
#lbp-app .org__del:hover { color: var(--state-risk); }
#lbp-app .org__del svg { width: 17px; height: 17px; }
#lbp-app .org__warn { font-size: 12px; color: #9a5a23; display: flex; align-items: center; gap: 6px; margin-top: 6px; }
#lbp-app .org__warn svg { width: 14px; height: 14px; }
#lbp-app .org__addrow { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 6px; }
#lbp-app .org__addbtn { font-size: 13px; font-weight: 500; padding: 9px 14px; border: 1.5px dashed var(--line-strong); border-radius: var(--radius-pill); background: transparent; color: var(--color-navy); cursor: pointer; display: inline-flex; align-items: center; gap: 7px; }
#lbp-app .org__addbtn:hover { border-color: var(--color-navy); background: var(--color-paper); }
#lbp-app .org__addbtn svg { width: 15px; height: 15px; }

/* Digital channels */
#lbp-app .ch-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
#lbp-app .ch {
  display: flex; gap: 12px; align-items: center; text-align: left; padding: 15px 16px;
  border: 1.5px solid var(--line); border-radius: var(--radius-md); background: #fff; cursor: pointer;
  transition: all var(--dur-fast);
}
#lbp-app .ch:hover { border-color: var(--color-navy); }
#lbp-app .ch.on { border-color: var(--color-navy); background: var(--state-good-bg); }
#lbp-app .ch__ic { width: 36px; height: 36px; border-radius: var(--radius-sm); background: var(--color-paper); color: var(--color-navy); display: grid; place-items: center; flex: 0 0 auto; }
#lbp-app .ch.on .ch__ic { background: var(--color-navy); color: #fff; }
#lbp-app .ch__ic svg { width: 19px; height: 19px; }
#lbp-app .ch__name { font-size: 14px; font-weight: 600; color: var(--color-navy); }
#lbp-app .ch__check { margin-left: auto; width: 20px; height: 20px; border-radius: 50%; border: 1.5px solid var(--line-strong); display: grid; place-items: center; flex: 0 0 auto; }
#lbp-app .ch.on .ch__check { background: var(--color-navy); border-color: var(--color-navy); }
#lbp-app .ch.on .ch__check svg { width: 13px; height: 13px; color: #fff; }
#lbp-app .ch:not(.on) .ch__check svg { display: none; }
#lbp-app .ch-obligations { margin-top: 22px; background: var(--color-paper); border-radius: var(--radius-md); padding: 22px 24px; }
#lbp-app .ch-obligations h4 { font-size: 13px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-navy); margin: 0 0 14px; }
#lbp-app .ch-obligations ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
#lbp-app .ch-obligations li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; color: var(--color-ink); }
#lbp-app .ch-obligations li svg { flex: 0 0 auto; width: 16px; height: 16px; color: var(--color-navy); margin-top: 2px; }
#lbp-app .ch-obligations .empty { font-style: italic; color: var(--color-ink-3); font-size: 14px; }

/* ---------- Tables (rischi / roadmap) ---------- */
#lbp-app .tbl-wrap { overflow-x: auto; }
#lbp-app .tbl { width: 100%; border-collapse: collapse; }
#lbp-app .tbl th { text-align: left; font-size: 11.5px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-ink-3); padding: 0 14px 12px; border-bottom: 1px solid var(--line-strong); }
#lbp-app .tbl td { padding: 14px; border-bottom: 1px solid var(--line); font-size: 14.5px; color: var(--color-ink); vertical-align: top; line-height: 1.45; }
#lbp-app .tbl tr:last-child td { border-bottom: none; }
#lbp-app .tbl .area { font-weight: 600; color: var(--color-navy); white-space: nowrap; }
#lbp-app .sev { display: inline-flex; align-items: center; gap: 7px; font-weight: 600; font-size: 13px; padding: 5px 11px; border-radius: var(--radius-pill); }
#lbp-app .sev::before { content: ""; width: 8px; height: 8px; border-radius: 50%; }
#lbp-app .sev--alta { background: var(--state-risk-bg); color: var(--state-risk); }
#lbp-app .sev--alta::before { background: var(--state-risk); }
#lbp-app .sev--media { background: var(--state-check-bg); color: #9a5a23; }
#lbp-app .sev--media::before { background: var(--state-check); }
#lbp-app .sev--bassa { background: var(--state-good-bg); color: var(--color-navy); }
#lbp-app .sev--bassa::before { background: var(--color-navy); }
#lbp-app .sev-select { border: none; background: transparent; font: inherit; font-weight: 600; font-size: 13px; color: inherit; cursor: pointer; }
#lbp-app .tbl td .editable { width: 100%; font-family: var(--font-sans); font-size: 14.5px; color: var(--color-ink); background: transparent; border: 1px solid transparent; border-radius: var(--radius-sm); padding: 7px 9px; resize: vertical; min-height: 38px; line-height: 1.4; }
#lbp-app .tbl td .editable:hover { background: var(--color-paper); }
#lbp-app .tbl td .editable:focus { outline: none; background: #fff; border-color: var(--color-navy); }

/* Roadmap 30/60/90 */
#lbp-app .road { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
#lbp-app .road__col { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-lg); overflow: hidden; }
#lbp-app .road__top { background: var(--color-navy); color: #fff; padding: 18px 22px; }
#lbp-app .road__day { font-family: var(--font-display); font-weight: 700; font-size: 1.7rem; line-height: 1; }
#lbp-app .road__day small { font-size: 0.9rem; font-weight: 300; font-style: italic; opacity: 0.8; }
#lbp-app .road__validate { font-size: 13px; color: var(--color-orange-soft); margin-top: 6px; }
#lbp-app .road__body { padding: 20px 22px; }
#lbp-app .road__lbl { font-size: 11px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-ink-3); margin: 0 0 8px; }
#lbp-app .road__doc { font-size: 14px; color: var(--color-ink-2); line-height: 1.5; margin: 0 0 16px; }
#lbp-app .road__decision { font-size: 14px; font-weight: 600; color: var(--color-navy); display: flex; gap: 8px; align-items: flex-start; }
#lbp-app .road__decision svg { flex: 0 0 auto; width: 16px; height: 16px; color: var(--color-orange); margin-top: 2px; }

/* ============================================================
   Legal Readiness Score
   ============================================================ */
#lbp-app .score-layout { display: grid; grid-template-columns: 360px 1fr; gap: 44px; align-items: start; }
#lbp-app .score-panel {
  position: sticky; top: calc(var(--nav-h) + 24px);
  background: var(--color-navy); border-radius: var(--radius-xl); padding: 34px 30px; text-align: center;
  box-shadow: var(--shadow-lg); color: #fff;
}
#lbp-app .gauge { position: relative; width: 220px; height: 220px; margin: 4px auto 0; }
#lbp-app .gauge svg { transform: rotate(-90deg); display: block; }
#lbp-app .gauge__track { fill: none; stroke: rgba(255,255,255,0.14); }
#lbp-app .gauge__fill { fill: none; stroke-linecap: round; transition: stroke-dashoffset var(--dur-slow) var(--ease-out), stroke var(--dur-base); }
#lbp-app .gauge__center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
#lbp-app .gauge__num { font-family: var(--font-display); font-weight: 700; font-size: 4rem; line-height: 1; color: #fff; font-variant-numeric: tabular-nums; }
#lbp-app .gauge__den { font-size: 1.1rem; color: rgba(255,255,255,0.55); font-weight: 300; }
#lbp-app .score-band { margin-top: 22px; }
#lbp-app .score-band__tag { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; padding: 8px 16px; border-radius: var(--radius-pill); }
#lbp-app .score-band__tag svg { width: 16px; height: 16px; }
#lbp-app .score-band--fragile .score-band__tag { background: var(--state-risk-bg); color: var(--state-risk); }
#lbp-app .score-band--impostato .score-band__tag { background: var(--state-check-bg); color: #9a5a23; }
#lbp-app .score-band--buona .score-band__tag { background: var(--color-orange-soft); color: var(--color-navy); }
#lbp-app .score-band__desc { font-size: 14px; line-height: 1.5; color: rgba(255,255,255,0.8); margin: 16px 0 0; }
#lbp-app .score-meta { font-size: 12px; color: rgba(255,255,255,0.5); margin-top: 18px; }
#lbp-app .score-meta b { color: #fff; font-weight: 700; }

#lbp-app .score-items { display: grid; gap: 10px; }
#lbp-app .score-item { background: #fff; border: 1px solid var(--line); border-radius: var(--radius-md); padding: 15px 17px; display: flex; gap: 14px; align-items: center; }
#lbp-app .score-item.is-yes { border-color: rgba(33,62,138,0.35); background: var(--state-good-bg); }
#lbp-app .score-item__n { flex: 0 0 auto; font-family: var(--font-display); font-weight: 700; font-size: 13px; color: var(--color-ink-3); width: 22px; font-variant-numeric: tabular-nums; }
#lbp-app .score-item.is-yes .score-item__n { color: var(--color-navy); }
#lbp-app .score-item__txt { flex: 1 1 auto; font-size: 14.5px; line-height: 1.4; color: var(--color-ink); }
#lbp-app .score-item__opts { flex: 0 0 auto; display: flex; gap: 6px; }
#lbp-app .sopt { font-size: 12px; font-weight: 600; padding: 7px 12px; border-radius: var(--radius-pill); border: 1.5px solid var(--line); background: #fff; color: var(--color-ink-3); cursor: pointer; transition: all var(--dur-fast); white-space: nowrap; }
#lbp-app .sopt:hover { border-color: var(--color-navy); }
#lbp-app .sopt.sel-yes { background: var(--color-navy); border-color: var(--color-navy); color: #fff; }
#lbp-app .sopt.sel-no { background: var(--state-risk); border-color: var(--state-risk); color: #fff; }
#lbp-app .sopt.sel-check { background: var(--state-check); border-color: var(--state-check); color: #fff; }

/* Punti da verificare */
#lbp-app .verify-list { background: var(--color-paper); border-radius: var(--radius-lg); padding: 26px 28px; margin-top: 28px; }
#lbp-app .verify-list h4 { font-size: var(--fs-18); font-weight: 700; color: var(--color-navy); margin: 0 0 6px; }
#lbp-app .verify-list p.sub { font-size: 14px; color: var(--color-ink-2); margin: 0 0 16px; }
#lbp-app .verify-list ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
#lbp-app .verify-list li { display: flex; gap: 11px; align-items: flex-start; font-size: 14.5px; line-height: 1.45; color: var(--color-ink); background: #fff; border-radius: var(--radius-sm); padding: 11px 14px; border-left: 3px solid var(--state-check); }
#lbp-app .verify-list li.is-no { border-left-color: var(--state-risk); }
#lbp-app .verify-list li .tag { flex: 0 0 auto; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 2px 8px; border-radius: var(--radius-pill); }
#lbp-app .verify-list li.is-check .tag { background: var(--state-check-bg); color: #9a5a23; }
#lbp-app .verify-list li.is-no .tag { background: var(--state-risk-bg); color: var(--state-risk); }
#lbp-app .verify-empty { font-size: 14px; color: var(--color-ink-2); font-style: italic; }

/* ---------- Sintesi table ---------- */
#lbp-app .synth .tbl td { font-size: 14px; }
#lbp-app .synth .tbl td:first-child { font-weight: 700; color: var(--color-navy); }
#lbp-app .synth-lead { color: var(--color-orange); }

/* ---------- CTA final ---------- */
#lbp-app .cta { background: var(--color-navy-deep); color: #fff; position: relative; overflow: hidden; }
#lbp-app .cta__bg { position: absolute; inset: 0; opacity: 0.5; background: radial-gradient(700px 460px at 88% 12%, rgba(246,175,123,0.22), transparent 60%); pointer-events: none; }
#lbp-app .cta__grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: 48px; align-items: center; position: relative; }
#lbp-app .cta__title { font-family: var(--font-display); font-weight: 700; font-size: clamp(1.9rem, 3.6vw, 2.8rem); line-height: 1.1; letter-spacing: -0.02em; margin: 18px 0 0; }
#lbp-app .cta__body { font-size: 1.05rem; line-height: 1.6; color: rgba(255,255,255,0.82); margin: 20px 0 0; }
#lbp-app .cta__body b { color: #fff; }
#lbp-app .cta__btns { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
#lbp-app .cta__panel { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); border-radius: var(--radius-lg); padding: 28px; }
#lbp-app .cta__panel-head { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
#lbp-app .cta__panel-head img { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; }
#lbp-app .cta__panel-head .nm { font-family: var(--font-display); font-weight: 700; font-size: 17px; }
#lbp-app .cta__panel-head .rl { font-size: 13px; font-style: italic; color: rgba(255,255,255,0.6); }
#lbp-app .cta__inc { font-size: 12px; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-orange-soft); margin: 0 0 13px; }
#lbp-app .cta__panel ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
#lbp-app .cta__panel li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.45; color: rgba(255,255,255,0.85); }
#lbp-app .cta__panel li svg { flex: 0 0 auto; width: 16px; height: 16px; color: var(--color-orange); margin-top: 2px; }

/* ---------- Footer ---------- */
#lbp-app .foot { background: #0E1C45; color: rgba(255,255,255,0.7); padding: 56px 0 40px; }
#lbp-app .foot__grid { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; align-items: flex-start; }
#lbp-app .foot__brand { display: flex; align-items: center; gap: 13px; }
#lbp-app .foot__brand img { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }
#lbp-app .foot__name { font-family: var(--font-display); font-weight: 700; font-size: 19px; color: #fff; }
#lbp-app .foot__name span { display: block; font-size: 13px; font-weight: 300; font-style: italic; color: rgba(255,255,255,0.6); }
#lbp-app .foot__handle { font-style: italic; font-size: 14px; color: var(--color-orange-soft); margin-top: 4px; }
#lbp-app .foot__col h5 { font-size: 12px; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; color: rgba(255,255,255,0.5); margin: 0 0 12px; }
#lbp-app .foot__col a, #lbp-app .foot__col p { display: block; color: rgba(255,255,255,0.78); text-decoration: none; font-size: 14px; line-height: 1.7; margin: 0; }
#lbp-app .foot__col a:hover { color: #fff; }
#lbp-app .foot__disclaimer { margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,0.12); font-size: 13px; line-height: 1.6; color: rgba(255,255,255,0.55); display: flex; gap: 11px; align-items: flex-start; }
#lbp-app .foot__disclaimer svg { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 2px; color: var(--color-orange-soft); }
#lbp-app .foot__dots { display: flex; gap: 7px; margin-top: 22px; }
#lbp-app .foot__dots i { width: 10px; height: 10px; border-radius: 50%; }

/* ---------- Toast ---------- */
#lbp-app .toast { position: fixed; bottom: 26px; left: 50%; transform: translateX(-50%) translateY(20px); background: var(--color-navy); color: #fff; padding: 13px 22px; border-radius: var(--radius-pill); font-size: 14px; font-weight: 500; box-shadow: var(--shadow-lg); z-index: 90; opacity: 0; pointer-events: none; transition: opacity var(--dur-base), transform var(--dur-base); display: flex; align-items: center; gap: 10px; }
#lbp-app .toast.show { opacity: 1; transform: translateX(-50%); }
#lbp-app .toast svg { width: 17px; height: 17px; color: var(--color-orange); }

/* ============================================================
   Responsive
   ============================================================ */
@media (max-width: 920px) {
  #lbp-app .nav__links { display: none; }
  #lbp-app .nav__menu-btn { display: inline-grid; place-items: center; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: #fff; cursor: pointer; color: var(--color-navy); }
  #lbp-app .nav__menu-btn svg { width: 22px; height: 22px; }
  #lbp-app .grid-3, #lbp-app .kwgrid, #lbp-app .road, #lbp-app .vault, #lbp-app .ch-grid { grid-template-columns: 1fr 1fr; }
  #lbp-app .score-layout { grid-template-columns: 1fr; }
  #lbp-app .score-panel { position: relative; top: 0; max-width: 380px; margin: 0 auto 8px; }
  #lbp-app .cta__grid { grid-template-columns: 1fr; }
  #lbp-app .idea-grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  #lbp-app .wrap { padding: 0 20px; }
  /* Nav app: su mobile la barra di avanzamento è secondaria → la nascondo per dare spazio
     all'hamburger di navigazione sezioni (col viewport stretto finiva fuori schermo). */
  #lbp-app .nav__progress { display: none; }
  #lbp-app .nav__brand { min-width: 0; }
  #lbp-app .nav__name { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  #lbp-app .section { padding: 64px 0; }
  #lbp-app .grid-2, #lbp-app .grid-3, #lbp-app .kwgrid, #lbp-app .road, #lbp-app .vault, #lbp-app .ch-grid, #lbp-app .ie-grid, #lbp-app .ct-options { grid-template-columns: 1fr; }
  #lbp-app .shead { flex-wrap: wrap; gap: 16px; }
  #lbp-app .shead__icon { width: 46px; height: 46px; }
  #lbp-app .shead__title { font-size: var(--fs-32); }
  #lbp-app .score-item { flex-wrap: wrap; }
  #lbp-app .score-item__opts { width: 100%; }
  #lbp-app .sopt { flex: 1 1 0; text-align: center; }
  #lbp-app .org__node { flex-wrap: wrap; }
  #lbp-app .org__fields { grid-template-columns: 1fr; width: 100%; }
  #lbp-app .flow__node { min-width: 100%; }
  #lbp-app .flow__line { display: none; }
}

/* ============================================================
   Print / Export PDF
   ============================================================ */
@media print {
  #lbp-app .nav, #lbp-app .navmenu, #lbp-app .nav__menu-btn, #lbp-app .toast, #lbp-app .hero__cta, #lbp-app .reveal { box-shadow: none !important; }
  #lbp-app .reveal, #lbp-app .kw { opacity: 1 !important; transform: none !important; }
  #lbp-app .no-print { display: none !important; }
  #lbp-app .section { padding: 28px 0 !important; break-inside: avoid; }
  #lbp-app .section--navy, #lbp-app .hero, #lbp-app .cta, #lbp-app .foot { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  #lbp-app .score-panel { position: static !important; }
  #lbp-app { background: #fff; }
  #lbp-app a { text-decoration: none; }
  #lbp-app .card, #lbp-app .step, #lbp-app .road__col, #lbp-app .verify-list { break-inside: avoid; }
}


/* === Embed overrides (integrazione nel sito) === */
#lbp-app .nav{ top:76px; z-index:40; }            /* sotto header sito (h76 z50) */
#lbp-app .navmenu{ top:140px; z-index:45; }        /* drawer sezioni sotto le due barre */
#lbp-app [id]{ scroll-margin-top:140px; }          /* offset ancore */
@media print{ .site-header,.site-footer,.mobile-menu{ display:none !important; } }
