/* =====================================================================
   Aspetto moderno — sovrascrive i colori e le forme di stile.css.
   Per cambiare l'aspetto basta intervenire qui: la struttura della pagina non cambia.
   ===================================================================== */
:root{
  --ink:#0E1A17;
  --ink-soft:#16241F;
  --ink-line:rgba(255,255,255,.08);
  --paper:#E8EDEB;
  --paper-panel:#FFFFFF;
  --line:#E2E7E4;
  --line-strong:#CBD3CF;
  --brand:#E8722A;
  --teal:#2A9D8A;
  --teal-dark:#1E7A6B;
  --mint:#7FE0BF;
  --text-2:#44524D;
  --text-3:#76837E;
  --radius:10px;
  --radius-lg:16px;
  --shadow:0 12px 40px rgba(10,20,17,.22);
  --shadow-sm:0 2px 10px rgba(10,20,17,.10);
  --font:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-display:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
}
body{font-feature-settings:'cv11','ss01';-webkit-font-smoothing:antialiased;}
.sidebar-head h1,.pm-top h1,.modal h2,.login-card h2,.info-panel-head h2,.pm-card h2,.pm-agent-head h2,.stat .num{letter-spacing:-.02em;}

/* ---------- Pulsanti ---------- */
.btn{border-radius:12px;font-weight:600;transition:transform .12s ease,box-shadow .15s ease,background .15s ease,border-color .15s ease;}
.btn:active:not(:disabled){transform:scale(.98);}
.btn-primary{background:linear-gradient(135deg,#34B29D,#1E7A6B);box-shadow:0 4px 14px rgba(42,157,138,.35);}
.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2A9D8A,#186555);}
.btn-edit,.btn-edit-main{background:linear-gradient(135deg,#F28A40,#DD5E1B);box-shadow:0 4px 14px rgba(232,114,42,.35);}
.btn-edit:hover,.btn-edit-main:hover{background:linear-gradient(135deg,#E8722A,#C9500F);}
.btn-ghost{border-radius:12px;background:#fff;}
.chip-btn{border-radius:999px;backdrop-filter:blur(6px);}

/* ---------- Schermata di accesso ---------- */
.login-overlay{
  background:
    radial-gradient(60% 50% at 15% 10%,rgba(42,157,138,.55),transparent 60%),
    radial-gradient(50% 45% at 90% 85%,rgba(232,114,42,.45),transparent 60%),
    radial-gradient(40% 40% at 80% 5%,rgba(233,191,118,.25),transparent 60%),
    #0A1411;
  overflow:hidden;
}
.login-card{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:24px;padding:36px 32px 30px;
  backdrop-filter:blur(22px) saturate(140%);-webkit-backdrop-filter:blur(22px) saturate(140%);
  box-shadow:0 30px 80px rgba(0,0,0,.45);color:#F4F1E8;max-width:400px;animation:fadeUp .35s ease;
}
.login-card h2{font-size:24px;margin:16px 0 6px;}
.login-card p{color:rgba(244,241,232,.72);}
.login-card label{color:rgba(244,241,232,.8);}
.login-card input{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:12px;padding:13px 14px;}
.login-card input:focus{border-color:#7FE0BF;box-shadow:0 0 0 4px rgba(127,224,191,.2);background:rgba(255,255,255,.14);}
.login-card .brand-mark.lg{width:64px;height:64px;filter:drop-shadow(0 8px 20px rgba(232,114,42,.35));}
.login-msg{color:#FFB4A0;}

/* ---------- Pannello laterale ---------- */
.sidebar{
  background:linear-gradient(180deg,#12211D 0%,#0B1512 100%);border-right:1px solid rgba(255,255,255,.05);
  box-shadow:6px 0 30px rgba(10,20,17,.18);
}
.sidebar-head h1{font-size:17px;}
.search-wrap input{border-radius:12px;background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.1);padding:11px 12px 11px 38px;}
.search-wrap input:focus{border-color:var(--mint);box-shadow:0 0 0 3px rgba(127,224,191,.15);}
.search-results{border-radius:14px;background:#16241F;box-shadow:var(--shadow);}
.sr-badge{border-radius:999px;padding:2px 8px;}
.stats{border:none;margin:8px 16px 4px;padding:14px 4px;background:rgba(255,255,255,.04);border-radius:14px;}
.stat{border-color:rgba(255,255,255,.08);padding-left:14px !important;}
.stat .num{font-size:23px;}
.stat.covered .num{color:#FFB37A;}
.agent-row{border-left:none;border-radius:12px;padding:9px 11px;}
.agent-row.active{background:linear-gradient(90deg,rgba(232,114,42,.22),rgba(255,255,255,.06));box-shadow:inset 0 0 0 1px rgba(232,114,42,.35);}
.agent-dot{box-shadow:0 0 0 3px rgba(255,255,255,.06);}
.sidebar-foot{border-top:1px solid rgba(255,255,255,.06);}
.btn-edit-main{border-radius:14px;padding:13px;font-size:14.5px;}
.sidebar-foot .btn-dark-ghost{border-radius:12px;}
.more-menu{border-radius:14px;background:#16241F;padding:6px;}
.more-menu button{border-radius:9px;padding:10px 11px;}

/* ---------- Mappa ---------- */
#map,#map-europe,.leaflet-container,.loading-overlay{background:linear-gradient(160deg,#EEF2F0,#DDE6E2);}
.map-hint{background:rgba(14,26,23,.82);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.08);padding:9px 16px;}
.back-to-italy-btn{border-radius:999px;background:rgba(14,26,23,.88);backdrop-filter:blur(10px);}
.legend{border-radius:14px;background:rgba(255,255,255,.88);backdrop-filter:blur(10px);border-color:rgba(255,255,255,.6);}
.leaflet-bar{border:none !important;box-shadow:var(--shadow-sm) !important;border-radius:12px !important;overflow:hidden;}
.leaflet-bar a{width:34px !important;height:34px !important;line-height:34px !important;color:var(--ink) !important;}
.toggle-btn{border-radius:0 12px 12px 0;background:#12211D;}

/* ---------- Scheda informazioni ---------- */
.info-panel{background:linear-gradient(180deg,#12211D,#0B1512);box-shadow:-14px 0 40px rgba(10,20,17,.3);}
.agent-card{background:rgba(255,255,255,.05);border-radius:16px;padding:14px;}
.role-badge,.code-badge,.sede-badge{border-radius:999px;padding:2px 9px;}
.chip{border-radius:999px;}

/* ---------- Finestre ---------- */
.modal-overlay{background:rgba(8,16,13,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);}
.modal{border-radius:22px;padding:28px;box-shadow:0 30px 80px rgba(0,0,0,.35);}
.modal-icon{border-radius:14px;}
.modal-icon.edit{background:#FCE6D6;}
.login-modal input{border-radius:12px;padding:12px 14px;border-color:var(--line-strong);}
.login-modal input:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(232,114,42,.15);}
.toast{border-radius:14px;padding:12px 18px;backdrop-filter:blur(8px);}

/* ---------- Pagina "Modifica dati" ---------- */
.page-modifica{background:#F1F4F3;}
.pm-top{background:linear-gradient(90deg,#12211D,#0B1512);padding:14px 22px;border-bottom:none;box-shadow:0 4px 24px rgba(10,20,17,.2);z-index:2;}
.pm-back{border-radius:12px;}
.pm-top h1{font-size:20px;}
.pm-pending.on{color:#FFC98A;}
.pm-nav{background:#0E1A17;padding:22px 14px;}
.pm-tab{border-radius:14px;padding:13px 14px;transition:background .15s ease;}
.pm-tab.on{background:linear-gradient(90deg,rgba(232,114,42,.22),rgba(255,255,255,.06));border-color:rgba(232,114,42,.4);box-shadow:none;}
.pm-tab strong{font-size:14.5px;}
.pm-main{padding:28px 32px 70px;}
.pm-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 1px 2px rgba(10,20,17,.04),0 8px 28px rgba(10,20,17,.05);}
.pm-card h2{font-size:17px;}
.pm-step{background:linear-gradient(135deg,#F28A40,#DD5E1B);color:#fff;width:26px;height:26px;}
.pm-main input[type=text],.pm-main input[type=search],.pm-main select,.pm-main textarea{border-radius:12px;padding:11px 13px;border-color:var(--line-strong);background:#FAFBFA;}
.pm-main input:focus,.pm-main select:focus,.pm-main textarea:focus{border-color:var(--teal);background:#fff;box-shadow:0 0 0 4px rgba(42,157,138,.14);}
.pm-list,.pm-all{border-radius:14px;}
.pm-list-row.sel{background:#E8F5F1;}
.mini-agent{background:#F1F4F3;border-color:#E2E7E4;}
.action-opt{border-radius:14px;border-width:1.5px;padding:13px 14px;transition:border-color .15s ease,box-shadow .15s ease;}
.action-opt:hover{box-shadow:var(--shadow-sm);}
.action-opt:has(input:checked){border-color:var(--teal);background:#EAF6F2;box-shadow:0 0 0 3px rgba(42,157,138,.12);}
.toggle-chip span{padding:7px 12px;}
.toggle-chip input:checked + span{background:#E8F5F1;}
.seg{background:#E6ECE9;border-radius:12px;}
.seg-opt{border-radius:9px;}
.pm-subtabs{background:#E6ECE9;border-radius:16px;}
.pm-subtab{border-radius:12px;}
.pm-subtab.on{background:#0E1A17;}
.pm-picker{border-radius:18px;background:#fff;}
.pm-pick{border-radius:11px;}
.pm-pick.on{background:#0E1A17;}
.pm-summary{border-radius:14px;}
.pm-summary.ready{background:#EAF6F2;}
.pm-empty{border-radius:18px;background:#fff;}
.pm-top .btn-ghost{background:transparent;}
.pm-top .btn-ghost:disabled{opacity:.4;}
