/* =====================================================================================================================
   ASSER AI - strato "telefono" in stile Apple.
   Si carica DOPO asser-ai-portal.css e non cambia nulla sopra i 920 px: menu a tutto schermo, barra in alto sottile,
   piede di pagina con tasti larghi, chat a foglio dal basso, margini uguali ovunque, tasti da almeno 44 px.
   Per tornare a com'era prima basta togliere questo file (o la riga che lo carica): il resto del sito non dipende da lui.
   Le regole usano "body .asser-ai-app" davanti per vincere sul vecchio foglio di stile, che ha molte regole sovrapposte.
   ===================================================================================================================== */

/* ---- 0. Regole di base (valgono a ogni larghezza, non cambiano l'aspetto sul computer) ---------------------------------- */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

body.asser-ai-plugin-body {
  -webkit-tap-highlight-color: transparent;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}

@keyframes m-menu-in {
  from { opacity: 0; transform: translateY(-6px); }
  to { opacity: 1; transform: none; }
}

@keyframes m-row-in {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

@keyframes m-sheet-in {
  from { opacity: 0; transform: translateY(28px); }
  to { opacity: 1; transform: none; }
}

@keyframes m-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

/* Il menu aperto blocca la pagina sotto (si accende da asser-ai-mobile.js).
   Per il menu il blocco sta SOLO su "html": con "overflow: hidden" anche su "body" la barra del sito (sticky) smette di restare in alto e,
   se la pagina e' stata scorsa, il menu si apre fuori dallo schermo e non si vede. */
html.m-lock {
  overflow: hidden;
  overscroll-behavior: none;
}

html.m-lock-chat,
html.m-lock-chat body {
  overflow: hidden;
  overscroll-behavior: none;
}

/* ---- 1. Telefoni e tablet in verticale ---------------------------------------------------------------------------------- */
@media (max-width: 920px) {
  /* Tasti e campi senza un carattere proprio prendevano quello di sistema (si vedeva in "No, passo al caricamento documenti"):
     con :where() la regola ha peso zero e riempie solo i vuoti, non cambia chi ha gia' il suo carattere. */
  :where(.asser-ai-app) :where(button, input, select, textarea) {
    font-family: inherit;
  }

  body .asser-ai-app {
    --m-gutter: 16px;
    --m-bar: 56px;
    --m-hair: rgba(60, 40, 52, 0.12);
    --m-ink: #1d1d1f;
    --m-sab: env(safe-area-inset-bottom, 0px);
    --m-ease: cubic-bezier(0.2, 0.8, 0.2, 1);
  }

  /* ---- 1a. Barra in alto: sottile, chiara, con la sfocatura di Apple ---- */
  body .asser-ai-app .portal-nav {
    position: sticky;
    top: 0;
    z-index: 40;
    min-height: var(--m-bar);
    border-bottom: 1px solid var(--m-hair);
    background: rgba(251, 248, 245, 0.9);
    box-shadow: none;
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
  }

  body .asser-ai-app .portal-nav.portal-nav--open {
    z-index: 60; /* sopra tutto cio' che la pagina tiene fisso in alto (barre di sezione, ricerche), come sul computer */
    background: #fbf8f5;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
  }

  body .asser-ai-app .portal-nav__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: auto;
    max-width: none;
    min-height: calc(var(--m-bar) - 1px);
    margin: 0;
    padding: 0 max(var(--m-gutter), env(safe-area-inset-right)) 0 max(var(--m-gutter), env(safe-area-inset-left));
  }

  body .asser-ai-app .portal-brand {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 44px;
  }

  body .asser-ai-app .portal-brand__logo .asser-logo-3d__stage {
    width: 32px;
    height: 32px;
  }

  body .asser-ai-app .portal-brand__logo .asser-logo-3d__wordmark {
    width: 96px;
  }

  /* Tasto del menu: solo due linee, senza riquadro, area di tocco da 44 px */
  body .asser-ai-app .portal-nav__toggle {
    display: grid;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    margin-right: -10px;
    padding: 0;
    place-items: center;
    border: 0;
    border-radius: 12px;
    background: transparent;
    box-shadow: none;
    color: var(--asser-secondary, #4b2338);
    transition: background-color 160ms ease;
  }

  body .asser-ai-app .portal-nav__toggle:active {
    background: rgba(60, 40, 52, 0.08);
  }

  body .asser-ai-app .portal-nav__toggle-lines {
    display: grid;
    width: 20px;
    gap: 6px;
  }

  body .asser-ai-app .portal-nav__toggle-lines i {
    height: 2px;
    transition: transform 260ms var(--m-ease);
  }

  body .asser-ai-app .portal-nav__toggle-lines i:nth-child(2) {
    display: none;
  }

  body .asser-ai-app .portal-nav--open .portal-nav__toggle-lines i:first-child {
    transform: translateY(4px) rotate(45deg);
  }

  body .asser-ai-app .portal-nav--open .portal-nav__toggle-lines i:last-child {
    transform: translateY(-4px) rotate(-45deg);
  }

  /* ---- 1b. Il menu: a tutto schermo sotto la barra, voci grandi come sul sito di Apple ---- */
  body .asser-ai-app .portal-nav .portal-nav__drawer {
    display: none;
  }

  body .asser-ai-app .portal-nav--open .portal-nav__drawer {
    position: absolute;
    top: 100%;
    right: 0;
    left: 0;
    display: flex;
    flex-direction: column;
    gap: 0;
    width: auto;
    height: calc(100vh - var(--m-bar) + 1px);
    margin: 0;
    padding: 4px max(var(--m-gutter), env(safe-area-inset-right)) calc(24px + var(--m-sab)) max(var(--m-gutter), env(safe-area-inset-left));
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    border: 0;
    background: #fbf8f5;
    animation: m-menu-in 240ms var(--m-ease) both;
  }

  @supports (height: 100dvh) {
    body .asser-ai-app .portal-nav--open .portal-nav__drawer {
      height: calc(100dvh - var(--m-bar) + 1px);
    }
  }

  body .asser-ai-app .portal-nav .portal-nav__links {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
    font-size: 22px;
  }

  body .asser-ai-app .portal-nav .portal-nav__links > a,
  body .asser-ai-app .portal-nav .portal-nav__dropdown > a {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    min-height: 56px;
    margin: 0;
    padding: 0;
    border: 0;
    border-bottom: 1px solid var(--m-hair);
    border-radius: 0;
    background: none;
    color: var(--m-ink);
    font: 600 22px/1.2 "Sora", ui-sans-serif, system-ui, sans-serif;
    letter-spacing: -0.015em;
    white-space: normal;
  }

  body .asser-ai-app .portal-nav .portal-nav__links > a:active,
  body .asser-ai-app .portal-nav .portal-nav__dropdown > a:active {
    color: var(--asser-primary, #7d445e);
  }

  /* "Rottamazione" con il suo "New": resta sulla stessa riga */
  body .asser-ai-app .portal-nav .portal-nav__links .rot-new {
    position: static;
    margin: 0;
    transform: none;
  }

  /* Privacy: voce di servizio, piu' discreta */
  body .asser-ai-app .portal-nav .portal-nav__links > a.portal-nav__secondary {
    display: flex;
    color: var(--asser-muted, #726b67);
    font: 500 17px/1.3 "Manrope", ui-sans-serif, system-ui, sans-serif;
    letter-spacing: 0;
  }

  /* Modulistica: la voce porta alla pagina, il tasto con la freccia apre l'elenco dei moduli */
  body .asser-ai-app .portal-nav .portal-nav__dropdown {
    position: relative;
    padding: 0;
  }

  body .asser-ai-app .portal-nav .portal-nav__dropdown > a {
    padding-right: 56px;
  }

  body .asser-ai-app .portal-nav .portal-nav__dropdown > a .portal-nav__chevron {
    display: none;
  }

  body .asser-ai-app .portal-nav .m-sub-toggle {
    position: absolute;
    top: 0;
    right: -8px;
    display: grid;
    width: 56px;
    height: 56px;
    padding: 0;
    place-items: center;
    border: 0;
    background: transparent;
    color: var(--asser-primary, #7d445e);
    cursor: pointer;
  }

  body .asser-ai-app .portal-nav .m-sub-toggle i {
    display: block;
    width: 9px;
    height: 9px;
    margin-top: -4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 260ms var(--m-ease), margin 260ms var(--m-ease);
  }

  body .asser-ai-app .portal-nav .portal-nav__dropdown.is-open > .m-sub-toggle i {
    margin-top: 4px;
    transform: rotate(225deg);
  }

  body .asser-ai-app .portal-nav .portal-nav__dropdown-menu {
    position: static;
    display: none !important;
    width: auto;
    min-width: 0;
    margin: 0;
    padding: 0;
    transform: none;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  body .asser-ai-app .portal-nav .portal-nav__dropdown.is-open > .portal-nav__dropdown-menu {
    display: block !important;
    animation: m-menu-in 220ms var(--m-ease) both;
  }

  body .asser-ai-app .portal-nav .portal-nav__dropdown-menu a {
    display: flex;
    align-items: center;
    min-height: 48px;
    margin: 0;
    padding: 0 0 0 16px;
    border: 0;
    border-bottom: 1px solid var(--m-hair);
    border-radius: 0;
    background: none;
    color: var(--asser-muted, #726b67);
    font: 500 17px/1.3 "Manrope", ui-sans-serif, system-ui, sans-serif;
    white-space: normal;
  }

  /* Azioni in fondo: un tasto principale, uno secondario, poi i collegamenti discreti */
  body .asser-ai-app .portal-nav .portal-nav__actions {
    position: static;
    display: grid;
    flex: 0 0 auto;
    grid-template-columns: 1fr;
    gap: 12px;
    width: 100%;
    margin: auto 0 0;
    padding: 28px 0 0;
    white-space: normal;
  }

  body .asser-ai-app .portal-nav .portal-nav__actions > a,
  body .asser-ai-app .portal-nav .portal-nav__actions .portal-button {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    margin: 0;
    padding: 0 24px;
    border-radius: 999px;
    font: 700 17px/1.2 "Manrope", ui-sans-serif, system-ui, sans-serif;
    letter-spacing: 0;
    text-align: center;
  }

  body .asser-ai-app .portal-nav .portal-nav__actions .portal-button {
    grid-column: auto;
    order: 1;
  }

  body .asser-ai-app .portal-nav .portal-nav__actions > a.portal-nav__login {
    order: 2;
    border: 1.5px solid rgba(125, 68, 94, 0.55);
    background: transparent;
    color: var(--asser-primary, #7d445e);
  }

  body .asser-ai-app .portal-nav .portal-nav__actions > a:not(.portal-button):not(.portal-nav__login) {
    order: 3;
    min-height: 48px;
    border: 0;
    background: none;
    color: var(--asser-muted, #726b67);
    font-weight: 600;
    font-size: 16px;
  }

  /* Le voci entrano una dopo l'altra (solo se la persona non ha chiesto meno movimento) */
  @media (prefers-reduced-motion: no-preference) {
    body .asser-ai-app .portal-nav--open .portal-nav__links > a,
    body .asser-ai-app .portal-nav--open .portal-nav__links > .portal-nav__dropdown,
    body .asser-ai-app .portal-nav--open .portal-nav__actions > * {
      animation: m-row-in 360ms var(--m-ease) both;
    }

    body .asser-ai-app .portal-nav--open .portal-nav__links > :nth-child(2) { animation-delay: 30ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__links > :nth-child(3) { animation-delay: 60ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__links > :nth-child(4) { animation-delay: 90ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__links > :nth-child(5) { animation-delay: 120ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__links > :nth-child(6) { animation-delay: 150ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__links > :nth-child(7) { animation-delay: 180ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__links > :nth-child(8) { animation-delay: 210ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__actions > :nth-child(1) { animation-delay: 220ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__actions > :nth-child(2) { animation-delay: 250ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__actions > :nth-child(3) { animation-delay: 280ms; }
    body .asser-ai-app .portal-nav--open .portal-nav__actions > :nth-child(4) { animation-delay: 310ms; }
  }

  /* Con il menu aperto la chat e il resto della pagina non si vedono ne' si toccano */
  html.m-lock .asser-ai-app .portal-chat {
    visibility: hidden;
  }

  /* ---- 1c. Piede di pagina: tasti larghi, due colonne, margini uguali alla barra ---- */
  body .asser-ai-app .portal-footer {
    padding: 44px max(var(--m-gutter), env(safe-area-inset-right)) calc(28px + var(--m-sab)) max(var(--m-gutter), env(safe-area-inset-left));
    font-size: 14px;
  }

  body .asser-ai-app .portal-footer__inner {
    gap: 28px;
  }

  body .asser-ai-app .portal-footer__brand p {
    margin: 14px 0 0;
    font-size: 14px;
    line-height: 1.6;
  }

  body .asser-ai-app .portal-footer nav.portal-footer__links {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
    row-gap: 0;
  }

  body .asser-ai-app .portal-footer .portal-footer__links > strong {
    grid-column: 1 / -1;
    margin-bottom: 4px;
    font: 700 13px/1.3 "Manrope", ui-sans-serif, system-ui, sans-serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.9);
  }

  body .asser-ai-app .portal-footer .portal-footer__links > a,
  body .asser-ai-app .portal-footer .portal-footer__links > span {
    display: flex;
    align-items: center;
    min-height: 44px;
    font-size: 15px;
    line-height: 1.3;
  }

  body .asser-ai-app .portal-footer .portal-footer__links > a:active {
    color: #fff;
  }

  body .asser-ai-app .portal-footer__bottom {
    gap: 10px;
    margin-top: 28px;
    padding-top: 18px;
    font-size: 12px;
    line-height: 1.55;
    color: rgba(255, 255, 255, 0.6);
  }

  /* ---- 1d. Chat: pulsante piu' discreto, rispetta i bordi dell'iPhone, non copre i campi mentre si scrive ---- */
  body .asser-ai-app .portal-chat {
    right: max(14px, env(safe-area-inset-right));
    bottom: calc(14px + var(--m-sab));
    transition: transform 320ms var(--m-ease), opacity 220ms ease;
  }

  body .asser-ai-app .portal-chat.m-chat-away:not(.portal-chat--open) {
    opacity: 0;
    pointer-events: none;
    transform: translateY(calc(100% + 28px));
  }
}

/* ---- 1e. Margini laterali uguali in tutte le pagine (16 px sul telefono, 24 px sul tablet), allineati al logo ---- */
@media (min-width: 641px) and (max-width: 920px) {
  body .asser-ai-app {
    --m-gutter: 24px;
  }

  /* menu a tutto schermo sul tablet: le voci restano in una colonna leggibile al centro */
  body .asser-ai-app .portal-nav--open .portal-nav__drawer {
    padding-right: max(var(--m-gutter), calc((100% - 560px) / 2));
    padding-left: max(var(--m-gutter), calc((100% - 560px) / 2));
  }
}

@media (max-width: 920px) {
  /* Contenitori delle pagine: prima ognuno aveva il suo margine (10 px, 16 px, 20 px...) */
  body .asser-ai-app .portal-home-v3__hero,
  body .asser-ai-app .portal-home-v3__start,
  body .asser-ai-app .portal-home-v3__resources,
  body .asser-ai-app .portal-home-v2__hero,
  body .asser-ai-app .portal-home-v2__proof,
  body .asser-ai-app .portal-home-v2 .portal-section,
  body .asser-ai-app .portal-home-v2__final-cta,
  body .asser-ai-app .portal-hero,
  body .asser-ai-app .portal-section,
  body .asser-ai-app .portal-info-page,
  body .asser-ai-app .guide-page,
  body .asser-ai-app .faq-content,
  body .asser-ai-app .faq-topic-nav,
  body .asser-ai-app .faq-search,
  body .asser-ai-app .asser-ai-upload-hero,
  body .asser-ai-app .asser-ai-portal,
  body .asser-ai-app .document-examples-page,
  body .asser-ai-app .guide-hub,
  body .asser-ai-app .module-library,
  body .asser-ai-app .auth-shell,
  body .asser-ai-app .dashboard-page,
  body .asser-ai-app .asser-ai-wizard-root {
    width: auto;
    max-width: none;
    margin-right: var(--m-gutter);
    margin-left: var(--m-gutter);
  }

  /* Fasce a tutta larghezza (colorate): il testo dentro parte dallo stesso margine */
  body .asser-ai-app .portal-home-v3__flow,
  body .asser-ai-app .portal-home-v3__questions,
  body .asser-ai-app .portal-home-v3__ready {
    padding-right: var(--m-gutter);
    padding-left: var(--m-gutter);
  }

  body .asser-ai-app .portal-footer .portal-footer__links:not(nav) {
    gap: 0;
  }
}

/* ---- 1f. Tasti, riquadri e testi piccoli (tutte le pagine) ---- */
@media (max-width: 920px) {
  /* Tasti: alti almeno 50 px, testo da 17 px, e rispondono al tocco come in iOS */
  body .asser-ai-app .portal-button {
    min-height: 50px;
    font-size: 17px;
  }

  body .asser-ai-app .portal-button--nav {
    min-height: 52px;
    font-size: 17px;
  }

  body .asser-ai-app .rate-calculator__field .portal-button {
    width: 100%;
    min-height: 52px;
  }

  /* Collegamenti "Guarda come funziona →" e simili: area di tocco da 44 px senza cambiare l'aspetto */
  body .asser-ai-app .portal-home-v3__flow-heading a,
  body .asser-ai-app .portal-home-v3__text-link,
  body .asser-ai-app .portal-home-v3__ready-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  /* Riquadri: angoli piu' morbidi e ombra leggera, uguali ovunque */
  body .asser-ai-app .portal-card,
  body .asser-ai-app .portal-info-card,
  body .asser-ai-app .document-example,
  body .asser-ai-app .portal-home-v3__choice-list > a,
  body .asser-ai-app .home-ai-stage {
    border-radius: 22px;
  }

  body .asser-ai-app .portal-info-card,
  body .asser-ai-app .document-example,
  body .asser-ai-app .portal-home-v3__choice-list > a:not(.is-primary) {
    border-width: 1px;
    border-color: rgba(75, 35, 56, 0.1);
    box-shadow: 0 1px 2px rgba(44, 31, 41, 0.04), 0 10px 28px rgba(75, 35, 56, 0.06);
  }

  body .asser-ai-app .portal-card,
  body .asser-ai-app .portal-info-card {
    padding: 20px;
  }

  body .asser-ai-app .portal-home-v3__choice-list > a {
    min-height: 0;
  }

  body .asser-ai-app .document-viewer {
    border-radius: 16px;
  }

  body .asser-ai-app .document-viewer__arrow {
    width: 44px;
    height: 44px;
  }

  /* Etichette: mai sotto i 12 px (prima alcune erano 10-11 px) */
  body .asser-ai-app .portal-kicker,
  body .asser-ai-app .document-example__label,
  body .asser-ai-app .document-example__index,
  body .asser-ai-app .privacy-footnote,
  body .asser-ai-app .asser-modulo-rate__chip,
  body .asser-ai-app .asser-modulo-rate__badge,
  body .asser-ai-app .enti-check__badge,
  body .asser-ai-app .enti-check__sources-h {
    font-size: 12px;
  }

  /* Campi di testo: 16 px, altrimenti l'iPhone ingrandisce la pagina quando li tocchi */
  body .asser-ai-app input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="file"]):not([type="hidden"]),
  body .asser-ai-app select,
  body .asser-ai-app textarea {
    font-size: 16px;
  }

  /* Risposta al tocco: i riquadri toccabili si abbassano appena, come in iOS (solo dove non c'e' il mouse) */
  @media (hover: none) {
    body .asser-ai-app .portal-button,
    body .asser-ai-app .portal-home-v3__choice-list > a,
    body .asser-ai-app .portal-nav__toggle {
      transition: transform 140ms ease, opacity 140ms ease, box-shadow 200ms ease;
    }

    body .asser-ai-app .portal-button:active,
    body .asser-ai-app .portal-home-v3__choice-list > a:active {
      transform: scale(0.985);
      opacity: 0.92;
    }
  }
}

/* Pop-up della rottamazione: chiusura con area di tocco da 44 px e fondo pieno, come i fogli di iOS (senza sfocatura non deve far trasparire il testo sotto) */
@media (max-width: 640px) {
  .rot-pop .rot-pop__x {
    width: 44px;
    height: 44px;
  }

  .rot-pop .rot-pop__sheet {
    background: #fff;
  }

  .rot-pop .rot-pop__chip,
  .rot-pop .rot-pop__kicker {
    font-size: 12px;
  }
}

/* ---- 1f2. Collegamenti isolati (accesso, registrazione, negozio): area di tocco da 48 px ---- */
@media (max-width: 920px) {
  body .asser-ai-app .auth-links {
    display: grid;
    gap: 0;
    margin-top: 6px;
  }

  body .asser-ai-app .auth-links a,
  body .asser-ai-app .shop-hero__link,
  body .asser-ai-app .dashboard-hero__profile-edit summary {
    display: flex;
    align-items: center;
    min-height: 48px;
  }

  body .asser-ai-app .pw-button {
    min-height: 52px;
  }
}

/* ---- 1g. Pagina Guide (hub): stessi margini, tasti da 44 px ---- */
@media (max-width: 920px) {
  body .asser-ai-app .gh-wrap {
    padding-right: max(var(--m-gutter), env(safe-area-inset-right, 0px));
    padding-left: max(var(--m-gutter), env(safe-area-inset-left, 0px));
  }

  body .asser-ai-app .gh [data-gh-q] {
    min-height: 44px;
    padding-right: 16px;
    padding-left: 16px;
  }

  body .asser-ai-app .gh .gh-subnav__links a {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding-right: 12px;
    padding-left: 12px;
  }

  body .asser-ai-app .gh summary {
    display: flex;
    align-items: center;
    min-height: 44px;
  }

  body .asser-ai-app .gh a.gh-link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  body .asser-ai-app .gh .gh-mod__tag,
  body .asser-ai-app .gh .gh-news__badge {
    font-size: 12px;
  }
}

/* ---- 2. Solo telefoni (fino a 640 px) -------------------------------------------------------------------------------- */
@media (max-width: 640px) {
  /* Titoli e cifre grandi che a 390 px risultavano fuori misura (43 px) */
  body .asser-ai-app .module-library__hero .portal-title {
    font-size: 34px;
    line-height: 1.08;
    letter-spacing: -0.025em;
  }

  body .asser-ai-app .faq-hero__metric strong {
    font-size: 32px;
    line-height: 1.1;
  }

  /* Procedura "Nuova analisi": i titoli dentro i passaggi non devono superare quello della pagina */
  body .asser-ai-app .wizard-section-title {
    font-size: 26px;
    line-height: 1.15;
    letter-spacing: -0.02em;
  }

  /* Pulsante della chat: solo la gemma, tonda e piu' piccola (la scritta resta per chi usa la voce, ma non si vede) */
  body .asser-ai-app .portal-chat__launcher {
    justify-content: center;
    gap: 0;
    width: 52px;
    min-width: 0;
    height: 52px;
    min-height: 52px;
    padding: 5px;
  }

  body .asser-ai-app .portal-chat__launcher .portal-chat__launcher-logo {
    width: 42px;
    height: 42px;
  }

  body .asser-ai-app .portal-chat__launcher .portal-chat__launcher-copy {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
  }

  /* La chat si apre come un foglio dal basso (come i fogli di iOS), con la pagina attenuata dietro */
  body .asser-ai-app .portal-chat.portal-chat--open {
    z-index: 9000;
  }

  body .asser-ai-app .portal-chat.portal-chat--open::before {
    content: "";
    position: fixed;
    z-index: 0;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(24, 14, 20, 0.42);
    animation: m-fade-in 220ms ease both;
  }

  body .asser-ai-app .portal-chat.portal-chat--open .portal-chat__launcher {
    display: none;
  }

  body .asser-ai-app .portal-chat__panel {
    position: fixed;
    z-index: 1;
    right: 0;
    bottom: var(--m-kb, 0px);
    left: 0;
    display: flex;
    flex-direction: column;
    width: auto;
    max-height: min(86vh, 680px);
    max-height: min(86dvh, 680px);
    margin: 0;
    padding-bottom: var(--m-sab);
    border: 0;
    border-radius: 22px 22px 0 0;
    background: #fff;
    box-shadow: 0 -12px 48px rgba(24, 14, 20, 0.28);
    animation: m-sheet-in 340ms var(--m-ease) both;
  }

  body .asser-ai-app .portal-chat__panel[hidden] {
    display: none;
  }

  /* maniglia del foglio */
  body .asser-ai-app .portal-chat__header {
    position: relative;
    flex: 0 0 auto;
    padding: 22px 12px 14px 16px;
    border-radius: 22px 22px 0 0;
  }

  body .asser-ai-app .portal-chat__header::before {
    content: "";
    position: absolute;
    top: 8px;
    left: 50%;
    width: 38px;
    height: 5px;
    margin-left: -19px;
    border-radius: 3px;
    background: rgba(255, 255, 255, 0.4);
  }

  body .asser-ai-app .portal-chat__header strong {
    font-size: 15px;
  }

  body .asser-ai-app .portal-chat__header small {
    font-size: 12px;
  }

  body .asser-ai-app .portal-chat__close {
    width: 44px;
    height: 44px;
    margin: -6px -2px -6px 0;
    font-size: 28px;
  }

  body .asser-ai-app .portal-chat__messages {
    flex: 1 1 auto;
    height: auto;
    min-height: 180px;
    padding: 16px;
    gap: 10px;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
  }

  body .asser-ai-app .portal-chat__message {
    max-width: 90%;
    padding: 11px 14px;
    border-radius: 18px;
    font-size: 15px;
    line-height: 1.45;
  }

  body .asser-ai-app .portal-chat__messages--locked {
    min-height: 0;
  }

  body .asser-ai-app .portal-chat__auth {
    gap: 12px;
    padding: 20px 16px;
    border-radius: 18px;
  }

  body .asser-ai-app .portal-chat__auth strong {
    font-size: 18px;
  }

  body .asser-ai-app .portal-chat__auth p {
    font-size: 15px;
    line-height: 1.5;
  }

  body .asser-ai-app .portal-chat__auth a,
  body .asser-ai-app .portal-chat__auth .portal-button {
    min-height: 48px;
  }

  body .asser-ai-app .portal-chat__quick-actions {
    flex: 0 0 auto;
    gap: 8px;
    padding: 12px 16px 0;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }

  body .asser-ai-app .portal-chat__quick-actions::-webkit-scrollbar {
    display: none;
  }

  body .asser-ai-app .portal-chat__quick-actions button {
    min-height: 44px;
    padding: 0 16px;
    font-size: 14px;
  }

  /* 16 px: sotto questa misura l'iPhone ingrandisce la pagina appena si tocca il campo */
  body .asser-ai-app .portal-chat__form {
    flex: 0 0 auto;
    gap: 8px;
    padding: 12px 16px;
  }

  body .asser-ai-app .portal-chat__form input {
    height: 48px;
    padding: 0 16px;
    border-radius: 24px;
    font-size: 16px;
  }

  body .asser-ai-app .portal-chat__form button {
    min-width: 72px;
    height: 48px;
    border-radius: 24px;
    font-size: 15px;
  }
}

/* ---- 4b. Elenchi di pratiche: riga a tre livelli (numero, data, stato), il numero non va a capo ---- */
/* Professionisti: la riga "Cliente: ..." ha un posto suo, sopra la data (prima stava nello stesso posto della data e le due scritte si sovrapponevano) */
@media (max-width: 760px) {
  body .asser-ai-app .case-list-link {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
      "id go"
      "client go"
      "date go"
      "chip chip";
    align-items: center;
    gap: 2px 12px;
    min-height: 0;
    padding: 14px 16px;
    border-radius: 20px;
  }

  body .asser-ai-app .case-list-link > span {
    display: contents;
  }

  body .asser-ai-app .case-list-link strong {
    grid-area: id;
    min-width: 0;
    overflow: hidden;
    font-size: 17px;
    line-height: 1.3;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  body .asser-ai-app .case-list-link small {
    grid-area: date;
    font-size: 13px;
  }

  body .asser-ai-app .case-list-link .case-list-link__client {
    grid-area: client;
    min-width: 0;
    overflow-wrap: anywhere;
    line-height: 1.35;
  }

  body .asser-ai-app .case-list-link em.case-chip {
    grid-area: chip;
    justify-self: start;
    margin-top: 8px;
    font-size: 12px;
  }

  body .asser-ai-app .case-list-link > b {
    display: grid;
    grid-area: go;
    place-items: center;
    width: 28px;
    height: 28px;
    color: rgba(60, 40, 52, 0.35);
    font-size: 18px;
  }

  body .asser-ai-app .case-list-link .case-list-link__progress {
    grid-column: 1 / -1;
  }

  /* Righe con i tasti Riprendi / Elimina (si appoggiano sopra la riga): lascia loro il posto, senza freccia */
  body .asser-ai-app .case-list-item--draft .case-list-link > b,
  body .asser-ai-app .case-list-item--answers .case-list-link > b {
    display: none;
  }

  body .asser-ai-app .case-list-item--draft .case-list-link {
    padding-right: 72px;
  }

  body .asser-ai-app .case-list-item--answers .case-list-link {
    padding-bottom: 76px;
  }

  /* Pratiche non ancora assegnate (archivio clienti) */
  body .asser-ai-app .managed-client-unassigned__row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 6px 12px;
    padding: 14px 16px;
    border-radius: 18px;
  }

  body .asser-ai-app .managed-client-unassigned__id {
    display: grid;
    gap: 2px;
    min-width: 0;
  }

  body .asser-ai-app .managed-client-unassigned__id code {
    font-size: 14px;
    line-height: 1.35;
    overflow-wrap: anywhere;
  }

  body .asser-ai-app .managed-client-unassigned__hint {
    grid-column: 1 / -1;
    font-size: 14px;
    line-height: 1.5;
  }

  body .asser-ai-app .managed-client-unassigned__row form {
    grid-column: 1 / -1;
    flex-wrap: wrap;
    margin-left: 0;
  }
}

/* Pillola di stato fuori dagli elenchi (per esempio nell'archivio clienti): senza questa regola compariva in corsivo e senza forma */
.case-chip {
  font-style: normal;
}

.managed-client-unassigned__row .case-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.38rem 0.8rem;
  border-radius: 999px;
  font-size: 0.72rem;
  font-weight: 850;
  white-space: nowrap;
}

/* ---- 4c. Ritocchi: tasti sotto i 44 px ed etichette sotto i 12 px nell'area clienti ---- */
@media (max-width: 920px) {
  body .asser-ai-app .professional-dashboard__legend-row {
    min-height: 44px;
  }

  body .asser-ai-app .dashboard-hero__profile-edit input[type="text"],
  body .asser-ai-app .dashboard-hero__profile-edit input[type="file"] {
    min-height: 44px;
  }

  body .asser-ai-app .case-chip,
  body .asser-ai-app .pw-kicker,
  body .asser-ai-app .pw-badge,
  body .asser-ai-app .installment-plan-new__isee-badge,
  body .asser-ai-app .faq-topic-nav__number,
  body .asser-ai-app .faq-topic-nav__label,
  body .asser-ai-app .faq-topic-nav__eyebrow,
  body .asser-ai-app .docs-tag,
  body .asser-ai-app .arch-group__title,
  body .asser-ai-app .module-name-index a,
  body .asser-ai-app .module-source-link,
  body .asser-ai-app .asser-ai-kicker,
  body .asser-ai-app .staff-access-badge,
  body .asser-ai-app .staff-chat-status,
  body .asser-ai-app .staff-console-link {
    font-size: 12px;
  }

  body .asser-ai-app .case-list-link small,
  body .asser-ai-app .dashboard-page p > span:only-child {
    font-size: 13px;
  }
}

/* Con la barra in basso il profilo si apre dal foglio "Altro": la riga "Modifica profilo" non serve piu' nel riquadro, finche' e' chiusa */
@media (max-width: 760px) {
  html.m-app body .asser-ai-app .dashboard-hero__profile-edit:not([open]),
  html.m-pre body .asser-ai-app .dashboard-hero__profile-edit:not([open]) {
    display: none;
  }

  html.m-app body .asser-ai-app .dashboard-hero:has(.dashboard-hero__profile-edit[open]),
  html.m-pre body .asser-ai-app .dashboard-hero:has(.dashboard-hero__profile-edit[open]) {
    flex-wrap: wrap;
  }

  html.m-app body .asser-ai-app .dashboard-hero:has(.dashboard-hero__profile-edit[open]) .dashboard-hero__identity,
  html.m-pre body .asser-ai-app .dashboard-hero:has(.dashboard-hero__profile-edit[open]) .dashboard-hero__identity {
    flex: 1 1 100%;
    align-items: flex-start;
  }

  html.m-app body .asser-ai-app .dashboard-hero__profile-edit[open],
  html.m-pre body .asser-ai-app .dashboard-hero__profile-edit[open] {
    width: 100%;
  }
}

/* ---- 4d. Pagina "Le tue domande" sul telefono: una sezione alla volta (le righe si aprono con asser-ai-mobile.js) ---- */
@media (max-width: 760px) {
  body .asser-ai-app .faq-category.m-cat + .faq-category.m-cat {
    margin-top: 10px;
  }

  body .asser-ai-app .m-cat > .faq-category__header {
    position: relative;
    grid-template-columns: 44px minmax(0, 1fr) 20px;
    align-items: center;
    gap: 12px;
    margin: 0;
    padding: 14px 16px;
    border: 1px solid rgba(75, 35, 56, 0.1);
    border-radius: 20px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(44, 31, 41, 0.04), 0 8px 22px rgba(75, 35, 56, 0.05);
  }

  body .asser-ai-app .m-cat > .faq-category__header:active {
    background: #f8f3f5;
  }

  body .asser-ai-app .m-cat__toggle {
    position: absolute;
    display: block;
    z-index: 1;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 20px;
    background: transparent;
    cursor: pointer;
  }

  body .asser-ai-app .m-cat > .faq-category__header > span {
    width: 44px;
    height: 44px;
    font-size: 15px;
  }

  body .asser-ai-app .m-cat > .faq-category__header h2 {
    font-size: 19px;
    line-height: 1.25;
    letter-spacing: -0.01em;
  }

  body .asser-ai-app .m-cat > .faq-category__header p {
    display: none;
    margin-top: 6px;
    font-size: 15px;
    line-height: 1.5;
  }

  body .asser-ai-app .m-cat.is-open > .faq-category__header p {
    display: block;
  }

  body .asser-ai-app .m-cat > .faq-category__header small {
    margin-top: 2px;
    font-size: 13px;
    font-weight: 700;
  }

  body .asser-ai-app .m-cat > .faq-category__header::after {
    content: "";
    width: 9px;
    height: 9px;
    margin-right: 3px;
    border-right: 2px solid rgba(75, 35, 56, 0.55);
    border-bottom: 2px solid rgba(75, 35, 56, 0.55);
    transform: rotate(45deg);
    transition: transform 260ms var(--m-ease);
  }

  body .asser-ai-app .m-cat.is-open > .faq-category__header::after {
    transform: rotate(225deg);
  }

  body .asser-ai-app .m-cat > .faq-accordion {
    margin-top: 10px;
  }

  body .asser-ai-app .m-cat:not(.is-open) > .faq-accordion {
    display: none;
  }

  /* con la ricerca attiva si vedono tutte le sezioni, per trovare la risposta ovunque sia */
  body .asser-ai-app .faq-page.m-searching .m-cat > .faq-accordion {
    display: grid;
  }

  body .asser-ai-app .faq-disclosure summary {
    min-height: 56px;
  }
}

/* ---- 4e. Pagina "Modulistica" sul telefono: schede compatte, dettagli a tocco ---- */
@media (max-width: 760px) {
  body .asser-ai-app .m-mod__toggle {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 48px;
    margin: 4px 0 0;
    padding: 0 4px;
    border: 0;
    border-top: 1px solid var(--m-hair);
    background: none;
    color: var(--asser-primary, #7d445e);
    font: 700 15px/1.3 "Manrope", ui-sans-serif, system-ui, sans-serif;
    text-align: left;
    cursor: pointer;
  }

  body .asser-ai-app .m-mod__toggle i {
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    margin-right: 4px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
    transition: transform 260ms var(--m-ease);
  }

  body .asser-ai-app .m-mod.is-open .m-mod__toggle i {
    transform: rotate(225deg);
  }

  body .asser-ai-app .m-mod:not(.is-open) .module-card__details {
    display: none;
  }

  body .asser-ai-app .m-mod:not(.is-open) .module-card__meta {
    display: none;
  }

  body .asser-ai-app .module-card .guide-download,
  body .asser-ai-app .module-card .module-source-link {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 48px;
  }

  body .asser-ai-app .module-card__code,
  body .asser-ai-app .module-card .guide-badges span {
    font-size: 12px;
  }
}

/* ---- 4f. Moduli da compilare: il tasto "Genera e scarica" resta in vista mentre si compila (come la barra di conferma di iOS) ---- */
@media (max-width: 760px) {
  body .asser-ai-app .dmf-actions {
    position: sticky;
    bottom: calc(10px + var(--m-sab));
    z-index: 6;
    display: grid;
    gap: 8px;
    margin-top: 16px;
    padding: 12px;
    border: 1px solid var(--m-hair);
    border-radius: 22px;
    background: rgba(251, 248, 245, 0.94);
    box-shadow: 0 10px 30px rgba(44, 31, 41, 0.14);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
  }

  html.m-app body .asser-ai-app .dmf-actions {
    bottom: calc(var(--m-tab) + var(--m-sab) + 10px);
  }

  body .asser-ai-app .dmf-actions .dashboard-module-form__note {
    margin: 0;
    font-size: 13px;
    line-height: 1.45;
  }

  body .asser-ai-app .dmf-actions .portal-button {
    width: 100%;
    min-height: 52px;
  }
}

/* ---- 4g. Ultimi tasti piccoli: area di tocco da 44 px (l'aspetto resta lo stesso, cresce solo la zona che risponde al dito) ---- */
@media (max-width: 920px) {
  body .asser-ai-app .portal-home-v3__ready a:not(.portal-button),
  body .asser-ai-app .module-name-index a,
  body .asser-ai-app .docs-back,
  body .asser-ai-app .docs-item__pdf,
  body .asser-ai-app .docs-filters button,
  body .asser-ai-app .gh .gh-filter button,
  body .asser-ai-app .staff-view-nav a,
  body .asser-ai-app .staff-console-link,
  body .asser-ai-app .staff-case-card__client a,
  body .asser-ai-app .staff-rot__link {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
  }

  body .asser-ai-app .docs-filters button,
  body .asser-ai-app .staff-view-nav a {
    justify-content: center;
  }

  /* "Modifica profilo", "+ Nuovo cliente", "Personalizza l'elenco", "Sfoglia l'elenco": la freccina resta, cresce solo lo spazio sopra e sotto */
  body .asser-ai-app .dashboard-page details > summary,
  body .asser-ai-app .docs-hub details > summary,
  body .asser-ai-app .enti-check details > summary {
    padding-top: 13px;
    padding-bottom: 13px;
  }

  /* caselle e pulsanti di scelta nei moduli, nel piano di rateizzazione e nel gestionale: tutta la riga e' toccabile */
  body .asser-ai-app .dashboard-module-form__checkbox,
  body .asser-ai-app .rate-calculator__subject-type label,
  body .asser-ai-app .staff-case-card__select,
  body .asser-ai-app .staff-bulk-bar__all,
  body .asser-ai-app .staff-bulk-bar__confirm {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 44px;
  }

  body .asser-ai-app .dashboard-module-form__checkbox input[type="checkbox"],
  body .asser-ai-app .rate-calculator__subject-type input[type="radio"],
  body .asser-ai-app .staff-bulk-bar input[type="checkbox"],
  body .asser-ai-app .staff-case-checkbox {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
  }

  /* ricerca del Comune (rottamazione): campo alto come gli altri */
  body .asser-ai-app .enti-check input[type="search"],
  body .asser-ai-app .enti-check input[type="text"] {
    min-height: 48px;
  }
}

/* ---- 5. Area clienti sul telefono: barra in basso come nelle app, riquadro in alto compatto, foglio "Altro" ----
   Tutto si accende solo quando asser-ai-mobile.js ha costruito la barra (classe m-app sull'elemento html): se lo script
   non parte, l'area resta com'era, con il menu a pillole in alto e i due tasti nel riquadro. */
.asser-ai-app .m-tabbar,
.asser-ai-app .m-sheet,
.asser-ai-app .m-sub-toggle,
.asser-ai-app .m-cat__toggle,
.asser-ai-app .m-mod__toggle {
  display: none;
}

html.m-lock-sheet,
html.m-lock-sheet body {
  overflow: hidden;
  overscroll-behavior: none;
}

@media (max-width: 760px) {
  body .asser-ai-app {
    --m-tab: 58px;
  }

  html.m-app body .asser-ai-app .m-tabbar {
    position: fixed;
    z-index: 45;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    align-items: flex-end;
    justify-content: space-around;
    padding: 4px max(6px, env(safe-area-inset-right)) var(--m-sab) max(6px, env(safe-area-inset-left));
    border-top: 1px solid var(--m-hair);
    background: rgba(251, 248, 245, 0.94);
    -webkit-backdrop-filter: saturate(180%) blur(20px);
    backdrop-filter: saturate(180%) blur(20px);
    transition: transform 260ms var(--m-ease);
  }

  html.m-app.m-kb body .asser-ai-app .m-tabbar,
  html.m-lock body .asser-ai-app .m-tabbar,
  html.m-lock-chat body .asser-ai-app .m-tabbar {
    visibility: hidden;
    transform: translateY(calc(100% + 48px));
    pointer-events: none;
    transition: transform 260ms var(--m-ease), visibility 0s linear 260ms;
  }

  html.m-app body .asser-ai-app .m-tab {
    position: relative;
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    gap: 2px;
    min-width: 0;
    min-height: 52px;
    padding: 6px 2px 5px;
    border: 0;
    background: none;
    color: var(--asser-muted, #726b67);
    font: 600 12px/1.1 "Manrope", ui-sans-serif, system-ui, sans-serif;
    text-decoration: none;
    cursor: pointer;
  }

  html.m-app body .asser-ai-app .m-tab__ico {
    display: grid;
    width: 28px;
    height: 28px;
    place-items: center;
  }

  html.m-app body .asser-ai-app .m-tab__ico svg {
    width: 24px;
    height: 24px;
  }

  html.m-app body .asser-ai-app .m-tab__label {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  html.m-app body .asser-ai-app .m-tab.is-active {
    color: var(--asser-secondary, #4b2338);
  }

  html.m-app body .asser-ai-app .m-tab.is-active .m-tab__ico svg {
    stroke-width: 2.1;
  }

  html.m-app body .asser-ai-app .m-tab:active .m-tab__ico {
    transform: scale(0.92);
  }

  /* "Nuova analisi": tasto pieno, un po' sollevato, al centro della barra */
  html.m-app body .asser-ai-app .m-tab--new {
    color: var(--asser-secondary, #4b2338);
  }

  html.m-app body .asser-ai-app .m-tab__plus {
    display: grid;
    width: 52px;
    height: 52px;
    margin-top: -24px;
    place-items: center;
    border-radius: 50%;
    background: linear-gradient(140deg, #8a4d69, #4b2338);
    box-shadow: 0 0 0 5px #fbf8f5, 0 10px 22px rgba(75, 35, 56, 0.34);
    color: #fff;
    transition: transform 160ms var(--m-ease);
  }

  html.m-app body .asser-ai-app .m-tab--new:active .m-tab__plus {
    transform: scale(0.94);
  }

  /* Il menu a pillole e i due tasti del riquadro sono ora nella barra e nel foglio "Altro" */
  html.m-app body .asser-ai-app .dashboard-view-nav,
  html.m-pre body .asser-ai-app .dashboard-view-nav {
    display: none;
  }

  /* la colonna della pagina non deve allargarsi oltre lo schermo (il testo in una riga sola la spingeva fuori) */
  body .asser-ai-app .dashboard-shell,
  body .asser-ai-app .dashboard-shell--pro,
  body .asser-ai-app .dashboard-page {
    grid-template-columns: minmax(0, 1fr);
  }

  html.m-app body .asser-ai-app .dashboard-hero,
  html.m-pre body .asser-ai-app .dashboard-hero {
    min-width: 0;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    padding: 14px;
    border-radius: 22px;
  }

  html.m-app body .asser-ai-app .dashboard-hero__identity,
  html.m-pre body .asser-ai-app .dashboard-hero__identity {
    display: flex;
    flex: 1 1 auto;
    align-items: center;
    gap: 12px;
    min-width: 0;
  }

  html.m-app body .asser-ai-app .dashboard-hero__identity > div:last-child,
  html.m-pre body .asser-ai-app .dashboard-hero__identity > div:last-child {
    flex: 1 1 auto;
    min-width: 0;
  }

  html.m-app body .asser-ai-app .dashboard-hero__avatar,
  html.m-pre body .asser-ai-app .dashboard-hero__avatar {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
  }

  /* la riga "Area clienti riservata" si toglie: il nome conta di piu' e deve entrare per intero */
  html.m-app body .asser-ai-app .dashboard-hero .portal-kicker,
  html.m-pre body .asser-ai-app .dashboard-hero .portal-kicker {
    display: none;
  }

  html.m-app body .asser-ai-app .dashboard-hero .wallet-chip,
  html.m-pre body .asser-ai-app .dashboard-hero .wallet-chip {
    min-height: 44px;
    padding: 0 12px;
    gap: 6px;
  }

  html.m-app body .asser-ai-app .dashboard-hero .wallet-chip__label,
  html.m-pre body .asser-ai-app .dashboard-hero .wallet-chip__label {
    display: none;
  }

  html.m-app body .asser-ai-app .dashboard-hero__profile-edit summary,
  html.m-pre body .asser-ai-app .dashboard-hero__profile-edit summary {
    display: flex;
    align-items: center;
    min-height: 32px;
    font-size: 13px;
  }

  html.m-app body .asser-ai-app .dashboard-hero .portal-title,
  html.m-pre body .asser-ai-app .dashboard-hero .portal-title {
    margin: 0;
    overflow: hidden;
    font-size: 20px;
    line-height: 1.2;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  html.m-app body .asser-ai-app .dashboard-hero .portal-lead,
  html.m-pre body .asser-ai-app .dashboard-hero .portal-lead {
    display: none;
  }

  html.m-app body .asser-ai-app .dashboard-hero__actions,
  html.m-pre body .asser-ai-app .dashboard-hero__actions {
    display: flex;
    flex: 0 0 auto;
    justify-content: flex-end;
    gap: 8px;
    width: auto;
    max-width: none;
    margin: 0;
  }

  html.m-app body .asser-ai-app .dashboard-hero__actions > a.portal-button,
  html.m-pre body .asser-ai-app .dashboard-hero__actions > a.portal-button {
    display: none;
  }

  /* spazio per la barra in basso */
  html.m-app body .asser-ai-app .portal-footer {
    padding-bottom: calc(28px + var(--m-tab) + var(--m-sab));
  }

  html.m-app body .asser-ai-app .portal-chat {
    bottom: calc(var(--m-tab) + 14px + var(--m-sab));
  }

  /* Foglio "Altro" */
  html.m-app body .asser-ai-app .m-sheet {
    position: fixed;
    z-index: 9000;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: block;
  }

  html.m-app body .asser-ai-app .m-sheet[hidden] {
    display: none;
  }

  html.m-app body .asser-ai-app .m-sheet__scrim {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background: rgba(24, 14, 20, 0.42);
    animation: m-fade-in 220ms ease both;
  }

  html.m-app body .asser-ai-app .m-sheet__panel {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    max-height: 88vh;
    max-height: 88dvh;
    padding: 8px 0 calc(20px + var(--m-sab));
    overflow-y: auto;
    overscroll-behavior: contain;
    border-radius: 22px 22px 0 0;
    background: #f4efec;
    box-shadow: 0 -12px 48px rgba(24, 14, 20, 0.28);
    animation: m-sheet-in 340ms var(--m-ease) both;
  }

  html.m-app body .asser-ai-app .m-sheet.is-closing .m-sheet__panel {
    transform: translateY(40px);
    opacity: 0;
    transition: transform 180ms ease, opacity 180ms ease;
    animation: none;
  }

  html.m-app body .asser-ai-app .m-sheet.is-closing .m-sheet__scrim {
    opacity: 0;
    transition: opacity 180ms ease;
    animation: none;
  }

  html.m-app body .asser-ai-app .m-sheet__grab {
    display: block;
    width: 38px;
    height: 5px;
    margin: 4px auto 12px;
    border-radius: 3px;
    background: rgba(60, 40, 52, 0.22);
  }

  html.m-app body .asser-ai-app .m-sheet__title {
    margin: 6px 24px 8px;
    color: var(--asser-muted, #726b67);
    font: 700 12px/1.3 "Manrope", ui-sans-serif, system-ui, sans-serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
  }

  html.m-app body .asser-ai-app .m-sheet__group {
    margin: 0 16px 16px;
    padding: 0;
    overflow: hidden;
    border-radius: 16px;
    background: #fff;
    list-style: none;
  }

  html.m-app body .asser-ai-app .m-sheet__group li + li {
    border-top: 1px solid var(--m-hair);
  }

  html.m-app body .asser-ai-app .m-sheet__row {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    min-height: 56px;
    margin: 0;
    padding: 0 16px;
    border: 0;
    background: none;
    color: var(--m-ink);
    font: 600 17px/1.25 "Manrope", ui-sans-serif, system-ui, sans-serif;
    text-align: left;
    text-decoration: none;
    cursor: pointer;
  }

  html.m-app body .asser-ai-app .m-sheet__row:active {
    background: rgba(60, 40, 52, 0.06);
  }

  html.m-app body .asser-ai-app .m-sheet__row.is-active {
    color: var(--asser-primary, #7d445e);
  }

  html.m-app body .asser-ai-app .m-sheet__ico {
    display: grid;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    place-items: center;
    border-radius: 8px;
    background: rgba(125, 68, 94, 0.1);
    color: var(--asser-primary, #7d445e);
  }

  html.m-app body .asser-ai-app .m-sheet__ico svg {
    width: 20px;
    height: 20px;
  }

  html.m-app body .asser-ai-app .m-sheet__text {
    flex: 1 1 auto;
    min-width: 0;
  }

  html.m-app body .asser-ai-app .m-sheet__go {
    display: grid;
    flex: 0 0 auto;
    color: rgba(60, 40, 52, 0.35);
  }

  html.m-app body .asser-ai-app .m-sheet__row--exit {
    color: #b3261e;
  }

  html.m-app body .asser-ai-app .m-sheet__row--exit .m-sheet__ico {
    background: rgba(179, 38, 30, 0.1);
    color: #b3261e;
  }

  @media (prefers-reduced-motion: reduce) {
    html.m-app body .asser-ai-app .m-sheet__panel,
    html.m-app body .asser-ai-app .m-sheet__scrim,
    html.m-app body .asser-ai-app .m-tabbar {
      animation: none;
      transition: none;
    }
  }
}

/* ---- 6. Telefoni molto stretti (iPhone SE e simili) */
@media (max-width: 359px) {
  body .asser-ai-app {
    --m-gutter: 14px;
  }

  body .asser-ai-app .portal-nav .portal-nav__links > a,
  body .asser-ai-app .portal-nav .portal-nav__dropdown > a {
    font-size: 20px;
  }
}

/* ---- 4. Movimento ridotto -------------------------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  body .asser-ai-app .portal-nav--open .portal-nav__drawer,
  body .asser-ai-app .portal-chat__panel,
  body .asser-ai-app .portal-chat.portal-chat--open::before,
  body .asser-ai-app .portal-nav .portal-nav__dropdown.is-open > .portal-nav__dropdown-menu {
    animation: none;
  }

  body .asser-ai-app .portal-chat {
    transition: none;
  }
}
