/* ============================================================
   Strategic Advisory — DEAL UI COMPONENT LIBRARY
   Componenti condivisi: marketplace deal, ricerche investitori,
   località, data room professionale.
   Additivo: non sovrascrive style.css, usa i suoi token.
   Prefisso: .sa-
   Creato 2026-08-21
   ============================================================ */

/* ---------- token derivati ---------- */
:root{
  --sa-ok:#1a7a3a;        --sa-ok-bg:#e7f4ec;
  --sa-warn:#a8752b;      --sa-warn-bg:#fbf2df;
  --sa-info:#1a5266;      --sa-info-bg:#e7eef1;
  --sa-danger:#b3261e;    --sa-danger-bg:#fbeae9;
  --sa-tnum:"tnum";
}
.sa-tnum,.sa-num{font-variant-numeric:tabular-nums}

/* ============================================================
   1 · TRUST BAR  (sotto la search dell'hero)
   ============================================================ */
.sa-trust{display:flex;flex-wrap:wrap;gap:2rem;justify-content:center;margin-top:1.5rem}
.sa-trust .sa-trust-it{display:flex;align-items:center;gap:.65rem;color:rgba(255,255,255,.82);font-size:.85rem}
.sa-trust .sa-trust-it i{color:var(--accent);font-size:1rem}
.sa-trust .sa-trust-it b{color:#fff;font-family:'Playfair Display',Georgia,serif;font-size:1.35rem;font-weight:700;line-height:1}
.sa-trust .sa-trust-it span{display:block}
.sa-trust .sa-trust-lbl{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.65)}

/* ============================================================
   2 · DEAL CARD  (marketplace aziende in vendita)
   ============================================================ */
.sa-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:1.35rem}

.sa-card{display:flex;flex-direction:column;background:var(--bg);border:1px solid var(--border);
  border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);
  transition:transform var(--t-base),box-shadow var(--t-base);text-decoration:none;color:inherit}
.sa-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.sa-card:focus-visible{outline:none;box-shadow:var(--shadow-focus)}

/* visual astratto per settore — non rivela l'identità */
.sa-card-visual{position:relative;height:136px;display:grid;place-items:center;overflow:hidden;
  background:linear-gradient(135deg,var(--primary-dark),var(--primary) 55%,var(--primary-light))}
.sa-card-visual .sa-deco{position:absolute;inset:0;opacity:.14;pointer-events:none}
.sa-card-visual .sa-glyph{position:relative;color:#fff;font-size:2.1rem;opacity:.92}
.sa-card-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}

/* varianti cromatiche per macro-settore */
.sa-v-manufacturing{background:linear-gradient(135deg,#0f3a4a,#1a5266 55%,#2a7a99)}
.sa-v-technology   {background:linear-gradient(135deg,#0d2f3d,#17495c 55%,#2f6f8c)}
.sa-v-healthcare   {background:linear-gradient(135deg,#123f4d,#1d5f70 55%,#358ba5)}
.sa-v-food         {background:linear-gradient(135deg,#8a6f2f,#a8893e 55%,#c4a35a)}
.sa-v-energy       {background:linear-gradient(135deg,#0f3a4a,#1c6072 55%,#2a7a99)}
.sa-v-hospitality  {background:linear-gradient(135deg,#14414f,#22687d 55%,#3a8ba5)}
.sa-v-realestate   {background:linear-gradient(135deg,#123845,#1a5266 55%,#316f86)}
.sa-v-retail       {background:linear-gradient(135deg,#1a4a55,#246a76 55%,#3d8f9c)}
.sa-v-services     {background:linear-gradient(135deg,#16414f,#215a6c 55%,#357f96)}
.sa-v-finance      {background:linear-gradient(135deg,#0e3644,#1a5266 55%,#2d7690)}

.sa-badges{position:absolute;top:.7rem;left:.7rem;display:flex;gap:.35rem;z-index:2;flex-wrap:wrap}
.sa-bdg{font-size:.65rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  padding:.25rem .6rem;border-radius:var(--radius-pill);line-height:1.4;white-space:nowrap}
.sa-bdg-gold{background:var(--accent);color:#2a1f05}
.sa-bdg-new {background:var(--sa-ok);color:#fff}
.sa-bdg-excl{background:#fff;color:var(--primary-dark)}
.sa-bdg-closing{background:var(--sa-warn);color:#fff}
.sa-ref{position:absolute;top:.7rem;right:.7rem;z-index:2;font-size:.66rem;font-weight:600;
  color:#fff;background:rgba(0,0,0,.32);padding:.2rem .5rem;border-radius:var(--radius-sm);letter-spacing:.03em}

.sa-card-body{padding:1rem 1.15rem 1.15rem;display:flex;flex-direction:column;flex:1}
.sa-sector{display:inline-flex;align-items:center;gap:.4rem;font-size:.71rem;font-weight:600;
  color:var(--primary);text-transform:uppercase;letter-spacing:.06em}
.sa-sector i{color:var(--accent)}
.sa-card h3,.sa-card-title{font-family:'Playfair Display',Georgia,serif;font-size:1.05rem;
  line-height:1.25;margin:.45rem 0 .3rem;text-wrap:balance}
.sa-loc{display:flex;align-items:center;gap:.4rem;font-size:.79rem;color:var(--text-light)}
.sa-loc i{color:var(--accent)}

.sa-price{margin-top:.8rem;font-family:'Playfair Display',Georgia,serif;font-weight:700;
  font-size:1.28rem;color:var(--primary);line-height:1.15}
.sa-price .sa-price-lbl{display:block;font-family:var(--font-sans);font-size:.66rem;font-weight:600;
  letter-spacing:.07em;text-transform:uppercase;color:var(--text-muted);margin-top:.1rem}

/* riga metriche a 3 colonne */
.sa-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;margin:.9rem 0 .2rem;
  border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;background:var(--border)}
.sa-metrics .sa-m{background:var(--bg-alt);padding:.55rem .35rem;text-align:center}
.sa-metrics .sa-m .sa-v{font-weight:700;font-size:.9rem;color:var(--text);line-height:1.3;
  font-variant-numeric:tabular-nums}
.sa-metrics .sa-m .sa-l{font-size:.6rem;letter-spacing:.05em;text-transform:uppercase;
  color:var(--text-muted);margin-top:.1rem}

.sa-why{display:flex;gap:.45rem;align-items:flex-start;font-size:.78rem;color:var(--text-light);margin-top:.65rem}
.sa-why i{color:var(--accent);margin-top:.18rem;flex:0 0 auto}

.sa-card-foot{margin-top:auto;padding-top:.85rem;display:flex;align-items:center;
  justify-content:space-between;gap:.6rem;flex-wrap:wrap}
.sa-lock{display:inline-flex;align-items:center;gap:.35rem;font-size:.72rem;color:var(--text-muted)}
.sa-lock i{color:var(--text-muted)}
.sa-golink{color:var(--accent-dark);font-weight:600;font-size:.82rem;text-decoration:none;
  display:inline-flex;align-items:center;gap:.35rem}
.sa-golink:hover{color:var(--accent)}

/* ============================================================
   3 · KPI GRID  (scheda deal)
   ============================================================ */
.sa-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:.9rem;margin:1.4rem 0}
.sa-kpi{background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);
  padding:1rem .8rem;text-align:center}
.sa-kpi .sa-v{font-family:'Playfair Display',Georgia,serif;font-weight:700;font-size:1.2rem;
  color:var(--primary);font-variant-numeric:tabular-nums;line-height:1.2}
.sa-kpi .sa-l{font-size:.66rem;letter-spacing:.07em;text-transform:uppercase;
  color:var(--text-muted);margin-top:.25rem}

/* ============================================================
   4 · TIMELINE PROCESSO  (Interesse → NDA → Deal Room → LOI)
   ============================================================ */
.sa-steps{list-style:none;padding:0;margin:0}
.sa-steps li{display:flex;gap:.8rem;padding-bottom:1.05rem;position:relative}
.sa-steps li:last-child{padding-bottom:0}
.sa-steps li:not(:last-child)::before{content:"";position:absolute;left:12px;top:26px;bottom:0;
  width:2px;background:var(--border)}
.sa-steps .sa-mk{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;
  font-size:.72rem;font-weight:700;z-index:1;line-height:1}
.sa-steps .sa-done .sa-mk{background:var(--sa-ok);color:#fff}
.sa-steps .sa-active .sa-mk{background:var(--accent);color:#2a1f05;
  box-shadow:0 0 0 4px rgba(var(--accent-rgb),.22)}
.sa-steps .sa-todo .sa-mk{background:var(--bg-alt);color:var(--text-muted);border:1px solid var(--border-strong)}
.sa-steps .sa-tit{font-size:.89rem;font-weight:600;line-height:1.35}
.sa-steps .sa-txt{font-size:.77rem;color:var(--text-light);line-height:1.45}
.sa-steps .sa-active .sa-tit{color:var(--accent-dark)}
.sa-steps .sa-done .sa-tit{color:var(--text)}
.sa-steps .sa-todo .sa-tit{color:var(--text-light)}

.sa-panel{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);
  padding:1.35rem;box-shadow:var(--shadow)}
.sa-panel-hi{background:linear-gradient(160deg,rgba(var(--primary-rgb),.05),rgba(var(--accent-rgb),.07));
  border-color:var(--border-strong)}
.sa-panel h4{font-family:'Playfair Display',Georgia,serif;font-size:1.08rem;margin:0 0 .4rem}
.sa-panel .sa-sm{font-size:.83rem;color:var(--text-light);margin:0 0 1rem;line-height:1.55}
.sa-note{display:flex;gap:.5rem;font-size:.74rem;color:var(--text-muted);margin-top:.7rem;line-height:1.5}
.sa-note i{color:var(--primary-light);flex:0 0 auto;margin-top:.15rem}

/* ============================================================
   5 · MANDATE CARD  (ricerche attive degli investitori)
   ============================================================ */
.sa-mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:1.25rem}
.sa-mand{background:var(--bg);border:1px solid var(--border);border-left:3px solid var(--accent);
  border-radius:var(--radius-lg);padding:1.2rem 1.3rem;box-shadow:var(--shadow);
  transition:transform var(--t-base),box-shadow var(--t-base);display:flex;flex-direction:column}
.sa-mand:hover{transform:translateY(-3px);box-shadow:var(--shadow-hover)}
.sa-mand-top{display:flex;align-items:center;gap:.75rem;margin-bottom:.65rem}
.sa-mand-av{width:42px;height:42px;border-radius:var(--radius);background:var(--sa-info-bg);
  color:var(--primary);display:grid;place-items:center;flex:0 0 auto;font-size:1.05rem}
.sa-mand-type{font-weight:600;font-size:.95rem;line-height:1.3}
.sa-mand-status{font-size:.71rem;color:var(--sa-ok);font-weight:600;display:inline-flex;
  align-items:center;gap:.35rem;margin-top:.1rem}
.sa-mand-status .sa-dot{width:7px;height:7px;border-radius:50%;background:var(--sa-ok);flex:0 0 auto}
.sa-mand-status.sa-paused{color:var(--text-muted)}
.sa-mand-status.sa-paused .sa-dot{background:var(--text-muted)}
.sa-mand-need{font-size:.93rem;color:var(--text);margin:.2rem 0 .85rem;line-height:1.6}
.sa-mand-need b{color:var(--primary);font-weight:600}
.sa-mtags{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:.9rem}
.sa-mtag{font-size:.73rem;background:var(--bg-alt);border:1px solid var(--border);
  border-radius:var(--radius-pill);padding:.25rem .7rem;color:var(--text-light);line-height:1.5}
.sa-mtag b{color:var(--text);font-weight:600}
.sa-mand-foot{margin-top:auto;display:flex;align-items:center;justify-content:space-between;
  gap:.6rem;border-top:1px solid var(--border);padding-top:.8rem;flex-wrap:wrap}
.sa-match{font-size:.77rem;color:var(--text-light);display:inline-flex;align-items:center;gap:.35rem}
.sa-match b{color:var(--sa-ok);font-weight:700}
.sa-match i{color:var(--sa-ok)}

/* ============================================================
   6 · LOCALITÀ  (griglia geografica con conteggi)
   ============================================================ */
.sa-locgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:1rem}
.sa-loccard{position:relative;height:132px;border-radius:var(--radius-lg);overflow:hidden;
  display:flex;align-items:flex-end;text-decoration:none;color:#fff;
  box-shadow:var(--shadow);transition:transform var(--t-base),box-shadow var(--t-base);
  background:linear-gradient(135deg,var(--primary-dark),var(--primary) 60%,var(--primary-light))}
.sa-loccard:hover{transform:translateY(-4px);box-shadow:var(--shadow-hover)}
.sa-loccard .sa-locdeco{position:absolute;inset:0;opacity:.16}
.sa-loccard .sa-locveil{position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(15,58,74,0) 35%,rgba(15,58,74,.78) 100%)}
.sa-loccard .sa-locbody{position:relative;padding:.9rem 1rem;width:100%}
.sa-loccard .sa-locname{font-family:'Playfair Display',Georgia,serif;font-size:1.08rem;
  font-weight:700;line-height:1.2;display:block}
.sa-loccard .sa-loccount{font-size:.75rem;color:rgba(255,255,255,.82);margin-top:.15rem;display:block;
  font-variant-numeric:tabular-nums}
.sa-loccard .sa-locpin{position:absolute;top:.75rem;right:.85rem;color:rgba(255,255,255,.55);font-size:.9rem}

/* barra statistica per settore (mini dashboard pubblica) */
.sa-statbars{display:grid;gap:.7rem}
.sa-statbar{display:grid;grid-template-columns:150px 1fr 54px;gap:.75rem;align-items:center;font-size:.83rem}
.sa-statbar .sa-sb-lbl{color:var(--text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sa-statbar .sa-sb-track{height:8px;background:var(--bg-alt);border-radius:var(--radius-pill);overflow:hidden}
.sa-statbar .sa-sb-fill{height:100%;border-radius:var(--radius-pill);
  background:linear-gradient(90deg,var(--primary),var(--primary-light))}
.sa-statbar .sa-sb-val{text-align:right;font-weight:700;color:var(--primary);font-variant-numeric:tabular-nums}
@media(max-width:520px){.sa-statbar{grid-template-columns:110px 1fr 44px;font-size:.78rem}}

/* ============================================================
   7 · DATA ROOM PROFESSIONALE  (area riservata)
   ============================================================ */
.sa-dr-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;
  flex-wrap:wrap;padding-bottom:1rem;border-bottom:1px solid var(--border);margin-bottom:1.25rem}
.sa-dr-head h2{font-family:'Playfair Display',Georgia,serif;font-size:1.45rem;margin:0 0 .25rem}
.sa-dr-meta{display:flex;gap:1rem;flex-wrap:wrap;font-size:.8rem;color:var(--text-light)}
.sa-dr-meta span{display:inline-flex;align-items:center;gap:.35rem}
.sa-dr-meta i{color:var(--accent)}

/* stato accesso NDA */
.sa-gate{display:flex;gap:.8rem;align-items:flex-start;padding:.95rem 1.1rem;border-radius:var(--radius);
  font-size:.86rem;line-height:1.55;margin-bottom:1.25rem}
.sa-gate i{font-size:1.05rem;flex:0 0 auto;margin-top:.1rem}
.sa-gate-locked{background:var(--sa-warn-bg);border-left:3px solid var(--accent);color:#6b5824}
.sa-gate-locked i{color:var(--accent-dark)}
.sa-gate-open{background:var(--sa-ok-bg);border-left:3px solid var(--sa-ok);color:#155f2e}
.sa-gate-open i{color:var(--sa-ok)}

/* layout a due colonne.
   minmax(0,...) invece di 1fr: un track "1fr" vale in realta' minmax(auto,1fr)
   e quel minimo auto impedisce alla colonna di restringersi sotto la larghezza
   del contenuto — la griglia sfonda il contenitore e la colonna destra viene
   tagliata. Stesso motivo per min-width:0 sui figli.
   Il punto di rottura e' 1100px e non 900: la dashboard ha gia' una barra
   laterale da 260px, quindi lo spazio reale e' molto meno della finestra. */
.sa-dr-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,320px);
  gap:1.5rem;
  align-items:start;
}
/* min-width:0 va propagato a TUTTA la catena, non solo al primo livello.
   La colonna laterale e' a sua volta una griglia: se i suoi figli restano a
   min-width:auto, la colonna interna si dimensiona sul contenuto piu' largo
   (un <select> contribuisce con la sua opzione piu' lunga anche se ha
   width:100%) e straborda dalla traccia da 320px. Fermare la catena solo in
   cima non basta: il contenuto sfonda comunque. */
.sa-dr-layout > *{min-width:0}
.sa-dr-layout aside{grid-template-columns:minmax(0,1fr)}
.sa-dr-layout aside > *,
.sa-dr-layout .sa-panel > *,
.sa-dr-layout .sa-panel .fg,
.sa-dr-layout .sa-panel .fg > *{min-width:0;max-width:100%}

@media(max-width:1100px){
  .sa-dr-layout{grid-template-columns:minmax(0,1fr)}
}

/* Stesso problema sul contenitore esterno della dashboard: la colonna dei
   contenuti e' dichiarata 1fr accanto alla barra laterale da 260px, quindi
   non si restringe e trascina fuori tutto quello che contiene.
   Si corregge qui perche' deal-ui.css viene caricato dopo lo stile inline. */
.dashboard-layout{grid-template-columns:260px minmax(0,1fr)}
.dashboard-layout > *{min-width:0}
@media(max-width:1024px){
  .dashboard-layout{grid-template-columns:minmax(0,1fr)}
}

/* Nei pannelli laterali i campi possono contenere testi molto lunghi (ragione
   sociale + email + ruolo, indirizzi, link di invito). Un <select> in
   particolare pretende come larghezza minima quella dell'opzione piu' lunga:
   senza width esplicita esce dalla colonna trascinandosi dietro il pannello.
   width:100% + box-sizing lo obbliga a stare dentro; overflow-wrap spezza le
   stringhe lunghe senza spazi (email, URL, token). */
.sa-dr-layout select,
.sa-dr-layout input,
.sa-dr-layout textarea,
.sa-panel select,
.sa-panel input,
.sa-panel textarea{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
.sa-panel select{text-overflow:ellipsis}
.sa-dr-layout aside,
.sa-panel{overflow-wrap:anywhere}

/* toolbar documenti */
.sa-dr-tools{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;margin-bottom:.9rem}
.sa-dr-tools .sa-dr-title{font-family:'Playfair Display',Georgia,serif;font-size:1.08rem;margin:0}
.sa-dr-tools .sa-spacer{margin-left:auto}
.sa-fchip{padding:.3rem .75rem;border-radius:var(--radius-pill);border:1px solid var(--border-strong);
  background:var(--bg);color:var(--text-light);font-size:.77rem;font-weight:500;cursor:pointer;
  transition:var(--t-fast);font-family:var(--font-sans)}
.sa-fchip:hover{border-color:var(--primary);color:var(--primary)}
.sa-fchip.sa-on{background:var(--primary);border-color:var(--primary);color:#fff}

/* elenco documenti — riga professionale */
.sa-docs{border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;background:var(--bg)}
.sa-doc{display:grid;grid-template-columns:38px 1fr auto;gap:.85rem;align-items:center;
  padding:.85rem 1rem;border-bottom:1px solid var(--border);transition:background var(--t-fast)}
.sa-doc:last-child{border-bottom:0}
.sa-doc:hover{background:var(--bg-alt)}
.sa-doc-ico{width:38px;height:38px;border-radius:var(--radius);display:grid;place-items:center;
  font-size:1rem;background:var(--sa-info-bg);color:var(--primary)}
.sa-doc-ico.sa-pdf{background:#fbeae9;color:#b3261e}
.sa-doc-ico.sa-doc-w{background:#e7eef7;color:#1a4f8a}
.sa-doc-ico.sa-img{background:var(--sa-ok-bg);color:var(--sa-ok)}
.sa-doc-main{min-width:0}
.sa-doc-name{font-weight:600;font-size:.9rem;line-height:1.35;display:flex;align-items:center;
  gap:.45rem;flex-wrap:wrap}
.sa-doc-sub{font-size:.74rem;color:var(--text-muted);margin-top:.15rem;display:flex;
  gap:.75rem;flex-wrap:wrap}
.sa-doc-sub span{display:inline-flex;align-items:center;gap:.3rem}
.sa-doc-act{display:flex;gap:.35rem;align-items:center;flex-wrap:wrap}
.sa-doc.sa-blur .sa-doc-name{filter:blur(3.5px);user-select:none}
.sa-doc.sa-blur .sa-doc-ico{opacity:.45}

/* badge stato documento */
.sa-st{font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  padding:.18rem .5rem;border-radius:var(--radius-pill);white-space:nowrap;line-height:1.5}
.sa-st-draft {background:var(--bg-alt);color:var(--text-muted);border:1px solid var(--border-strong)}
.sa-st-shared{background:var(--sa-info-bg);color:var(--primary)}
.sa-st-signed{background:var(--sa-ok-bg);color:var(--sa-ok)}
.sa-st-arch  {background:var(--bg-alt);color:var(--text-muted)}
.sa-st-gated {background:var(--sa-warn-bg);color:var(--sa-warn)}

/* partecipanti */
/* minmax(0,1fr) e min-width:0 sono la stessa correzione applicata a due
   livelli. Un elemento dentro grid o flex parte con min-width:auto: si
   RIFIUTA di scendere sotto la larghezza minima del proprio contenuto.
   Con testo in nowrap quella larghezza e' l'intera riga, quindi .sa-part
   sfonda la colonna da 320px e il troncamento non ha spazio in cui agire.
   La catena si ricrea a ogni annidamento: va spezzata a ogni livello. */
.sa-parts{display:grid;grid-template-columns:minmax(0,1fr);gap:.55rem}
.sa-part{display:flex;align-items:center;gap:.7rem;padding:.65rem .8rem;border:1px solid var(--border);
  border-radius:var(--radius);background:var(--bg);min-width:0}
.sa-part-av{width:34px;height:34px;border-radius:50%;background:var(--primary);color:#fff;
  display:grid;place-items:center;font-size:.78rem;font-weight:700;flex:0 0 auto;text-transform:uppercase}
.sa-part-main{min-width:0;flex:1}
/* display:block e' indispensabile, non cosmetico: su uno <span> inline il
   browser IGNORA overflow:hidden e text-overflow:ellipsis. Senza, il testo
   non si tronca mai e un'email lunga sfonda la colonna laterale spingendo
   fuori badge di stato e pulsante di revoca. */
.sa-part-name{display:block;font-size:.86rem;font-weight:600;line-height:1.3;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.sa-part-mail{display:block;font-size:.73rem;color:var(--text-muted);white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
/* Stato + azioni: larghezza naturale, senza allargarsi ne' comprimersi. */
.sa-part > span:last-child{flex:0 0 auto}
.sa-part-role{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  padding:.15rem .45rem;border-radius:var(--radius-pill);background:var(--bg-alt);color:var(--text-light)}

/* audit trail */
.sa-audit{list-style:none;padding:0;margin:0;max-height:280px;overflow-y:auto}
.sa-audit li{display:flex;gap:.65rem;padding:.55rem 0;border-bottom:1px dashed var(--border);font-size:.79rem}
.sa-audit li:last-child{border-bottom:0}
.sa-audit .sa-a-ico{width:22px;height:22px;border-radius:50%;background:var(--bg-alt);
  display:grid;place-items:center;font-size:.65rem;color:var(--text-light);flex:0 0 auto}
.sa-audit .sa-a-txt{line-height:1.45;color:var(--text-light)}
.sa-audit .sa-a-txt b{color:var(--text);font-weight:600}
.sa-audit .sa-a-time{font-size:.7rem;color:var(--text-muted);margin-top:.1rem;font-variant-numeric:tabular-nums}

/* riepilogo avanzamento trattativa */
.sa-prog{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}
.sa-prog-track{flex:1;min-width:120px;height:6px;background:var(--bg-alt);
  border-radius:var(--radius-pill);overflow:hidden}
.sa-prog-fill{height:100%;background:linear-gradient(90deg,var(--accent-dark),var(--accent));
  border-radius:var(--radius-pill);transition:width var(--t-slow)}
.sa-prog-lbl{font-size:.75rem;color:var(--text-light);font-weight:600;white-space:nowrap}

/* dropzone upload */
.sa-drop{border:2px dashed var(--border-strong);border-radius:var(--radius);padding:1.4rem;
  text-align:center;color:var(--text-muted);font-size:.85rem;background:var(--bg-alt);
  transition:var(--t-fast);cursor:pointer}
.sa-drop:hover,.sa-drop.sa-over{border-color:var(--accent);background:rgba(var(--accent-rgb),.06);color:var(--text-light)}
.sa-drop i{font-size:1.5rem;color:var(--accent-dark);display:block;margin-bottom:.4rem}

/* stato vuoto */
.sa-empty{text-align:center;padding:2.5rem 1rem;color:var(--text-muted)}
.sa-empty i{font-size:2rem;color:var(--border-strong);display:block;margin-bottom:.6rem}
.sa-empty p{font-size:.88rem;margin:0}

/* card stanza (elenco deal room) */
.sa-room{display:flex;align-items:center;gap:1rem;padding:1rem 1.2rem;background:var(--bg);
  border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow);
  cursor:pointer;transition:var(--t-base);margin-bottom:.7rem;text-decoration:none;color:inherit}
.sa-room:hover{transform:translateX(3px);box-shadow:var(--shadow-md);border-color:var(--border-strong)}
.sa-room-ico{width:44px;height:44px;border-radius:var(--radius);display:grid;place-items:center;
  background:var(--sa-info-bg);color:var(--primary);font-size:1.1rem;flex:0 0 auto}
.sa-room-ico.sa-owner{background:rgba(var(--accent-rgb),.14);color:var(--accent-dark)}
.sa-room-main{flex:1;min-width:0}
.sa-room-title{font-weight:600;font-size:.95rem;line-height:1.35;margin-bottom:.2rem}
.sa-room-sub{font-size:.76rem;color:var(--text-light);display:flex;gap:.7rem;flex-wrap:wrap;align-items:center}
.sa-room-sub i{color:var(--accent)}
.sa-room-act{display:flex;gap:.35rem;align-items:center;flex:0 0 auto}

/* ============================================================
   7-bis · CTA FINALE  (sezione di chiusura ad alto impatto)
   ============================================================ */
.sa-cta-final{
  position:relative;
  padding:4.5rem 0;
  background:
    radial-gradient(900px 320px at 80% -10%, rgba(var(--accent-rgb),.18), transparent 62%),
    linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 58%, var(--primary-light) 100%);
  color:#fff;
  overflow:hidden;
}
.sa-cta-inner{max-width:760px;margin:0 auto;text-align:center;position:relative}
.sa-cta-final h2{
  font-family:'Playfair Display',Georgia,serif;
  font-size:2.35rem;
  line-height:1.18;
  color:#fff;
  margin:0 0 1rem;
  text-wrap:balance;
}
.sa-cta-final h2 em{color:var(--accent-light);font-style:italic}
.sa-cta-final > .container > .sa-cta-inner > p{
  color:rgba(255,255,255,.82);
  font-size:1.05rem;
  line-height:1.7;
  margin:0 auto 1.75rem;
  max-width:60ch;
}
.sa-cta-final .btn-accent{box-shadow:0 10px 30px rgba(0,0,0,.22)}

.sa-cta-proof{
  list-style:none;
  padding:0;
  margin:2rem 0 0;
  display:flex;
  flex-wrap:wrap;
  gap:.65rem 1.75rem;
  justify-content:center;
}
.sa-cta-proof li{
  display:inline-flex;
  align-items:center;
  gap:.5rem;
  font-size:.87rem;
  color:rgba(255,255,255,.86);
  line-height:1.5;
}
.sa-cta-proof li i{color:var(--accent);font-size:.95rem}
.sa-cta-proof li b{color:#fff;font-weight:700;font-variant-numeric:tabular-nums}

.sa-cta-note{
  margin:1.5rem auto 0!important;
  font-size:.75rem!important;
  color:rgba(255,255,255,.5)!important;
  max-width:56ch;
}

@media(max-width:640px){
  .sa-cta-final{padding:3.25rem 0}
  .sa-cta-final h2{font-size:1.75rem}
  .sa-cta-proof{flex-direction:column;align-items:center;gap:.6rem}
}

/* ============================================================
   7-ter · FORM A SEZIONI  (conferimento deal / pubblicazione immobile)
   ============================================================ */
.sa-fset{
  border:1px solid var(--border);
  border-radius:var(--radius);
  padding:1.1rem 1.2rem 1.2rem;
  margin-bottom:1.1rem;
  background:var(--bg-alt);
}
.sa-fset-h{
  display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;
  font-family:'Playfair Display',Georgia,serif;
  font-size:1rem;font-weight:600;margin-bottom:.35rem;
}
.sa-fset-h i{color:var(--accent);font-size:.9rem}
.sa-fset-note{font-size:.78rem;color:var(--text-muted);margin:0 0 .9rem;line-height:1.55}
.sa-row{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:.6rem}
.sa-row:last-child{margin-bottom:0}
.sa-hint{display:block;font-size:.72rem;color:var(--text-muted);margin-top:.25rem;line-height:1.45}
.sa-req{color:#b3261e;font-weight:700}

.sa-fset .fc.sa-err{border-color:#b3261e;background:#fffafa}
.sa-fset .sa-errmsg{display:block;font-size:.73rem;color:#b3261e;margin-top:.25rem;font-weight:500}

.sa-fset-calc{
  margin-top:.9rem;padding:.7rem .9rem;border-radius:var(--radius-sm);
  background:var(--sa-info-bg);font-size:.8rem;color:var(--primary);
  display:none;line-height:1.6;
}
.sa-fset-calc.sa-on{display:block}
.sa-fset-calc b{font-variant-numeric:tabular-nums}
.sa-fset-calc .sa-warn{color:var(--sa-warn);font-weight:600}

/* ============================================================
   7-quater · APPROVAZIONI E REVISIONI
   ============================================================ */
.sa-appr{margin-top:.5rem}
.sa-appr-row{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap}
.sa-appr-link{background:none;border:0;padding:0;cursor:pointer;font-family:inherit;
  font-size:.78rem;font-weight:600;color:var(--primary);display:inline-flex;align-items:center;gap:.3rem}
.sa-appr-link:hover{text-decoration:underline}
.sa-appr-hint{font-size:.74rem;color:var(--text-muted);display:inline-flex;align-items:center;gap:.35rem}

/* pannello di dettaglio, si apre sotto il documento */
.sa-appr-det{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));
  gap:1.25rem;margin-top:.85rem;padding:1rem;
  background:var(--bg-alt);border:1px solid var(--border);border-radius:var(--radius);
}
.sa-appr-col{min-width:0}
.sa-appr-det h5{
  font-family:'Playfair Display',Georgia,serif;font-size:.95rem;font-weight:600;
  margin:0 0 .6rem;color:var(--text);
}
.sa-appr-list{list-style:none;padding:0;margin:0;display:grid;gap:.6rem}
.sa-appr-list li{display:flex;gap:.55rem;font-size:.82rem;line-height:1.5;color:var(--text-light)}
.sa-appr-list li i{margin-top:.2rem;flex:0 0 auto;font-size:.8rem}
.sa-appr-list li b{color:var(--text);font-weight:600}
.sa-appr-ruolo{font-size:.72rem;color:var(--text-muted)}
.sa-appr-stato{font-size:.75rem;color:var(--text-muted)}
.sa-appr-actions{display:flex;gap:.4rem;flex-wrap:wrap;margin-top:.85rem}

@media(max-width:640px){
  .sa-appr-det{grid-template-columns:1fr}
  .sa-appr-row{gap:.45rem}
}

/* ============================================================
   8 · UTILITY
   ============================================================ */
.sa-chips{display:flex;gap:.45rem;flex-wrap:wrap}
.sa-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}

@media(max-width:640px){
  .sa-grid{grid-template-columns:1fr}
  .sa-mgrid{grid-template-columns:1fr}
  .sa-doc{grid-template-columns:32px 1fr;row-gap:.5rem}
  .sa-doc-act{grid-column:1/-1;justify-content:flex-end}
  .sa-trust{gap:1.25rem;justify-content:flex-start}
}

@media(prefers-reduced-motion:reduce){
  .sa-card,.sa-mand,.sa-room,.sa-loccard,.sa-prog-fill{transition:none}
  .sa-card:hover,.sa-mand:hover,.sa-room:hover,.sa-loccard:hover{transform:none}
}

/* stampa: la data room deve essere stampabile in modo pulito */
@media print{
  .sa-dr-tools,.sa-doc-act,.sa-drop,.sa-room-act{display:none!important}
  .sa-docs,.sa-panel{box-shadow:none;border-color:#999}
}
