:root{
  --navy:#071426;--navy-2:#0b2038;--panel:#0e2742;--blue:#087cf0;--cyan:#10d3dd;--teal:#11b7a7;
  --ink:#122033;--muted:#64748b;--line:#e2e8f0;--bg:#f4f7fb;--white:#fff;--danger:#dc2626;--warning:#d97706;--success:#059669;
  --shadow:0 10px 30px rgba(15,35,60,.08);--radius:16px;--sidebar:260px;
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink)}a{color:#0868c9;text-decoration:none}a:hover{text-decoration:none}button,input,select,textarea{font:inherit}.app-shell{min-height:100vh}.topbar{position:fixed;left:0;right:0;top:0;height:70px;background:linear-gradient(105deg,#061221,#0a2039);color:#fff;display:flex;align-items:center;z-index:50;box-shadow:0 4px 24px rgba(0,0,0,.18)}.brand{width:var(--sidebar);display:flex;align-items:center;gap:10px;padding:0 20px}.brand img{width:42px;height:42px;object-fit:contain}.brand-word{font-weight:800;letter-spacing:.14em;font-size:18px}.brand-word b{color:var(--cyan)}.topbar-main{flex:1;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.topbar-title{font-size:13px;color:#b9c9da}.user-chip{display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--cyan));display:grid;place-items:center;font-weight:800;color:#fff}.user-meta{line-height:1.15}.user-meta small{display:block;color:#9fb4c8;margin-top:3px}.menu-toggle{display:none;border:0;background:transparent;color:#fff;font-size:24px;padding:8px}.app-body{padding-top:70px;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr);min-height:100vh}.sidebar{position:fixed;top:70px;bottom:0;width:var(--sidebar);overflow:auto;background:#08192d;color:#d8e4ef;padding:18px 12px;border-top:1px solid rgba(255,255,255,.05)}.nav-section{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:#6f8aa5;padding:15px 12px 7px}.nav-link{display:flex;align-items:center;gap:11px;color:#cbd9e8;padding:10px 12px;margin:3px 0;border-radius:10px;font-size:14px;transition:.18s}.nav-link:hover{background:#0e2b49;color:#fff}.nav-link.active{background:linear-gradient(90deg,#0b76e8,#075dbb);color:#fff;box-shadow:0 7px 18px rgba(4,111,224,.25)}.nav-icon{width:24px;height:24px;border:1px solid rgba(122,203,255,.35);border-radius:7px;display:grid;place-items:center;font-size:12px;color:#61dbff;flex:none}.main{grid-column:2;padding:28px 30px 60px;min-width:0}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:22px}.page-title{margin:0;font-size:30px;letter-spacing:-.03em}.page-subtitle{margin:6px 0 0;color:var(--muted);font-size:14px}.head-actions{display:flex;gap:9px;flex-wrap:wrap}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px}.card.soft{box-shadow:none}.card.dark{background:linear-gradient(135deg,#0a1c32,#0f3252);color:#fff;border-color:#153b5f}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.kpi{position:relative;overflow:hidden;padding:20px}.kpi:after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-25px;top:-25px;background:radial-gradient(circle,rgba(16,211,221,.18),transparent 65%)}.kpi-label{color:var(--muted);font-size:13px}.kpi-value{font-size:30px;font-weight:800;margin-top:8px;letter-spacing:-.03em}.kpi-note{color:var(--success);font-size:12px;margin-top:6px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:0;border-radius:10px;padding:10px 14px;background:linear-gradient(135deg,#087cf0,#05a6e7);color:#fff;font-weight:700;font-size:14px;cursor:pointer;box-shadow:0 7px 16px rgba(8,124,240,.18)}.btn:hover{filter:brightness(1.04);color:#fff}.btn.secondary{background:#edf3f8;color:#19324b;box-shadow:none}.btn.dark{background:#0b2139}.btn.success{background:linear-gradient(135deg,#10a777,#14c496)}.btn.danger{background:#fee2e2;color:#b91c1c;box-shadow:none}.btn.small{padding:7px 10px;font-size:12px}.btn.ghost{background:transparent;border:1px solid #cbd5e1;color:#345;box-shadow:none}.searchbar{display:flex;gap:8px;margin-bottom:16px}.searchbar input{max-width:380px}.field{margin-bottom:15px}.field label{display:block;font-size:13px;font-weight:750;margin-bottom:6px;color:#334155}.field .hint{font-size:11px;color:#94a3b8;margin-top:5px}.field input,.field select,.field textarea{width:100%;padding:10px 11px;border:1px solid #cbd5e1;border-radius:10px;background:#fff;color:#172033;outline:none;transition:.15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:#2397ed;box-shadow:0 0 0 3px rgba(35,151,237,.11)}.field textarea{min-height:110px;resize:vertical}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 15px}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.form-actions{display:flex;gap:9px;align-items:center;margin-top:8px}.table-wrap{overflow:auto;border-radius:12px;border:1px solid var(--line)}table{width:100%;border-collapse:collapse;background:#fff;min-width:680px}th{font-size:11px;text-transform:uppercase;letter-spacing:.07em;color:#738398;background:#f8fafc}th,td{padding:12px 13px;border-bottom:1px solid #edf1f5;text-align:left;vertical-align:top}tbody tr:hover{background:#fbfdff}tbody tr:last-child td{border-bottom:0}.muted{color:var(--muted)}.tiny{font-size:12px}.badge{display:inline-flex;align-items:center;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:750;background:#eaf3ff;color:#0868c9}.badge.green{background:#dcfce7;color:#047857}.badge.yellow{background:#fef3c7;color:#a16207}.badge.red{background:#fee2e2;color:#b91c1c}.badge.gray{background:#eef2f6;color:#526176}.badge.cyan{background:#cffafe;color:#0e7490}.flash,.errors{padding:12px 14px;border-radius:11px;margin-bottom:18px;border:1px solid}.flash{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.errors{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.errors ul{margin:5px 0 0;padding-left:20px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 14px}.section-title h2,.section-title h3{margin:0}.divider{height:1px;background:var(--line);margin:20px 0}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block;background:#94a3b8;margin-right:6px}.status-dot.green{background:#10b981}.status-dot.blue{background:#0ea5e9}.status-dot.orange{background:#f59e0b}.money{text-align:right;font-variant-numeric:tabular-nums}.line-items{width:100%;border-collapse:separate;border-spacing:0 7px}.line-items th{background:transparent;border:0;padding:3px 7px}.line-items td{border:0;padding:4px}.line-items input,.line-items select{width:100%;padding:8px;border:1px solid #cbd5e1;border-radius:8px}.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line);margin-bottom:18px}.tab{padding:10px 12px;color:#65758b;border-bottom:2px solid transparent}.tab.active{color:#087cf0;border-color:#087cf0;font-weight:700}.timeline{display:grid;gap:10px}.timeline-item{display:grid;grid-template-columns:74px 1fr auto;gap:12px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.timeline-time{font-weight:800;color:#0b72d1}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:10px;overflow:auto;padding-bottom:5px}.day-col{min-height:260px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px}.day-head{font-size:12px;font-weight:800;color:#4b6175;margin-bottom:9px}.event{padding:9px;border-left:3px solid #1584e9;background:#eff7ff;border-radius:8px;margin-bottom:8px;font-size:12px}.event b{display:block;margin-bottom:3px}.stock-table td.qty{font-weight:800}.signature-box{background:#fff;border:1px dashed #94a3b8;border-radius:12px;padding:8px}.signature-box canvas{width:100%;height:170px;display:block;touch-action:none}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.photo-grid img{width:100%;height:100px;object-fit:cover;border-radius:10px;border:1px solid var(--line)}.logo-lockup{display:flex;align-items:center;gap:12px}.logo-lockup img{width:52px;height:52px;object-fit:contain}.module-pill{display:inline-flex;align-items:center;padding:7px 10px;border-radius:999px;background:#eaf3ff;color:#0c66b9;font-size:12px;font-weight:700;margin:3px}.module-pill.off{background:#f1f5f9;color:#94a3b8}.empty{padding:28px;text-align:center;color:#7a8a9d}.pagination{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:15px}.pagination a,.pagination span{display:inline-flex;min-width:34px;height:34px;align-items:center;justify-content:center;border:1px solid var(--line);background:#fff;border-radius:8px;color:#355}.pagination .active{background:#087cf0;color:#fff;border-color:#087cf0}.login-page{min-height:100vh;display:grid;grid-template-columns:1.15fr .85fr;background:radial-gradient(circle at 20% 10%,#0f4b7d 0,#07172a 43%,#040d18 100%)}.login-brand{padding:60px;display:flex;flex-direction:column;justify-content:center;color:#fff;position:relative;overflow:hidden}.login-brand:after{content:"";position:absolute;width:480px;height:480px;border:1px solid rgba(30,214,229,.2);border-radius:80px;transform:rotate(35deg);right:-180px;top:80px}.login-brand .big-logo{width:180px;height:180px;object-fit:contain;filter:brightness(1.28) saturate(1.08) drop-shadow(0 10px 24px rgba(0,190,255,.22))}.login-brand h1{font-size:48px;line-height:1.05;margin:20px 0 10px;max-width:600px}.login-brand h1 span{color:var(--cyan)}.login-brand p{font-size:19px;color:#bfd0df;max-width:560px}.login-panel{background:#fff;display:flex;align-items:center;justify-content:center;padding:40px}.login-card{width:min(430px,100%)}.login-card h2{font-size:28px;margin-bottom:5px}.login-card .brand-small{display:none}.upload-zone{border:2px dashed #b8c8d8;border-radius:14px;padding:24px;text-align:center;background:#f8fbff}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#eff3f7;padding:2px 5px;border-radius:5px;font-size:12px}.mobile-only{display:none}
@media(max-width:1050px){.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.login-page{grid-template-columns:1fr}.login-brand{display:none}.login-card .brand-small{display:flex;margin-bottom:25px}.login-panel{min-height:100vh}}
@media(max-width:800px){:root{--sidebar:250px}.brand{width:auto;padding-left:12px}.brand-word{font-size:15px}.topbar-main{padding:0 12px}.topbar-title,.user-meta{display:none}.menu-toggle{display:block}.app-body{grid-template-columns:1fr}.sidebar{transform:translateX(-102%);transition:.2s;z-index:45;box-shadow:10px 0 30px rgba(0,0,0,.2)}body.nav-open .sidebar{transform:translateX(0)}.main{grid-column:1;padding:20px 14px 50px}.page-head{flex-direction:column}.head-actions{width:100%}.grid,.grid.two,.grid.four,.form-grid,.form-grid.two{grid-template-columns:1fr}.card{padding:15px}.page-title{font-size:25px}.desktop-only{display:none}.mobile-only{display:block}.timeline-item{grid-template-columns:62px 1fr}.timeline-item>:last-child{grid-column:2}.topbar{height:64px}.app-body{padding-top:64px}.sidebar{top:64px}.brand img{width:38px;height:38px}}

/* RC1.2 - archivio rapportini, utenti/ruoli e miglioramenti mobile */
.table-actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.report-mobile-list{display:grid;gap:12px}.report-mobile-card{padding:15px}.report-mobile-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mobile-card-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}.user-save-cell{display:flex;gap:7px;align-items:center}.user-save-cell input{min-width:180px}.role-help>div{padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.technician-timeline{color:inherit}.technician-timeline:hover{background:#f7fbff}.report-filter-actions .form-actions{display:flex;gap:8px}

@media(max-width:800px){
  .head-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.head-actions>a,.head-actions>form,.head-actions>form .btn{width:100%}.head-actions>.btn{width:100%}
  .week-grid{grid-template-columns:1fr;overflow:visible}.day-col{min-height:auto}
  .week-grid .event{font-size:13px;padding:12px}.week-grid .event b{font-size:14px}
  .timeline{gap:8px}.timeline-item{grid-template-columns:58px 1fr;padding:11px}.timeline-item>:last-child{grid-column:2;justify-self:start}
  .technician-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.technician-kpis .kpi-value{font-size:25px}
  .mobile-card-actions{grid-template-columns:1fr}.mobile-card-actions .btn{width:100%}
  .report-filters .form-grid{grid-template-columns:1fr}.report-filter-actions label{display:none}.report-filter-actions .form-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.report-filter-actions .btn{width:100%}
  .signature-box canvas{height:210px}
  .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:520px){
  .technician-kpis{grid-template-columns:1fr 1fr}.topbar .btn.small{padding:7px 8px}.brand-word{display:none}.mobile-card-actions{grid-template-columns:1fr}.page-title{font-size:23px}
}

/* RC1.3 - modalità mobile tecnico / field service */
.nav-backdrop{display:none}.info-note{padding:11px 13px;margin-bottom:16px;border:1px solid #bae6fd;border-radius:11px;background:#f0f9ff;color:#075985;font-size:13px}.signature-preview{max-width:100%;height:130px;object-fit:contain;border:1px solid var(--line);border-radius:10px}.signature-preview.technician{height:110px}.mobile-only.report-mobile-list,.mobile-only.intervention-mobile-list{display:none}.intervention-mobile-list,.report-mobile-list{gap:12px}.intervention-mobile-card{display:block;color:inherit;padding:15px}.intervention-mobile-card:hover{color:inherit}.intervention-mobile-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.intervention-mobile-top strong{display:block;margin-top:7px;line-height:1.3}.intervention-mobile-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:12px;color:#34566f;font-size:13px}.intervention-mobile-customer{font-weight:750;margin-top:9px}.mobile-open-hint{display:block;margin-top:12px;color:#087cf0;font-weight:750;font-size:13px}.field-shortcuts{gap:10px;margin:-4px 0 16px}.field-shortcut{display:flex;flex-direction:column;min-width:0;padding:13px;border:1px solid #cfe4f8;border-radius:13px;background:#fff;color:var(--ink);box-shadow:var(--shadow)}.field-shortcut:hover{color:var(--ink)}.field-shortcut-icon{font-size:22px;color:#087cf0}.field-shortcut strong{margin-top:4px}.field-shortcut small{margin-top:3px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.technician-bottom-nav{display:none}.report-photo-grid a{display:block}.report-photo-grid img{height:130px}.report-form .hint{font-size:12px;color:var(--muted);margin:-5px 0 10px}.intervention-search input{width:100%}

@media(max-width:800px){
  body.nav-open{overflow:hidden}.nav-backdrop{position:fixed;inset:64px 0 0 0;background:rgba(4,13,24,.5);z-index:44;opacity:0;pointer-events:none;display:block;transition:.2s}body.nav-open .nav-backdrop{opacity:1;pointer-events:auto}.sidebar{z-index:46}
  body.technician-user .main{padding-bottom:96px}.technician-bottom-nav.mobile-only{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid!important;grid-template-columns:repeat(4,1fr);padding:7px max(8px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));background:#071426;border-top:1px solid rgba(255,255,255,.12);box-shadow:0 -8px 24px rgba(4,13,24,.18)}.technician-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:48px;border-radius:10px;color:#a9bfd2;font-size:12px}.technician-bottom-nav a span{display:grid;place-items:center;min-width:25px;height:22px;font-weight:800;color:#65dfff}.technician-bottom-nav a small{font-size:10px}.technician-bottom-nav a.active{background:#0d3155;color:#fff}.technician-bottom-nav a.active span{color:#fff}
  .mobile-only.report-mobile-list,.mobile-only.intervention-mobile-list{display:grid}.field-shortcuts.mobile-only{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
  .searchbar{display:grid;grid-template-columns:1fr auto}.searchbar input{max-width:none;min-width:0}.searchbar .btn{min-height:46px}
  .intervention-page-head{margin-bottom:14px}.intervention-head-actions{grid-template-columns:repeat(2,minmax(0,1fr));position:sticky;top:68px;z-index:20;padding:8px;background:rgba(244,247,251,.96);border:1px solid var(--line);border-radius:13px;box-shadow:0 8px 24px rgba(15,35,60,.08);backdrop-filter:blur(6px)}.intervention-head-actions>*{min-width:0}.intervention-head-actions .btn{min-height:48px}.intervention-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.intervention-kpis .kpi{padding:14px}.intervention-kpis .kpi-value{font-size:19px!important}.intervention-detail-grid{grid-template-columns:1fr}.intervention-detail-grid .card{padding:17px}.intervention-detail-grid p{line-height:1.5}
  .report-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-summary-grid .card{padding:14px}.report-mobile-card{padding:15px}.report-mobile-list{gap:10px}
  .report-form{padding:14px}.report-form .field input,.report-form .field select,.report-form .field textarea{min-height:48px;font-size:16px}.report-form .field textarea{min-height:125px}.report-materials-wrap{overflow:visible;border:0}.report-materials-table{display:block;min-width:0;background:transparent}.report-materials-table thead{display:none}.report-materials-table tbody{display:grid;gap:12px}.report-materials-table tr{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#f8fbff}.report-materials-table td{display:block;padding:0;border:0;min-width:0}.report-materials-table td:nth-child(1),.report-materials-table td:nth-child(2),.report-materials-table td:nth-child(3){grid-column:1/-1}.report-materials-table td:nth-child(6){display:flex;justify-content:flex-end;align-items:end}.report-materials-table td:before{display:block;margin-bottom:4px;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.report-materials-table td:nth-child(1):before{content:'Articolo'}.report-materials-table td:nth-child(2):before{content:'Magazzino / furgone'}.report-materials-table td:nth-child(3):before{content:'Descrizione'}.report-materials-table td:nth-child(4):before{content:'Quantità'}.report-materials-table td:nth-child(5):before{content:'U.M.'}.report-materials-table select,.report-materials-table input{min-height:46px;font-size:16px}.report-materials-table .btn.danger{min-width:46px;min-height:46px}.report-save-actions{position:sticky;bottom:72px;z-index:25;display:grid;grid-template-columns:1fr 1fr;padding:9px;margin-left:-5px;margin-right:-5px;background:rgba(255,255,255,.96);border:1px solid var(--line);border-radius:13px;box-shadow:0 -7px 22px rgba(15,35,60,.08);backdrop-filter:blur(6px)}.report-save-actions .btn{width:100%;min-height:49px}.signature-box canvas{height:220px}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-photo-grid img{height:145px}.field input[type=file]{padding:11px;background:#f8fafc}
  .technician-home-head .head-actions{grid-template-columns:1fr 1fr}.technician-timeline{min-height:70px}.technician-kpis .card{min-height:112px}
}

@media(max-width:520px){
  .field-shortcuts.mobile-only{grid-template-columns:1fr 1fr}.field-shortcut{padding:11px}.field-shortcut strong{font-size:13px}.field-shortcut small{font-size:10px}.intervention-head-actions{grid-template-columns:1fr 1fr}.intervention-head-actions:has(> :only-child){grid-template-columns:1fr}.report-summary-grid{grid-template-columns:1fr 1fr}.report-save-actions{grid-template-columns:1fr 1fr}.technician-kpis .kpi{min-height:104px}.technician-kpis .kpi-label{font-size:11px}.technician-kpis .kpi-note{font-size:10px}
}


/* RC1.3.1 - hotfix ergonomia rapportino mobile */
@media(max-width:800px){
  /* La barra azioni resta nel flusso: non copre più stato, note, materiali, foto o firme durante lo scroll. */
  .report-save-actions{
    position:static;
    bottom:auto;
    z-index:auto;
    margin:22px 0 0;
    padding:9px;
    display:grid;
    grid-template-columns:1fr 1fr;
    background:#fff;
    border:1px solid var(--line);
    border-radius:13px;
    box-shadow:var(--shadow);
    backdrop-filter:none;
  }
  .report-save-actions .btn{width:100%;min-height:50px}

  /* Spazio reale sopra la bottom navigation del tecnico. */
  body.technician-user .report-form{
    padding-bottom:calc(22px + env(safe-area-inset-bottom));
  }
  body.technician-user .main{
    padding-bottom:calc(108px + env(safe-area-inset-bottom));
  }

  /* Firma più compatta ma ancora comoda da usare con il dito. */
  .report-form .signature-box canvas{height:185px}

  /* Upload foto più leggibile/touch-friendly. */
  .report-form input[type=file]{
    width:100%;
    min-height:52px;
    padding:6px;
    border:1px solid #cbd5e1;
    border-radius:10px;
    background:#f8fbff;
    color:#334155;
  }
  .report-form input[type=file]::file-selector-button{
    min-height:38px;
    margin-right:10px;
    padding:8px 12px;
    border:0;
    border-radius:8px;
    background:#eaf3ff;
    color:#0b5fae;
    font-weight:800;
    cursor:pointer;
  }

  /* Ogni sezione importante ha un po' di respiro quando si scorre col dito. */
  .report-form .section-title{scroll-margin-top:82px}
  .report-form .field{scroll-margin-top:82px}
}

@media(max-width:520px){
  .report-save-actions{grid-template-columns:1fr 1fr;gap:8px}
  .report-form .signature-box canvas{height:175px}
}


/* RC1.3.2 - gestione tempi e sessioni di lavoro */
.time-section-title{align-items:flex-start}
.time-entry-list{display:grid;gap:12px;margin-bottom:12px}
.time-entry-card{padding:14px;border:1px solid var(--line);border-radius:13px;background:#f8fbff}
.time-entry-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.time-entry-duration{margin-top:6px;font-weight:700}
.time-entry-duration.time-warning{color:#a16207}
.time-duration-summary{margin-bottom:14px}
.time-duration-summary.time-summary-warning{background:#fffbeb;border-color:#fde68a;color:#92400e}
.time-duration-summary.time-summary-danger{background:#fff1f2;border-color:#fecdd3;color:#be123c}
.time-session-summary-list{display:grid;gap:8px}
.time-session-summary{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#f8fbff}
.time-session-summary strong{min-width:260px}
.time-session-summary span{color:#334155}
.time-session-summary small{width:100%;color:var(--muted)}

@media(max-width:800px){
  .time-section-title{gap:10px}
  .time-section-title .btn{width:100%}
  .time-entry-card{padding:12px}
  .time-entry-card .form-grid{grid-template-columns:1fr}
  .time-session-summary{display:block}
  .time-session-summary strong,.time-session-summary span,.time-session-summary small{display:block;min-width:0}
  .time-session-summary span{margin-top:5px}
  .time-session-summary small{margin-top:4px}
}

/* RC1.6.2 - dashboard modulare e rifinitura UX */
.dashboard-kpis{grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}
.dashboard-content-grid{grid-template-columns:repeat(auto-fit,minmax(360px,1fr))}
.dashboard-list-row{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 0;border-bottom:1px solid var(--line)}
.dashboard-list-row:last-child{border-bottom:0}
.dashboard-list-link{color:inherit}
.dashboard-list-link:hover{color:inherit;background:#f8fbff;margin-left:-8px;margin-right:-8px;padding-left:8px;padding-right:8px;border-radius:9px}
.dashboard-list-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;color:var(--muted);font-size:12px}
.dashboard-license-card{min-height:0}
.dashboard-license-plan{font-size:13px;color:#bfd0df}
@media(max-width:800px){
  .dashboard-kpis,.dashboard-content-grid{grid-template-columns:1fr}
  .dashboard-list-row{align-items:flex-start}
  .dashboard-list-meta{justify-content:flex-start}
}

/* RC1.6.2 LOGIN MEDIA - restyling login premium */
.nexora-login-body{min-height:100vh;background:#fff}
.login-page-media{grid-template-columns:minmax(0,1.18fr) minmax(460px,.82fr);background:#07182b}
.login-brand-media{padding:54px clamp(44px,5.2vw,82px);justify-content:center;background:
  radial-gradient(circle at 22% 12%,rgba(10,124,240,.34),transparent 34%),
  radial-gradient(circle at 80% 66%,rgba(16,211,221,.12),transparent 31%),
  linear-gradient(135deg,#071426 0%,#0a2c4d 56%,#07589a 145%)}
.login-brand-media:before{content:"";position:absolute;inset:-18% -18% auto auto;width:70%;height:72%;background:linear-gradient(135deg,transparent 20%,rgba(24,125,211,.18) 20% 36%,transparent 36% 54%,rgba(11,87,154,.18) 54% 70%,transparent 70%);transform:rotate(-4deg);pointer-events:none}
.login-brand-media:after{width:520px;height:520px;right:-180px;top:36px;border-color:rgba(16,211,221,.32);border-width:2px;border-radius:105px;box-shadow:0 0 34px rgba(16,211,221,.08);transform:rotate(38deg)}
.login-brand-glow{position:absolute;left:8%;top:8%;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(5,166,231,.22),transparent 68%);filter:blur(12px);pointer-events:none}
.login-brand-content{position:relative;z-index:2;width:min(690px,100%)}
.login-logo-wrap{display:flex;align-items:center;width:275px;min-height:205px;margin-left:-10px;margin-bottom:4px;filter:drop-shadow(0 18px 30px rgba(1,16,35,.34))}
.login-brand-media .big-logo{width:275px;height:275px;object-fit:contain;filter:saturate(1.12) drop-shadow(0 0 34px rgba(0,204,255,.36));transform:scale(1.04);transform-origin:left center}
.login-product-badge{display:inline-flex;align-items:center;min-height:34px;padding:6px 20px;border:1px solid rgba(33,210,255,.82);border-radius:999px;background:rgba(5,27,49,.44);box-shadow:inset 0 0 0 1px rgba(255,255,255,.03),0 8px 24px rgba(0,0,0,.10);color:#eafaff;font-size:12px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;backdrop-filter:blur(8px)}
.login-brand-media h1{font-size:clamp(42px,4vw,62px);line-height:1.03;letter-spacing:-.04em;margin:30px 0 16px;max-width:690px;text-shadow:0 8px 30px rgba(0,0,0,.14)}
.login-brand-media h1 span{color:#14d8e2}
.login-brand-copy{margin:0!important;max-width:620px!important;font-size:18px!important;line-height:1.55;color:#c4d7e8!important}
.login-feature-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:38px;max-width:690px}
.login-feature{min-width:0;color:#fff}
.login-feature-icon{width:52px;height:52px;display:grid;place-items:center;border:1px solid rgba(29,189,255,.68);border-radius:13px;background:linear-gradient(145deg,rgba(9,43,75,.76),rgba(5,24,44,.88));box-shadow:0 10px 26px rgba(0,0,0,.12),inset 0 0 18px rgba(16,211,221,.04)}
.login-feature-icon svg{width:25px;height:25px;stroke:#c4f5ff;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.login-feature strong,.login-feature small{display:block}
.login-feature strong{margin-top:11px;font-size:14px}
.login-feature small{margin-top:2px;color:#bcd0e1;font-size:12px}
.login-panel-media{padding:48px clamp(34px,5vw,82px);background:linear-gradient(180deg,#fff 0%,#fbfdff 100%)}
.login-card-media{width:min(520px,100%);padding:42px 40px 34px;border:1px solid #dfe8f1;border-radius:20px;background:rgba(255,255,255,.98);box-shadow:0 22px 70px rgba(15,35,60,.10)}
.login-card-heading h2{margin:0 0 8px;font-size:31px;line-height:1.16;letter-spacing:-.035em;color:#071d37}
.login-card-heading h2 span{background:linear-gradient(90deg,#087cf0,#10cbd8);-webkit-background-clip:text;background-clip:text;color:transparent}
.login-card-heading p{margin:0 0 28px;font-size:16px}
.login-errors{margin-bottom:20px}
.login-form-media .login-field{margin-bottom:20px}
.login-form-media .login-field label{font-size:12px;color:#0d2744;margin-bottom:8px}
.login-input-wrap{position:relative}
.login-input-wrap .login-input-icon{position:absolute;left:15px;top:50%;transform:translateY(-50%);width:22px;height:22px;display:grid;place-items:center;color:#244a70;pointer-events:none;z-index:2}
.login-input-wrap .login-input-icon svg,.login-password-toggle svg{width:20px;height:20px;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.login-form-media .login-field input{height:54px;padding:11px 48px;border-color:#cfdbe7;border-radius:11px;font-size:14px;box-shadow:inset 0 1px 2px rgba(15,35,60,.02)}
.login-form-media .login-field input::placeholder{color:#94a6b9}
.login-form-media .login-field input:focus{border-color:#1d9cf0;box-shadow:0 0 0 4px rgba(29,156,240,.10)}
.login-password-toggle{position:absolute;right:12px;top:50%;transform:translateY(-50%);width:36px;height:36px;display:grid;place-items:center;border:0;background:transparent;color:#315574;border-radius:8px;cursor:pointer}
.login-password-toggle:hover{background:#f0f7fd}
.login-password-toggle .eye-closed{display:none}
.login-password-toggle[aria-pressed="true"] .eye-open{display:none}
.login-password-toggle[aria-pressed="true"] .eye-closed{display:block}
.login-remember{display:inline-flex;align-items:center;gap:9px;margin:1px 0 20px;color:#223b53;font-size:13px;cursor:pointer}
.login-remember input{width:17px;height:17px;accent-color:#087cf0}
.login-submit{width:100%;min-height:56px;border-radius:11px;font-size:14px;box-shadow:0 14px 28px rgba(8,124,240,.24)}
.login-submit-arrow{font-size:22px;line-height:1;transition:transform .18s}
.login-submit:hover .login-submit-arrow{transform:translateX(3px)}
.login-forgot{text-align:center;margin-top:18px;font-size:13px}
.login-forgot a{font-weight:650;color:#0870d5}
.login-security-note{display:flex;align-items:flex-start;gap:12px;margin-top:30px;padding-top:24px;border-top:1px solid #e6edf4;color:#687c90}
.login-security-note p{margin:1px 0 0;font-size:12px;line-height:1.45}
.login-security-icon{width:30px;height:30px;display:grid;place-items:center;flex:none;color:#244e77}
.login-security-icon svg{width:25px;height:25px;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.login-mobile-brand{display:none!important}

@media(max-width:1320px){
  .login-page-media{grid-template-columns:minmax(0,1.08fr) minmax(430px,.92fr)}
  .login-brand-media{padding-left:46px;padding-right:46px}
  .login-logo-wrap{width:235px;min-height:180px}.login-brand-media .big-logo{width:235px;height:235px}
  .login-feature-grid{gap:12px}.login-feature strong{font-size:13px}.login-feature small{font-size:11px}
}
@media(max-width:1050px){
  .login-page-media{display:block;background:#fff}
  .login-brand-media{display:none}
  .login-panel-media{min-height:100vh;padding:34px 22px;background:radial-gradient(circle at 50% 0,#eef8ff 0,#fff 45%)}
  .login-card-media{padding:34px 30px}
  .login-mobile-brand{display:flex!important;align-items:center;gap:12px;margin:0 0 24px}
  .login-mobile-brand img{width:62px;height:62px;object-fit:contain;filter:brightness(1.15) saturate(1.08)}
  .login-mobile-brand strong{font-size:18px;letter-spacing:.18em;color:#0a2a4d}
}
@media(max-width:560px){
  .login-panel-media{padding:18px 12px;align-items:flex-start}
  .login-card-media{margin-top:18px;padding:26px 20px 24px;border-radius:16px;box-shadow:0 14px 45px rgba(15,35,60,.09)}
  .login-card-heading h2{font-size:27px}.login-card-heading p{font-size:14px;margin-bottom:24px}
  .login-form-media .login-field input{height:52px}
}
