:root{
  --blue:#0176d3;--blue-dark:#014486;--blue-light:#e8f4fd;
  --text:#181818;--text2:#444;--text3:#706e6b;
  --bg:#f3f3f3;--bg-card:#fff;--bg-sidebar:#032d60;
  --border:#ddd;--border2:#c9c9c9;
  --success:#2e844a;--success-bg:#eef6ee;
  --warning:#b95000;--warning-bg:#fef4e4;
  --danger:#ba0517;--danger-bg:#fef0f0;
  --radius:4px;--radius-md:6px;--radius-lg:8px;
  --shadow:0 1px 4px rgba(0,0,0,0.10);--shadow-md:0 2px 8px rgba(0,0,0,0.13);
  --sidebar-w:220px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;background:var(--bg);color:var(--text);font-size:14px;height:100vh;overflow:hidden;}
#shell{display:flex;height:100vh;overflow:hidden;}
#sidebar{width:var(--sidebar-w);background:var(--bg-sidebar);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;}
#main{flex:1;display:flex;flex-direction:column;overflow:hidden;}
#topnav{background:#fff;border-bottom:1px solid var(--border);padding:0 20px;height:52px;display:flex;align-items:center;gap:12px;flex-shrink:0;box-shadow:var(--shadow);}
#content{flex:1;overflow-y:auto;padding:20px;}
.app-tabs{display:flex;background:#021b3e;border-bottom:1px solid rgba(255,255,255,0.08);}
.app-tab{flex:1;padding:12px 8px;text-align:center;font-size:12px;font-weight:600;color:rgba(255,255,255,0.5);cursor:pointer;border:none;background:none;font-family:inherit;letter-spacing:0.04em;text-transform:uppercase;transition:all 0.15s;border-bottom:2px solid transparent;}
.app-tab:hover{color:rgba(255,255,255,0.8);}
.app-tab.active{color:#fff;border-bottom-color:var(--blue);}
.app-tab i{display:block;font-size:18px;margin-bottom:3px;}
.sidebar-logo{padding:14px 16px 12px;display:flex;align-items:center;gap:10px;border-bottom:1px solid rgba(255,255,255,0.1);}
.sidebar-logo-icon{width:34px;height:34px;background:var(--blue);border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:#fff;font-size:17px;flex-shrink:0;}
.sidebar-logo-text{color:#fff;font-size:14px;font-weight:700;}
.sidebar-logo-sub{color:rgba(255,255,255,0.4);font-size:10px;}
.sidebar-section{padding:14px 10px 4px;font-size:10px;font-weight:700;color:rgba(255,255,255,0.35);text-transform:uppercase;letter-spacing:0.08em;}
.nav-item{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:var(--radius-md);margin:1px 8px;cursor:pointer;color:rgba(255,255,255,0.7);font-size:13px;font-weight:500;transition:all 0.12s;border:none;background:none;font-family:inherit;width:calc(100% - 16px);text-align:left;}
.nav-item:hover{background:rgba(255,255,255,0.08);color:#fff;}
.nav-item.active{background:rgba(255,255,255,0.15);color:#fff;}
.nav-item i{font-size:16px;flex-shrink:0;}
.sidebar-bottom{margin-top:auto;padding:12px 16px;border-top:1px solid rgba(255,255,255,0.1);}
.sidebar-stats{font-size:11px;color:rgba(255,255,255,0.45);line-height:1.8;}
.sidebar-stats strong{color:rgba(255,255,255,0.8);}
.topnav-title{font-size:17px;font-weight:700;color:var(--text);flex:1;}
.search-wrap{position:relative;flex:1;max-width:360px;}
.search-wrap input{width:100%;height:32px;padding:0 12px 0 34px;border:1px solid var(--border2);border-radius:var(--radius);font-size:13px;font-family:inherit;background:#fff;color:var(--text);outline:none;}
.search-wrap input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(1,118,211,0.12);}
.search-icon{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:var(--text3);font-size:15px;pointer-events:none;}
.sync-pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:3px 8px;border-radius:20px;background:var(--bg);color:var(--text3);}
.sync-dot{width:6px;height:6px;border-radius:50%;background:#aaa;flex-shrink:0;}
.sync-dot.ok{background:var(--success);}
.sync-dot.busy{background:var(--warning);animation:blink 1s infinite;}
.sync-dot.error{background:var(--danger);}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0.3}}
.btn{display:inline-flex;align-items:center;gap:6px;border-radius:var(--radius);padding:0 14px;height:32px;font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;border:1px solid transparent;transition:all 0.12s;white-space:nowrap;}
.btn:active{transform:scale(0.97);}
.btn-primary{background:var(--blue);color:#fff;border-color:var(--blue);}
.btn-primary:hover{background:var(--blue-dark);}
.btn-outline{background:#fff;color:var(--blue);border-color:var(--blue);}
.btn-outline:hover{background:var(--blue-light);}
.btn-neutral{background:#fff;color:var(--text2);border-color:var(--border2);}
.btn-neutral:hover{background:var(--bg);}
.btn-danger{background:#fff;color:var(--danger);border-color:var(--danger);}
.btn-danger:hover{background:var(--danger-bg);}
.btn-sm{height:26px;padding:0 10px;font-size:12px;}
.btn-icon{width:32px;height:32px;padding:0;border-radius:var(--radius);background:#fff;border:1px solid var(--border2);color:var(--text3);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:all 0.12s;}
.btn-icon:hover{border-color:var(--blue);color:var(--blue);}
.btn-icon.red:hover{border-color:var(--danger);color:var(--danger);}
.data-table{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);}
.data-table th{background:#f8f8f8;border-bottom:1px solid var(--border);padding:10px 14px;text-align:left;font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap;cursor:pointer;user-select:none;}
.data-table th:hover{background:#f0f0f0;}
.data-table td{padding:11px 14px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle;}
.data-table tr:last-child td{border-bottom:none;}
.data-table tr:hover td{background:#f8faff;}
.data-table tr{cursor:pointer;}
.contact-name{font-weight:600;color:var(--blue);}
.row-actions{display:flex;gap:4px;opacity:0;transition:opacity 0.12s;}
.data-table tr:hover .row-actions{opacity:1;}
.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:20px;}
.stat-card{background:#fff;border-radius:var(--radius-lg);padding:14px 18px;box-shadow:var(--shadow);border-top:3px solid var(--blue);cursor:pointer;transition:box-shadow 0.15s,transform 0.12s;user-select:none;}
.stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-1px);}
.stat-card.selected{outline:2px solid var(--blue);outline-offset:1px;}
.stat-card.green{border-top-color:var(--success);}
.stat-card.green.selected{outline-color:var(--success);}
.stat-card.orange{border-top-color:var(--warning);}
.stat-card.red{border-top-color:var(--danger);}
.stat-card.red.selected{outline-color:var(--danger);}
.stat-val{font-size:26px;font-weight:700;color:var(--text);line-height:1;}
.stat-label{font-size:12px;color:var(--text3);margin-top:4px;}
.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;}
.badge-green{background:var(--success-bg);color:var(--success);}
.badge-red{background:var(--danger-bg);color:var(--danger);}
.badge-blue{background:var(--blue-light);color:var(--blue-dark);}
.badge-gray{background:#f0f0f0;color:var(--text3);}
.badge-orange{background:var(--warning-bg);color:var(--warning);}
.badge-interview{background:#eeedfe;color:#3c3489;}
.chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;}
.chip-email{background:#e8f4fd;color:#0176d3;}
.chip-call{background:#eef6ee;color:#2e844a;}
.chip-meeting{background:#eeedfe;color:#3c3489;}
.chip-note{background:#fef4e4;color:#b95000;}
.chip-other{background:#f0f0f0;color:#706e6b;}
.chip-intervista{background:#0f766e;color:#fff;}
.act-item.act-intervista{border-left:3px solid #0f766e;background:#f0fdfa;padding-left:10px;border-radius:0 var(--radius) var(--radius) 0;}
.act-cons-box{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;padding:6px 10px;background:#ccfbf1;border-radius:var(--radius);font-size:12px;color:#115e59;}
.act-cons-box a{font-weight:700;cursor:pointer;color:#0f766e;text-decoration:underline;}
.tag{display:inline-flex;align-items:center;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;background:var(--blue-light);color:var(--blue-dark);}
#detailPanel{position:fixed;right:0;top:0;bottom:0;width:480px;background:#fff;box-shadow:-4px 0 24px rgba(0,0,0,0.12);z-index:100;display:flex;flex-direction:column;transform:translateX(100%);transition:transform 0.22s cubic-bezier(.4,0,.2,1);}
#detailPanel.open{transform:translateX(0);}
.panel-header{padding:20px 20px 16px;flex-shrink:0;position:sticky;top:0;z-index:2;background:#fff;}
.panel-header.blue-header{background:linear-gradient(135deg,#032d60,#0176d3);}
.panel-header.gray-header{background:linear-gradient(135deg,#444,#706e6b);}
.panel-close{position:absolute;top:12px;right:12px;background:rgba(255,255,255,0.15);border:none;color:#fff;width:28px;height:28px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;}
.panel-close:hover{background:rgba(255,255,255,0.25);}
.panel-avatar{width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,0.2);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:700;color:#fff;margin-bottom:10px;}
.panel-name{font-size:18px;font-weight:700;color:#fff;margin-bottom:2px;}
.panel-sub{font-size:13px;color:rgba(255,255,255,0.7);}
.panel-badge{margin-top:8px;}
.panel-badge-inner{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;}
.panel-badge-inner.green{background:rgba(46,132,74,0.3);color:#c3f0d0;}
.panel-badge-inner.gray{background:rgba(255,255,255,0.15);color:rgba(255,255,255,0.7);}
.panel-actions{padding:10px 16px;border-bottom:1px solid var(--border);display:flex;gap:8px;align-items:center;flex-shrink:0;flex-wrap:wrap;}
.panel-body{flex:1;overflow-y:auto;}
.panel-section{padding:14px 20px;border-bottom:1px solid var(--border);}
.panel-section-title{font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:0.06em;margin-bottom:10px;}
.panel-section-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px;margin-bottom:10px;}
.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.field-item{display:flex;flex-direction:column;gap:3px;}
.field-label{font-size:11px;color:var(--text3);font-weight:600;text-transform:uppercase;letter-spacing:0.04em;}
.field-val{font-size:13px;color:var(--text);}
.field-val a{color:var(--blue);text-decoration:none;}
.field-val a:hover{text-decoration:underline;}
.field-full{grid-column:1/-1;}
.act-item{padding:10px 0;border-bottom:1px solid var(--border);}
.act-item:last-child{border-bottom:none;}
.act-row{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.act-note{font-size:13px;color:var(--text2);}
.act-actions{display:flex;gap:6px;margin-top:6px;}
.toggle-wrap{display:flex;align-items:center;gap:8px;font-size:13px;}
.toggle{position:relative;width:36px;height:20px;flex-shrink:0;}
.toggle input{opacity:0;width:0;height:0;}
.toggle-slider{position:absolute;inset:0;background:#ccc;border-radius:20px;cursor:pointer;transition:background 0.2s;}
.toggle-slider:before{content:'';position:absolute;width:14px;height:14px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform 0.2s;}
.toggle input:checked+.toggle-slider{background:var(--success);}
.toggle input:checked+.toggle-slider:before{transform:translateX(16px);}
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.4);z-index:200;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity 0.15s;}
.modal-overlay.open{opacity:1;pointer-events:auto;}
.modal{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-md);width:100%;max-width:520px;max-height:90vh;overflow-y:hidden;display:flex;flex-direction:column;}
.modal-header{padding:18px 24px 14px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:#fff;z-index:1;}
.modal-title{font-size:16px;font-weight:700;}
.modal-close{background:none;border:none;color:var(--text3);cursor:pointer;font-size:20px;line-height:1;}
.modal-body{padding:20px 24px;overflow-y:auto;flex:1;}
.modal-footer{padding:14px 24px;border-top:1px solid var(--border);display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;position:sticky;bottom:0;background:#fff;}
.form-group{margin-bottom:14px;}
.form-group label{display:block;font-size:12px;font-weight:600;color:var(--text2);margin-bottom:5px;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:8px 12px;border:1px solid var(--border2);border-radius:var(--radius);font-size:13px;font-family:inherit;color:var(--text);background:#fff;outline:none;transition:border-color 0.12s;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(1,118,211,0.12);}
.form-group textarea{height:80px;resize:vertical;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.opp-top-row{grid-template-columns:1fr 1fr 1fr;align-items:end;}
.pf-cron-row{display:grid;grid-template-columns:150px 1fr 1fr auto;gap:6px;margin-bottom:6px;align-items:center;}
.pf-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
@media(max-width:768px){
  .pf-cron-row{grid-template-columns:1fr 1fr auto;}
  .pf-cron-row .pf-c-periodo{grid-column:1 / -1;}
  .pf-cols{grid-template-columns:1fr;}
  .opp-top-row{grid-template-columns:1fr 1fr;}
  .opp-top-row > div:nth-child(3){grid-column:1 / -1;}
}
.active-toggle-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--bg);border-radius:var(--radius-md);margin-bottom:14px;}
.filter-bar{display:flex;align-items:center;gap:8px;margin-bottom:14px;flex-wrap:wrap;}
.filter-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:20px;font-size:12px;font-weight:500;cursor:pointer;border:1px solid var(--border2);background:#fff;color:var(--text2);transition:all 0.12s;}
.filter-chip:hover,.filter-chip.active{background:var(--blue);color:#fff;border-color:var(--blue);}
.count-label{font-size:13px;color:var(--text3);}
.report-table{width:100%;border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius-lg);overflow:hidden;box-shadow:var(--shadow);margin-bottom:20px;}
.report-table th{background:var(--bg-sidebar);color:rgba(255,255,255,0.85);padding:10px 16px;text-align:left;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.05em;white-space:nowrap;cursor:pointer;}
.report-table th:hover{background:#043a7d;}
.report-table td{padding:11px 16px;border-bottom:1px solid var(--border);font-size:13px;vertical-align:middle;}
.report-table tr:last-child td{border-bottom:none;}
.report-table tr:hover td{background:#f8faff;}
.report-table tr{cursor:pointer;}
.report-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px;}
.report-title{font-size:20px;font-weight:700;}
.report-subtitle{font-size:13px;color:var(--text3);margin-top:3px;}
.report-meta{display:flex;gap:12px;flex-wrap:wrap;}
.report-kpi{background:#fff;border-radius:var(--radius-lg);padding:12px 16px;box-shadow:var(--shadow);border-left:4px solid var(--blue);min-width:110px;}
.report-kpi-val{font-size:22px;font-weight:700;color:var(--text);}
.report-kpi-label{font-size:11px;color:var(--text3);margin-top:2px;}
.report-actions{display:flex;gap:8px;margin-bottom:14px;}
.cv-date-recent{color:var(--success);font-weight:600;}
.cv-date-old{color:var(--warning);font-weight:600;}
.cv-date-very-old{color:var(--danger);font-weight:600;}
.interview-item{padding:12px 0;border-bottom:1px solid var(--border);}
.interview-item:last-child{border-bottom:none;}
.interview-header{display:flex;align-items:center;gap:8px;margin-bottom:4px;}
.interview-date{font-size:11px;color:var(--text3);margin-left:auto;}
.interview-oggetto{font-size:13px;font-weight:600;color:var(--text);margin-bottom:3px;}
.interview-meta{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:3px;}
.interview-meta-item{font-size:12px;color:var(--text3);display:flex;align-items:center;gap:4px;}
.interview-note{font-size:12px;color:var(--text2);background:var(--bg);border-radius:var(--radius);padding:7px 10px;margin-top:5px;line-height:1.5;}
.batch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:16px;}
.batch-card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-lg);padding:14px;transition:border-color 0.15s;}
.batch-card.ok{border-color:var(--success);}
.batch-card.error{border-color:var(--danger);opacity:0.7;}
.batch-card-header{display:flex;align-items:center;gap:8px;margin-bottom:10px;}
.batch-card-icon{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0;}
.batch-card-icon.ok{background:var(--success-bg);color:var(--success);}
.batch-card-icon.pending{background:var(--blue-light);color:var(--blue);}
.batch-card-icon.error{background:var(--danger-bg);color:var(--danger);}
.batch-card-filename{font-size:11px;color:var(--text3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;}
.batch-field{margin-bottom:6px;}
.batch-field label{font-size:10px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:0.05em;display:block;margin-bottom:2px;}
.batch-field input,.batch-field select{width:100%;padding:5px 8px;border:1px solid var(--border2);border-radius:var(--radius);font-size:12px;font-family:inherit;color:var(--text);background:#fff;}
.batch-progress{background:var(--bg);border-radius:var(--radius-lg);height:6px;margin:10px 0 8px;}
.batch-progress-bar{background:var(--blue);height:6px;border-radius:var(--radius-lg);transition:width 0.3s;}
.empty-state{text-align:center;padding:60px 20px;color:var(--text3);}
.empty-state i{font-size:44px;display:block;margin-bottom:12px;opacity:0.35;}
.spinner{display:inline-block;width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin 0.8s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
.drop-zone{border:2px dashed var(--border2);border-radius:var(--radius-md);padding:28px 20px;text-align:center;cursor:pointer;transition:all 0.15s;}
.drop-zone:hover{border-color:var(--blue);background:var(--blue-light);}
.import-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid var(--border);font-size:12px;}
.import-row:last-child{border-bottom:none;}
#loginScreen{position:fixed;inset:0;background:linear-gradient(135deg,#032d60 0%,#0176d3 100%);display:flex;align-items:center;justify-content:center;z-index:300;}
.login-card{background:#fff;border-radius:12px;padding:40px;width:100%;max-width:360px;text-align:center;box-shadow:0 8px 32px rgba(0,0,0,0.2);}
.login-logo{width:56px;height:56px;background:var(--blue);border-radius:12px;display:flex;align-items:center;justify-content:center;margin:0 auto 16px;color:#fff;font-size:24px;}
@media(max-width:900px){#sidebar{display:none;}#detailPanel{width:100%;}.stats-row{grid-template-columns:1fr 1fr;}/* Scrollable tables on mobile - show all columns */
  #view-crm-report-prj, #view-crm-clienti, #view-crm-fatture, #view-crm-leads,
  #view-con-report-prj, #view-crm-report-opp { overflow-x:auto; }
  #view-crm-report-prj .data-table,
  #view-crm-clienti .data-table,
  #view-crm-fatture .data-table { white-space:nowrap; min-width:700px; }}
/* RELOGIN BANNER */
#reloginBanner{display:none;}
body.has-banner #content{padding-bottom:80px;}


/* ══════════════════════════════════════════
   MOBILE RESPONSIVE — ≤768px
══════════════════════════════════════════ */
#hamburger{display:none;}
.mobile-nav-item {
  display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;
  background:none;border:none;color:rgba(255,255,255,0.85);font-size:13px;
  cursor:pointer;border-radius:6px;text-align:left;
}
.mobile-nav-item:hover { background:rgba(255,255,255,0.1); }
.mobile-nav-item i { font-size:16px;width:20px;flex-shrink:0; }
.mob-nav-section { padding:6px 16px;font-size:10px;font-weight:700;color:rgba(255,255,255,0.35);letter-spacing:0.1em;text-transform:uppercase;margin-top:8px; }

@media (max-width: 768px) {

  /* Tasto chiudi scheda: stesso stile del PC, area di tocco leggermente piu' ampia */
  .panel-close { width: 34px !important; height: 34px !important; top: 10px !important; right: 10px !important; }
  .panel-back-mobile { display: none !important; }

  /* FAB */
  #mobileFab { display: flex !important; }
  /* Bigger touch targets for small buttons */
  .btn-sm { min-height: 36px !important; padding: 6px 12px !important; font-size: 12px !important; }
  .btn-icon { min-width: 36px !important; min-height: 36px !important; }
  .act-actions { display: flex; flex-wrap: wrap; gap: 6px !important; }
  .interview-item { padding: 12px !important; }
  #content { padding-bottom: 80px !important; } [aria-label]::before { display:none !important; }

  /* Sidebar: hidden by default, slides in */
  #sidebar {
    position: fixed !important;
    left: -260px !important;
    top: 0; bottom: 0;
    z-index: 200;
    transition: left 0.25s ease;
    box-shadow: 4px 0 20px rgba(0,0,0,0.3);
  }
  #sidebar.mobile-open { left: 0 !important; }

  /* Sidebar overlay backdrop */
  #sidebarBackdrop {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 499;
  }
  #sidebarBackdrop.visible { display: block; }

  /* Main: full width */
  #main { margin-left: 0 !important; width: 100% !important; }

  /* Topbar: compact on mobile */
  #hamburger { display: flex !important; align-items: center; }
  #topnav { padding: 0 8px !important; gap: 5px !important; flex-wrap: nowrap !important; height: 52px !important; }
  #topnavTitle { font-size: 13px !important; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; flex: 1; }
  #topnavSearch { display: none !important; }
  /* Topnav buttons - shown/hidden by switchApp via inline style */
  #topnav-crm-btns, #topnav-con-btns, #topnav-ev-btns {
    align-items: center;
  }
  #topnav-crm-btns button, #topnav-con-btns button, #topnav-ev-btns button {
    padding: 6px 10px !important;
    font-size: 11px !important;
    white-space: nowrap;
  }
  /* Keep global search button visible on mobile */
  #topnav > button[onclick="openGlobalSearch()"] { display: flex !important; padding: 6px 8px !important; }

  /* Content padding */
  #content { padding: 10px 10px 80px !important; overflow-x: hidden !important; }

  /* KPI grid: 2 columns on mobile */
  .stat-row { grid-template-columns: repeat(2,1fr) !important; gap: 8px !important; }

  /* Data tables: horizontal scroll */
  .data-table, .report-table { font-size: 11px !important; }
  /* Ensure tables scroll horizontally */
  #view-crm-contacts, #view-ev-report, #view-con-list,
  [id^="view-crm-report"], [id^="view-con-report"] { overflow-x: auto !important; }
  .report-table th, .report-table td { padding: 6px 5px !important; white-space: nowrap; }
  .report-header { padding: 14px !important; flex-direction: column !important; align-items: flex-start !important; gap: 12px !important; }
  .report-meta { gap: 6px !important; flex-wrap: wrap !important; width: 100% !important; }
  .report-actions { flex-wrap: wrap !important; gap: 6px !important; margin-bottom: 10px !important; }
  .report-actions .btn { font-size: 12px !important; padding: 6px 10px !important; }

  /* Detail panel: full screen on mobile */
  #detailPanel {
    position: fixed !important;
    left: 0 !important; right: 0 !important;
    top: 0 !important; bottom: 0 !important;
    width: 100% !important;
    z-index: 290 !important;
    border-radius: 0 !important;
    overflow-y: hidden !important;
    display: flex !important;
    flex-direction: column !important;
  }
  #detailPanel .panel-body {
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    flex: 1 !important;
  }
  /* Scheda contatto/consulente: intestazione (blu/grigia), spaziature e pulsanti come su PC */
  .panel-header { padding: 20px 20px 16px !important; padding-right: 52px !important; }
  .panel-name { word-break: break-word; }
  .panel-actions { padding: 10px 16px !important; gap: 8px !important; }
  .panel-section { padding: 14px 20px !important; }
  .panel-section-actions { flex-wrap: wrap !important; gap: 6px !important; }
  .field-grid { gap: 10px !important; }
  .field-item { min-width: 0; }
  .field-val { overflow-wrap: anywhere; word-break: break-word; }

  /* Modal: full width on mobile */
  .modal-overlay { padding: 8px !important; align-items: flex-end !important; z-index: 400 !important; }
  .modal {
    width: 100% !important;
    max-width: 100% !important;
    max-height: 92vh !important;
    border-radius: 14px 14px 0 0 !important;
    overflow-y: hidden !important;
    display: flex !important;
    flex-direction: column !important;
  }
  .modal-body { padding: 14px 16px !important; overflow-y: auto !important; flex: 1 !important; -webkit-overflow-scrolling: touch !important; }
  .modal-footer { padding: 10px 16px !important; flex-wrap: wrap !important; gap: 6px !important; }
  .modal-footer .btn { flex: 1; min-width: 100px; justify-content: center; font-size: 13px !important; }
  .modal-footer .btn-outline { flex: 0 1 auto; min-width: 80px; }
  .modal-header { padding: 14px 16px 12px !important; }

  /* App tabs: smaller */
  .app-tabs { gap: 4px !important; padding: 0 8px !important; }
  .app-tab { font-size: 12px !important; padding: 6px 12px !important; }

  /* Form rows: stack vertically */
  .form-row { flex-direction: column !important; gap: 8px !important; }

  /* Report header: stack */
  .report-header { flex-direction: column !important; gap: 10px !important; }
  .report-meta { flex-wrap: wrap !important; gap: 8px !important; }
  .report-kpi { min-width: 80px !important; }


  /* Hide less important table columns on mobile */
  .hide-mobile { display: none !important; }

  /* Batch grid: 1 column */
  .batch-grid { grid-template-columns: 1fr !important; }

  /* Row actions: always visible on mobile */
  .row-actions { opacity: 1 !important; display: flex !important; }

  /* Login screen */
  #loginScreen { padding: 20px !important; }
  #loginScreen h1 { font-size: 28px !important; }
}


  /* Kanban on mobile */
  .kanban-board { gap: 8px !important; }
  .kanban-col { flex: 0 0 240px !important; }
  .kanban-card { padding: 8px 10px !important; }

  /* Dashboard grid: keep 2 columns on mobile for quick access cards */
  /* Only collapse on very small screens */

@media (max-width: 768px) {
  input, select, textarea { font-size: 16px !important; } /* Prevent iOS zoom */
}

@media (max-width: 480px) {
  .stat-row { grid-template-columns: 1fr 1fr !important; }
  .report-kpi-val { font-size: 16px !important; }
  .report-kpi { min-width: 70px !important; padding: 8px 10px !important; }
}

/* ══════════════════════════════════════════
   DARK MODE
══════════════════════════════════════════ */
body.dark {
  --bg:        #1a1a2e;
  --bg2:       #16213e;
  --text:      #e0e0e0;
  --text2:     #b0b0c0;
  --text3:     #707080;
  --border:    #2a2a4a;
  --border2:   #3a3a5a;
  --shadow:    0 1px 4px rgba(0,0,0,0.4);
  --shadow-md: 0 4px 16px rgba(0,0,0,0.5);
}
body.dark #sidebar       { background:#0d1117; }
body.dark #topnav        { background:#0d1117; border-bottom-color:#2a2a4a; }
body.dark .modal-box, body.dark #modalBox, body.dark .modal { background:#1a1a2e; color:var(--text); }
body.dark .modal-footer { background:#1a1a2e !important; border-top-color:var(--border2); }
body.dark .data-table tbody tr:hover { background:#252540; }
body.dark .report-table tbody tr:hover { background:#252540; }
body.dark input, body.dark textarea, body.dark select { background:#16213e; color:var(--text); border-color:var(--border2); }
body.dark .nav-item:hover { background:rgba(255,255,255,0.07); }
body.dark .stat-card      { background:#16213e; }
body.dark .card           { background:#16213e; }
body.dark #detailPanel    { background:#16213e; }
body.dark .drop-zone      { background:#16213e; border-color:var(--border2); }
body.dark .batch-card     { background:#16213e; }
body.dark .act-item       { background:#16213e; }
body.dark .interview-item { background:#16213e; }
body.dark #modalOverlay   { background:rgba(0,0,0,0.7); }
body.dark .tag            { background:#2a2a4a; color:var(--text2); }
body.dark .chip-email     { background:#0d2040; }
body.dark .chip-intervista { background:#0f766e; color:#fff; }
body.dark .act-item.act-intervista { background:#0f2f2c; }
body.dark .act-cons-box { background:#134e4a; color:#99f6e4; }
body.dark .act-cons-box a { color:#5eead4; }
body.dark .chip-call      { background:#1a2a0d; }
body.dark .chip-meeting   { background:#1a1a40; }
body.dark .report-header  { background:#16213e; }


/* ══════════════════════════════════════════
   PIPELINE KANBAN
══════════════════════════════════════════ */
.kanban-board {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding-bottom: 12px;
  align-items: flex-start;
}
.kanban-col {
  flex: 0 0 280px;
  background: var(--bg);
  border-radius: var(--radius-lg);
  overflow: hidden;
  min-height: 200px;
}
.kanban-col-header {
  padding: 12px 14px;
  font-size: 13px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.kanban-col-body {
  padding: 8px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-height: 120px;
}
.kanban-card {
  background: #fff;
  border-radius: var(--radius);
  padding: 10px 12px;
  box-shadow: var(--shadow);
  cursor: pointer;
  transition: box-shadow 0.15s, transform 0.15s;
  border-left: 3px solid transparent;
}
.kanban-card:hover {
  box-shadow: 0 4px 12px rgba(0,0,0,0.12);
  transform: translateY(-1px);
}
.kanban-card.dragging { opacity: 0.5; transform: rotate(2deg); }
.kanban-col.drag-over .kanban-col-body { background: rgba(1,118,211,0.06); border-radius: var(--radius); }

/* Scadenzario */
.scad-group { margin-bottom: 20px; }
.scad-group-title { font-size: 11px; font-weight: 700; color: var(--text3); text-transform: uppercase; letter-spacing: 0.06em; padding: 6px 0 8px; border-bottom: 1px solid var(--border); margin-bottom: 8px; }
.scad-item { display: flex; align-items: flex-start; gap: 12px; padding: 10px 12px; border-radius: var(--radius); border: 1px solid var(--border); background: #fff; margin-bottom: 6px; cursor: pointer; transition: background 0.1s; }
.scad-item:hover { background: var(--bg); }
.scad-dot { width: 10px; height: 10px; border-radius: 50%; flex-shrink: 0; margin-top: 4px; }
.scad-date { font-size: 11px; font-weight: 700; white-space: nowrap; min-width: 70px; }
.scad-label { font-size: 12px; font-weight: 600; }
.scad-sub { font-size: 11px; color: var(--text3); }
.scad-type { font-size: 10px; font-weight: 700; border-radius: 20px; padding: 1px 8px; white-space: nowrap; }

.mob-nav-item{width:100%;background:none;border:none;text-align:left;padding:11px 20px;font-size:14px;font-family:inherit;cursor:pointer;display:flex;align-items:center;gap:10px;color:rgba(255,255,255,0.7);transition:background 0.1s;}
.mob-nav-item:hover{background:rgba(255,255,255,0.08);color:#fff;}
.mob-nav-item:active{background:rgba(255,255,255,0.15);color:#fff;}
.mob-nav-item:active{background:#f0f6ff;}
.mob-nav-sub{padding-left:36px;font-size:13px;color:#444;}
@media print{#sidebar,#topnav,.report-actions,.btn,#detailPanel{display:none!important;}#content{padding:0;}}


/* ── Dashboard (V307) ── desktop: i gruppi della barra partecipano alla stessa riga; il suggerimento di scorrimento è nascosto */
.dash-short{display:contents}
.dash-swipe-hint{display:none}
/* ── Dashboard (V307) ── telefono */
@media (max-width: 768px) {
  /* barra: riga 1 = Oggi + Avvisi; riga 2 = scorciatoie e anno in una striscia scorrevole */
  .dash-bar{gap:6px !important;margin-bottom:8px !important}
  .dash-short{display:flex;align-items:center;gap:6px;flex:1 1 100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
  .dash-short::-webkit-scrollbar{display:none}
  .dash-short > button, .dash-short .dash-right, .dash-short .dash-right > *{flex:0 0 auto}
  .dash-sep{display:none !important}
  .dash-right{margin-left:0 !important;padding-left:6px;border-left:1px solid var(--border2)}
  /* KPI più basse */
  .kpi-tile{padding:6px 10px !important}
  .kpi-val{font-size:16px !important}
  .kpi-lbl{font-size:9px !important}
  .stat-row{gap:6px !important;margin-bottom:8px !important}
  /* grafici: due pannelli affiancati scorrevoli (swipe) invece di due colonne strette */
  .dash-swipe-hint{display:block;font-size:10px;color:var(--text3);margin:-4px 0 6px}
  .dash-split{display:flex !important;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;gap:12px !important;scrollbar-width:none}
  .dash-split::-webkit-scrollbar{display:none}
  .dash-split > div{flex:0 0 100%;scroll-snap-align:start}
  .dash-split-2{border-left:none !important;padding-left:0 !important}
  /* liste: una colonna */
  .dash-grid2{grid-template-columns:1fr !important;gap:8px !important;margin-bottom:8px !important}
  /* "Oggi": su telefono i riquadri vuoti non occupano spazio (il conteggio è già sul pulsante) */
  .oggi-empty{display:none !important}
}
