/* Un'unica interfaccia, adattata al telefono senza copie o cache dei dati. */
.mobile-menu-button,.mobile-navigation-heading,.mobile-menu-backdrop,.mobile-scroll-hint,.mobile-activity-picker{display:none}
.account-name{min-width:0;overflow:hidden;text-overflow:ellipsis}
.mobile-filter-field{display:contents}.mobile-filter-label{display:none}

@media screen and (max-width:900px){
  html,body{min-width:0;max-width:100%}
  .app-shell{margin:0;min-width:0;min-height:100dvh;padding-bottom:env(safe-area-inset-bottom,0px)}
  .topbar{position:sticky;top:0;z-index:20;height:auto;min-height:108px;padding:8px max(12px,env(safe-area-inset-right)) 9px max(12px,env(safe-area-inset-left));flex-wrap:wrap;gap:6px 12px;box-shadow:0 2px 9px #142d4608}
  .mobile-menu-button{display:inline-flex;min-height:44px;padding:9px 12px;font-size:13px;flex:none}
  .mobile-menu-button svg{width:20px;height:20px}
  .breadcrumb{flex:1;min-width:0;line-height:1.5;overflow-wrap:anywhere;font-size:10px}
  .breadcrumb strong{font-size:12px}.breadcrumb>span{margin:0 6px}
  .year-tools{width:100%;min-width:0;gap:8px;flex-wrap:nowrap!important;justify-content:flex-start!important}
  .year-tools .connection{display:none}.year-tools>label{display:inline;font-size:12px}
  .year-tools select{height:44px;min-width:80px;font-size:16px}
  .year-tools .icon-button{min-width:44px;height:44px}
  .year-tools .account-tools{order:2;margin-left:auto;min-width:0;gap:6px}
  .account-tools .button{min-height:44px;padding:9px 11px;font-size:12px;min-width:44px}
  .account-tools svg{flex:none}.account-name{max-width:150px}
  .sidebar{position:fixed;inset:0 auto 0 0;width:min(320px,calc(100vw - 44px));height:100dvh;background:var(--navy);z-index:50;transform:translateX(-102%);transition:transform .18s ease;overflow:hidden;visibility:hidden}
  .mobile-menu-open{overflow:hidden}.mobile-menu-open .sidebar{transform:translateX(0);visibility:visible}
  .mobile-menu-backdrop:not([hidden]){display:block;position:fixed;inset:0;background:#10243980;z-index:49}
  .mobile-navigation-heading{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 0;flex:none;font-size:14px}
  .mobile-navigation-heading .icon-button{width:44px;height:44px;color:white;background:#ffffff12;border-color:#ffffff25;font-size:27px}
  .sidebar .brand{display:flex;height:84px;margin:12px 18px 18px;padding:12px 25px;flex:none}
  .sidebar .brand img{max-height:60px;width:100%}.sidebar .workspace-label,.sidebar .sidebar-version{display:none}
  #navigazione{display:grid;align-content:start;justify-content:stretch;overflow-y:auto;overflow-x:hidden;flex:1;height:auto;padding:0 12px 12px;gap:5px;overscroll-behavior:contain}
  #navigazione .nav-item{flex-direction:row;justify-content:flex-start;gap:12px;min-height:46px;padding:12px;font-size:14px;border-radius:6px;flex:none}
  #navigazione .nav-item>span{display:block}#navigazione .nav-item svg{width:20px;height:20px}
  #navigazione .nav-count{display:block;margin-left:auto}
  #navigazione .nav-group{display:block;position:static;flex:none}
  #navigazione .nav-group-heading{flex-direction:row;width:auto}
  #navigazione .nav-group-heading>.nav-item{flex:1;padding-right:3px}
  #navigazione .nav-group-heading>.nav-group-toggle{display:flex;width:44px;flex:0 0 44px;min-height:46px;height:auto;padding:0;align-items:center;justify-content:center;border-radius:6px}
  #navigazione .nav-chevron{display:block!important;width:17px;height:17px}
  #navigazione .nav-submenu{position:static;transform:none;bottom:auto;left:auto;width:auto;margin:5px 0 8px 22px;padding:0 0 0 8px;border:0;border-left:1px solid #ffffff25;border-radius:0;background:transparent;box-shadow:none;gap:4px}
  #navigazione .nav-submenu .nav-item{font-size:13px;min-height:44px;padding:10px 9px}
  #navigazione .nav-item.active,#navigazione .nav-group-heading:has(.nav-item.active){box-shadow:inset 3px 0 #62b7ae}
  #navigazione .nav-group-heading .nav-item.active{box-shadow:none}
  .sidebar .sidebar-bottom{display:flex;flex:none;margin:0;padding:14px 22px max(18px,env(safe-area-inset-bottom));border-top:1px solid #ffffff15}
  main{min-width:0;padding:22px 16px 12px;width:100%}
  .page-heading{flex-wrap:wrap;align-items:flex-start;gap:14px}.page-heading>div{min-width:0}
  .page-heading h1{font-size:25px;line-height:1.2;overflow-wrap:anywhere}
  .page-heading p{font-size:13px}.page-heading>.actions{width:100%}
  .page-heading .button,.button.small,.icon-button{min-height:44px}
  .button.small{font-size:12px}.button{white-space:normal;line-height:1.4}
  input:not([type=checkbox]):not([type=radio]),select,textarea{font-size:16px;min-height:44px}
  .toolbar{align-items:stretch;gap:10px}.toolbar>.search{min-width:100%;flex-basis:100%}
  .toolbar select{min-width:0;max-width:100%;flex:1 1 140px;font-size:16px}
  .toolbar>.mobile-filter-field{display:flex;flex-direction:column;gap:5px;flex:1 1 140px;min-width:0}
  .mobile-filter-label{display:block;font-size:11px;font-weight:600;color:#53667a;line-height:1.4}
  .mobile-filter-field>select{flex:none;width:100%}
  .toolbar>.actions{flex-wrap:wrap;max-width:100%}
  .check-label{white-space:normal;line-height:1.5;min-height:38px}
  input[type=checkbox],input[type=radio]{width:21px;height:21px;min-height:21px;flex:none}
  .list-summary{flex-wrap:wrap;align-items:flex-start;line-height:1.6}.list-summary select{max-width:100%}
  .table-wrap{max-width:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
  .table-wrap>table:not(.ad-matrix):not(.client-grid):not(.mobile-cards){min-width:620px}
  .mobile-scroll-hint{display:block;font-size:12px;color:#496d80;padding:10px 14px;margin:0;background:#f2f7f8;border-bottom:1px solid var(--line)}
  .ad-context{flex-wrap:wrap;gap:10px 14px;padding:14px;margin-bottom:14px}.ad-context>div{width:auto;flex:1;min-width:0}
  .ad-context>span{order:2;width:100%;font-size:12px;line-height:1.5}.ad-context strong{margin-top:3px;font-size:16px}
  .ad-context .field{min-width:0;flex:1 1 220px}
  .ad-activities{gap:9px}.ad-activity{flex:1 1 145px;min-width:0;min-height:78px}
  .ad-activity>span{font-size:13px;line-height:1.4}.ad-activity small{font-size:11px}
  .ad-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .ad-metric{min-width:0;padding:16px}.ad-metric>span,.ad-metric>small{font-size:12px;line-height:1.5}
  .ad-metric>strong{font-size:29px}.ad-matrix th,.ad-matrix td{padding:10px 6px}
  .ad-matrix .ad-client{min-width:132px;max-width:150px;width:132px;padding:10px;white-space:normal}
  .ad-matrix .ad-client>strong{font-size:12px;line-height:1.5}.ad-matrix .ad-client small{font-size:10px}
  .ad-matrix .ad-cell{min-width:116px;min-height:44px;font-size:16px;padding:8px 5px}
  .ad-matrix .ad-row-total{min-width:115px}.ad-scroll{max-height:62dvh}
  .ad-group th>div{max-width:calc(100vw - 60px);flex-wrap:wrap;gap:5px}
  .ad-group th>div span{width:100%;white-space:normal}.ad-legend{gap:10px;font-size:12px}
  .client-grid .grid-name{width:150px;min-width:150px;max-width:150px;left:36px}
  .client-grid th.grid-select,.client-grid td.grid-select{width:36px;min-width:36px;max-width:36px;padding:10px 6px}
  .client-grid th,.client-grid td{min-width:180px;width:180px;max-width:180px}
  .client-grid th input[type=search],.client-grid th select{height:44px;min-height:44px;font-size:16px}
  .grid-sort,.grid-client-link{min-height:44px}.grid-column-options{position:fixed;inset:125px 14px auto;width:auto;max-height:60dvh;z-index:25}
  .grid-column-options label{min-height:44px;font-size:14px}.grid-pagination{gap:14px}
  .grid-pagination .actions{flex-wrap:wrap}.grid-summary{flex-wrap:wrap}
  .tabs{gap:18px;max-width:100%;scrollbar-width:thin}.tab{min-height:44px;font-size:13px;padding-bottom:12px}
  .ad-config-form,.fs-config-form,.fs-due-config{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .ad-config-form>.field:first-child,.fs-config-form>.field:first-child{grid-column:1/-1}
  .ad-type-foot{flex-wrap:wrap;align-items:flex-start}.ad-active{white-space:normal;min-height:44px}
  .settings-card{min-width:0}.setting-title{flex-wrap:wrap}.group-order-row{flex-wrap:wrap}
  .user-effective dl>div{display:block}.user-effective dd{text-align:left;overflow-wrap:anywhere}
  .user-profiles{grid-template-columns:1fr}.user-profiles label{padding:5px 0}
  dialog,dialog.compact,dialog.client-sheet{width:100%;max-width:100%;height:100dvh;max-height:100dvh;max-height:100svh;margin:0;border-radius:0;inset:0;overflow:hidden}
  dialog[open]{display:flex;flex-direction:column}
  dialog>form{display:flex;flex-direction:column;min-height:0;flex:1}
  .modal-head{flex:none;padding:16px;gap:12px}.modal-head h2{font-size:19px;line-height:1.4;overflow-wrap:anywhere}
  .modal-head .icon-button{min-width:44px;height:44px;flex:none}
  .modal-body,.client-sheet .modal-body{flex:1;min-height:0;max-height:none;padding:16px;overflow-y:auto}
  .modal-foot{flex:none;padding:12px 16px max(12px,env(safe-area-inset-bottom));flex-wrap:wrap;gap:10px}
  .modal-foot>div{margin-left:auto;flex-wrap:wrap}.modal-foot small{font-size:11px}
  .client-sheet .modal-head{padding:16px}.client-sheet .modal-head h2{font-size:19px}
  .client-summary{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px 16px;gap:12px}
  .client-summary strong{font-size:12px}.client-summary span{font-size:11px}
  .client-groups,.note-columns,.form-grid{grid-template-columns:1fr}
  .client-group{padding:17px}.client-facts dd{font-size:14px}.client-facts dt{font-size:12px}
  .form-grid{gap:18px}.field>span,.field>label,.client-group .field>span{font-size:13px}
  .field small{font-size:12px}.history-facts{grid-template-columns:1fr}
  .app-footer{margin:18px 16px 0;font-size:11px;flex-wrap:wrap;gap:8px}
  #notifica{left:50%;bottom:calc(18px + env(safe-area-inset-bottom));max-width:calc(100vw - 24px);font-size:13px}
  #accesso-utente:not([hidden]){padding:12px 16px;flex-wrap:wrap}
}

@media screen and (max-width:650px){
  .mobile-activity-picker{display:flex;padding:14px;background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:16px}
  .ad-activities.mobile-has-picker{display:none}
  main{padding:20px 12px 10px}.year-tools>label{display:none}
  .metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{padding:14px;min-width:0}
  .metric-top{font-size:12px;line-height:1.4}.metric-bottom{font-size:11px;line-height:1.5}
  .metric-icon{display:none}.metric-value{font-size:29px}
  .page-heading>.button{width:100%}.page-heading .actions>.button{flex:1 1 auto}
  .mobile-cards,.mobile-cards tbody{display:block;width:100%;min-width:0;table-layout:auto}
  .mobile-cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  .mobile-cards tbody{padding:0 12px}
  .mobile-cards tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;position:relative;padding:18px 2px;border-bottom:1px solid var(--line)}
  .mobile-cards tbody tr:last-child{border-bottom:0}
  .mobile-cards tbody td{display:block;padding:0;border:0!important;min-width:0;width:auto!important;max-width:none;font-size:13px;overflow-wrap:anywhere;white-space:normal}
  .mobile-cards td::before{content:attr(data-mobile-label);display:block;font-size:11px;color:var(--muted);margin-bottom:5px;font-weight:500}
  .mobile-cards td[data-mobile-title]{grid-column:1/-1;padding-right:38px;font-size:16px;font-weight:600}
  .mobile-cards td[data-mobile-title]::before,.mobile-cards td[data-mobile-actions]::before,.mobile-cards td.select-cell::before{display:none}
  .mobile-cards td[data-mobile-actions]{grid-column:1/-1}
  .mobile-cards td.select-cell{position:absolute;top:18px;right:2px;width:32px!important;min-height:32px;display:flex;justify-content:center;align-items:center}
  .mobile-cards .client-name{font-size:16px;min-height:32px;white-space:normal;overflow-wrap:anywhere}
  .mobile-cards .client-id{font-size:11px;font-weight:400;line-height:1.5}
  .mobile-cards .table-actions{justify-content:flex-start;flex-wrap:wrap;gap:8px}
  .mobile-cards .table-actions>.button{min-height:44px;min-width:44px;font-size:12px}
  .mobile-cards .badge{font-size:11px;white-space:normal}
  .chart-body{gap:16px}.donut{width:125px}.workload-row{grid-template-columns:30px 85px 1fr 24px;gap:8px}
  .ad-activity{flex-basis:calc(50% - 9px)}.ad-metric{padding:14px}
  .ad-config-form,.fs-config-form,.fs-due-config{grid-template-columns:1fr}
  .ad-config-form>.field:first-child,.fs-config-form>.field:first-child{grid-column:auto}
  .ad-context .field{flex-basis:100%}.ad-legend>small{font-size:11px}
  .check-label{font-size:12px}.loading{padding:50px 12px}
  .accesso-card{padding:25px 22px}.pagina-accesso input{font-size:16px;min-height:46px}
  .pagina-accesso .button{min-height:46px;font-size:14px}
}
@media screen and (max-width:480px){.account-name{display:none}.account-tools .button{padding:9px 10px}.breadcrumb{font-size:9px}.breadcrumb strong{font-size:11px}}
@media screen and (max-height:500px) and (max-width:900px){.client-summary{display:none}.topbar{position:relative}.grid-column-options{top:15px;max-height:85dvh}}
