:root{--pf:#1f6feb;--pf-dark:#0d1b2a;--pf-sidebar:#111827;--pf-soft:#f4f7fb}
body.pf-body{background:#f5f7fb}.pf-sidebar{background:linear-gradient(180deg,#101827 0%,#17243a 100%)!important;border-right:0}.pf-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:#fff!important}.pf-brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#4f8cff,#175cd3);font-weight:800;font-size:22px;box-shadow:0 8px 20px rgba(31,111,235,.32)}.pf-brand small{display:block;font-size:10px;font-weight:500;letter-spacing:.07em;opacity:.65;text-transform:uppercase}.pf-sidebar .nav-link{border-radius:9px;margin:2px 8px;color:#c8d2e1}.pf-sidebar .nav-link:hover,.pf-sidebar .nav-link.active{background:rgba(255,255,255,.1);color:#fff}.pf-sidebar-user{border-top:1px solid rgba(255,255,255,.09);margin-top:25px}.pf-topbar{background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid #e8edf3}.card{border:1px solid #e7ecf2;box-shadow:0 1px 3px rgba(20,35,55,.04);border-radius:12px}.card-header{border-bottom:1px solid #edf1f5;min-height:54px}.pf-kpi .card-body{padding:20px}.pf-kpi-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:23px}.pf-number{font-size:25px;font-weight:750;line-height:1}.pf-muted{color:#667085}.pf-status{font-size:11px;letter-spacing:.02em;text-transform:uppercase}.table>thead>tr>th{font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#667085}.pf-click{cursor:pointer}.pf-contact{border:1px solid #e8edf3;border-radius:10px;padding:13px;background:#fff}.pf-timeline{position:relative;padding-left:23px}.pf-timeline:before{content:"";position:absolute;left:7px;top:7px;bottom:7px;width:2px;background:#e4eaf1}.pf-timeline-item{position:relative;padding-bottom:18px}.pf-timeline-item:before{content:"";position:absolute;left:-21px;top:5px;width:11px;height:11px;border-radius:50%;background:#fff;border:3px solid #3b82f6}.pf-kanban{display:grid;grid-template-columns:repeat(5,minmax(245px,1fr));gap:14px;overflow-x:auto;padding-bottom:10px}.pf-kanban-col{background:#eef2f7;border-radius:12px;padding:12px;min-height:380px}.pf-kanban-card{background:#fff;border:1px solid #e1e7ee;border-radius:10px;padding:12px;margin-bottom:10px;box-shadow:0 1px 2px rgba(16,24,40,.04)}.pf-calendar-shell{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px}.pf-calendar-filter{position:sticky;top:75px;height:max-content}.pf-cal-row{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px}.pf-cal-row:hover{background:#f3f6fa}.pf-dot{width:11px;height:11px;border-radius:50%;flex:0 0 auto}.fc{--fc-border-color:#e8edf3;--fc-today-bg-color:#f4f8ff;font-size:13px}.fc .fc-toolbar-title{font-size:18px;font-weight:700}.fc .fc-button-primary{background:#fff!important;border-color:#dce3eb!important;color:#344054!important;box-shadow:none!important}.fc .fc-button-primary.fc-button-active,.fc .fc-button-primary:hover{background:#edf4ff!important;color:#175cd3!important;border-color:#b9d1ff!important}.fc .fc-timegrid-slot{height:2.6em}.fc .fc-event{border:0!important;border-radius:7px!important;padding:2px 4px;box-shadow:0 2px 6px rgba(15,23,42,.12)}.pf-offer-rate{border-radius:12px;background:#f7faff;border:1px solid #dce9ff;padding:18px;text-align:center}.pf-offer-rate strong{display:block;font-size:25px;color:#175cd3}.pf-tabs .nav-link{border:0;color:#667085;padding:11px 15px}.pf-tabs .nav-link.active{color:#175cd3;border-bottom:2px solid #175cd3;background:transparent}.modal-content{border:0;border-radius:14px;box-shadow:0 20px 60px rgba(15,23,42,.2)}.pf-empty{padding:35px;text-align:center;color:#667085}.pf-client-hero{background:linear-gradient(135deg,#fff,#f6f9ff);border:1px solid #dfebff}.pf-progress-sm{height:6px}.min-w-0{min-width:0}
@media(max-width:991.98px){.pf-calendar-shell{grid-template-columns:1fr}.pf-calendar-filter{position:relative;top:auto}.pf-kanban{grid-template-columns:repeat(5,260px)}}

/* PrimeFlow V5 - palette chiara e task raggruppate */
:root{
  --pf:#4f8f78;
  --pf-dark:#294f44;
  --pf-sidebar:#eef6f1;
  --pf-sidebar-border:#d8e8df;
  --pf-soft:#f7faf8;
  --pf-accent:#6ba58f;
  --pf-accent-soft:#e5f2ec;
  --pf-text:#2d3e38;
}
body.pf-body{background:#f7faf8;color:var(--pf-text)}
.pf-sidebar{
  background:linear-gradient(180deg,#f1f8f4 0%,#e8f3ed 100%)!important;
  border-right:1px solid var(--pf-sidebar-border)!important;
  box-shadow:4px 0 20px rgba(45,78,65,.04);
}
.pf-navbar-brand{height:auto!important;min-height:96px;padding:15px 14px 10px!important}
.pf-brand{display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-decoration:none;color:#294f44!important;width:100%}
.pf-brand-logo{display:block;max-width:174px;width:100%;height:auto;object-fit:contain}
.pf-brand-suite{display:flex;align-items:baseline;gap:7px;padding-left:4px;color:#315d4e}
.pf-brand-suite b{font-size:15px;font-weight:800;letter-spacing:.01em}
.pf-brand-suite small{font-size:9px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#6f8d81}
.pf-brand-mark{display:none!important}
.pf-sidebar .nav-link{color:#49675d!important;border-radius:10px;margin:2px 8px;font-weight:500}
.pf-sidebar .nav-link:hover{background:rgba(79,143,120,.09)!important;color:#294f44!important}
.pf-sidebar .nav-link.active{background:#dceee5!important;color:#2d6855!important;font-weight:700;box-shadow:inset 3px 0 0 #63a087}
.pf-sidebar .nav-link-icon{color:#63917f}
.pf-sidebar-user{border-top:1px solid #d4e5dc!important;color:#49675d}
.pf-topbar{background:rgba(255,255,255,.96);border-bottom:1px solid #e3eee8}
.card{border-color:#e1ece6;box-shadow:0 2px 8px rgba(45,78,65,.045)}
.card-header{border-bottom-color:#e8f0ec}
.btn-primary{--tblr-btn-bg:#4f8f78;--tblr-btn-border-color:#4f8f78;--tblr-btn-hover-bg:#427b67;--tblr-btn-hover-border-color:#427b67;--tblr-btn-active-bg:#396c5b;--tblr-btn-active-border-color:#396c5b}
a{--tblr-link-color:#39735f;--tblr-link-hover-color:#2d5f4e}
.page-item.active .page-link{background:#4f8f78;border-color:#4f8f78}
.form-control:focus,.form-select:focus{border-color:#8cbaa7;box-shadow:0 0 0 .25rem rgba(79,143,120,.12)}
.pf-timeline-item:before{border-color:#63a087}
.pf-client-hero{background:linear-gradient(135deg,#fff,#f1f8f4);border-color:#dcebe3}
.pf-tabs .nav-link.active{color:#39735f;border-bottom-color:#5e9b84}
.fc{--fc-today-bg-color:#f0f8f4}
.fc .fc-button-primary.fc-button-active,.fc .fc-button-primary:hover{background:#e6f2ec!important;color:#39735f!important;border-color:#b8d7c9!important}

.pf-filter-card{background:linear-gradient(180deg,#ffffff 0%,#fbfdfc 100%)}
.pf-task-client{overflow:hidden}
.pf-task-client-header{background:#f6faf8;padding-top:14px;padding-bottom:14px}
.pf-service-group{border-top:1px solid #e7efe9}
.pf-service-group:first-child{border-top:0}
.pf-service-summary{list-style:none;display:flex;align-items:center;gap:12px;padding:14px 18px;cursor:pointer;background:#fbfdfc;transition:background .15s ease}
.pf-service-summary::-webkit-details-marker{display:none}
.pf-service-summary:hover{background:#f2f8f5}
.pf-service-summary strong{display:block;color:#2d4d42;font-size:14px}
.pf-service-summary small{display:block;color:#7a9188;margin-top:2px;font-size:11px}
.pf-service-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;background:#e5f2ec;color:#438069;font-size:18px;flex:0 0 auto}
.pf-service-chevron{color:#799087;transition:transform .18s ease}
.pf-service-group[open] .pf-service-chevron{transform:rotate(180deg)}
.pf-task-list{background:#fff}
.pf-task-row{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid #eef3f0;min-height:66px}
.pf-task-row:first-child{border-top:0}
.pf-task-row:hover{background:#fcfefd}
.pf-task-state-dot{width:12px;height:12px;border-radius:50%;border:2px solid #a9bbb4;background:#fff;flex:0 0 auto}
.pf-task-state-dot.is-done{background:#67a48c;border-color:#67a48c;box-shadow:0 0 0 3px #e7f2ed}
.pf-task-main{flex:1;min-width:0}
.pf-task-meta{display:flex;align-items:center;gap:14px;color:#768a82;font-size:12px;min-width:0;flex-wrap:wrap}
.pf-task-meta span{display:inline-flex;align-items:center;gap:4px;min-width:0}
.pf-task-meta .text-truncate{max-width:360px}
.pf-task-actions{display:flex;align-items:center;gap:6px;flex:0 0 auto}
@media(max-width:767.98px){
  .pf-task-row{align-items:flex-start;flex-wrap:wrap}
  .pf-task-actions{width:100%;padding-left:24px}
  .pf-brand-logo{max-width:145px}
  .pf-navbar-brand{min-height:82px}
}

/* V4.2 compact task table */
.pf-task-compact .card-header{min-height:42px}.pf-service-summary{min-height:38px;border-top:1px solid var(--tblr-border-color);background:#fbfcfb;cursor:pointer;display:flex;align-items:center;gap:.5rem}.pf-service-group:first-child .pf-service-summary{border-top:0}.pf-service-group[open]>.pf-service-summary{background:#f3f8f4}.pf-task-table thead th{font-size:.70rem;text-transform:uppercase;color:#66756b;background:#fafcfa;padding:.38rem .55rem}.pf-task-table td{padding:.38rem .55rem}.pf-task-table .form-select-sm,.pf-task-table .form-control-sm{min-height:30px;padding-top:.18rem;padding-bottom:.18rem;font-size:.78rem}.pf-task-table .btn-sm{--tblr-btn-padding-y:.22rem;--tblr-btn-padding-x:.38rem}.pf-task-done td:first-child .fw-semibold{text-decoration:line-through;color:#7c8b81}.pf-inline-form{margin:0}.pf-service-group:not([open]) .pf-service-chevron{transform:rotate(-90deg)}

/* V4.52 - Agenda commerciale compatta */
.pf-navbar-brand{overflow:hidden!important;min-height:82px!important;padding:10px 14px!important}
.pf-brand{align-items:center!important;justify-content:center!important;width:100%!important;overflow:hidden}
.pf-brand-logo{width:auto!important;height:auto!important;max-width:132px!important;max-height:68px!important;object-fit:contain!important;display:block!important;margin:0 auto!important}
.pf-brand-suite{display:none!important}
.pf-agenda-selector-card{position:relative;z-index:5}
.pf-agenda-check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:6px;max-height:290px;overflow:auto;padding:3px}
.pf-agenda-check{display:flex;align-items:center;gap:8px;padding:7px 9px;border:1px solid #e2ebe6;border-radius:8px;background:#fff;cursor:pointer;min-width:0}
.pf-agenda-check:hover{background:#f3f8f5;border-color:#cddfd6}.pf-agenda-check .text-truncate{font-size:12px}
.pf-agenda-chip{display:inline-flex;align-items:center;gap:5px;background:#edf5f1;color:#345f50;border:1px solid #d9e9e1;font-weight:600}
.pf-create-agenda-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:7px;max-height:245px;overflow:auto;padding:3px;border:1px solid #e6eee9;border-radius:9px;background:#fbfdfc}
.pf-create-agenda .form-selectgroup-label{font-size:12px;padding:8px 10px}
.pf-calendar-main-card .card-body{padding:12px}
.fc .fc-event{cursor:pointer;overflow:hidden}.fc .fc-event-main{padding:0!important}
.pf-fc-event{padding:3px 5px;line-height:1.12;min-width:0}.pf-fc-type{font-size:9px;text-transform:uppercase;letter-spacing:.045em;font-weight:800;opacity:.92;margin-bottom:2px}.pf-fc-name{font-size:11px;font-weight:700;white-space:normal;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.pf-fc-city{font-size:10px;margin-top:3px;display:flex;align-items:center;gap:2px;opacity:.92}.pf-fc-private{padding:4px 5px;display:flex;align-items:center;gap:3px;font-size:11px;line-height:1.15}.pf-fc-private b{white-space:normal}
.pf-detail-label{font-size:11px;text-transform:uppercase;letter-spacing:.045em;color:#7a8b84;margin-bottom:4px;display:flex;align-items:center;gap:5px;font-weight:700}.pf-appointment-notes{white-space:pre-wrap;line-height:1.5;background:#f8faf9;border:1px solid #e7eee9;border-radius:8px;padding:12px}
#edDocuments .list-group-item{padding:9px 11px}
@media(max-width:767.98px){.pf-agenda-check-grid{grid-template-columns:1fr 1fr}.pf-brand-logo{max-width:112px!important;max-height:58px!important}.pf-calendar-main-card .card-body{padding:5px}.fc .fc-toolbar{gap:6px;flex-wrap:wrap}.fc .fc-toolbar-chunk{display:flex;gap:2px}}

/* V4.54 - blocco localita appuntamento */
.pf-location-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;border:1px solid var(--tblr-border-color,#dce1e7);border-radius:.65rem;background:var(--tblr-bg-surface-secondary,#f8fafb)}
.pf-location-copy{min-width:0}
.pf-location-copy #edCity{font-size:1rem}
.pf-location-copy #edAddress:empty{display:none}
.pf-location-copy #edAddress{margin-top:.15rem}
.pf-maps-btn{flex:0 0 auto;font-weight:600;white-space:nowrap}
@media (max-width:767.98px){.pf-location-card{align-items:stretch;flex-direction:column}.pf-maps-btn{justify-content:center;width:100%}}


/* V4.57 - sidebar leggibile e gestione listino */
.pf-sidebar .nav-link{color:#29483e!important;font-weight:600!important}
.pf-sidebar .nav-link-icon{color:#416c5d!important;opacity:1!important}
.pf-sidebar .nav-link:hover{color:#173e31!important;background:#deeee6!important}
.pf-sidebar .nav-link.active{color:#174f3d!important;background:#cee7da!important}
.pf-sidebar-user .text-secondary{color:#58756b!important}
#priceTable .form-control-sm{min-width:78px}
#priceTable td{vertical-align:middle}


/* V4.58 - maggiore contrasto sidebar e listino admin */
.pf-sidebar{background:#f2f6f4!important;border-right:1px solid #c8d8d0!important}
.pf-sidebar .nav-link,.pf-sidebar .nav-link-title{color:#17372d!important;font-weight:700!important;opacity:1!important}
.pf-sidebar .nav-link-icon{color:#2e6654!important;opacity:1!important}
.pf-sidebar .nav-link:hover{background:#dbe9e2!important;color:#0f2d23!important}
.pf-sidebar .nav-link.active{background:#c7e0d4!important;color:#0a4b36!important;box-shadow:inset 4px 0 0 #3b8067!important}
.pf-sidebar .nav-link.active .nav-link-title,.pf-sidebar .nav-link.active .nav-link-icon{color:#0a4b36!important}
.pf-sidebar-user,.pf-sidebar-user .fw-semibold{color:#17372d!important}.pf-sidebar-user .text-secondary{color:#43685b!important}
.pf-admin-price-table td{vertical-align:middle;padding:.4rem}.pf-admin-price-table th{white-space:nowrap;background:#f7faf8}.pf-admin-price-table .form-control-sm{min-width:70px;background:#fff}

.bg-light-lt { color: var(--tblr-dark) !important;}