/* BredaNet Assistenza v2.2.3 - rifiniture mobile e gestione */

/* Login: a normale altezza resta tutto nel viewport. Lo scroll torna solo su finestre basse. */
html:has(.auth-v223),body:has(.auth-v223){height:100%;overflow:hidden!important}
.auth-v223{height:100dvh!important;min-height:0!important;overflow:hidden}
.auth-v223 .login-v22-visual,.auth-v223 .login-v22-panel{height:100dvh!important;min-height:0!important;box-sizing:border-box}
.auth-v223 .login-v22-panel{overflow:hidden}
.auth-v223 .login-v22-card{max-height:calc(100dvh - 7rem);overflow:auto;overscroll-behavior:contain}
.auth-v223 .login-v22-card label{margin:.72rem 0}
.auth-v223 .login-v22-card h2{font-size:clamp(1.55rem,3vh,2rem)}
.auth-v223 .login-v22-card p{margin:.35rem 0 .8rem}
.auth-v223 .login-v22-foot{margin-top:.55rem}

.auth-simple-v223{min-height:100dvh;height:100dvh;display:grid;place-items:center;padding:clamp(1rem,4vw,2.5rem);box-sizing:border-box;background:#eef4f8;overflow:hidden}
.auth-simple-card{width:min(100%,560px);max-height:calc(100dvh - 2rem);overflow:auto;box-sizing:border-box}
.auth-simple-card h1{margin:.25rem 0 .65rem}.auth-simple-card h2{margin:1.1rem 0 .45rem}.auth-simple-card .contact-links{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}

@media(max-width:900px) and (min-height:640px){
  .auth-v223{grid-template-columns:1fr!important;grid-template-rows:118px minmax(0,1fr)!important}
  .auth-v223 .login-v22-visual{height:118px!important;min-height:0!important;padding:1rem 1.2rem!important;display:grid!important;grid-template-columns:auto minmax(0,1fr);gap:1rem;align-items:center}
  .auth-v223 .login-v22-brand{margin:0!important}.auth-v223 .login-v22-brand span{font-size:1.65rem}.auth-v223 .login-v22-brand small{font-size:.66rem}
  .auth-v223 .login-v22-copy{min-width:0}.auth-v223 .login-v22-copy .eyebrow,.auth-v223 .login-v22-copy>p:not(.eyebrow),.auth-v223 .login-v22-pills{display:none!important}
  .auth-v223 .login-v22-copy h1{font-size:1.35rem!important;line-height:1.08!important;margin:0!important;letter-spacing:-.025em!important}
  .auth-v223 .login-v22-panel{height:auto!important;min-height:0!important;padding:.75rem 1rem!important;justify-content:center!important}
  .auth-v223 .login-v22-card{padding:1rem 1.15rem!important;max-height:calc(100dvh - 170px)}
  .auth-v223 .login-v22-card h2{font-size:1.45rem}.auth-v223 .login-v22-links{margin-top:.65rem}
  .auth-v223 .login-v22-panel>.login-status-panel,.auth-v223 .login-v22-panel>.network-login-status{margin-top:.45rem!important}
}
@media(max-height:639px){
  html:has(.auth-v223),body:has(.auth-v223),html:has(.auth-simple-v223),body:has(.auth-simple-v223){overflow-y:auto!important}
  .auth-v223{height:auto!important;min-height:100dvh!important;overflow:visible!important}
  .auth-v223 .login-v22-visual,.auth-v223 .login-v22-panel{height:auto!important;min-height:auto!important}
  .auth-v223 .login-v22-card{max-height:none!important;overflow:visible!important}
  .auth-simple-v223{height:auto;min-height:100dvh;overflow:visible}.auth-simple-card{max-height:none;overflow:visible}
}

/* Centro notifiche e preferenze */
.browser-notification-state.is-active{border-color:#70c39a!important;background:#effbf5!important;color:#16704a!important}
.browser-notification-state.is-blocked{border-color:#efc0c4!important;background:#fff5f6!important;color:#b92d3a!important}
.notification-pref-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}
.notification-pref-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--border,#dbe5ee);border-radius:12px;background:#fff;margin:0!important}
.notification-pref-card span{display:grid;gap:.15rem}.notification-pref-card small{color:#64748b}.notification-pref-card input[type=checkbox]{width:1.2rem;height:1.2rem;flex:0 0 auto}

/* Aggiornamenti apparati: chiusura definitiva */
.device-update-actions{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin-top:1rem}.device-update-actions form{margin:0}
.finalized-update{display:flex;align-items:center;gap:.7rem;padding:.8rem 1rem;border:1px solid #bfe2ce;border-radius:12px;background:#f0fbf5;color:#1d6f48;flex:1 1 320px}.finalized-update .bn-icon{width:22px;height:22px}.finalized-update div{display:grid;gap:.15rem}.finalized-update small{color:#3c7659}

/* Contatti */
.contact-hero-v223{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);gap:1rem;align-items:center;padding:1.1rem 1.2rem;margin-bottom:1rem;border:1px solid #cfe1ed;border-radius:16px;background:linear-gradient(135deg,#f7fbfe,#eef7fc)}
.contact-hero-v223 h2{margin:.15rem 0 .25rem}.contact-hero-v223 p{margin:.15rem 0}
.contact-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.6rem}
.contact-action{display:flex;align-items:center;gap:.65rem;padding:.72rem .8rem;border:1px solid #d5e3ed;border-radius:12px;background:#fff;text-decoration:none;color:inherit;min-width:0}.contact-action:hover{border-color:#9fc9e5;background:#f8fcff}.contact-action .bn-icon{width:20px;height:20px;color:var(--portal-accent,#1689e7)}.contact-action span{display:grid;min-width:0}.contact-action small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b}
.contact-layout-v223{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:1rem}.contact-info-list{display:grid;gap:.7rem}.contact-info-list>div{padding:.65rem .75rem;border-radius:10px;background:#f7fafc}.contact-info-list p{margin:.18rem 0 0}.contact-history{display:grid;gap:.45rem}.contact-history-row{display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:.6rem .7rem;border:1px solid #e0e8ef;border-radius:10px;text-decoration:none;color:inherit}.contact-history-row span:first-child{display:grid;min-width:0}.contact-history-row small{color:#64748b}

/* Voucher ospiti */
.voucher-summary-v223{grid-template-columns:repeat(4,minmax(0,1fr))!important}.voucher-tools-v223{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:1rem;margin:1rem 0}.voucher-import-callout{border-left:4px solid var(--portal-accent,#1689e7)}.voucher-manual-v223 summary{font-weight:750;cursor:pointer}.voucher-manual-v223[open] summary{margin-bottom:1rem}
.voucher-list-v223{display:grid;gap:.8rem}.voucher-card-v223{display:grid!important;grid-template-columns:1fr!important;gap:.7rem!important;padding:1rem!important}.voucher-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.voucher-card-head h3{margin:.15rem 0}.voucher-status{display:inline-flex;padding:.32rem .55rem;border-radius:999px;background:#eef4f8;font-weight:700;font-size:.8rem;white-space:nowrap}.voucher-code-v223{font:800 1.28rem/1.15 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.025em;padding:.7rem .8rem;border-radius:10px;background:#f7fafc;word-break:break-word}.voucher-specs{display:flex;flex-wrap:wrap;gap:.4rem}.voucher-specs span{padding:.3rem .5rem;border:1px solid #dbe5ee;border-radius:999px;background:#fff;font-size:.8rem}.voucher-card-v223 .voucher-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.voucher-card-v223 .voucher-actions form{display:flex;align-items:center;gap:.4rem;margin:0}.voucher-card-v223 .voucher-actions select{min-width:130px}
.voucher-import-table input{min-width:110px}.voucher-import-table input[name^=code_]{min-width:125px}.voucher-import-table input[name^=title_]{min-width:150px}.voucher-import-table input[type=checkbox]{min-width:auto}.voucher-duplicate{background:#fff7ed}.voucher-bulk-tools{margin-bottom:1rem}

/* Smartphone: titoli documento su una sola riga con ellissi; tablet/desktop invariati. */
@media(max-width:620px){
  .document-card-v222 .document-main h3{display:block;max-width:100%;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  .notification-pref-grid{grid-template-columns:1fr}.notification-pref-card{padding:.75rem .8rem}
  .contact-hero-v223{grid-template-columns:1fr;padding:.85rem}.contact-action-grid{grid-template-columns:1fr}.contact-layout-v223{grid-template-columns:1fr}.contact-action{padding:.65rem .7rem}
  .voucher-summary-v223{grid-template-columns:repeat(2,minmax(0,1fr))!important}.voucher-tools-v223{grid-template-columns:1fr}.voucher-card-head{align-items:center}.voucher-card-v223 .voucher-actions{align-items:stretch}.voucher-card-v223 .voucher-actions>a,.voucher-card-v223 .voucher-actions>form{width:100%}.voucher-card-v223 .voucher-actions form{flex-wrap:wrap}.voucher-card-v223 .voucher-actions form select,.voucher-card-v223 .voucher-actions form button{flex:1 1 140px}
  .mobile-safe-header{gap:.6rem!important}.mobile-safe-header h1{font-size:clamp(1.55rem,8vw,2rem);overflow-wrap:anywhere}.device-update-actions{align-items:stretch}.device-update-actions>form,.device-update-actions>form button{width:100%}.finalized-update{flex-basis:100%}
}

/* v2.2.3b - rifiniture finali Login, Recupero accesso e Contatti */

/* Autenticazione: a normale altezza tutta la pagina resta nel viewport, senza scrollbar. */
html:has(.auth-v223),body:has(.auth-v223){height:100%;min-height:100%;overflow:hidden!important}
body:has(.auth-v223) .shell{height:100dvh!important;min-height:0!important;overflow:hidden!important}
body:has(.auth-v223) .shell>main{height:100dvh!important;min-height:0!important;overflow:hidden!important}
.auth-v223{height:100dvh!important;min-height:0!important;max-height:100dvh!important;overflow:hidden!important}
.auth-v223 .login-v22-visual,.auth-v223 .login-v22-panel{height:100dvh!important;min-height:0!important;max-height:100dvh!important;box-sizing:border-box}
.auth-v223 .login-v22-panel{overflow:hidden!important;padding:clamp(.7rem,2.2vh,1.5rem)!important}
.auth-panel-stack-v223b{width:min(100%,520px);max-height:100%;display:flex;flex-direction:column;justify-content:center;min-height:0}
.auth-v223 .login-v22-card{width:100%!important;max-height:none!important;overflow:visible!important;padding:clamp(1rem,2.2vh,1.45rem)!important}
.auth-v223 .login-v22-card label{margin:.55rem 0!important}
.auth-v223 .login-v22-card h2{font-size:clamp(1.42rem,2.8vh,1.85rem)!important;margin:.15rem 0 .25rem!important}
.auth-v223 .login-v22-card p{margin:.2rem 0 .55rem!important}
.auth-v223 .login-v22-links{margin-top:.55rem!important;gap:.6rem!important}
.auth-v223 .login-v22-foot{margin-top:.4rem!important;font-size:.78rem!important}
.auth-v223 .login-status-panel{width:100%!important;margin-top:.45rem!important;padding:.55rem .75rem!important;border-radius:12px!important;box-sizing:border-box!important}
.auth-v223 .login-status-panel h3{margin:0 0 .25rem!important}
.auth-v223 .login-status-row{padding:.34rem .15rem!important;gap:.55rem!important}
.auth-v223 .login-status-row b{font-size:.86rem!important}.auth-v223 .login-status-row strong{font-size:.95rem!important}

/* Recupera password / Problemi di accesso: stessa identità visiva della login. */
.auth-secondary-v223b .login-v22-copy{max-width:640px}
.auth-secondary-v223b .login-v22-panel{justify-content:center!important}
.auth-secondary-card-v223b{width:min(100%,560px);padding:clamp(1.15rem,3vh,2rem)!important;box-sizing:border-box}
.auth-secondary-card-v223b h2{margin:.15rem 0 .45rem;font-size:clamp(1.55rem,3vh,2rem)}
.auth-secondary-card-v223b>p{margin:.25rem 0 .85rem;color:#53657a}
.auth-secondary-form-v223b{display:grid;gap:.85rem;margin-top:.85rem}.auth-secondary-form-v223b label{margin:0}.auth-secondary-form-v223b button{width:100%}
.auth-help-note-v223b{display:grid;gap:.18rem;margin:.85rem 0;padding:.7rem .8rem;border:1px solid #d8e6f0;border-radius:11px;background:#f5f9fc}.auth-help-note-v223b span{font-size:.86rem;color:#607087}
.auth-actions-v223b{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:.85rem}.auth-text-link-v223b{font-weight:700;text-decoration:none}
.auth-help-steps-v223b{display:grid;gap:.55rem;margin:.85rem 0}.auth-help-steps-v223b>div{display:grid;grid-template-columns:30px minmax(0,1fr);gap:.65rem;align-items:start;padding:.55rem .65rem;border-radius:10px;background:#f6f9fc}.auth-help-steps-v223b>div>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e3f2fc;color:#0c75bd;font-weight:800}.auth-help-steps-v223b p{display:grid;gap:.1rem;margin:0!important}.auth-help-steps-v223b small{color:#64748b}
.auth-contact-grid-v223b{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:.8rem 0}.auth-contact-action-v223b{display:flex;align-items:center;gap:.55rem;padding:.65rem .7rem;border:1px solid #d7e4ee;border-radius:10px;background:#f9fcfe;color:#20384e;text-decoration:none;min-width:0}.auth-contact-action-v223b:hover{border-color:#9fc9e5;background:#f1f8fd}.auth-contact-action-v223b .bn-icon{width:19px;height:19px;color:#1689e7}.auth-contact-action-v223b span{display:grid;min-width:0}.auth-contact-action-v223b small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#64748b}

/* Contatti: gerarchia più pulita, nessun link grezzo, form admin compatto. */
.contact-page-header-v223b{margin-bottom:.8rem!important}.contact-page-header-v223b p{max-width:720px}
.contact-hero-v223b{margin-bottom:1rem!important;grid-template-columns:minmax(220px,.7fr) minmax(0,1.3fr)!important;padding:1rem 1.1rem!important}
.contact-status-copy-v223b{min-width:0}.contact-status-copy-v223b h2{font-size:1.45rem!important}.contact-status-copy-v223b .eyebrow{margin-bottom:.15rem}
.contact-action-v223b{min-height:62px}.contact-action-v223b b{font-size:.95rem}.contact-action-v223b small{font-size:.78rem}
.contact-no-actions-v223b{grid-column:1/-1;padding:.75rem;color:#64748b;border:1px dashed #cad8e4;border-radius:10px;background:#fff}
.contact-admin-layout-v223b{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:1rem;align-items:start}.contact-preview-v223b,.contact-settings-v223b{margin:0!important}.contact-preview-v223b .section-title,.contact-settings-v223b .section-title{margin-bottom:.75rem}
.contact-info-list-v223b{display:grid;gap:.55rem}.contact-detail-v223b{padding:.62rem .72rem;border:1px solid #e1e9f0;border-radius:10px;background:#f8fbfd}.contact-detail-v223b small{font-size:.73rem;font-weight:800;letter-spacing:.035em;text-transform:uppercase;color:#65768a}.contact-detail-v223b p{margin:.18rem 0 0!important;overflow-wrap:anywhere}
.contact-settings-v223b .form-grid{gap:.75rem}.contact-settings-v223b label{margin:0!important}.contact-settings-v223b textarea{min-height:76px;resize:vertical}.contact-save-row-v223b{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap;margin-top:.9rem}.contact-save-row-v223b small{color:#64748b}
.contact-client-layout-v223b{align-items:start}.contact-client-layout-v223b .contact-form-v223,.contact-client-layout-v223b .contact-info-v223{margin:0!important}

/* Smartphone/tablet: autenticazione compatta, Contatti in singola colonna. */
@media(max-width:900px) and (min-height:620px){
  .auth-v223{grid-template-columns:1fr!important;grid-template-rows:88px minmax(0,1fr)!important}
  .auth-v223 .login-v22-visual{height:88px!important;min-height:0!important;max-height:88px!important;padding:.75rem 1rem!important;display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;gap:.85rem!important;align-items:center!important}
  .auth-v223 .login-v22-brand{margin:0!important}.auth-v223 .login-v22-brand span{font-size:1.5rem!important}.auth-v223 .login-v22-brand small{font-size:.6rem!important}
  .auth-v223 .login-v22-copy{min-width:0!important}.auth-v223 .login-v22-copy .eyebrow,.auth-v223 .login-v22-copy>p:not(.eyebrow),.auth-v223 .login-v22-pills{display:none!important}
  .auth-v223 .login-v22-copy h1{font-size:1.22rem!important;line-height:1.08!important;margin:0!important;letter-spacing:-.02em!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .auth-v223 .login-v22-panel{height:calc(100dvh - 88px)!important;max-height:calc(100dvh - 88px)!important;padding:.55rem .85rem!important;justify-content:center!important}
  .auth-panel-stack-v223b{max-height:100%;justify-content:center}
  .auth-v223 .login-v22-card{padding:.8rem 1rem!important}.auth-v223 .login-v22-card label{margin:.4rem 0!important}.auth-v223 .login-v22-card h2{font-size:1.32rem!important}
  .auth-v223 .login-status-panel{margin-top:.35rem!important;padding:.4rem .65rem!important}.auth-v223 .login-status-row{padding:.25rem .1rem!important}.auth-v223 .login-status-panel h3{font-size:.68rem!important}
  .auth-secondary-v223b .login-v22-panel{height:calc(100dvh - 88px)!important}.auth-secondary-card-v223b{padding:1rem 1.1rem!important;max-width:560px}.auth-secondary-card-v223b>p{margin-bottom:.6rem}.auth-help-steps-v223b{margin:.6rem 0}.auth-contact-grid-v223b{margin:.6rem 0}
}
@media(max-width:620px) and (min-height:620px){
  .auth-v223{grid-template-rows:72px minmax(0,1fr)!important}.auth-v223 .login-v22-visual{height:72px!important;max-height:72px!important;padding:.55rem .8rem!important;display:flex!important}.auth-v223 .login-v22-copy{display:none!important}.auth-v223 .login-v22-brand{width:100%;align-items:flex-start!important}.auth-v223 .login-v22-brand span{font-size:1.42rem!important}
  .auth-v223 .login-v22-panel{height:calc(100dvh - 72px)!important;max-height:calc(100dvh - 72px)!important;padding:.45rem .65rem!important}.auth-v223 .login-v22-card{padding:.72rem .85rem!important}.auth-v223 .login-v22-card>p:not(.eyebrow){font-size:.86rem}.auth-v223 .login-v22-links{font-size:.84rem}.auth-v223 .login-v22-foot{font-size:.68rem!important;margin-top:.25rem!important}
  .auth-v223 .login-status-panel{padding:.34rem .55rem!important}.auth-v223 .login-status-row{padding:.2rem .05rem!important}.auth-v223 .login-status-row small{font-size:.62rem!important}.auth-v223 .login-status-row b{font-size:.78rem!important}.auth-v223 .login-status-row strong{font-size:.82rem!important}
  .auth-secondary-card-v223b{padding:.85rem!important}.auth-secondary-card-v223b h2{font-size:1.4rem}.auth-contact-grid-v223b{grid-template-columns:1fr;gap:.4rem}.auth-contact-action-v223b{padding:.52rem .6rem}.auth-help-steps-v223b>div{padding:.45rem .55rem}.auth-actions-v223b{margin-top:.6rem}
  .contact-hero-v223b{grid-template-columns:1fr!important;padding:.8rem!important}.contact-action-grid{grid-template-columns:1fr!important}.contact-admin-layout-v223b,.contact-client-layout-v223b{grid-template-columns:1fr!important}.contact-settings-v223b .form-grid{grid-template-columns:1fr!important}.contact-save-row-v223b{align-items:stretch}.contact-save-row-v223b button{width:100%}
}

/* Solo quando l'altezza è realmente ridotta compare lo scorrimento verticale. */
@media(max-height:619px){
  html:has(.auth-v223),body:has(.auth-v223){height:auto!important;min-height:100%!important;overflow-y:auto!important}
  body:has(.auth-v223) .shell,body:has(.auth-v223) .shell>main{height:auto!important;min-height:100dvh!important;overflow:visible!important}
  .auth-v223{height:auto!important;min-height:100dvh!important;max-height:none!important;overflow:visible!important}
  .auth-v223 .login-v22-visual,.auth-v223 .login-v22-panel{height:auto!important;min-height:auto!important;max-height:none!important;overflow:visible!important}
  .auth-v223 .login-v22-panel{padding:.75rem!important}.auth-panel-stack-v223b{max-height:none!important}.auth-v223 .login-v22-card{max-height:none!important;overflow:visible!important}
}
