:root{--red:#c8102e;--yellow:#ffd100;--ink:#222b38;--muted:#6b7280;--line:#dde3ea;--bg:#f4f7fb;--cell:42px;--row:42px}*{box-sizing:border-box}body{margin:0;font-family:Inter,Arial,sans-serif;background:var(--bg);color:var(--ink)}header{height:64px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 24px;position:sticky;top:0;z-index:20}.brand{display:flex;gap:12px;align-items:center}.brand-logo{width:48px;height:48px;object-fit:contain;display:block}.brand span{display:block;font-size:12px;color:var(--muted);margin-top:2px}button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 13px;cursor:pointer;font-weight:650}.primary{background:var(--red);border-color:var(--red);color:#fff}.danger{background:#fff0f2;color:var(--red);border-color:#ffc2cc}.full{width:100%;margin-top:8px}main{padding:20px}.kpis{display:grid;grid-template-columns:repeat(7,minmax(155px,1fr));gap:12px;margin-bottom:16px}.kpi{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px}.kpi span{font-size:12px;color:var(--muted)}.kpi strong{font-size:26px;display:block;margin-top:6px}.kpi-chips{display:flex;gap:5px;flex-wrap:wrap;margin-top:8px}.kpi-chip{background:#f1f5f9;border:1px solid #e2e8f0;border-radius:999px;padding:3px 7px;font-size:10px!important;color:#475569!important}.kpi-chip b{color:var(--ink)}.kpi-pair{display:grid;grid-template-columns:1fr 1px 1fr;align-items:end;gap:10px;margin-top:5px}.kpi-pair i{width:1px;height:35px;background:var(--line);align-self:center}.kpi-pair strong{font-size:23px;margin:0}.kpi-pair small,.kpi-foot{display:block;color:var(--muted);font-size:10px;margin-top:3px}.kpi-note{font-size:10px!important}.kpi-foot{margin-top:7px}.toolbar{display:flex;justify-content:space-between;align-items:center;background:#fff;padding:12px 14px;border:1px solid var(--line);border-radius:14px 14px 0 0}.toolbar strong{margin-left:12px}.legend{display:flex;gap:14px;font-size:12px}.legend i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:5px}.legend .reserved{background:#26c281}.legend .rented{background:#4b8eea}.legend .closed{background:#9298a3}.planner{display:flex;background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;overflow:hidden;min-height:420px}.vehicle-col{width:180px;flex:0 0 180px;border-right:1px solid var(--line);z-index:5;background:#fff}.vehicle-head{height:54px;padding:18px 14px;font-size:12px;font-weight:700;color:var(--muted);border-bottom:1px solid var(--line)}.vehicle-row{height:var(--row);padding:0 14px;display:flex;align-items:center;border-bottom:1px solid var(--line);font-weight:750;color:#1456b8;cursor:default;position:relative}.vehicle-row.out-of-service{color:#9ca3af;text-decoration:line-through;background:#fafafa}.vehicle-row:hover:after{content:attr(data-tip);position:absolute;left:168px;top:5px;white-space:pre;z-index:30;background:#1f2937;color:#fff;padding:9px 11px;border-radius:8px;font-size:12px;font-weight:500;line-height:1.5;box-shadow:0 8px 25px #0003}.calendar-wrap{overflow:hidden;flex:1;min-width:0}.calendar-head,.calendar-row{display:grid;grid-template-columns:repeat(var(--month-days),minmax(0,1fr));width:100%}.calendar-head{height:54px;position:sticky;top:0;background:#f8fafc;z-index:4}.day-head{border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;padding-top:5px;font-size:10px;color:var(--muted)}.day-head span,.day-head b,.day-head small{display:block}.day-head b{color:var(--ink);font-size:13px;margin-top:2px}.day-head small{min-height:10px;margin-top:1px;font-size:9px;font-weight:800;text-transform:uppercase;color:#64748b}.day-head.outside-month,.day-cell.outside-month{background:#f1f4f8}.day-head.month-boundary,.day-cell.month-boundary{border-left:2px solid #94a3b8}.day-head.outside-month b{color:#64748b}.today{background:#fff6bf!important}.calendar-row{height:var(--row);position:relative}.day-cell{border-right:1px solid var(--line);border-bottom:1px solid var(--line);cursor:pointer}.day-cell:hover{background:#eef6ff}.booking-bar{position:absolute;height:34px;top:10px;border-radius:17px;color:#fff;padding:8px 12px;font-size:12px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:3;cursor:pointer;box-shadow:0 2px 7px #0002}.booking-bar.reserved{background:#26c281}.booking-bar.rented{background:#4b8eea}.booking-bar.closed{background:#9298a3}.modal{display:none;position:fixed;inset:0;background:#11182799;z-index:50;align-items:center;justify-content:center;padding:18px}.modal.open{display:flex}.dialog{background:#fff;border-radius:16px;width:min(720px,100%);padding:24px;position:relative;max-height:94vh;overflow:auto}.dialog.small{width:min(520px,100%)}.x{position:absolute;right:14px;top:12px;border:0;font-size:22px}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}label{font-size:12px;font-weight:700;color:#4b5563;display:block;margin:12px 0}input,select,textarea{width:100%;border:1px solid #cfd6df;border-radius:9px;padding:10px;margin-top:6px;font:inherit}textarea{min-height:70px}.selected-car{background:#f2f6fb;padding:12px;border-radius:10px;font-weight:700}.quote{background:#fff9d9;border:1px solid #f4dd6b;padding:12px;border-radius:10px;margin:12px 0}.actions{display:flex;justify-content:space-between;margin-top:14px}.hidden{display:none!important}#toast{position:fixed;right:20px;bottom:20px;background:#172033;color:#fff;padding:12px 16px;border-radius:10px;display:none;z-index:90}@media(max-width:1250px){.kpis{grid-template-columns:repeat(4,1fr)}}@media(max-width:900px){.kpis{grid-template-columns:repeat(2,1fr)}.legend{display:none}.vehicle-col{width:120px;flex-basis:120px}.vehicle-row.out-of-service{color:#9ca3af;text-decoration:line-through;background:#fafafa}.vehicle-row:hover:after{left:110px}.grid2{grid-template-columns:1fr}main{padding:10px}}
.registry-dialog{width:min(1380px,96vw);max-width:none}.registry-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.registry-card{border:1px solid #dbe2ec;border-radius:14px;padding:16px;background:#f8fafc}.registry-card h3{margin:0 0 12px}.registry-list{height:220px;overflow:auto;background:#fff;border:1px solid #e2e8f0;border-radius:10px;margin-bottom:14px}.registry-list>div{display:flex;justify-content:space-between;gap:10px;padding:10px 12px;border-bottom:1px solid #edf1f5}.registry-list>div:last-child{border-bottom:0}.registry-list small{color:#64748b;text-align:right}.muted{color:#64748b;margin-top:-8px}.model-preview{background:#f1f5f9;border-radius:9px;padding:10px 12px;margin-bottom:10px;color:#475569;font-size:13px}@media(max-width:980px){.registry-grid{grid-template-columns:1fr}.registry-list{height:150px}header nav{gap:6px}}

.icon-btn{display:inline-flex;align-items:center;gap:7px}.vehicle-icon{font-size:15px;line-height:1}.vehicle-create-card{background:#fff;border:1px solid #dbe2ec;border-radius:14px;padding:16px;margin:14px 0 18px}.vehicle-create-card h3{margin:0 0 4px}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.vehicle-form-actions{display:flex;justify-content:flex-end;margin-top:12px}.vehicle-form-actions button{min-width:180px}.registry-title h2{margin-bottom:8px}@media(max-width:1100px){.grid4{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:650px){.grid4{grid-template-columns:1fr}.vehicle-form-actions button{width:100%}}
.vehicle-icon{display:inline-flex;align-items:center;justify-content:center}.vehicle-icon svg{display:block}.registry-actions{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.registry-action{min-width:130px}.fleet-list-card{background:#fff;border:1px solid #dbe2ec;border-radius:14px;padding:16px}.fleet-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.fleet-list-head h3{margin:0 0 5px}.count-badge{background:#eef2f7;border:1px solid #dbe2ec;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.fleet-vehicle-list{margin-top:12px;border:1px solid #e2e8f0;border-radius:12px;overflow:hidden}.fleet-vehicle-item{width:100%;border:0;border-bottom:1px solid #edf1f5;border-radius:0;padding:13px 14px;display:grid;grid-template-columns:120px 1.2fr 1.5fr 24px;gap:14px;text-align:left;align-items:center;background:#fff}.fleet-vehicle-item:last-child{border-bottom:0}.fleet-vehicle-item:hover{background:#f8fafc}.fleet-vehicle-item span{min-width:0}.fleet-vehicle-item b,.fleet-vehicle-item small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fleet-vehicle-item small{font-size:11px;color:#64748b;margin-top:4px;font-weight:500}.fleet-plate{font-size:17px;font-weight:800;color:#1456b8}.edit-chevron{font-size:25px;color:#94a3b8;text-align:right}.empty-state{padding:28px;text-align:center;color:#64748b}.registry-panel{margin-top:16px;background:#f8fafc;border:1px solid #dbe2ec;border-radius:14px;padding:16px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.panel-head h3{margin:0}.panel-close{padding:6px 10px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.classification-preview{background:#eef6ff;border:1px solid #cfe1f7;border-radius:9px;padding:10px 12px;margin:8px 0 2px;color:#475569;font-size:13px}.registry-list.compact{height:150px}.vehicle-form-actions{gap:10px}.vehicle-form-actions #newVehicleReset{min-width:auto}.hidden{display:none!important}@media(max-width:900px){.fleet-vehicle-item{grid-template-columns:90px 1fr 24px}.fleet-vehicle-item>span:nth-child(3){grid-column:2/3}.grid3{grid-template-columns:1fr}.registry-action{flex:1;min-width:135px}}
.vehicle-archive-search{display:grid;gap:9px;margin-top:14px}.vehicle-search-row{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:10px;align-items:end}.vehicle-search-row button{height:42px;white-space:nowrap}.vehicle-filter-row{display:grid;grid-template-columns:repeat(5,minmax(125px,1fr));gap:10px;align-items:end}.vehicle-archive-search label{margin:0;min-width:0}.vehicle-archive-search select,.vehicle-archive-search input{width:100%}.vehicle-inactive{opacity:.72;background:#f8fafc}.vehicle-inactive .fleet-plate{color:#64748b}.archive-pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}.archive-pagination button{min-width:42px}.inactive-vehicle-banner{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;padding:13px 15px;border:1px solid #f0b4b4;background:#fff3f3;color:#8b1e1e;border-radius:10px}.archive-action-form,.rate-copy-box{margin-top:14px;padding:14px;border:1px solid #dbe2ec;border-radius:10px;background:#fff}.rate-copy-box summary{cursor:pointer;font-weight:700}@media(max-width:1100px){.vehicle-filter-row{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:700px){.vehicle-search-row{grid-template-columns:1fr}.vehicle-filter-row{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-search-row button{width:100%}}@media(max-width:440px){.vehicle-filter-row{grid-template-columns:1fr}}

.unavailability-box{margin-top:18px;padding-top:18px;border-top:1px solid #dbe2ec}.unavailability-list{margin-top:14px;border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;background:#fff}.unavailability-item{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:11px 12px;border-bottom:1px solid #edf1f5}.unavailability-item:last-child{border-bottom:0}.unavailability-item small{display:block;color:#64748b;margin-top:4px}.unavailability-item.closed{opacity:.6}.closed-badge{font-size:12px;background:#eef2f7;padding:5px 8px;border-radius:999px}.unavailability-bar{position:absolute;height:30px;top:12px;border-radius:8px;color:#fff;background:repeating-linear-gradient(135deg,#dc2626 0,#dc2626 10px,#b91c1c 10px,#b91c1c 20px);padding:7px 10px;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;z-index:4;pointer-events:none;box-shadow:0 2px 7px #0002}.empty-state.small{padding:14px}.unavailability-item button{padding:6px 9px;margin-left:6px}


/* v8.4 - disponibilita flotta e calendario */
.unavailability-heading{align-items:flex-start}.unavailability-heading h3{margin:0 0 4px}.unavailability-heading .muted{margin:0;line-height:1.35}
.unavailability-bar{pointer-events:auto;cursor:pointer}.unavailability-bar:hover{filter:brightness(1.05);box-shadow:0 4px 12px #0003}
.day-cell.fleet-outside{cursor:not-allowed;background:repeating-linear-gradient(135deg,#eef1f5 0,#eef1f5 8px,#e3e7ed 8px,#e3e7ed 16px)!important;position:relative}
.day-cell.fleet-outside:after{content:'';position:absolute;inset:0;background:rgba(100,116,139,.08)}
.day-cell.fleet-outside:hover{background:repeating-linear-gradient(135deg,#eef1f5 0,#eef1f5 8px,#e3e7ed 8px,#e3e7ed 16px)!important}


/* v8.6 - calendario compatto e blocchi a tutta altezza */
.vehicle-head,.calendar-head{height:48px}
.vehicle-head{padding:15px 14px}
.day-head{padding-top:6px}
.day-head b{margin-top:2px}
.calendar-row,.vehicle-row{height:var(--row)}
.booking-bar,.unavailability-bar{
 top:0;
 height:100%;
 min-height:100%;
 border-radius:0;
 padding:0 12px;
 display:flex;
 align-items:center;
 box-shadow:none;
}
.booking-bar:hover,.unavailability-bar:hover{filter:brightness(1.03);box-shadow:inset 0 0 0 2px rgba(255,255,255,.35)}
.day-cell.fleet-outside{
 background:#f5f7fa!important;
 box-shadow:inset 0 0 0 9999px rgba(226,232,240,.30);
}
.day-cell.fleet-outside:after{
 content:'';
 position:absolute;
 inset:0;
 background:linear-gradient(135deg,transparent 0 46%,rgba(148,163,184,.18) 46% 54%,transparent 54% 100%);
 background-size:14px 14px;
}
.day-cell.fleet-outside:hover{background:#f5f7fa!important}

/* v8.7 - calendario compatto, barre arrotondate e orari indisponibilita */
:root{--row:34px}
.vehicle-head,.calendar-head{height:44px}
.vehicle-head{padding:13px 14px}.day-head{padding-top:4px}.day-head b{font-size:12px;margin-top:1px}
.vehicle-row{padding:0 13px;font-size:14px}.calendar-row{height:var(--row)}
.booking-bar,.unavailability-bar{top:3px;height:calc(100% - 6px);min-height:0;border-radius:14px;padding:0 10px;box-shadow:0 2px 5px rgba(15,23,42,.16)}
.day-cell.fleet-outside{background:#f1f3f6!important;box-shadow:none!important}
.day-cell.fleet-outside:after{display:none}
.day-cell.fleet-outside:hover{background:#f1f3f6!important}
.booking-bar{touch-action:none;user-select:none}

/* Drag & drop prenotazioni */
body.booking-dragging{cursor:grabbing;user-select:none}
.booking-bar{cursor:grab}
.booking-bar.drag-locked{cursor:pointer;touch-action:auto;opacity:.92}
.booking-bar.is-dragging{cursor:grabbing;opacity:.88;box-shadow:0 8px 24px rgba(15,23,42,.28);pointer-events:none;transition:none}
.calendar-row.drag-compatible{background:rgba(75,142,234,.035)}
.calendar-row.drag-target{background:rgba(75,142,234,.14);box-shadow:inset 0 0 0 2px rgba(75,142,234,.55)}
.planner-move-dialog{width:min(660px,100%)}
.planner-move-grid{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.6fr);gap:9px 16px;margin:18px 0;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.planner-move-grid span{color:var(--muted);font-size:12px}.planner-move-grid b{font-size:13px;overflow-wrap:anywhere}
.planner-move-transfer,.planner-move-warning{margin:10px 0;padding:10px 12px;border-radius:10px;background:#eef6ff;color:#174a86;font-size:13px}
.planner-move-warning{background:#fff6db;color:#7a5200}
@media(max-width:600px){.planner-move-grid{grid-template-columns:1fr}.planner-move-grid span{margin-top:5px}.planner-move-dialog .actions{position:sticky;bottom:-24px;background:#fff;padding:12px 0 4px}}

/* v9.0 - storico indisponibilita */
.unavailability-bar.closed-history{background:repeating-linear-gradient(135deg,#9ca3af 0,#9ca3af 10px,#6b7280 10px,#6b7280 20px);color:#fff;opacity:.92;z-index:3}
.unavailability-bar.closed-history:hover{filter:brightness(1.04)}


/* v9.1 - anagrafica clienti */
header nav{display:flex;align-items:center;gap:8px}.customers-dialog{width:min(1450px,97vw);max-width:none}.registry-title{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.customer-layout{display:grid;grid-template-columns:340px 1fr;gap:16px;margin-top:16px;min-height:580px}.customer-sidebar{border:1px solid var(--line);border-radius:14px;padding:12px;background:#f8fafc}.customer-sidebar>input{margin:0 0 10px}.customer-list{max-height:520px;overflow:auto;border:1px solid var(--line);border-radius:10px;background:#fff}.customer-list-item{display:block;width:100%;border:0;border-bottom:1px solid #edf1f5;border-radius:0;background:#fff;text-align:left;padding:12px}.customer-list-item:hover{background:#f1f6fd}.customer-list-item:last-child{border-bottom:0}.customer-list-item b,.customer-list-item small{display:block}.customer-list-item small{margin-top:4px;color:#64748b;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.customer-editor{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;min-width:0}.customer-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0;border-bottom:1px solid var(--line);padding-bottom:8px}.customer-tabs button{border:0;background:#eef2f7}.customer-tabs button.active{background:var(--red);color:#fff}.customer-tab hr{border:0;border-top:1px solid var(--line);margin:18px 0}.check-label{display:flex;align-items:center;gap:8px}.check-label input{width:auto;margin:0}.history-row{display:flex;justify-content:space-between;gap:14px;padding:12px;border-bottom:1px solid #edf1f5}.history-row:last-child{border-bottom:0}.history-row small{display:block;color:#64748b;margin-top:4px}.booking-customer-box{border:1px solid #dbe2ec;border-radius:12px;padding:12px;margin:12px 0;background:#f8fafc}.booking-customer-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.booking-customer-head b,.booking-customer-head small{display:block}.booking-customer-head small{color:#64748b;margin-top:3px}.booking-customer-head button{white-space:nowrap}
@media(max-width:900px){.customer-layout{grid-template-columns:1fr;min-height:0}.customer-list{max-height:220px}.customers-dialog{width:100%}.registry-title{flex-direction:column}.registry-title>.primary{width:100%}}
/* v9.2 - anagrafica clienti avanzata */
.phone-field{display:grid;grid-template-columns:minmax(170px,.8fr) minmax(160px,1.2fr);gap:8px}.phone-field select,.phone-field input{margin-top:6px}.phone-prefix{font-size:13px}.field-with-status small{display:block;margin-top:6px;color:#64748b;font-weight:500;line-height:1.35}.field-with-status small.ok{color:#168452}.field-with-status small.warn{color:#b7791f}.uppercase{text-transform:uppercase}.billing-toggle{padding:12px 14px;background:#fff8d9;border:1px solid #efd875;border-radius:10px;font-size:13px}.company-fields-disabled{opacity:.48;pointer-events:none;filter:grayscale(.25)}
@media(max-width:760px){.phone-field{grid-template-columns:1fr}.grid4{grid-template-columns:1fr}}

.customer-modal-title{padding-right:58px;align-items:flex-start}.customer-modal-title #newCustomerBtn{position:static;flex:0 0 auto;margin-right:8px}.customers-dialog>.x{right:16px;top:14px;z-index:3}.customer-tab select:disabled,.customer-tab input:disabled{background:#eef2f7;color:#94a3b8;cursor:not-allowed}.field-with-status input[readonly]{background:#f8fafc}.phone-prefix{min-width:190px}
@media(max-width:900px){.customer-modal-title{padding-right:44px}.customer-modal-title #newCustomerBtn{width:auto}}

/* v11.3.2.100 - acquisizione documenti cliente tramite QR */
.customer-capture-card{margin:14px 0 20px;padding:16px;border:1px solid #d9e2ec;border-radius:14px;background:linear-gradient(135deg,#f8fafc,#fff)}
.customer-capture-intro{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}.customer-capture-intro b,.customer-capture-intro small{display:block}.customer-capture-intro small{margin-top:4px;color:#64748b;font-weight:500}.customer-capture-icon{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#fce7eb;color:var(--red);font-size:21px;font-weight:900}
.customer-capture-empty{margin-top:13px;padding:11px 13px;border-radius:10px;background:#f1f5f9;color:#64748b;font-size:12px}.customer-capture-active{display:grid;grid-template-columns:214px minmax(0,1fr);gap:18px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);align-items:center}.customer-capture-qr{width:214px;min-height:214px;display:grid;place-items:center;padding:12px;border:1px solid #d8dee8;border-radius:14px;background:#fff}.customer-capture-qr img,.customer-capture-qr canvas{display:block;max-width:190px!important;height:auto!important}.customer-capture-details b,.customer-capture-details small{display:block}.customer-capture-details b{font-size:17px;margin:9px 0 5px}.customer-capture-details small{color:#64748b}.customer-capture-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#fff4d6;color:#8a5b00;font-size:10px;font-weight:900;letter-spacing:.05em}.customer-capture-badge[data-status="captured"],.customer-capture-badge[data-status="completed"]{background:#dcfae6;color:#067647}.customer-capture-badge[data-status="revoked"],.customer-capture-badge[data-status="expired"]{background:#eef2f6;color:#667085}.customer-capture-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.customer-capture-actions button{padding:7px 10px;font-size:11px}.customer-capture-history{margin-top:14px}.customer-capture-history>b{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin-bottom:6px}.customer-capture-history>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 3px;border-top:1px solid #edf1f5}.customer-capture-history strong,.customer-capture-history small{display:block}.customer-capture-history strong{font-size:12px}.customer-capture-history small{font-size:10px;color:#64748b;margin-top:2px}.customer-capture-dot{width:9px;height:9px;border-radius:50%;background:#e6a700;box-shadow:0 0 0 4px #fff3cf}.customer-document-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:#98a2b3;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.customer-document-divider:before,.customer-document-divider:after{content:'';height:1px;background:var(--line);flex:1}
.customer-capture-active.no-qr{grid-template-columns:1fr}.customer-capture-active.no-qr .customer-capture-qr{display:none}
@media(max-width:720px){.customer-capture-intro{grid-template-columns:auto 1fr}.customer-capture-intro button{grid-column:1/-1;width:100%}.customer-capture-active{grid-template-columns:1fr}.customer-capture-qr{margin:auto}.customer-capture-actions{display:grid;grid-template-columns:1fr}.customer-capture-actions button{width:100%}}
.customer-ocr-panel{margin:14px 0 20px;padding:17px;border:1px solid #d9e2ec;border-radius:14px;background:#fff}.customer-ocr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.customer-ocr-head h3{margin:4px 0 5px}.customer-ocr-head p{margin:0;color:#64748b;font-size:12px}.customer-ocr-kicker{font-size:9px;font-weight:900;letter-spacing:.1em;color:var(--red)}.customer-ocr-badge{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#fff4d6;color:#8a5b00;font-size:9px;font-weight:900;letter-spacing:.05em}.customer-ocr-badge[data-status="ready"]{background:#e8f1ff;color:#2459a8}.customer-ocr-badge[data-status="applied"]{background:#dcfae6;color:#067647}.customer-ocr-progress{margin:15px 0}.customer-ocr-progress>span{display:block;height:7px;overflow:hidden;border-radius:999px;background:#eef2f6}.customer-ocr-progress i{display:block;width:0;height:100%;border-radius:inherit;background:var(--red);transition:width .2s}.customer-ocr-progress small{display:block;margin-top:6px;color:#64748b}.customer-ocr-results{display:grid;gap:8px;margin-top:15px}.customer-ocr-row{display:grid;grid-template-columns:minmax(135px,.8fr) minmax(0,1.2fr) auto;gap:12px;align-items:center;padding:10px 11px;border:1px solid #e5e9ef;border-radius:10px}.customer-ocr-row>span b,.customer-ocr-row>span small{display:block}.customer-ocr-row>span small{margin-top:3px;color:#7a8494;font-size:10px}.customer-ocr-row>strong{min-width:0;overflow-wrap:anywhere}.customer-ocr-row input[type="checkbox"]{width:18px;height:18px;margin:0}.customer-ocr-row .customer-ocr-value{width:100%;min-width:0;margin:0;padding:8px 9px;background:#fff}.customer-ocr-row.fillable{border-color:#a9e7c4;background:#f3fcf7}.customer-ocr-row.uncertain{border-color:#f1d38b;background:#fffaf0}.customer-ocr-row.conflict{border-color:#f0b3b9;background:#fff5f6}.customer-ocr-row.verified{background:#f8fafc}.customer-ocr-state{display:inline-flex;margin-top:3px;padding:2px 6px;border-radius:999px;background:#eef2f6;color:#667085;font-size:9px;font-style:normal;font-weight:800}.customer-ocr-row.fillable .customer-ocr-state{background:#dcfae6;color:#067647}.customer-ocr-row.uncertain .customer-ocr-state{background:#fff0c2;color:#8a5b00}.customer-ocr-row.conflict .customer-ocr-state{background:#ffe4e8;color:#a50f22}.customer-ocr-missing{padding:11px 12px;border-radius:10px;background:#fff5f6;color:#9f1239;font-size:11px;line-height:1.45}.customer-ocr-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.customer-ocr-actions button{min-height:38px}.customer-ocr-empty{padding:13px;border-radius:10px;background:#f8fafc;color:#64748b;font-size:12px}
.customer-ocr-diagnostics{padding:10px 12px;border:1px solid #d9e2ec;border-radius:10px;background:#f8fafc}.customer-ocr-diagnostics summary{cursor:pointer;color:#344054;font-size:11px;font-weight:800}.customer-ocr-diagnostics div{display:flex;justify-content:space-between;gap:12px;padding-top:8px;color:#667085;font-size:10px}.customer-ocr-diagnostics div b{color:#344054}
@media(max-width:720px){.customer-ocr-head{display:grid}.customer-ocr-row{grid-template-columns:1fr auto}.customer-ocr-row>strong{grid-column:1/-1;grid-row:2}.customer-ocr-actions{display:grid}.customer-ocr-actions button{width:100%}}

/* v9.4 - campi ricercabili e selezione cliente inline nella prenotazione */
.country-search,.phone-prefix,#birthPlaceInput{background:#fff}
.phone-field{grid-template-columns:minmax(210px,.9fr) minmax(160px,1.1fr)}
.booking-customer-search label{margin:0}
.booking-customer-results{margin-top:8px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff;max-height:235px;overflow-y:auto}
.booking-customer-results:empty{display:none}
.booking-customer-result,.booking-customer-add{width:100%;display:block;text-align:left;border:0;border-bottom:1px solid #edf1f5;border-radius:0;background:#fff;padding:10px 12px}
.booking-customer-result:hover{background:#f1f6fd}
.booking-customer-result b,.booking-customer-result small{display:block}
.booking-customer-result small{margin-top:3px;color:#64748b;font-size:11px}
.booking-customer-add{background:#fff8db;color:#9a6700;font-weight:750;border-bottom:0}
.booking-customer-add:hover{background:#fff1ad}
.booking-customer-selected{display:flex;align-items:center;justify-content:space-between;gap:12px}
.booking-customer-selected b,.booking-customer-selected small{display:block}
.booking-customer-selected small{color:#64748b;margin-top:4px}
@media(max-width:760px){.phone-field{grid-template-columns:1fr}.booking-customer-selected{align-items:flex-start}}


/* Tariffe */
.rates-dialog{width:min(980px,96vw);max-height:92vh;display:flex;flex-direction:column}
.rates-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px;margin:14px 0}
.rates-toolbar>label{min-width:320px}.rates-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.rates-summary span{font-weight:700}
#ratesForm{min-height:0;display:flex;flex-direction:column}.rates-table-wrap{border:1px solid var(--line);border-radius:14px;overflow:auto;max-height:62vh}
.rates-table{width:100%;border-collapse:collapse}.rates-table th{position:sticky;top:0;z-index:2;background:#f3f6fa;text-align:left;font-size:12px;color:#536174;padding:11px;border-bottom:1px solid var(--line)}
.rates-table td{padding:6px 11px;border-bottom:1px solid var(--line)}.rates-table tr:last-child td{border-bottom:0}.rates-table tr:hover td{background:#fafbfd}.rates-table input[type=number]{height:34px;padding:6px 9px}
.rates-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:14px}.rate-switch{display:inline-flex;align-items:center}.rate-switch input{position:absolute;opacity:0}.rate-switch span{width:38px;height:21px;border-radius:12px;background:#c9d1dc;position:relative;transition:.2s}.rate-switch span:after{content:"";position:absolute;width:17px;height:17px;left:2px;top:2px;border-radius:50%;background:white;box-shadow:0 1px 3px #0003;transition:.2s}.rate-switch input:checked+span{background:#20bf83}.rate-switch input:checked+span:after{transform:translateX(17px)}
@media(max-width:700px){.rates-toolbar,.rates-actions{align-items:stretch;flex-direction:column}.rates-toolbar>label{min-width:0}.rates-table{min-width:650px}}


/* v9.6 - calendario annuale tariffe */
.rates-dialog{width:min(1380px,97vw)}.rates-tabs{display:flex;gap:7px;border-bottom:1px solid var(--line);padding-bottom:9px;margin-bottom:12px}.rates-tabs button{border:0;background:#eef2f7}.rates-tabs button.active{background:var(--red);color:#fff}.year-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:12px}.year-toolbar strong{font-size:20px;min-width:64px;text-align:center}.calendar-rate-editor{background:#f8fafc;border:1px solid var(--line);border-radius:14px;padding:12px;margin-bottom:12px}.weekday-picker{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:10px}.weekday-picker label{display:inline-flex;align-items:center;gap:4px;font-size:12px}.weekday-picker input{width:auto;margin:0}.weekday-picker small{color:#64748b}.calendar-rate-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.annual-rate-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;margin:8px 0}.annual-rate-legend span{display:flex;align-items:center;gap:6px}.annual-rate-legend i{width:14px;height:14px;border-radius:4px}.annual-rate-legend .percent{background:#fee2e2;border:1px solid #ef4444}.annual-rate-legend .fixed{background:#dbeafe;border:1px solid #3b82f6}.annual-rate-legend .selected{background:#fef3c7;border:2px solid #f59e0b}.annual-rates-calendar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;overflow:auto;max-height:53vh;padding-right:3px}.mini-month{border:1px solid var(--line);border-radius:12px;padding:9px;background:#fff}.mini-month h4{margin:0 0 7px;font-size:13px}.mini-weekdays,.mini-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.mini-weekdays span{text-align:center;font-size:9px;color:#64748b;font-weight:700}.mini-day,.mini-days .empty{min-height:32px;border:0;border-radius:6px;padding:2px;background:#f8fafc;display:flex;flex-direction:column;align-items:center;justify-content:center}.mini-day{cursor:pointer;font-size:10px}.mini-day b{font-size:11px}.mini-day small{font-size:8px;line-height:1;color:inherit}.mini-day:hover{box-shadow:inset 0 0 0 2px #94a3b8}.mini-day.rule-percent{background:#fee2e2;color:#991b1b}.mini-day.rule-fixed{background:#dbeafe;color:#1e40af}.mini-day.selected{box-shadow:inset 0 0 0 2px #f59e0b;background:#fef3c7;color:#92400e}.mini-day.today{outline:2px solid #111827;outline-offset:-2px}.base-actions{justify-content:flex-end;margin-bottom:8px}
@media(max-width:1050px){.annual-rates-calendar{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.annual-rates-calendar{grid-template-columns:1fr}.calendar-rate-actions{align-items:stretch;flex-direction:column}.calendar-rate-actions button{width:100%}}

.annual-rate-legend i.blocked{background:repeating-linear-gradient(135deg,#374151 0 6px,#111827 6px 12px)}
.mini-day.rule-blocked{background:repeating-linear-gradient(135deg,#4b5563 0 5px,#1f2937 5px 10px);color:#fff;border-color:#111827}
.mini-day.rule-blocked small{color:#fff;font-size:8px}
.booking-price-editor{margin-top:10px}

/* ===== Enilive v10 application shell ===== */
:root{--sidebar-width:76px;--topbar-height:58px;--shell-red:#b31322;--shell-bg:#f3f6fa}
.app-shell-body{margin:0;background:var(--shell-bg);overflow-x:hidden}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
.app-sidebar{position:sticky;top:0;height:100vh;background:#fff;border-right:1px solid #dce3ed;z-index:50;display:flex;flex-direction:column;align-items:stretch}
.sidebar-logo{height:var(--topbar-height);display:flex;align-items:center;justify-content:center;border-bottom:1px solid #e3e8ef;overflow:hidden}.sidebar-logo img{width:44px;height:28px;object-fit:contain}.sidebar-logo span{display:none}
.sidebar-nav{display:flex;flex-direction:column;padding:10px 8px;gap:4px;overflow:auto}.sidebar-item{height:48px;border:0;background:transparent;border-radius:10px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#657083;position:relative}.sidebar-item span{font-size:20px;line-height:1}.sidebar-item b{display:none}.sidebar-item:hover{background:#f1f4f8;color:#1f2937}.sidebar-item.active{background:#fff0f2;color:var(--shell-red)}.sidebar-item.active:before{content:"";position:absolute;left:-8px;width:4px;height:28px;background:var(--shell-red);border-radius:0 4px 4px 0}.sidebar-item.future{opacity:.72}
.app-main{min-width:0}.app-topbar{height:var(--topbar-height);background:var(--shell-red);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:sticky;top:0;z-index:45;box-shadow:0 1px 4px #0002}.topbar-branch{display:flex;align-items:center;gap:9px}.topbar-branch strong{font-size:15px}.topbar-branch span{font-size:13px;opacity:.86;border-left:1px solid #ffffff55;padding-left:9px}.topbar-actions{display:flex;align-items:center;gap:8px;position:relative}.app-topbar button{border-color:#ffffff55;background:#fff;color:#242a33}.app-topbar button.primary{background:#fff;color:var(--shell-red);border-color:#fff}.topbar-icon{width:38px;padding:0;font-size:19px}.branch-menu{display:none;position:absolute;right:275px;top:48px;width:260px;background:#fff;color:#202733;padding:10px;border-radius:12px;box-shadow:0 16px 38px #0003;border:1px solid #dfe5ee}.branch-menu.open{display:block}.branch-menu button{width:100%;text-align:left}.branch-menu small{display:block;padding:8px 6px;color:#697386}
.page-area{padding:16px;max-width:none}.app-page{display:none}.app-page.active{display:block}.page-card{background:#fff;border:1px solid #dce3ed;border-radius:14px;padding:18px;min-height:calc(100vh - 92px)}.page-title{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.page-title h1{margin:0;font-size:24px}.page-title p{margin:5px 0 0;color:#657083}.coming-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.coming-grid article{border:1px solid #e0e6ef;border-radius:12px;padding:18px}.table-toolbar{display:flex;gap:10px;margin-bottom:12px}.table-toolbar input{flex:1}.data-list{border:1px solid #dfe5ee;border-radius:12px;overflow:hidden}.data-row{display:grid;grid-template-columns:1.2fr 1fr 1fr 130px;gap:12px;align-items:center;width:100%;padding:13px 14px;border:0;border-bottom:1px solid #e6ebf2;background:#fff;text-align:left}.data-row:last-child{border-bottom:0}.data-row:hover{background:#f8fafc}.data-row small{display:block;color:#647084;margin-top:3px}.status-pill{justify-self:end;border-radius:99px;padding:5px 9px;font-size:12px;background:#eef2f7}.status-pill.reserved{background:#e5f8ef;color:#087b4f}.status-pill.rented{background:#e5efff;color:#235fae}.status-pill.closed{background:#edf0f4;color:#667080}.empty-module{text-align:center;padding-top:90px}.mobile-only{display:none}
/* existing module dialogs become full pages */
.modal.embedded-module{position:static;display:block!important;background:transparent;padding:0;inset:auto}.modal.embedded-module>.dialog{width:100%;max-width:none;max-height:none;min-height:calc(100vh - 92px);margin:0;border:1px solid #dce3ed;border-radius:14px;box-shadow:none;overflow:visible}.modal.embedded-module>.dialog>.x{display:none}.modal.embedded-module .registry-title{padding-right:0}.modal.detached-placeholder{display:none!important}
body.module-view{overflow:auto}.app-page[data-page-view="module"] #moduleHost{min-height:calc(100vh - 92px)}
@media(min-width:1200px){.app-sidebar:hover{width:230px;position:fixed}.app-sidebar:hover .sidebar-logo{justify-content:flex-start;padding:0 16px;gap:10px}.app-sidebar:hover .sidebar-logo span,.app-sidebar:hover .sidebar-item b{display:block}.app-sidebar:hover .sidebar-item{justify-content:flex-start;gap:14px;padding:0 14px}.app-sidebar:hover+.app-main{margin-left:154px}}
@media(max-width:800px){:root{--sidebar-width:0px}.app-shell{display:block}.app-sidebar{position:fixed;left:-250px;width:240px;transition:.2s}.app-sidebar.open{left:0}.sidebar-logo span,.sidebar-item b{display:block}.sidebar-item{justify-content:flex-start;gap:12px;padding:0 14px}.mobile-only{display:inline-flex}.topbar-actions>button:not(.topbar-icon){font-size:0;width:40px}.topbar-actions>button:not(.topbar-icon):before{content:"+";font-size:18px}.coming-grid{grid-template-columns:1fr}.data-row{grid-template-columns:1fr}.status-pill{justify-self:start}.page-area{padding:8px}}

/* ===== Enilive v10.1 navigation polish ===== */
.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}
.app-shell{grid-template-columns:72px minmax(0,1fr)}
.app-sidebar{width:72px;overflow:visible}
.sidebar-logo{height:58px;padding:0}.sidebar-logo img{width:46px;height:30px}.sidebar-logo span{display:none!important}
.sidebar-nav{padding:10px 9px;gap:5px;overflow:visible}
.sidebar-item{width:54px;height:46px;min-width:54px;min-height:46px;padding:0!important;justify-content:center!important;gap:0!important;border-radius:11px;overflow:visible}
.sidebar-item svg,.topbar-action svg{width:21px;height:21px;display:block;fill:currentColor;flex:0 0 auto}
.sidebar-item b{display:none!important}
.sidebar-item:after,.topbar-action:after{content:attr(data-tooltip);position:absolute;pointer-events:none;opacity:0;visibility:hidden;white-space:nowrap;background:#111827;color:#fff;font-size:12px;font-weight:600;line-height:1;padding:8px 10px;border-radius:8px;box-shadow:0 8px 22px #0003;transition:opacity .12s ease,transform .12s ease;z-index:200}
.sidebar-item:after{left:62px;top:50%;transform:translate(4px,-50%)}
.sidebar-item:hover:after,.sidebar-item:focus-visible:after{opacity:1;visibility:visible;transform:translate(0,-50%)}
.sidebar-item:hover{background:#f3f5f8;color:#202733}.sidebar-item.active{background:#fff0f2;color:var(--shell-red)}
.sidebar-item.active:before{left:-9px;height:27px}
.app-main{margin-left:0!important;min-width:0}
.app-topbar{height:58px;padding:0 12px 0 16px}
.topbar-actions{gap:7px;overflow:visible}
.topbar-action{position:relative;width:40px!important;height:40px!important;min-width:40px!important;min-height:40px!important;padding:0!important;border:1px solid #ffffff66!important;border-radius:10px!important;background:#fff!important;color:var(--shell-red)!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:0!important;box-shadow:none!important}
.topbar-action:hover{background:#fff3f4!important;transform:none!important}.topbar-action:focus-visible{outline:3px solid #ffffff88;outline-offset:2px}
.topbar-action:after{right:0;top:48px;transform:translateY(-3px)}
.topbar-action:hover:after,.topbar-action:focus-visible:after{opacity:1;visibility:visible;transform:translateY(0)}
.branch-menu{right:auto;left:0;top:48px;width:260px;z-index:210}
@media(min-width:1200px){.app-sidebar:hover{width:72px;position:sticky}.app-sidebar:hover .sidebar-logo{justify-content:center;padding:0}.app-sidebar:hover .sidebar-item{justify-content:center;gap:0;padding:0}.app-sidebar:hover+.app-main{margin-left:0}}
@media(max-width:800px){.app-sidebar{width:240px}.sidebar-logo span{display:block!important}.sidebar-item{width:100%;justify-content:flex-start!important;padding:0 14px!important}.sidebar-item:after{display:none}.topbar-branch span{display:none}.topbar-action:after{display:none}}

/* ===== Enilive v10.2 topbar search and icon refresh ===== */
.app-topbar{display:grid;grid-template-columns:minmax(180px,auto) minmax(320px,620px) auto;gap:18px}
.global-search{position:relative;width:100%;justify-self:center}
.global-search>svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:19px;height:19px;fill:#7a1d27;pointer-events:none;z-index:2}
.global-search input{width:100%;height:40px;border:1px solid #ffffff80;border-radius:12px;background:#fff;color:#202733;padding:0 42px;font-size:14px;box-shadow:0 2px 8px #0001}
.global-search input::placeholder{color:#7b8492}.global-search input:focus{outline:3px solid #ffffff55;border-color:#fff}
.global-search-results{display:none;position:absolute;top:47px;left:0;right:0;max-height:430px;overflow:auto;background:#fff;color:#202733;border:1px solid #dce3ed;border-radius:12px;box-shadow:0 18px 48px #0004;z-index:260;padding:7px}
.global-search-results.open{display:block}.global-search-result{width:100%;display:grid;grid-template-columns:34px 1fr auto;align-items:center;gap:10px;border:0;background:#fff;padding:10px;border-radius:9px;text-align:left;color:#202733}
.global-search-result:hover,.global-search-result:focus{background:#f3f6fa}.global-search-result .result-icon{width:32px;height:32px;border-radius:9px;background:#fff0f2;color:var(--shell-red);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px}
.global-search-result b{display:block;font-size:13px}.global-search-result small{display:block;color:#6b7280;margin-top:2px}.global-search-result em{font-style:normal;font-size:11px;color:#7b8492;text-transform:uppercase;letter-spacing:.04em}
.global-search-empty{padding:18px;text-align:center;color:#6b7280;font-size:13px}
.sidebar-item[data-page="accounting"] svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.sidebar-item[data-page="incidents"] svg,.sidebar-item[data-page="maintenance"] svg,.sidebar-item[data-page="rates"] svg{width:22px;height:22px}
@media(max-width:1050px){.app-topbar{grid-template-columns:auto minmax(240px,1fr) auto}.topbar-branch span{display:none}.global-search input{font-size:13px}}
@media(max-width:760px){.app-topbar{grid-template-columns:1fr auto;padding-left:10px}.topbar-branch{display:none}.global-search{min-width:0}.global-search input{height:38px;padding-left:38px}.topbar-actions{gap:5px}.topbar-action{width:38px!important;height:38px!important;min-width:38px!important;min-height:38px!important}}
.config-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:18px}.config-panel{border:1px solid var(--line,#dfe5ee);border-radius:14px;padding:18px;background:#fff}.payment-methods-list{display:grid;gap:8px;margin:14px 0}.payment-method-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #e1e6ef;border-radius:11px;background:#fff;text-align:left}.payment-method-row:hover{border-color:#c8102e;background:#fff8f9}.payment-method-row span:first-child{display:grid;gap:3px}.payment-method-row small{color:#657187}.status-pill.active{background:#e9f8f1;color:#137a4d}.status-pill.inactive{background:#f1f3f6;color:#6b7280}.payment-method-form{margin-top:16px;padding-top:16px;border-top:1px solid #e4e8ef}.customer-documents-list{display:grid;gap:10px;margin-top:16px}.document-upload{padding:14px;border:1px dashed #cbd3df;border-radius:12px;background:#f8fafc}.document-upload>small{display:block;margin-top:8px;color:#697386}.customer-document-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px;border:1px solid #e0e5ed;border-radius:12px;background:#fff}.doc-file-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#f2f4f7;color:#c8102e;font-weight:800;font-size:11px}.customer-document-row>div:nth-child(2){display:grid;gap:3px;min-width:0}.customer-document-row b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.customer-document-row small{color:#687386}.doc-actions{display:flex;align-items:center;gap:8px}.doc-actions a,.doc-actions button{padding:7px 10px;border-radius:8px;text-decoration:none;font-weight:700;font-size:12px}.doc-actions a{border:1px solid #d8dee8;color:#273142;background:#fff}@media(max-width:900px){.config-grid{grid-template-columns:1fr}.customer-document-row{grid-template-columns:38px minmax(0,1fr)}.doc-actions{grid-column:2}}

/* v10.3.6 configuration and subtitle cleanup */
.panel-head .muted,.customer-tab .panel-head .muted,.unavailability-heading .muted{margin:4px 0 0;line-height:1.35}.customer-tab .panel-head{align-items:flex-start}.config-accordion{display:grid;gap:12px}.config-section{border:1px solid var(--line);border-radius:14px;background:#fff;overflow:hidden}.config-section-toggle{width:100%;border:0;border-radius:0;padding:17px 18px;display:flex;align-items:center;justify-content:space-between;text-align:left;background:#fff}.config-section-toggle:hover,.config-section-toggle.open{background:#fff7f8}.config-section-toggle span:first-child{display:grid;gap:4px}.config-section-toggle b{font-size:17px;color:var(--ink)}.config-section-toggle small{font-size:13px;color:var(--muted);font-weight:500}.config-section-toggle .chevron{font-size:22px;color:#64748b;transition:.2s}.config-section-toggle.open .chevron{transform:rotate(180deg)}.config-section-body{padding:0 18px 18px;border-top:1px solid var(--line)}.config-section-body>.panel-head{padding-top:16px}.actions-end{justify-content:flex-end}.branches-list{display:grid;gap:8px;margin:14px 0}.branch-row{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border:1px solid #e1e6ef;border-radius:11px;background:#fff;text-align:left}.branch-row:hover{border-color:var(--red);background:#fff8f9}.branch-row span:first-child{display:grid;gap:3px}.branch-row small{color:#657187}.branch-form{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}.grid4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}@media(max-width:950px){.grid4{grid-template-columns:1fr 1fr}}

/* ===== Scheda prenotazione v10.4 ===== */
.booking-detail-page{padding:4px 0 28px}.booking-detail-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.booking-detail-actions{display:flex;gap:8px;flex-wrap:wrap}.icon-text-button{display:inline-flex;align-items:center;gap:8px}.booking-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:22px 24px;background:#fff;border:1px solid var(--line);border-radius:16px}.booking-detail-kicker{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--muted);margin-bottom:7px}.booking-detail-title-line{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.booking-detail-title-line h1{margin:0;font-size:25px}.booking-detail-total{text-align:right;min-width:170px}.booking-detail-total span,.booking-detail-total small{display:block;color:var(--muted)}.booking-detail-total strong{display:block;font-size:27px;margin:3px 0}.booking-detail-alert{margin-top:12px;padding:12px 15px;border:1px solid #f0a3a9;background:#fff1f2;color:#a50f22;border-radius:10px}.booking-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0}.booking-summary-card{display:flex;gap:14px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px;min-height:112px}.booking-summary-card>div:last-child{min-width:0}.booking-summary-card span{font-size:12px;color:var(--muted)}.booking-summary-card h3{font-size:16px;margin:5px 0 7px}.booking-summary-card p{margin:0;color:var(--muted);line-height:1.45;overflow-wrap:anywhere}.summary-card-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center;background:#f2f5f9;color:var(--brand);font-weight:900;flex:0 0 auto}.summary-card-icon.car{font-size:18px}.summary-card-icon.person{font-size:16px}.summary-card-icon.money{font-size:20px}.booking-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:14px}.booking-detail-main,.booking-detail-side{min-width:0}.booking-tabs{display:flex;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:14px 14px 0 0;padding:0 12px}.booking-tabs button{border:0;border-bottom:3px solid transparent;border-radius:0;background:transparent;padding:15px 13px;color:var(--muted);white-space:nowrap}.booking-tabs button.active{color:var(--brand);border-bottom-color:var(--brand);font-weight:800}.booking-tab-panel{background:#fff;border:1px solid var(--line);border-top:0;border-radius:0 0 14px 14px;padding:16px}.booking-trip-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-trip-card{display:flex;gap:12px;align-items:flex-start;border:1px solid var(--line);border-radius:12px;padding:16px}.booking-trip-card span{font-size:12px;color:var(--muted)}.booking-trip-card h3{margin:4px 0;font-size:16px}.booking-trip-card p{margin:0;color:var(--muted)}.trip-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:9px;font-weight:900}.trip-icon.out{background:#e7f8ef;color:#148653}.trip-icon.in{background:#fff1df;color:#b86600}.booking-section-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;margin-top:14px}.booking-detail-side .booking-section-card:first-child{margin-top:0}.section-card-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px}.booking-section-card h3{margin:0 0 12px}.section-card-head h3{margin:0}.booking-info-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden}.booking-info-grid>div{background:#fff;padding:12px}.booking-info-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.booking-info-grid b{font-size:13px}.booking-notes{margin:0;color:#374151;white-space:pre-wrap}.economic-lines>div{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}.economic-lines>div:last-child{border-bottom:0}.economic-lines span{color:var(--muted)}.economic-lines .economic-total{margin:6px -8px;padding:12px 8px;background:#fff4f5;border:1px solid #f2c3c8;border-radius:9px;color:var(--brand)}.status-summary{display:flex;flex-direction:column;gap:12px}.status-step{display:flex;gap:10px;align-items:flex-start}.status-step i{width:12px;height:12px;border-radius:50%;background:#d1d5db;margin-top:3px;box-shadow:0 0 0 4px #f3f4f6}.status-step.done i{background:#22b573;box-shadow:0 0 0 4px #e6f7ef}.status-step small{display:block;color:var(--muted);margin-top:3px}.booking-timeline{display:flex;flex-direction:column;gap:16px}.timeline-item{display:flex;gap:12px;align-items:flex-start}.timeline-item i{width:10px;height:10px;border-radius:50%;background:var(--brand);margin-top:4px}.timeline-item span{display:block;color:var(--muted);margin-top:3px}.status-pill.cancelled{background:#fee2e2;color:#991b1b}
@media(max-width:1100px){.booking-detail-layout{grid-template-columns:1fr}.booking-summary-grid{grid-template-columns:1fr}.booking-info-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.booking-detail-header,.booking-detail-toolbar{flex-direction:column;align-items:stretch}.booking-detail-total{text-align:left}.booking-trip-grid{grid-template-columns:1fr}.booking-info-grid{grid-template-columns:1fr}.booking-detail-actions{display:grid;grid-template-columns:1fr 1fr}}

/* v10.4.1 - scheda prenotazione operativa */
.booking-detail-page{max-width:1760px;margin:0 auto;padding:16px 18px 34px}.booking-detail-toolbar{position:sticky;top:58px;z-index:12;background:rgba(244,247,251,.96);backdrop-filter:blur(8px);padding:8px 0 12px}.booking-detail-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.booking-detail-actions button{height:38px;padding:0 14px;border-radius:9px;font-weight:700}.booking-action.invoice{border-color:#cbd5e1;background:#fff}.booking-action.payment{background:#15803d;color:#fff;border-color:#15803d}.booking-action.deposit{background:#fff7ed;color:#c2410c;border-color:#fdba74}.booking-detail-header{border-radius:14px;box-shadow:0 5px 18px rgba(15,23,42,.06);padding:20px 22px;margin-bottom:12px}.booking-summary-grid{gap:12px}.booking-summary-card{min-height:118px;border-radius:14px;box-shadow:0 3px 12px rgba(15,23,42,.04)}.booking-detail-layout{grid-template-columns:minmax(0,1fr) 310px;gap:14px}.booking-detail-main,.booking-detail-side>article{border-radius:14px}.booking-trip-grid{gap:12px}.booking-trip-card{position:relative;min-height:104px;border-radius:13px;padding:16px 52px 16px 16px;align-items:center}.trip-card-content{min-width:0}.trip-card-content p{margin:6px 0 0;color:#64748b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.trip-edit-button{position:absolute;right:12px;top:12px;width:32px;height:32px;border-radius:8px;padding:0;font-size:16px}.booking-section-card{border-radius:13px}.booking-info-grid>div{min-height:62px}.booking-tabs{overflow-x:auto;scrollbar-width:thin}.booking-detail-total strong{font-size:28px}.booking-detail-side{position:sticky;top:118px;align-self:start}
@media(max-width:1100px){.booking-detail-layout{grid-template-columns:1fr}.booking-detail-side{position:static;display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-detail-actions{justify-content:flex-start}.booking-detail-toolbar{position:static}}
@media(max-width:700px){.booking-detail-page{padding:10px}.booking-detail-side{grid-template-columns:1fr}.booking-detail-actions button{flex:1 1 46%}.booking-trip-grid{grid-template-columns:1fr}.booking-detail-header{align-items:flex-start}.booking-detail-total{text-align:left}}

/* Booking detail refinements v10.4.2 */
.booking-detail-header{min-height:112px;align-items:center;padding-top:18px;padding-bottom:18px}
.booking-detail-header>div:first-child{min-width:0;padding-right:18px}
.booking-detail-title-line{row-gap:6px}.booking-detail-meta,.booking-detail-header .muted{margin:7px 0 0;line-height:1.35}
.booking-detail-total{align-self:center}.booking-detail-total strong{line-height:1.05}.booking-detail-total small{margin-top:5px}
.booking-summary-grid{margin-top:12px}.booking-summary-card{position:relative;padding:17px 42px 17px 16px;min-height:126px;align-items:flex-start;transition:.18s ease}
.booking-summary-clickable{cursor:pointer}.booking-summary-clickable:hover{border-color:#c91832;box-shadow:0 7px 20px rgba(15,23,42,.09);transform:translateY(-1px)}
.booking-summary-clickable:focus{outline:3px solid rgba(200,24,50,.16);outline-offset:2px}
.summary-card-body{min-width:0;flex:1}.summary-card-body h3{line-height:1.3;margin:4px 0 6px}.summary-card-body p{line-height:1.35;margin:2px 0;overflow-wrap:anywhere}
.summary-card-hint{display:block;margin-top:8px;color:#9a2a3a;font-weight:700}.summary-card-chevron{position:absolute;right:16px;top:50%;transform:translateY(-50%);font-size:27px;color:#94a3b8}
.summary-link{border:0;background:transparent;padding:0;color:#172033;font:inherit;font-weight:800;text-align:left;cursor:pointer}.summary-link:hover{color:var(--brand);text-decoration:underline}
.contact-line{display:flex;align-items:center;gap:6px}.contact-line>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.copy-mini{width:25px;height:25px;min-width:25px;padding:0;border-radius:7px;display:grid;place-items:center;color:#64748b;background:#f8fafc}.copy-mini:hover{color:var(--brand);border-color:#e3a4ad}
.mini-icon-button{width:32px;height:32px;padding:0;border-radius:8px;font-size:16px}.booking-notes-editor textarea{width:100%;resize:vertical;min-height:96px;margin-bottom:10px}
.booking-trip-card p{white-space:normal;line-height:1.35}.booking-trip-card h3{line-height:1.25}
@media(max-width:900px){.booking-detail-header{min-height:0}.booking-summary-card{min-height:110px}}
/* v10.5 operativita prenotazione */
.booking-action.operational.departure{background:#0b8f55;color:#fff;border-color:#0b8f55}.booking-action.operational.return{background:#d97706;color:#fff;border-color:#d97706}.compact-dialog{max-width:620px}.signature-dialog{max-width:820px}.signature-pad-wrap{border:1px solid #cfd8e5;border-radius:12px;background:#fff;overflow:hidden;margin:14px 0}.signature-pad-wrap canvas{display:block;width:100%;height:220px;touch-action:none}.signature-tools{display:flex;gap:18px;align-items:center;justify-content:space-between;flex-wrap:wrap}.booking-record-list{display:grid;gap:10px}.booking-record-row{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px;border:1px solid #dbe3ee;border-radius:12px;background:#fff}.booking-record-row small{display:block;color:#65738a;margin-top:4px}.button-link{display:inline-flex;align-items:center;padding:8px 12px;border:1px solid #cfd8e5;border-radius:8px;text-decoration:none;color:#172033;font-weight:700}

/* Enilive 10.5.2 booking operations and communications */
.trip-operation-button{margin-top:16px;width:100%;height:42px;border-radius:8px;background:#fff;border:1.5px solid #2563eb;color:#2563eb;font-weight:800}.trip-operation-button:hover{background:#eff6ff}.trip-operation-button.return{border-color:#f59e0b;color:#b45309}.trip-operation-button.return:hover{background:#fff7ed}.trip-actual{font-size:12px!important;margin-top:10px!important;color:#64748b!important}.contract-panel-actions,.record-actions{display:flex;gap:8px;align-items:center}.communications-list{display:grid;gap:10px;margin-top:16px}.communications-list button{text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:11px;background:#fff;font-weight:800}.communications-list button:hover{border-color:var(--brand);background:#fff7f8}.communications-list small{display:block;margin-top:4px;color:var(--muted);font-weight:500}.contract-draft-row{background:#f8fafc}

.assignment-toolbar{display:flex;align-items:center;gap:10px;padding:12px 0;flex-wrap:wrap}.assignment-toolbar select,.assignment-toolbar input{width:auto;min-width:150px}.availability-ok{border-color:#9bd9b8;background:#f0fbf5}.availability-no{border-color:#f1a8a8;background:#fff4f4}.status-pill.quote{background:#fff3cd;color:#765b00}.status-pill.unassigned{background:#fff0db;color:#9a5500}


/* v10.6.1 - tariffa base e fasce durata */
.base-rate-card{display:grid;grid-template-columns:minmax(240px,340px) 1fr;gap:22px;align-items:end;padding:18px;margin-bottom:16px;border:1px solid var(--line,#dbe2ea);border-radius:14px;background:#f8fafc}.base-rate-card label{font-weight:700}.base-rate-card input{margin-top:7px;font-size:22px;font-weight:800}.base-rate-card p{margin:5px 0 0}.rates-summary.base-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:12px 0}.rates-summary.base-actions h3,.rates-summary.base-actions p{margin:0}.rates-table td:last-child,.rates-table th:last-child{width:54px;text-align:center}.icon-btn.danger{border:0;background:#fff1f2;color:#be123c;border-radius:8px;width:32px;height:32px;font-size:20px;cursor:pointer}@media(max-width:800px){.base-rate-card{grid-template-columns:1fr}}

/* v10.6.2 tariffe per sede */
.rates-location-intro{padding:8px 0 14px}.rates-location-intro h3,.rates-location-intro p{margin:0 0 7px}.rates-branch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:12px}.rates-branch-card{min-height:76px;text-align:left;border:1px solid var(--line);border-radius:12px;background:#fff;padding:14px;display:flex;flex-direction:column;gap:5px;cursor:pointer}.rates-branch-card:hover,.rates-branch-card.active{border-color:var(--red);box-shadow:0 0 0 2px #c8102e18}.rates-branch-card b{font-size:15px}.rates-branch-card small{color:#64748b}.rates-table th:nth-child(1),.rates-table td:nth-child(1),.rates-table th:nth-child(2),.rates-table td:nth-child(2){width:105px}.rates-table th:nth-child(3),.rates-table td:nth-child(3){width:120px}.rates-table th:nth-child(4),.rates-table td:nth-child(4){width:150px}.rates-table th:nth-child(5),.rates-table td:nth-child(5){width:135px}.tier-daily-price{display:inline-flex;align-items:center;height:34px;font-weight:800;color:#0f172a;white-space:nowrap}.rates-summary button{height:36px}.rates-toolbar{align-items:end}

/* v10.6.4 - scheda prenotazione stile operativo */
.booking-detail-toolbar{align-items:flex-start;gap:18px;margin-bottom:10px}
.booking-back-button{margin-top:2px;white-space:nowrap}
.booking-rently-actions{display:flex;gap:7px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.booking-toolbar-button,.booking-toolbar-more{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:36px;padding:0 12px;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#172033;font-size:12px;font-weight:750;box-shadow:0 1px 2px rgba(15,23,42,.03);white-space:nowrap}
.booking-toolbar-button:hover,.booking-toolbar-more:hover{border-color:#9aa8ba;background:#f8fafc}
.booking-toolbar-button .toolbar-icon{font-size:14px;line-height:1;color:#172033}
.booking-toolbar-button .toolbar-caret{font-size:12px;color:#64748b;margin-left:1px}
.booking-toolbar-more{width:36px;padding:0;font-size:22px;color:#2563eb;border-color:transparent;background:transparent;box-shadow:none}
.booking-confirm-button{border-color:#9fc6ff;background:#eff6ff;color:#2563eb}
.booking-confirm-button .toolbar-icon{color:#2563eb}
.booking-detail-header{margin-top:2px}
.booking-summary-grid-two{grid-template-columns:minmax(0,1fr) minmax(0,1fr);max-width:none}
.booking-summary-grid-two .booking-summary-card{min-height:116px}
.booking-trip-card-rich{align-items:flex-start;padding:18px;min-height:236px}
.booking-trip-card-rich .trip-card-content{width:100%}
.trip-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.trip-title-row .trip-edit-button{position:static;flex:0 0 32px}
.trip-location{margin-top:12px!important;padding-left:1px;color:#66758b!important;font-weight:600}
.trip-vehicle-block{margin-top:15px}
.trip-vehicle-action{width:100%;display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:11px;padding:11px 12px;border:1px solid #d9e1eb;border-radius:10px;background:#f8fafc;text-align:left;cursor:pointer}
.trip-vehicle-action:hover{border-color:#9db6d8;background:#f2f7fd}
.trip-vehicle-action>span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.trip-vehicle-action small{font-size:10px;color:#64748b;text-transform:uppercase;letter-spacing:.04em}
.trip-vehicle-action b{font-size:13px;color:#172033;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.trip-vehicle-action em{font-style:normal;font-size:11px;color:#64748b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-top:2px}
.trip-vehicle-action strong{font-size:11px;color:#2563eb;background:#fff;border:1px solid #bfd4f4;padding:6px 9px;border-radius:7px}
.trip-vehicle-icon{width:32px;height:32px;border-radius:8px;display:grid;place-items:center;background:#e8eef7;color:#334155;font-weight:900}
.booking-trip-card-rich .trip-operation-button{margin-top:16px}
.booking-trip-card-rich .trip-actual{min-height:18px}
@media(max-width:1350px){.booking-rently-actions{justify-content:flex-start}.booking-detail-toolbar{flex-direction:column}.booking-summary-grid-two{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.booking-summary-grid-two{grid-template-columns:1fr}.booking-toolbar-button{flex:1 1 auto}.booking-rently-actions{width:100%}.booking-trip-card-rich{min-height:0}}

/* ===== Enilive v10.6.6 booking detail refinement ===== */
.booking-detail-toolbar{align-items:center}
.booking-rently-actions{flex-wrap:nowrap;overflow-x:auto;max-width:calc(100vw - 250px);padding-bottom:2px;scrollbar-width:thin}
.booking-toolbar-button{white-space:nowrap;flex:0 0 auto}
.booking-detail-reference{display:grid;grid-template-columns:repeat(3,minmax(90px,1fr));gap:18px;min-width:380px;text-align:right}
.booking-detail-reference div{display:flex;flex-direction:column;gap:4px}
.booking-detail-reference span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}
.booking-detail-reference strong{font-size:13px;color:#334155;overflow-wrap:anywhere}
.booking-summary-grid-three{grid-template-columns:repeat(3,minmax(0,1fr));margin:12px 0 14px}
.booking-summary-grid-three .booking-summary-card{min-height:126px;width:100%}
.booking-detail-layout{grid-template-columns:minmax(0,1fr) 330px}
.booking-detail-side .booking-section-card{min-height:100%}
.booking-trip-card-rich{padding:16px 52px 16px 16px;align-items:flex-start;min-height:250px}
.booking-trip-card-rich .trip-card-content{display:flex;flex-direction:column;width:100%;min-width:0;height:100%}
.trip-title-row h3{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin-top:4px}
.trip-actual-inline{font-size:11px!important;color:#c1122f!important;font-weight:700}
.trip-location{font-weight:700;color:#64748b!important;margin-top:12px!important}
.trip-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 10px}
.trip-metrics>div{border:1px solid var(--line);background:#f8fafc;border-radius:10px;padding:11px 12px}
.trip-metrics span{display:block;font-size:11px;color:var(--muted);margin-bottom:4px}
.trip-metrics b{font-size:15px;color:#1f2937}
.trip-state{font-size:12px;color:#64748b!important;margin:2px 0 12px!important}
.trip-operation-button{margin-top:auto}
.booking-detail-side{position:static;align-self:stretch}
.booking-detail-side .economic-lines{min-height:260px}
.booking-detail-side .economic-lines>div{padding:12px 0}
.booking-summary-card-hint{margin-top:8px}
@media(max-width:1250px){.booking-detail-reference{min-width:0;text-align:left}.booking-summary-grid-three{grid-template-columns:1fr 1fr}.booking-summary-grid-three .booking-summary-card:last-child{grid-column:1/-1}.booking-rently-actions{max-width:100%;flex-wrap:wrap}.booking-detail-toolbar{align-items:flex-start}}
@media(max-width:820px){.booking-summary-grid-three{grid-template-columns:1fr}.booking-summary-grid-three .booking-summary-card:last-child{grid-column:auto}.booking-detail-reference{grid-template-columns:1fr}.booking-trip-card-rich{min-height:0}.trip-metrics{grid-template-columns:1fr 1fr}}

/* v10.6.7 booking detail refinements */
.booking-summary-grid-five{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.booking-summary-grid-five .booking-summary-card{min-height:102px;padding:14px;gap:10px}
.booking-summary-grid-five .booking-summary-card h3{font-size:14px;margin:3px 0 5px}
.booking-summary-grid-five .booking-summary-card p{font-size:12px;line-height:1.3}
.booking-summary-grid-five .summary-card-icon{width:34px;height:34px;font-size:16px}
.summary-card-icon.invoice,.summary-card-icon.add{background:#f5f3ff;color:#6d28d9}
.trip-metrics{display:flex;gap:24px;margin-top:14px;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.trip-metrics>div{min-width:130px;background:transparent!important;border:0!important;padding:0!important}
.trip-metrics span{display:block;font-size:11px;color:var(--muted);margin-bottom:3px}
.trip-metrics b{font-size:14px;color:#1f2937}
.payment-status-line{margin:7px -8px!important;padding:12px 8px!important;border-radius:9px;font-weight:800}
.payment-status-line.unpaid{background:#fff1f2;color:#b91c1c;border:1px solid #fecdd3}
.payment-status-line.paid{background:#ecfdf5;color:#15803d;border:1px solid #bbf7d0}
.booking-toolbar-more{display:none!important}
@media(max-width:1450px){.booking-summary-grid-five{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.booking-summary-grid-five{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.booking-summary-grid-five{grid-template-columns:1fr}}

/* v10.6.8 - contesto sede e filtro categorie dashboard */
.dashboard-filters{display:flex;align-items:end;gap:14px;margin:0 0 12px;padding:10px 12px;background:#fff;border:1px solid var(--border,#dbe2ea);border-radius:12px}
.dashboard-filters label{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:700;color:#536078;min-width:260px}
.dashboard-filters select{height:38px;border:1px solid #ccd5e1;border-radius:9px;background:#fff;padding:0 12px;font:inherit;color:#1f2937}
.dashboard-scope-label{margin-left:auto;align-self:center;font-size:13px;color:#667085;font-weight:600}
.branch-menu button{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px}
.branch-menu button small{font-weight:400;color:#667085}
.branch-menu button.active{background:#fff1f3;color:#b51225;font-weight:800}
@media(max-width:760px){.dashboard-filters{align-items:stretch;flex-direction:column}.dashboard-filters label{min-width:0}.dashboard-scope-label{margin-left:0}}

/* v10.6.9 booking cards */
.booking-summary-grid-five{grid-template-columns:repeat(4,minmax(0,1fr)) 310px!important;align-items:stretch}
.booking-summary-grid-five .booking-summary-card{min-width:0}
.booking-summary-grid-five .booking-summary-card:last-child{width:310px}
.booking-summary-grid-five .summary-card-hint{display:none!important}
.customer-role-modal-card{width:min(680px,94vw)}
.customer-role-modal-card>input{width:100%;margin:12px 0}
.customer-role-list{display:flex;flex-direction:column;max-height:420px;overflow:auto;border:1px solid var(--line);border-radius:12px}
.customer-role-row{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:13px 14px;border:0;border-bottom:1px solid var(--line);background:#fff;border-radius:0}
.customer-role-row:last-child{border-bottom:0}.customer-role-row:hover{background:#f8fafc}.customer-role-row small{display:block;color:var(--muted);margin-top:3px}
@media(max-width:1350px){.booking-summary-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))!important}.booking-summary-grid-five .booking-summary-card:last-child{width:auto}}

/* v10.6.10 - menu sedi contenuto e filtro categorie visibile */
.topbar-actions .branch-menu{left:auto!important;right:0!important;top:48px!important;width:min(320px,calc(100vw - 24px))!important;max-height:min(420px,calc(100vh - 80px));overflow-y:auto;overflow-x:hidden;box-sizing:border-box}
.topbar-actions .branch-menu button{min-width:0;overflow:hidden}
.topbar-actions .branch-menu button span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.topbar-actions .branch-menu button small{flex:0 0 auto;max-width:105px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0}
.dashboard-filters{margin:12px 0 12px}
@media(max-width:760px){.topbar-actions .branch-menu{position:fixed!important;left:12px!important;right:12px!important;top:62px!important;width:auto!important}}

/* v10.6.11 booking detail alignment and modal fixes */
.booking-summary-grid-five{grid-template-columns:repeat(4,minmax(0,1fr)) 330px!important;gap:14px!important;margin:14px 0!important}
.booking-summary-grid-five .booking-summary-card:last-child{width:330px!important}
.booking-detail-layout{grid-template-columns:minmax(0,1fr) 330px!important;gap:14px!important;align-items:start}
.booking-detail-main,.booking-detail-side{margin:0!important;padding:0!important}
.booking-detail-side .booking-section-card{box-sizing:border-box;width:100%;overflow:hidden}
.economic-lines{width:100%;box-sizing:border-box}
.economic-lines>div{box-sizing:border-box;width:100%;min-width:0}
.economic-lines .economic-total,.economic-lines .payment-status-line{margin:6px 0!important;width:100%;box-sizing:border-box}
.economic-lines b{white-space:nowrap;max-width:48%;text-align:right}
.customer-role-modal-card{position:relative}
.customer-role-modal-card .modal-close{position:absolute;right:14px;top:14px;z-index:3}
@media(max-width:1350px){.booking-summary-grid-five{grid-template-columns:repeat(2,minmax(0,1fr))!important}.booking-summary-grid-five .booking-summary-card:last-child{width:auto!important}.booking-detail-layout{grid-template-columns:1fr!important}}

/* Dashboard toolbar v10.6.12 */
.dashboard-toolbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px;position:relative}
.dashboard-toolbar .toolbar-nav{display:flex;gap:6px;align-items:center}
.dashboard-toolbar .toolbar-period{margin:0;text-align:center;justify-self:center;font-size:16px;white-space:nowrap}
.dashboard-toolbar .toolbar-controls{display:flex;align-items:center;justify-content:flex-end;gap:18px;min-width:0}
.toolbar-category{display:flex;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:12px;font-weight:700;white-space:nowrap}
.toolbar-category select{min-width:210px;height:36px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 34px 0 11px;color:var(--ink);font-weight:650}
.dashboard-filters,.dashboard-scope-label{display:none!important}
@media (max-width:1050px){
 .dashboard-toolbar{grid-template-columns:auto 1fr}
 .dashboard-toolbar .toolbar-period{grid-column:2;grid-row:1}
 .dashboard-toolbar .toolbar-controls{grid-column:1/-1;justify-content:space-between;flex-wrap:wrap}
}


/* v10.6.13 */
.summary-card-icon.car,.summary-card-icon.person{font-size:19px;line-height:1;background:#f3f6fa;color:#334155}
.booking-detail-side .booking-section-card{overflow:hidden}
.booking-detail-side .economic-lines{min-width:0;width:100%}
.booking-detail-side .economic-line{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-width:0;width:100%;box-sizing:border-box}
.booking-detail-side .economic-line>*{min-width:0}
.booking-detail-side .economic-line strong{white-space:nowrap;text-align:right}
.booking-detail-side .economic-line.total,.booking-detail-side .economic-line.balance{margin-left:0;margin-right:0;width:100%;box-sizing:border-box}
.customer-tabs button.tab-disabled{opacity:.35;cursor:not-allowed;pointer-events:none}
#customerForm.company-mode [data-tab-panel]:not([data-tab-panel="company"]){display:none!important}
#customerForm.company-mode .customer-tabs button:not([data-customer-tab="company"]){display:none}
#customerForm.company-mode .customer-tabs button[data-customer-tab="company"]{display:inline-flex}
@media(min-width:1351px){.booking-summary-grid-five{grid-template-columns:repeat(4,minmax(0,1fr)) 330px!important}.booking-summary-grid-five .booking-summary-card:last-child{width:330px!important}}

/* v10.6.14 - booking polish and economic containment */
.booking-detail-header{padding:16px 20px!important}
.booking-detail-title-line h1{font-size:22px!important;line-height:1.15}
.booking-detail-meta{font-size:13px!important}
.booking-detail-reference{font-size:11px!important}
.booking-summary-grid-five .booking-summary-card{padding:12px!important;min-height:96px!important}
.booking-summary-grid-five .booking-summary-card h3{font-size:13px!important;line-height:1.25!important}
.booking-summary-grid-five .booking-summary-card p{font-size:11px!important}
.summary-card-icon.car svg,.summary-card-icon.person svg{width:19px;height:19px;display:block}
.booking-detail-side .booking-section-card{padding:16px!important;overflow:hidden!important}
.booking-detail-side .economic-lines{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;overflow:hidden!important;box-sizing:border-box!important}
.booking-detail-side .economic-lines>div{display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;align-items:center!important;column-gap:12px!important;width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;margin-left:0!important;margin-right:0!important;padding-left:0!important;padding-right:0!important}
.booking-detail-side .economic-lines>div.economic-total,
.booking-detail-side .economic-lines>div.payment-status-line{padding:11px 10px!important;margin:6px 0!important;width:100%!important;max-width:100%!important;box-sizing:border-box!important}
.booking-detail-side .economic-lines span{min-width:0!important;overflow-wrap:anywhere}
.booking-detail-side .economic-lines b{min-width:0!important;max-width:none!important;white-space:nowrap!important;text-align:right!important}

/* Enilive v10.6.15 - icon set e card */
.summary-card-icon{width:38px;height:38px;min-width:38px;border-radius:12px;display:grid;place-items:center;box-shadow:inset 0 0 0 1px rgba(255,255,255,.65)}
.summary-card-icon svg{width:21px;height:21px}
.summary-card-icon.tone-blue{color:#2563eb;background:linear-gradient(135deg,#dbeafe,#eff6ff)}
.summary-card-icon.tone-teal{color:#0f766e;background:linear-gradient(135deg,#ccfbf1,#f0fdfa)}
.summary-card-icon.tone-violet{color:#7c3aed;background:linear-gradient(135deg,#ede9fe,#f5f3ff)}
.summary-card-icon.tone-amber{color:#c2410c;background:linear-gradient(135deg,#ffedd5,#fff7ed)}
.summary-card-icon.tone-rose{color:#be123c;background:linear-gradient(135deg,#ffe4e6,#fff1f2)}
.booking-summary-card{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease}
.booking-summary-card:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(15,23,42,.07);border-color:#cbd5e1}
/* v10.6.21 - allegati cliente */
.document-drop-zone{position:relative;display:flex;min-height:126px;margin-top:14px;border:2px dashed #cbd4e1;border-radius:14px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:4px;text-align:center;cursor:pointer;transition:.18s ease}
.document-drop-zone:hover,.document-drop-zone.drag-over{border-color:#d3193f;background:#fff7f9;transform:translateY(-1px)}
.document-drop-zone input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}
.document-drop-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#fce8ed;color:#c8102e;font-size:25px;font-weight:400}
.document-drop-zone b{font-size:14px;color:#273142}.document-drop-zone small{color:#748094}
.document-selection{margin-top:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.document-upload-actions{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}.document-upload-actions small{color:#697386}
.document-upload-disabled{opacity:.72}.document-upload-disabled .document-drop-zone{cursor:not-allowed;background:#f3f5f8}.document-upload-disabled .document-drop-zone input{cursor:not-allowed}


/* v10.8.2 - configurazione App In/Out e incidenti */
.embedded-config-frame{height:760px;border:1px solid #dde3eb;border-radius:14px;overflow:hidden;background:#f7f9fc}.embedded-config-frame iframe{display:block;width:100%;height:100%;border:0}.incident-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:16px;border:1px solid #e1e6ee;border-radius:14px;background:#fff;margin-bottom:10px}.incident-main>div{display:flex;align-items:center;gap:10px}.incident-main h3{margin:7px 0 3px;font-size:16px}.incident-main p{margin:0 0 5px;color:#526071}.incident-main small{color:#7a8595}.incident-actions{display:grid;gap:8px;justify-items:end}.incident-actions select{min-width:150px}.button-link{display:inline-flex;align-items:center;justify-content:center;padding:8px 12px;border:1px solid #d7dee7;border-radius:9px;text-decoration:none;color:#273244;background:#fff}@media(max-width:760px){.embedded-config-frame{height:900px}.incident-row{grid-template-columns:1fr}.incident-actions{justify-items:stretch}.incident-actions strong{text-align:left}}

/* v10.8.4 incidenti */
.trip-operation-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.trip-operation-actions .trip-operation-button{flex:1;min-width:150px}.trip-operation-button.incident{background:#fff3e8;color:#a54a00;border:1px solid #efb37f}.incident-dialog{max-width:720px}.booking-record-list .incident-row{margin-bottom:10px}
/* v10.8.5 matrice danni e righe incidente */
.incident-config-frame iframe{min-height:680px}.incident-items-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0 8px}.incident-items-head p{margin:2px 0 0}.incident-items-editor{display:grid;gap:8px;margin-bottom:12px}.incident-item-row{display:grid;grid-template-columns:minmax(240px,1fr) 90px 120px 42px;gap:8px;align-items:start;position:relative}.incident-item-row input{width:100%}.incident-item-suggestions{position:absolute;left:0;right:260px;top:42px;z-index:30;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 25px rgba(31,41,55,.14);max-height:230px;overflow:auto}.incident-item-suggestions button{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid #edf0f4;border-radius:0;background:#fff;padding:9px}.incident-item-suggestions button:hover{background:#f7f9fc}.incident-item-suggestions small{display:block;color:var(--muted)}.incident-item-remove{height:40px;padding:0;color:#b20e22}.incident-item-total{text-align:right;font-weight:800;padding-top:11px}@media(max-width:760px){.incident-item-row{grid-template-columns:1fr 80px 100px 40px}.incident-item-suggestions{right:228px}}
/* v10.8.6 incidenti: dettaglio, allegati, pagamenti e fatture */
.incident-row{cursor:pointer}.incident-row:hover{border-color:#b8c4d4;background:#fbfcfe}.incident-detail-dialog{width:min(1080px,calc(100vw - 32px));max-height:90vh;overflow:auto}.incident-detail-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.incident-detail-head .actions{display:flex;gap:8px;flex-wrap:wrap}.incident-tabs{margin:18px 0}.incident-detail-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.incident-detail-summary-grid>div{border:1px solid var(--line,#dbe2ea);border-radius:12px;padding:12px;background:#fafbfd}.incident-detail-summary-grid span{display:block;color:#667085;font-size:12px;margin-bottom:5px}.incident-detail-summary-grid b{font-size:14px}.incident-detail-items{border:1px solid var(--line,#dbe2ea);border-radius:12px;overflow:hidden}.incident-detail-item{display:grid;grid-template-columns:1fr 90px 120px 120px;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line,#dbe2ea);align-items:center}.incident-detail-item:last-child{border-bottom:0}.incident-detail-item strong{text-align:right}.incident-attachments-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.incident-attachment-card{border:1px solid var(--line,#dbe2ea);border-radius:12px;overflow:hidden;background:#fff}.incident-attachment-card img{width:100%;aspect-ratio:4/3;object-fit:cover;background:#f2f4f7}.incident-attachment-card .file-icon{aspect-ratio:4/3;display:grid;place-items:center;font-size:34px;background:#f2f4f7}.incident-attachment-card div:last-child{padding:10px}.incident-attachment-card a{font-weight:700;text-decoration:none}.incident-finance-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.incident-finance-summary>div{border:1px solid var(--line,#dbe2ea);border-radius:12px;padding:14px}.incident-finance-summary span{display:block;color:#667085;font-size:12px}.incident-finance-summary b{font-size:18px}.upload-button{cursor:pointer}@media(max-width:800px){.incident-detail-summary-grid,.incident-finance-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.incident-attachments-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.incident-detail-item{grid-template-columns:1fr 70px 90px}.incident-detail-item strong:last-child{grid-column:1/-1}.incident-detail-head{display:block}.incident-detail-head .actions{margin-top:12px}}
/* v10.8.8 - categoria veicolo e righe fisse incidente */
.incident-category-info{display:flex;align-items:center;gap:10px;margin:10px 0 14px;padding:10px 12px;border:1px solid #cfd9e6;border-radius:12px;background:#f7f9fc;color:#344054}
.incident-category-info b{color:#111827}.incident-category-info .category-chip{display:inline-flex;align-items:center;padding:4px 9px;border-radius:999px;background:#e8eefc;color:#234f9b;font-weight:800}
.incident-item-row.is-fixed{background:#fafbfc;border:1px solid #e3e8ef;border-radius:11px;padding:7px}
.incident-item-row.is-fixed .incident-item-desc,.incident-item-row.is-fixed .incident-item-price,.incident-item-row.is-fixed .incident-item-qty{background:#f2f4f7;color:#344054}
.incident-item-group{display:block;font-size:11px;font-weight:800;color:#667085;margin-top:3px;text-transform:uppercase;letter-spacing:.03em}
.incident-create-help{margin:8px 0 0;text-align:right}

/* Enilive v10.8.9 - restyling incidenti */
.incident-workspace-dialog{width:min(1400px,calc(100vw - 28px));max-width:none;max-height:94vh;overflow:auto;padding:14px;background:transparent;box-shadow:none}
.incident-workspace-dialog>.x{position:absolute;right:26px;top:24px;width:38px;height:38px;border-radius:10px;border:1px solid #d7dee8;background:#fff;box-shadow:0 4px 12px rgba(15,23,42,.08);z-index:35}
.incident-workspace{background:#f4f7fb;border:1px solid #dbe2ea;border-radius:18px;padding:18px;box-shadow:0 18px 40px rgba(15,23,42,.12)}
.incident-page-header{margin-bottom:12px}
.incident-header-side{display:flex;justify-content:flex-end;align-items:flex-start;min-width:220px}
.incident-form-page{padding-bottom:4px}.incident-create-summary,.incident-detail-summary-cards{margin-top:0}.booking-summary-grid-three{grid-template-columns:repeat(3,minmax(0,1fr))}
.incident-create-layout,.incident-detail-layout{align-items:start}.incident-create-side,.incident-detail-side{position:sticky;top:0;align-self:start}
.incident-create-side .booking-section-card,.incident-detail-side .booking-section-card{margin-top:0}
.incident-form-actions{margin-top:18px;flex-wrap:wrap}.incident-form-actions button{min-width:150px}
.incident-items-head{margin:0 0 10px}.incident-items-head h3{margin:0}.incident-items-head button{white-space:nowrap}
.incident-category-info{margin:0;padding:12px 14px;border-radius:14px;background:#fff;border:1px solid #dbe2ea;box-shadow:0 3px 12px rgba(15,23,42,.04)}
.incident-category-info span:first-child{font-size:11px;font-weight:800;letter-spacing:.08em;color:#64748b;text-transform:uppercase}
.summary-card-icon.tone-blue{background:#e8f0ff;color:#1d4ed8}.summary-card-icon.tone-teal{background:#e7f8f6;color:#0f766e}.summary-card-icon.tone-violet{background:#f1eafe;color:#7c3aed}.summary-card-icon.tone-rose{background:#ffe9ee;color:#c91832}
.incident-toolbar-spacer{flex:1}
.incident-detail-toolbar{margin-bottom:10px}.incident-detail-toolbar .booking-detail-actions{justify-content:flex-end;width:100%}
.incident-detail-toolbar .booking-toolbar-button.primary{background:var(--brand);border-color:var(--brand);color:#fff}.incident-detail-toolbar .booking-toolbar-button.primary .toolbar-icon{color:#fff}
.incident-page-header .booking-detail-reference{display:grid;grid-template-columns:repeat(3,minmax(120px,1fr));gap:12px;align-self:center;min-width:360px}
.incident-page-header .booking-detail-reference div{padding:12px 14px;border:1px solid #dbe2ea;border-radius:12px;background:#fff}
.incident-page-header .booking-detail-reference span{display:block;font-size:11px;font-weight:800;color:#64748b;letter-spacing:.06em;text-transform:uppercase;margin-bottom:5px}
.incident-page-header .booking-detail-reference strong{display:block;font-size:13px;line-height:1.35}
.incident-detail-panel{display:grid;gap:14px;margin-top:0}
.incident-description-block p{margin:0;color:#334155;line-height:1.65;white-space:pre-wrap}
.incident-note-inline{margin-top:14px;padding:14px;border:1px dashed #cfd8e5;border-radius:12px;background:#f8fafc}
.incident-note-inline span{display:block;margin-bottom:6px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b}
.incident-note-inline p{margin:0;white-space:pre-wrap;color:#334155}
.incident-detail-items{background:#fff}.incident-detail-item{grid-template-columns:minmax(0,1fr) 70px 110px 110px}.incident-detail-item div{min-width:0}.incident-detail-item b{display:block;line-height:1.35}
.incident-preview{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}
.incident-inline-meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.incident-mini-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;background:#f4f7fb;border:1px solid #dbe2ea;color:#516075;font-size:12px;font-weight:600}
.incident-main p.incident-preview{margin:0 0 2px;color:#526071}
.incident-row{padding:18px;border-radius:15px;transition:.18s ease}.incident-row:hover{border-color:#c2ccd9;box-shadow:0 8px 22px rgba(15,23,42,.06);transform:translateY(-1px)}
.incident-main h3{margin:7px 0 6px;line-height:1.35}.incident-actions{align-items:end}.incident-actions strong{font-size:28px;line-height:1.05}.incident-actions .button-link{font-weight:800}
.incident-create-help{margin:10px 0 0;line-height:1.45}
.incident-attachments-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
@media(max-width:1180px){.booking-summary-grid-three{grid-template-columns:1fr}.incident-create-side,.incident-detail-side{position:static}.incident-page-header .booking-detail-reference{grid-template-columns:1fr;min-width:0;width:100%}}
@media(max-width:820px){.incident-workspace-dialog{width:min(100vw,calc(100vw - 10px));padding:8px}.incident-workspace{padding:12px}.incident-page-header,.incident-detail-toolbar{flex-direction:column;align-items:stretch}.incident-header-side{min-width:0}.incident-actions strong{font-size:22px}.incident-detail-item{grid-template-columns:minmax(0,1fr) 60px 90px}.incident-detail-item strong:last-child{grid-column:1/-1;text-align:left}.incident-workspace-dialog>.x{right:18px;top:18px}}

/* Enilive v10.9.0 - cancellazione incidenti */
.incident-delete-button{color:#b42318!important;border-color:#f0b4ae!important;background:#fff7f6!important}
.incident-delete-button .toolbar-icon{color:#b42318!important}
.incident-delete-button:hover{background:#feeceb!important;border-color:#dc8178!important}
.incident-row-delete{color:#b42318;border-color:#f0b4ae;background:#fff7f6}
.incident-row-buttons{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.incident-row-buttons .button-link,.incident-row-buttons button{min-width:82px}
@media(max-width:760px){.incident-row-buttons{justify-content:stretch}.incident-row-buttons .button-link,.incident-row-buttons button{flex:1}}

/* Enilive v10.9.1 - creazione incidente come pagina */
.incident-create-page{max-width:1760px;margin:0 auto;padding:16px 18px 34px}
.incident-workspace-page{background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}
.incident-create-page .booking-detail-toolbar{position:static;background:transparent;padding:0 0 12px;margin:0}
.incident-create-page .incident-page-header{margin-bottom:14px}
.incident-contract-search-card{margin-top:0;margin-bottom:14px;padding:18px}
.incident-contract-search-card .section-card-head{align-items:flex-start;margin-bottom:12px}
.incident-contract-search-card .section-card-head h3{margin:0 0 5px}
.incident-contract-search-card .section-card-head .muted{margin:0;line-height:1.45}
.incident-contract-search-wrap{position:relative}
.incident-contract-search-wrap>input{height:48px;margin:0;padding:0 15px;font-size:15px;background:#fff}
.incident-booking-search-results{position:absolute;left:0;right:0;top:54px;z-index:45;max-height:340px;overflow:auto;background:#fff;border:1px solid #cfd8e5;border-radius:12px;box-shadow:0 18px 38px rgba(15,23,42,.16)}
.incident-booking-search-results button{display:block;width:100%;border:0;border-bottom:1px solid #edf1f5;border-radius:0;padding:13px 15px;text-align:left;background:#fff}
.incident-booking-search-results button:last-child{border-bottom:0}.incident-booking-search-results button:hover{background:#f7f9fc}
.incident-booking-search-results b,.incident-booking-search-results small{display:block}.incident-booking-search-results small{margin-top:5px;color:#64748b;font-weight:500;line-height:1.4}
.incident-selected-booking{margin-top:12px;padding:12px 14px;border:1px solid #b9d8c8;border-radius:12px;background:#f0faf5;display:flex;align-items:center;justify-content:space-between;gap:16px}
.incident-selected-booking div{min-width:0}.incident-selected-booking span,.incident-selected-booking b,.incident-selected-booking small{display:block}.incident-selected-booking span{font-size:11px;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:#257052}.incident-selected-booking b{margin-top:4px}.incident-selected-booking small{margin-top:4px;color:#587064;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.incident-selected-booking button{flex:0 0 auto}
.incident-create-page .incident-create-summary{margin-top:0}
.incident-create-page .incident-create-layout{align-items:start}
.incident-create-page .incident-create-side{position:sticky;top:78px}
@media(max-width:1100px){.incident-create-page .incident-create-side{position:static}.incident-selected-booking{align-items:flex-start;flex-direction:column}.incident-selected-booking small{white-space:normal}}
@media(max-width:700px){.incident-create-page{padding:10px}.incident-contract-search-card{padding:14px}.incident-create-page .booking-summary-grid-three{grid-template-columns:1fr}.incident-booking-search-results{max-height:280px}}


/* Enilive v10.9.2 - compattazione pagina nuovo incidente */
.incident-create-page{padding:8px 16px 26px}
.incident-create-page .booking-detail-toolbar{padding:0 0 8px;margin:0}
.incident-create-page .booking-back-button{height:34px;padding:0 12px;border-radius:10px;font-size:14px}
.incident-create-page .incident-page-header{margin-bottom:10px;padding:14px 18px!important;min-height:0}
.incident-create-page .booking-detail-kicker{margin-bottom:4px;font-size:10px}
.incident-create-page .booking-detail-title-line h2{margin:0;font-size:20px;line-height:1.15}
.incident-create-page .booking-detail-title-line{gap:10px;row-gap:4px}
.incident-create-page .incident-page-header .muted{margin-top:6px;font-size:13px;line-height:1.35}
.incident-header-side{min-width:180px}
.incident-category-info{padding:10px 12px;border-radius:12px;gap:8px}
.incident-category-info span:first-child{font-size:10px;letter-spacing:.07em}
.incident-category-info .category-chip{padding:3px 8px;font-size:13px}
.incident-contract-search-card{margin-bottom:10px;padding:14px 16px}
.incident-contract-search-card .section-card-head{margin-bottom:10px}
.incident-contract-search-card .section-card-head h3{font-size:16px;margin:0 0 3px}
.incident-contract-search-card .section-card-head .muted{font-size:13px;line-height:1.35}
.incident-contract-search-wrap>input{height:44px;font-size:14px}
.incident-booking-search-results{top:50px}
.incident-selected-booking{margin-top:10px;padding:10px 12px;border-radius:10px;gap:12px}
.incident-selected-booking span{font-size:10px}
.incident-selected-booking b{margin-top:2px;font-size:15px;line-height:1.2}
.incident-selected-booking small{margin-top:2px;font-size:12px}
.incident-create-summary{margin:0 0 10px}
.incident-create-summary .booking-summary-card{padding:14px 14px 14px 12px;min-height:102px;gap:10px}
.incident-create-summary .summary-card-icon{width:34px;height:34px;border-radius:10px}
.incident-create-summary .summary-card-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.incident-create-summary .booking-summary-card span{font-size:11px;line-height:1.1}
.incident-create-summary .booking-summary-card h3{font-size:14px;line-height:1.2;margin:1px 0 2px}
.incident-create-summary .booking-summary-card p{font-size:13px;line-height:1.3;margin:0}
.incident-create-summary .booking-summary-card p:last-child{font-size:12px;color:#64748b}
.incident-create-layout{gap:12px}
.incident-create-page .booking-section-card{margin-top:12px;padding:15px}
.incident-create-page .booking-section-card h3{margin-bottom:10px}
.incident-create-page .incident-create-side{top:68px}
.incident-create-help{font-size:12px}
@media(max-width:700px){
  .incident-create-page{padding:8px}
  .incident-create-page .incident-page-header{padding:12px 14px!important}
  .incident-contract-search-card{padding:12px}
}


/* Enilive v10.9.3 - layout righe danno ordinato con breakdown IVA */
.incident-page-header .booking-detail-kicker{margin-bottom:6px}
.incident-page-header .booking-detail-title-line{gap:10px;align-items:center}
.incident-page-header .booking-detail-title-line h2{margin:0}
.incident-page-header .muted{margin:6px 0 0;font-size:13px}
.incident-contract-search-card .muted{font-size:13px}
.incident-items-editor{gap:10px;margin-bottom:4px}
.incident-item-grid-head,.incident-item-row{display:grid;grid-template-columns:minmax(280px,1.8fr) 90px 120px 95px 130px 50px;gap:8px;align-items:start}
.incident-item-grid-head{padding:0 4px 2px;color:#667085;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.incident-item-row{position:relative;padding:10px;border:1px solid #e4e9f0;border-radius:12px;background:#fff}
.incident-item-row.is-fixed{padding:10px 10px 9px}
.incident-item-desc-wrap{position:relative;min-width:0}
.incident-item-row input{width:100%;font-size:13px;line-height:1.2}
.incident-item-desc{font-size:13px!important;font-weight:600}
.incident-item-group{display:block;margin-top:5px;color:#667085;font-size:11px;line-height:1.3}
.money-field{position:relative}
.money-field input{padding-right:26px;text-align:right;font-variant-numeric:tabular-nums}
.money-field span{position:absolute;right:10px;top:50%;transform:translateY(-50%);color:#667085;font-size:12px;font-weight:700;pointer-events:none}
.money-field.readonly input{background:#f8fafc;color:#344054}
.incident-item-row.is-fixed .money-field.readonly input,.incident-item-row.is-fixed .incident-item-desc,.incident-item-row.is-fixed .incident-item-net,.incident-item-row.is-fixed .incident-item-qty{background:#f3f5f8;color:#344054}
.incident-item-qty{text-align:center}
.incident-fixed-badge,.incident-item-remove{display:inline-flex;align-items:center;justify-content:center;height:40px;border-radius:10px}
.incident-fixed-badge{font-size:11px;font-weight:800;color:#475467;background:#f3f4f6;border:1px solid #e4e7ec}
.incident-item-remove{padding:0;color:#b20e22}
.incident-item-suggestions{left:0;right:0;top:44px;z-index:40}
.incident-item-suggestions button{padding:9px 10px}
.incident-item-suggestions b{font-size:13px;line-height:1.3}
.incident-item-suggestions small{font-size:11px;line-height:1.3}
.incident-create-page .booking-summary-card h3{font-size:14px!important;line-height:1.2}
.incident-create-page .booking-summary-card p{font-size:12px!important;line-height:1.35;margin:2px 0 0}
.incident-create-page .booking-summary-card span{font-size:11px}
.incident-detail-items{background:#fff}
.incident-detail-items-head,.incident-detail-item{display:grid;grid-template-columns:minmax(280px,1.8fr) 70px 110px 90px 110px;gap:10px;align-items:center}
.incident-detail-items-head{padding:10px 14px;border-bottom:1px solid var(--line,#dbe2ea);background:#f8fafc;color:#667085;font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}
.incident-detail-item{padding:11px 14px}
.incident-detail-item b{font-size:13px;line-height:1.3}
.incident-detail-item span,.incident-detail-item strong{font-size:13px;font-variant-numeric:tabular-nums}
.incident-detail-item strong{text-align:right}
@media(max-width:1024px){
  .incident-item-grid-head,.incident-item-row{grid-template-columns:minmax(220px,1.5fr) 72px 110px 84px 110px 44px}
}
@media(max-width:760px){
  .incident-item-grid-head{display:none}
  .incident-item-row{grid-template-columns:1fr 74px 110px;gap:8px}
  .incident-item-desc-wrap{grid-column:1/-1}
  .incident-item-row .money-field:nth-of-type(2),.incident-item-row .money-field:nth-of-type(3){grid-column:span 1}
  .incident-item-row .money-field.readonly:last-of-type{grid-column:1/3}
  .incident-fixed-badge,.incident-item-remove{grid-column:3/4}
  .incident-detail-items-head{display:none}
  .incident-detail-item{grid-template-columns:1fr 70px 1fr 1fr;row-gap:6px}
  .incident-detail-item strong{grid-column:3/5}
}


/* Enilive v10.9.4 - fix intestazione pagina e prezzo netto */
.incident-create-page .incident-page-header{
  display:block!important;
  height:auto!important;
  min-height:0!important;
  overflow:visible!important;
  padding:14px 18px 13px!important;
  margin:0 0 12px!important;
  align-items:initial!important;
}
.incident-create-page .incident-page-header>div:first-child{
  display:block!important;
  min-width:0!important;
  padding-right:0!important;
}
.incident-create-page .booking-detail-kicker{display:none!important}
.incident-create-page .booking-detail-title-line{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  row-gap:6px!important;
  margin:0!important;
}
.incident-create-page .booking-detail-title-line h2{
  margin:0!important;
  font-size:21px!important;
  line-height:1.2!important;
}
.incident-create-page .incident-page-header .muted{
  display:block!important;
  position:static!important;
  clear:both!important;
  margin:8px 0 0!important;
  padding:0!important;
  font-size:13px!important;
  line-height:1.4!important;
  white-space:normal!important;
}
.incident-create-page .incident-header-side{
  display:none!important;
}
.incident-item-grid-head{
  grid-template-columns:minmax(280px,1.8fr) 90px 140px 100px 130px 50px!important;
}
.incident-item-row{
  grid-template-columns:minmax(280px,1.8fr) 90px 140px 100px 130px 50px!important;
}
.incident-item-grid-head span:nth-child(n+2){text-align:center}
.incident-item-net{font-weight:700;color:#273244;background:#fff!important}
@media(max-width:1024px){
  .incident-item-grid-head,.incident-item-row{grid-template-columns:minmax(220px,1.5fr) 72px 125px 90px 115px 44px!important}
}
@media(max-width:760px){
  .incident-item-grid-head{display:none!important}
  .incident-item-row{grid-template-columns:1fr 74px 110px!important}
}

/* Enilive v10.9.5 - dettaglio incidente come pagina e lista compatta */
.incident-detail-page{max-width:1760px;margin:0 auto;padding:10px 16px 32px}
.incident-detail-page .booking-detail-toolbar{position:sticky;top:58px;z-index:14;margin:0 0 10px;padding:8px 0 10px;background:rgba(244,247,251,.96);backdrop-filter:blur(8px)}
.incident-detail-page .incident-workspace-page{background:transparent;border:0;border-radius:0;padding:0;box-shadow:none}
.incident-detail-page .incident-page-header{margin-bottom:12px}
.incident-detail-page .incident-detail-summary-cards{margin-top:0}
.incident-detail-page .incident-detail-layout{align-items:start}
.incident-detail-page .incident-detail-side{position:sticky;top:118px}
.incident-detail-page .incident-tabs{margin:0}
.incident-detail-page .incident-detail-panel{margin-top:0}
.incidents-page .table-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) 220px;gap:10px;align-items:center}
.incidents-page #incidentSearch{width:100%;min-width:0}
.incidents-page #incidentStatusFilter{width:100%}
.incidents-page .incident-row{padding:13px 15px;gap:14px;margin-bottom:8px;min-height:0}
.incidents-page .incident-main h3{margin:5px 0 3px;font-size:14px;line-height:1.25}
.incidents-page .incident-main p.incident-preview{max-width:900px;margin:0;font-size:12px;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.incidents-page .incident-inline-meta{margin-top:6px;gap:6px}
.incidents-page .incident-mini-chip{padding:4px 8px;font-size:11px}
.incidents-page .incident-actions{gap:6px;min-width:175px}
.incidents-page .incident-actions>strong{font-size:21px}
.incidents-page .incident-actions select{min-width:155px;height:36px}
.incidents-page .incident-row-buttons .button-link,.incidents-page .incident-row-buttons button{min-width:74px;height:34px;padding:0 10px;font-size:12px}
@media(max-width:1100px){.incident-detail-page .incident-detail-side{position:static}.incidents-page .table-toolbar{grid-template-columns:1fr}}
@media(max-width:760px){.incident-detail-page{padding:8px}.incident-detail-page .booking-detail-toolbar{top:0}.incidents-page .incident-main p.incident-preview{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.incidents-page .incident-actions{min-width:0}}


/* Enilive v10.9.6 - dettaglio incidente nel layout principale e lista senza doppia card */
.incident-detail-page{padding-top:4px}
.incident-detail-page .booking-detail-toolbar{position:static;top:auto;margin:0 0 10px;padding:0;background:transparent;backdrop-filter:none}
.incident-detail-page .incident-workspace-page{margin:0}
.incidents-page #incidentList.data-list{border:0;border-radius:0;overflow:visible;background:transparent}
.incidents-page .incident-row{margin:0 0 8px;border:1px solid #dfe5ee;border-radius:12px;background:#fff;box-shadow:none}
.incidents-page .incident-row:last-child{margin-bottom:0}
.incidents-page .incident-row:hover{transform:none;box-shadow:0 4px 12px rgba(15,23,42,.05)}
.incidents-page{min-height:calc(100vh - 92px)}
@media(max-width:760px){.incident-detail-page{padding-top:0}}


/* Enilive v10.9.8 - dettaglio incidente rifinito */
#incidentInvoiceBtn,
#incidentInvoiceBtn.primary,
.incident-detail-page #incidentInvoiceBtn{
  background:#c8102e!important;
  border-color:#c8102e!important;
  color:#fff!important;
  opacity:1!important;
  visibility:visible!important;
}
#incidentInvoiceBtn .toolbar-icon,
#incidentInvoiceBtn span{color:#fff!important;opacity:1!important}
#incidentInvoiceBtn:disabled{background:#c8102e!important;color:#fff!important;opacity:.55!important;cursor:not-allowed}
.incident-detail-summary-cards .booking-summary-card{min-height:104px;padding:14px 16px;align-items:center}
.incident-detail-summary-cards .summary-card-body{min-width:0;width:100%}
.incident-detail-summary-cards .summary-card-body span{font-size:11px}
.incident-detail-summary-cards .summary-card-body h3{font-size:15px;line-height:1.2;margin:2px 0 5px}
.incident-detail-summary-cards .incident-card-line{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;line-height:1.3;color:#64748b;margin:0}
.incident-damage-card{padding:16px}
.incident-damage-card .section-card-head{margin-bottom:10px}
.incident-detail-items{width:100%;overflow-x:auto}
.incident-detail-items-head,.incident-detail-item{
  display:grid!important;
  grid-template-columns:minmax(420px,1fr) 70px 120px 100px 120px!important;
  column-gap:12px!important;
  align-items:center!important;
}
.incident-detail-items-head span:nth-child(n+2),
.incident-detail-item>span,
.incident-detail-item>strong{text-align:right!important}
.incident-detail-items-head span:first-child,.incident-detail-item>div{text-align:left!important}
.incident-detail-items-head{min-width:900px;padding:10px 14px;background:#f8fafc}
.incident-detail-item{min-width:900px;padding:11px 14px}
.incident-detail-item>div{min-width:0}
.incident-detail-item b{display:block;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.45}
.incident-detail-item>div>small{display:block;margin-top:4px;color:#64748b;white-space:normal;overflow-wrap:anywhere;line-height:1.35}
.damage-repair-button{margin-top:7px;padding:5px 8px;border:1px solid #86c7a7;border-radius:8px;background:#eefaf3;color:#11653c;font-size:11px;font-weight:800;cursor:pointer}
.damage-repair-state{color:#11653c!important;font-weight:750}
.incident-detail-item span,.incident-detail-item strong{font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:900px){
  .incident-detail-summary-cards .incident-card-line{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
}

/* Enilive v11.0.0 - autenticazione e utenti */
.auth-body{min-height:100vh;margin:0;display:grid;place-items:center;background:linear-gradient(145deg,#f5f7fb,#e9eef5);padding:20px;font-family:Inter,Arial,sans-serif;color:#1f2937}
.auth-card{width:min(430px,100%);background:#fff;border:1px solid #dbe2ea;border-radius:20px;padding:28px;box-shadow:0 24px 60px rgba(15,23,42,.12)}
.auth-card-wide{width:min(680px,100%)}.auth-logo{width:58px;height:58px;object-fit:contain}.auth-card h1{margin:14px 0 6px}.auth-card p{color:#667085;margin:0 0 20px;line-height:1.45}.auth-card form{display:grid;gap:14px}.auth-submit{height:44px;margin-top:6px}.auth-error{padding:11px 13px;border:1px solid #fecaca;background:#fff1f2;color:#b42318;border-radius:10px;margin-bottom:14px}
.topbar-user{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;line-height:1.15;margin-left:4px;max-width:150px}.topbar-user span{font-size:12px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.topbar-user small{font-size:10px;color:rgba(255,255,255,.75)}.topbar-logout{display:inline-flex;align-items:center;height:36px;padding:0 10px;border:1px solid rgba(255,255,255,.45);border-radius:9px;color:#fff;text-decoration:none;font-size:12px;font-weight:700}.users-config-frame{height:760px}
@media(max-width:760px){.topbar-user{display:none}.topbar-logout{padding:0 8px}.auth-card{padding:20px}}

/* v11.1.6 dashboard KPI */
.kpi-progress{height:7px;margin-top:9px;border-radius:999px;background:#e8edf3;overflow:hidden}.kpi-progress i{display:block;height:100%;border-radius:inherit;background:var(--red)}.kpi-occupancy strong{margin-bottom:2px}.kpi .kpi-pair strong{white-space:nowrap}.kpi .kpi-pair small{line-height:1.15}

/* v11.1.7 - Configurazione a schede */
.config-page-card{padding:0;overflow:hidden}
.config-page-title{padding:20px 22px 14px;margin:0}
.config-tabs{display:flex;flex-wrap:wrap;align-items:stretch;gap:8px;padding:14px 18px;border-top:1px solid #eef1f5;border-bottom:1px solid var(--line);background:#f7f9fc}
.config-tabs button{flex:1 1 150px;min-height:42px;border:1px solid #dce3ec;border-radius:10px;background:#fff;color:#526174;font-size:13px;font-weight:750;padding:10px 13px;white-space:normal;line-height:1.2;text-align:center;box-shadow:0 1px 2px rgba(15,23,42,.03)}
.config-tabs button:hover{border-color:#f0a6ae;background:#fff7f8;color:var(--red)}
.config-tabs button.open{border-color:var(--red);background:var(--red);color:#fff;box-shadow:0 5px 13px rgba(180,0,35,.18)}
.config-tab-panels{display:block;min-height:420px;padding:22px;background:#fff}
.config-tab-panels>.config-section{border:0;border-radius:0;background:transparent;overflow:visible}
.config-tab-panels>.config-section>.config-section-toggle{display:none!important}
.config-tab-panels .config-section-body{padding:0;border:0;background:#fff}
.config-tab-panels .config-section-body:not(.hidden){display:block}
.config-tab-panels .embedded-config-frame{border:0;border-radius:12px;overflow:hidden;min-height:620px}
.config-tab-panels .embedded-config-frame iframe{width:100%;min-height:620px;border:0;display:block}
@media(max-width:760px){
  .config-page-title{padding:16px 14px 10px}
  .config-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:12px}
  .config-tabs button{min-width:0;font-size:12px;padding:10px 8px}
  .config-tab-panels{min-height:320px;padding:14px}
}

/* v11.1.9 - allegati veicolo */
.vehicle-attachments-box{margin-top:18px;padding-top:16px;border-top:1px solid var(--line,#d9e1eb)}.vehicle-attachments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px}.vehicle-attachment-card{display:grid;grid-template-columns:72px 1fr auto;gap:10px;align-items:center;border:1px solid #dbe3ed;border-radius:12px;padding:9px;background:#fff}.vehicle-attachment-card img{width:72px;height:58px;object-fit:cover;border-radius:8px}.vehicle-attachment-card small{display:block;color:#69768a;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:210px}.vehicle-file-icon{width:72px;height:58px;border-radius:8px;background:#eef2f7;display:flex;align-items:center;justify-content:center;font-weight:900;text-decoration:none;color:#42516a}.vehicle-attachment-card button{padding:6px 8px}@media(max-width:650px){.vehicle-attachments-grid{grid-template-columns:1fr}.vehicle-attachment-card{grid-template-columns:64px 1fr auto}.vehicle-attachment-card img,.vehicle-file-icon{width:64px;height:52px}}


/* Enilive v11.1.11 - Manutenzione */
.maintenance-page{display:grid;gap:16px}.maintenance-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.maintenance-summary>div{border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.maintenance-summary span{display:block;color:var(--muted);font-size:12px}.maintenance-summary strong{font-size:26px}.maintenance-form{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}.maintenance-tabs{display:flex;gap:7px;border-bottom:1px solid var(--line)}.maintenance-tabs button{border:0;border-radius:9px 9px 0 0;background:transparent}.maintenance-tabs button.active{background:#fff0f2;color:var(--red);box-shadow:inset 0 -2px var(--red)}.maintenance-list{display:grid;gap:10px}.maintenance-card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px;border:1px solid var(--line);border-radius:14px;background:#fff}.maintenance-card.closed{opacity:.7}.maintenance-card-main{display:flex;align-items:center;gap:14px;min-width:0}.maintenance-plate{font-weight:900;font-size:17px;min-width:92px;padding:9px 11px;border-radius:9px;background:#eef2f7;text-align:center}.maintenance-card h3{margin:0 0 3px}.maintenance-card p{margin:0 0 5px}.maintenance-card small{color:var(--muted)}.maintenance-card-side{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end}@media(max-width:780px){.maintenance-summary{grid-template-columns:1fr}.maintenance-card{align-items:flex-start;flex-direction:column}.maintenance-card-side{width:100%;justify-content:flex-start}}

/* Enilive v11.1.12 - gestione manutenzioni operativa */
.maintenance-editor{border:1px solid var(--line);border-radius:16px;padding:16px;background:#fbfcfe}.maintenance-editor.hidden{display:none}.maintenance-vehicle-search{position:relative}.maintenance-vehicle-search small{display:block;margin-top:5px;color:var(--muted)}.maintenance-vehicle-results{position:absolute;z-index:60;left:0;right:0;top:66px;max-height:280px;overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 16px 38px rgba(17,24,39,.16);padding:6px}.maintenance-vehicle-results.hidden{display:none}.maintenance-vehicle-results button{display:flex;width:100%;justify-content:space-between;gap:12px;align-items:center;text-align:left;background:#fff;border:0;border-radius:8px;padding:10px}.maintenance-vehicle-results button:hover{background:#f4f7fb}.maintenance-vehicle-results button strong{letter-spacing:.04em}.maintenance-vehicle-results button span{color:var(--muted);font-size:12px}.compact-dialog{max-width:520px}.maintenance-card-side .primary{background:var(--red);color:#fff}.maintenance-card-side .danger{background:#fff0f2;color:#a40019;border-color:#f0bdc5}@media(max-width:700px){.maintenance-vehicle-results{top:64px}.maintenance-card-side button{flex:1}.maintenance-card-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.maintenance-card-side .status-pill{grid-column:1/-1}}


/* v11.1.13 - manutenzioni compatte */
.page-card.maintenance-page{
  min-height:0;
  padding:16px 18px 18px;
  gap:14px;
}
.maintenance-page .page-title{
  margin-bottom:2px;
  align-items:flex-start;
}
.maintenance-page .page-title h1{
  font-size:22px;
  line-height:1.2;
}
.maintenance-page .page-title p{
  margin-top:3px;
  font-size:14px;
  line-height:1.35;
}
.maintenance-page .maintenance-summary{
  gap:12px;
  margin:0;
}
.maintenance-page .maintenance-summary>div{
  min-height:74px;
  padding:12px 14px;
  border-radius:13px;
}
.maintenance-page .maintenance-summary span{
  font-size:12px;
  line-height:1.2;
}
.maintenance-page .maintenance-summary strong{
  display:block;
  margin-top:3px;
  font-size:23px;
  line-height:1;
}
.maintenance-page .maintenance-tabs{
  gap:4px;
  margin-top:1px;
}
.maintenance-page .maintenance-tabs button{
  min-height:0;
  padding:10px 13px;
  font-size:13px;
  line-height:1.1;
}
.maintenance-page .maintenance-list{
  min-height:62px;
}
.maintenance-page .maintenance-list>.empty-state{
  padding:28px 12px 18px;
}
.maintenance-page .maintenance-editor{
  margin-top:2px;
}
@media(max-width:780px){
  .page-card.maintenance-page{padding:14px;gap:12px}
  .maintenance-page .page-title{gap:10px}
  .maintenance-page .page-title h1{font-size:19px}
  .maintenance-page .page-title p{font-size:13px}
  .maintenance-page .maintenance-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .maintenance-page .maintenance-summary>div{min-height:66px;padding:10px}
  .maintenance-page .maintenance-summary strong{font-size:20px}
  .maintenance-page .maintenance-tabs{overflow-x:auto;white-space:nowrap}
}

/* Enilive v11.1.14 - scheda veicolo a tab e manutenzioni */
.vehicle-detail-tabs{display:flex;gap:6px;border-bottom:1px solid var(--border,#d9e0ea);margin:4px 0 16px;overflow-x:auto}
.vehicle-detail-tabs button{border:0;background:transparent;padding:10px 14px;border-radius:9px 9px 0 0;font-weight:700;white-space:nowrap}
.vehicle-detail-tabs button.active{background:#fff0f2;color:#c8102e;border-bottom:2px solid #c8102e}
.vehicle-tab-panel{display:none}
.vehicle-tab-panel.active{display:block}
.maintenance-card[data-maint-card]{scroll-margin-top:110px}
.maintenance-card .danger.ghost{background:#fff;color:#c8102e;border:1px solid #f2a8b4}
.maintenance-card .danger.ghost:hover{background:#fff1f3}
@media(max-width:700px){.vehicle-detail-tabs button{padding:9px 11px;font-size:13px}}
/* ===== Enilive v11.1.15 dettaglio veicolo dedicato ===== */
#registryModal.vehicle-focus .registry-actions,
#registryModal.vehicle-focus .fleet-list-card{display:none!important}
#registryModal.vehicle-focus .registry-title{margin-bottom:4px}
#registryModal.vehicle-focus #vehiclePanel{margin-top:8px;background:#fff}
.vehicle-economics-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.vehicle-economics-summary article{border:1px solid #dbe2ec;border-radius:12px;padding:14px;background:#f8fafc;display:flex;flex-direction:column;gap:6px}
.vehicle-economics-summary span{font-size:12px;color:#64748b}.vehicle-economics-summary strong{font-size:20px}.vehicle-economics-summary .negative{color:#c8102e}
.vehicle-cost-editor{margin-top:10px}.vehicle-revenue-list{margin-top:18px;border:1px solid #dbe2ec;border-radius:12px;overflow:hidden;background:#fff}
.vehicle-revenue-head,.vehicle-revenue-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:12px 14px;border-bottom:1px solid #edf1f5}.vehicle-revenue-row:last-child{border-bottom:0}.vehicle-revenue-head h4{margin:0}.vehicle-revenue-head span{background:#eef2f7;border-radius:999px;padding:4px 9px;font-weight:700}.vehicle-revenue-row span{min-width:0}.vehicle-revenue-row b,.vehicle-revenue-row small{display:block}.vehicle-revenue-row small{margin-top:3px;color:#64748b}
@media(max-width:900px){.vehicle-economics-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.vehicle-economics-summary{grid-template-columns:1fr}}

/* v11.1.16 situazione economica veicolo */
.vehicle-cost-editor.advanced{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:14px}.vehicle-cost-editor.advanced section{border:1px solid var(--line,#dbe2ea);border-radius:14px;padding:14px;background:#fff}.vehicle-cost-editor.advanced h4{margin:0 0 10px}.vehicle-revenue-row.cost strong,.vehicle-revenue-row strong.negative{color:#c8102e}.vehicle-revenue-row.revenue strong{color:#14804a}.vehicle-economics-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.vehicle-economics-summary article{min-height:82px}@media(max-width:900px){.vehicle-cost-editor.advanced{grid-template-columns:1fr}.vehicle-economics-summary{grid-template-columns:1fr 1fr}}

/* v11.1.17 - situazione economica veicolo */
.vehicle-economics-section-title{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin:16px 0 8px}.vehicle-economics-section-title h4{margin:0;font-size:16px}.vehicle-economics-section-title span{font-size:12px;color:var(--muted,#64748b)}.vehicle-economics-summary{display:grid;gap:10px}.vehicle-economics-summary article{border:1px solid var(--line,#dbe2ea);border-radius:12px;background:#fff;padding:12px 14px;display:flex;flex-direction:column;justify-content:center}.vehicle-economics-summary article span{font-size:12px;color:var(--muted,#64748b)}.vehicle-economics-summary article strong{font-size:20px;margin-top:4px}.vehicle-economics-summary .boot-error{grid-column:1/-1}

/* v11.1.18 - riepilogo economico e utilizzo veicolo */
.vehicle-economics-summary .financial-main{background:#f8fafc;border-width:1px}
.vehicle-economics-summary .positive{color:#14804a}
.vehicle-economics-summary .negative{color:#c8102e}
.vehicle-economics-summary .utilization-card small{display:block;color:#64748b;font-size:11px;margin-top:2px}
.vehicle-economics-summary .utilization-card i{display:block;height:6px;background:#e8edf3;border-radius:999px;overflow:hidden;margin-top:8px}
.vehicle-economics-summary .utilization-card i b{display:block;height:100%;background:#c8102e;border-radius:999px}

/* v11.1.29 - stati visuali prenotazioni */
.booking-bar.pickup_due{background:#e98219}
.booking-bar.overdue{background:#d92d3f}
.status-pill.pickup_due{background:#fff0dd;color:#a84f00}
.status-pill.overdue{background:#fee2e2;color:#991b1b}
.kpi-overdue{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:7px 9px;border:1px solid #f4c3c9;border-radius:9px;background:#fff1f2}
.kpi-overdue span,.kpi-overdue strong{color:#a50f22}
.kpi-overdue span{font-size:11px;font-weight:700}
.kpi-overdue strong{margin:0;font-size:18px}
.kpi-action{cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.kpi-action:hover,.kpi-action:focus-visible{border-color:#9fb1c7;box-shadow:0 7px 20px rgba(28,44,67,.11);transform:translateY(-1px);outline:0}
.kpi-subaction{cursor:pointer}.kpi-subaction:focus-visible{outline:2px solid var(--red);outline-offset:2px}
.kpi-quote-values{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin-top:9px}.kpi-quote-values .kpi-subaction{min-width:0;padding:6px 4px;border-radius:8px;text-align:center}.kpi-quote-values .kpi-subaction:hover,.kpi-quote-values .kpi-subaction:focus-visible{background:#f4f7fb}.kpi-quote-values .kpi-subaction.urgent{background:#fff2f2;color:#a50f22}.kpi-quote-values strong{font-size:20px;line-height:1;margin:0}.kpi-quote-values small{display:block;margin-top:5px;color:var(--muted);font-size:9px;line-height:1.15}.service-field-invalid input,.service-field-invalid select{border-color:#c8102e;background:#fff7f8;box-shadow:0 0 0 2px rgba(200,16,46,.08)}
.movement-quick-title{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border-bottom:1px solid var(--line);background:#f8fafc}.movement-quick-title h2{margin:0;font-size:19px}.movement-quick-title p{margin:3px 0 0;color:var(--muted);font-size:12px}
.movement-operational-section{padding:14px 16px}.movement-operational-section+.movement-operational-section{border-top:1px solid var(--line)}.movement-operational-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.movement-operational-head h2{margin:0;font-size:17px}.movement-operational-head span{min-width:28px;text-align:center;padding:4px 8px;border-radius:999px;background:#eef2f7;font-size:12px;font-weight:800}
.movement-operational-row{display:grid;grid-template-columns:90px minmax(180px,1.4fr) minmax(160px,1fr) auto 70px;align-items:center;gap:14px;width:100%;margin:0 0 7px;padding:11px 12px;text-align:left;border-radius:10px}.movement-operational-row span{min-width:0}.movement-operational-row b,.movement-operational-row small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.movement-operational-row small{margin-top:3px;color:var(--muted);font-size:11px}.movement-operational-row .movement-time b{font-size:18px}.movement-operational-row .status-pill{text-align:center}.movement-open{text-align:right;color:#225da8;font-size:12px;font-weight:750}
@media(max-width:760px){.movement-quick-title{align-items:flex-start}.movement-operational-row{grid-template-columns:70px 1fr auto}.movement-operational-row>span:nth-child(3){grid-column:2}.movement-operational-row .status-pill{grid-column:3;grid-row:1}.movement-open{display:none}}
.legend .pickup_due{background:#e98219}
.legend .overdue{background:#d92d3f}

/* v11.1.35 - trasferimenti operativi interni */
.booking-bar.transfer{background:#7254c7;box-shadow:0 2px 8px rgba(73,52,145,.3)}
.planner-transfer-lane-label{color:#7254c7;background:#f7f4ff;font-size:11px;cursor:default}.planner-transfer-lane{background:#fbfaff}.planner-transfer-lane .day-cell{cursor:default}.planner-transfer-lane .day-cell:hover{background:inherit}
.legend .transfer{background:#7254c7}
.booking-bar.one-way{outline:2px solid #f59e0b;outline-offset:-2px}
.legend .one-way{background:#fff;border:2px solid #f59e0b}
.planner-transfer-toggle{display:inline-flex;align-items:center;gap:5px;margin:0;font-size:12px;font-weight:650;color:#4b5563}.planner-transfer-toggle input{width:auto;margin:0}
.transfer-filters select,.transfer-filters input{min-width:150px}.transfer-row{grid-template-columns:1.4fr 1fr 1fr 1fr 110px}
.transfer-dialog{width:min(900px,96vw)}.transfer-analysis-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.transfer-analysis-head.fully_protected b{color:#087b4f}.transfer-analysis-head.partially_protected b{color:#a85b00}.transfer-analysis-head.unprotected b{color:#a50f22}
#transferAnalysis article{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,.65fr);align-items:center;gap:12px;border-top:1px solid #eadb93;padding:10px 0}#transferAnalysis article small{display:block;color:#64748b;margin-top:4px}#transferAnalysis article label{margin:0}
.transfer-detail{margin-top:16px;border-top:1px solid #e1e6ee;padding-top:18px}.transfer-detail-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.transfer-detail-head h2{margin:6px 0}.transfer-detail-head p{margin:0;color:#64748b}.transfer-badge{display:inline-flex;background:#eee9ff;color:#5942a6;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;letter-spacing:.06em}
.transfer-detail-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:18px 0}.transfer-detail-grid article,.transfer-section{border:1px solid #dfe5ee;border-radius:12px;padding:13px;background:#fff}.transfer-detail-grid span,.transfer-detail-grid small{display:block;color:#64748b;font-size:11px}.transfer-detail-grid b{display:block;margin-top:5px}.transfer-section{margin-top:10px}.transfer-section h3{margin:0 0 10px}.transfer-section p{white-space:pre-wrap}.transfer-log-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;padding:9px 0;border-bottom:1px solid #edf1f5}.transfer-log-row:last-child{border-bottom:0}.transfer-log-row small{grid-column:1/-1;color:#64748b}
.transfer-file-upload{display:grid;grid-template-columns:200px minmax(0,1fr) auto;gap:8px;align-items:end;margin-bottom:10px}.transfer-file-upload select,.transfer-file-upload input{margin:0}.transfer-file-row{display:flex;justify-content:space-between;gap:12px;text-decoration:none;color:inherit;padding:10px;border:1px solid #edf1f5;border-radius:9px;margin-top:6px}.transfer-file-row small{color:#64748b}.transfer-actions{justify-content:flex-end;gap:8px}.transfer-actions .button-link.primary{background:var(--red);border-color:var(--red);color:#fff}
@media(max-width:900px){.transfer-filters{display:grid;grid-template-columns:1fr 1fr}.transfer-row{grid-template-columns:1fr}.transfer-detail-grid{grid-template-columns:1fr 1fr}.transfer-file-upload{grid-template-columns:1fr}.planner-transfer-toggle{display:none}}
@media(max-width:560px){.transfer-detail-grid,.transfer-filters{grid-template-columns:1fr}#transferAnalysis article{grid-template-columns:1fr}.transfer-detail-head{display:block}}

/* v11.1.35.1 - workspace pratiche unificato */
.practice-tabs{display:flex;gap:7px;overflow-x:auto;border-bottom:1px solid #dfe5ee;margin:8px 0 16px;padding-bottom:1px}.practice-tabs button{border:0;background:transparent;border-radius:9px 9px 0 0;padding:10px 12px;white-space:nowrap;font-weight:750;color:#5d6878}.practice-tabs button.active{color:#b20f27;background:#fff1f3;border-bottom:2px solid #b20f27}.practice-tabs span{display:inline-flex;min-width:21px;justify-content:center;margin-left:5px;padding:2px 6px;border-radius:999px;background:#e9eef5;color:#4b5563;font-size:11px}.practice-tabs button.active span{background:#f8dce1;color:#9e1026}.practice-filters{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(6,minmax(120px,1fr));gap:8px}.practice-transfer-row{border-left:3px solid #7254c7}.practice-picker[hidden]{display:none}.practice-picker{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:20px;background:rgba(18,25,38,.5);backdrop-filter:blur(3px)}.practice-picker-card{width:min(680px,100%);border-radius:18px;background:#fff;padding:24px;box-shadow:0 24px 70px rgba(15,23,42,.3)}.practice-picker-card h2{margin:5px 0}.practice-picker-card p{margin:0;color:#64748b}.practice-kicker{color:#b20f27;text-transform:uppercase;letter-spacing:.08em;font-size:11px;font-weight:850}.practice-picker-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0}.practice-picker-options button{text-align:left;min-height:110px;border:1px solid #dce3ed;border-radius:13px;background:#f9fbfd;padding:16px}.practice-picker-options button:hover,.practice-picker-options button:focus-visible{border-color:#b20f27;background:#fff4f5}.practice-picker-options b,.practice-picker-options small{display:block}.practice-picker-options b{font-size:16px}.practice-picker-options small{margin-top:6px;color:#64748b;line-height:1.4}.practice-picker-open{overflow:hidden}
@media(max-width:1100px){.practice-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.practices-page{padding:14px}.practice-filters{grid-template-columns:1fr 1fr}.practice-picker-options{grid-template-columns:1fr}.practice-picker-card{max-height:calc(100dvh - 24px);overflow:auto}.practice-picker-options button{min-height:78px}.assignment-toolbar{overflow-x:auto}}
@media(max-width:480px){.practice-filters{grid-template-columns:1fr}.practice-tabs{margin-inline:-14px;padding-inline:14px}.practice-picker{padding:10px}.practice-picker-card{padding:18px}}
.practice-workspace-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:18px;margin-bottom:14px}.practice-workspace-head>button{margin-top:4px}.practice-workspace-head h1{margin:3px 0;font-size:28px}.practice-workspace-head p{margin:0;color:#64748b}.practice-kind-badge{display:inline-flex;padding:7px 11px;border-radius:999px;background:#eaf0f7;color:#344054;font-size:12px;font-weight:850;text-transform:uppercase}.practice-kind-badge.transfer{background:#eee9ff;color:#5942a6}.practice-kind-badge.quote{background:#fff4d8;color:#8a5b00}.practice-workspace-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;align-items:start}.practice-workspace-side{display:grid;gap:10px;position:sticky;top:82px}.practice-workspace-side article{border:1px solid #dfe5ee;border-radius:13px;background:#fff;padding:15px}.practice-workspace-side h3{margin:0 0 7px;font-size:14px}.practice-workspace-side p{margin:0;color:#64748b;font-size:12px;line-height:1.5}.practice-workspace-form.modal.embedded-module>.dialog{min-height:auto;padding:22px}.practice-workspace-form>.dialog>h2{padding-bottom:12px;border-bottom:1px solid #e5eaf1}.practice-workspace-form form{display:grid;gap:12px}.practice-workspace-form form>.actions{position:sticky;bottom:0;z-index:5;margin:8px -22px -22px;padding:13px 22px;background:rgba(255,255,255,.96);border-top:1px solid #dfe5ee;backdrop-filter:blur(8px)}
@media(max-width:900px){.practice-workspace-layout{grid-template-columns:1fr}.practice-workspace-side{position:static;grid-template-columns:repeat(2,minmax(0,1fr));order:-1}.practice-workspace-head{grid-template-columns:auto 1fr}.practice-kind-badge{grid-column:2}}
@media(max-width:600px){.practice-workspace-head{grid-template-columns:1fr;gap:8px}.practice-workspace-head>button{justify-self:start}.practice-kind-badge{grid-column:auto;justify-self:start}.practice-workspace-head h1{font-size:22px}.practice-workspace-side{grid-template-columns:1fr}.practice-workspace-form.modal.embedded-module>.dialog{padding:14px;border-radius:10px}.practice-workspace-form form>.actions{margin:6px -14px -14px;padding:11px 14px}.practice-workspace-form .grid2,.practice-workspace-form .grid3,.practice-workspace-form .grid4{grid-template-columns:1fr}.practice-workspace-form input,.practice-workspace-form select,.practice-workspace-form textarea{max-width:100%}}

/* v11.1.36 - workspace Movimenti */
.movement-workspace-toolbar,.booking-detail-toolbar{align-items:flex-start;flex-wrap:wrap;gap:10px}.movement-workspace-toolbar .booking-detail-actions,.booking-detail-toolbar .booking-detail-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:7px;min-width:0;max-width:100%}.movement-workspace-toolbar .booking-detail-actions button,.booking-detail-toolbar .booking-detail-actions button{white-space:normal;min-height:38px;line-height:1.2}.movement-draft-header{margin-top:0}.movement-draft-header .practice-kind-badge{align-self:flex-start}.movement-draft-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:14px 0}.movement-draft-cards article{min-width:0;border:1px solid #dfe5ee;border-radius:12px;background:#fff;padding:13px}.movement-draft-cards span,.movement-draft-cards b{display:block}.movement-draft-cards span{font-size:11px;color:#64748b}.movement-draft-cards b{margin-top:5px;overflow-wrap:anywhere}.movement-workspace-tabs{display:flex;overflow-x:auto;margin-bottom:14px}.movement-workspace-tabs button{display:flex;align-items:center;gap:5px;white-space:nowrap}.movement-workspace-tabs button small{font-size:9px;color:#94a3b8}.movement-workspace-tabs button:disabled{opacity:.7;cursor:not-allowed}.practice-view #moduleHost{max-width:1500px;margin:0 auto}.practice-view .practice-workspace-layout{grid-template-columns:minmax(0,1fr) 260px}.booking-detail-toolbar{padding-top:2px}.booking-detail-actions{overflow:visible!important}.booking-detail-actions .booking-toolbar-button{max-width:220px}
@media(max-width:1050px){.movement-draft-cards{grid-template-columns:repeat(3,minmax(0,1fr))}.practice-view .practice-workspace-layout{grid-template-columns:1fr}.practice-view .practice-workspace-side{position:static}}
@media(max-width:700px){.movement-workspace-toolbar,.booking-detail-toolbar{display:grid;grid-template-columns:1fr}.movement-workspace-toolbar .booking-detail-actions,.booking-detail-toolbar .booking-detail-actions{justify-content:flex-start;overflow-x:auto;padding-bottom:4px;flex-wrap:nowrap}.movement-workspace-toolbar .booking-detail-actions button,.booking-detail-toolbar .booking-detail-actions button{flex:0 0 auto}.movement-draft-cards{grid-template-columns:1fr 1fr}.movement-draft-header{display:block}.movement-draft-header .practice-kind-badge{margin-top:10px}}
.practice-view .practice-workspace-form form>.actions{display:none}
.assignment-panel,.movement-filter-panel{border:1px solid #dfe5ee;border-radius:12px;background:#fff;margin-bottom:12px;overflow:hidden}.assignment-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;border:0;background:#f8fafc;padding:11px 13px;text-align:left}.assignment-toggle span:first-child{display:flex;align-items:baseline;gap:10px;min-width:0}.assignment-toggle small{color:#64748b;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-chevron{transition:transform .18s ease}.assignment-toggle.open .assignment-chevron{transform:rotate(180deg)}.assignment-body{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr)) auto;gap:9px;padding:12px;align-items:end}.assignment-body label{margin:0;font-size:11px;color:#64748b}.assignment-body select,.assignment-body input{margin-top:4px}.assignment-actions{display:flex;gap:7px;align-items:end}.movement-filter-toolbar{display:grid;grid-template-columns:minmax(260px,1fr) auto auto auto auto;gap:8px;align-items:center;padding:9px}.movement-filter-toolbar input,.movement-filter-toolbar button{min-height:38px}.movement-filter-toggle{display:inline-flex;align-items:center;gap:7px;background:#f5f7fa}.movement-filter-toggle span{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:#dfe6ef;color:#344256;font-size:10px}.movement-filter-toggle.open span{background:#f3cbd2;color:#9f1026}.movement-result-count{color:#64748b;font-size:11px;font-weight:750;white-space:nowrap}.movement-filter-advanced{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:9px;padding:12px;border-top:1px solid #edf1f5;background:#fbfcfe}.movement-filter-advanced label{margin:0;color:#64748b;font-size:10px;font-weight:750}.movement-filter-advanced label>*{margin-top:4px}.movement-filter-chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 9px 9px}.movement-filter-chips button{padding:5px 8px;border-color:#d7e0eb;border-radius:999px;background:#f7f9fc;color:#344256;font-size:10px}.movement-filter-chips span{margin-right:4px;color:#64748b}.movement-list-summary{display:flex;gap:22px;padding:8px 12px;border-top:1px solid #edf1f5;background:#f8fafc;color:#64748b;font-size:10px}.movement-list-summary b{color:#26364b;font-size:12px}.movement-list-head{display:grid;grid-template-columns:1.2fr 1fr 1fr 130px;gap:12px;padding:0 14px 7px;color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.assignment-body[hidden],.movement-filter-advanced[hidden]{display:none}
@media(max-width:1050px){.assignment-body{grid-template-columns:repeat(2,minmax(0,1fr))}.assignment-actions{grid-column:1/-1}.movement-filter-toolbar{grid-template-columns:minmax(220px,1fr) auto auto}.movement-filter-toolbar .movement-result-count{grid-column:1}.movement-filter-advanced{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:700px){.assignment-toggle span:first-child{display:grid;gap:2px}.assignment-body,.movement-filter-advanced{grid-template-columns:1fr}.assignment-actions{display:grid;grid-template-columns:1fr}.assignment-actions button{width:100%}.movement-filter-toolbar{grid-template-columns:1fr 1fr}.movement-filter-toolbar input{grid-column:1/-1}.movement-result-count{grid-column:1/-1!important}.movement-list-summary{display:grid;grid-template-columns:1fr 1fr;gap:6px 14px}.movement-list-head{display:none}}
@media(max-width:460px){.movement-draft-cards{grid-template-columns:1fr}.movement-workspace-tabs{margin-inline:-14px;padding-inline:14px}}
.movement-filter-control{display:grid;gap:4px;color:#64748b;font-size:10px;font-weight:750}.movement-status-filter{position:relative}.movement-status-filter summary{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:38px;padding:8px 10px;border:1px solid #d7dee8;border-radius:8px;background:#fff;color:#172033;font-size:12px;font-weight:600;cursor:pointer;list-style:none}.movement-status-filter summary::-webkit-details-marker{display:none}.movement-status-filter summary::after{content:'▼';color:#64748b;font-size:9px}.movement-status-filter[open] summary{border-color:#8aa6d6;box-shadow:0 0 0 2px rgba(53,102,181,.08)}.movement-status-filter[open] summary::after{content:'▲'}.movement-status-options{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;padding:8px;border:1px solid #dce4ed;border-radius:9px;background:#fff}.movement-filter-advanced .movement-status-options label{display:flex;align-items:center;gap:6px;margin:0;padding:6px 7px;border:1px solid #edf1f5;border-radius:7px;background:#f8fafc;color:#344256;font-size:10px;font-weight:650;cursor:pointer}.movement-filter-advanced .movement-status-options input{width:auto;margin:0;accent-color:#b20f27}.movement-status-options label:has(input:checked){border-color:#e4a8b2;background:#fff1f3;color:#9f1026}@media(max-width:700px){.movement-status-options{grid-template-columns:1fr 1fr}}

.transfer-cost-section{scroll-margin-top:18px}.transfer-cost-section .panel-head{align-items:flex-start}.transfer-cost-badge{display:inline-flex;padding:6px 10px;border-radius:999px;background:#eef2f7;color:#475569;font-size:12px;font-weight:800}.transfer-cost-badge.confirmed,.transfer-cost-badge.actual_recorded{background:#dcfce7;color:#166534}.transfer-cost-badge.estimated{background:#fef3c7;color:#92400e}.transfer-cost-badge.exempted{background:#fee2e2;color:#991b1b}.transfer-cost-form label,.transfer-actual-form label{display:grid;gap:5px;font-size:12px;font-weight:700;color:#475569}.transfer-cost-form input,.transfer-cost-form select,.transfer-actual-form input,.transfer-cost-items input,.transfer-cost-items select{width:100%;border:1px solid #d7dee8;border-radius:9px;padding:9px;background:#fff;color:#172033}.transfer-cost-totals{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0}.transfer-cost-totals span{display:grid;gap:3px;padding:10px;border:1px solid #e2e8f0;border-radius:10px;background:#f8fafc;font-size:11px;color:#64748b}.transfer-cost-totals b{font-size:15px;color:#172033}.transfer-cost-totals .total{background:#fff1f2;border-color:#fecdd3}.transfer-cost-items,.transfer-actual-form{margin-top:16px;padding-top:14px;border-top:1px solid #e2e8f0}.transfer-cost-item{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #eef2f7}.transfer-cost-item span,.transfer-cost-item small{display:block}.transfer-cost-item small{color:#64748b}.transfer-cost-item button{border:0;background:#fee2e2;color:#991b1b;border-radius:8px;padding:6px 9px}.transfer-variance{padding:10px;border-radius:10px;background:#f8fafc}.status.warn{background:#fff7ed;color:#9a3412}
@media(max-width:800px){.transfer-cost-totals{grid-template-columns:repeat(2,minmax(0,1fr))}.transfer-cost-items .grid4{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.transfer-cost-totals,.transfer-cost-items .grid4{grid-template-columns:1fr}.transfer-cost-item{grid-template-columns:minmax(0,1fr) auto}}
.quote-deadline{display:block;margin-top:.28rem;font-weight:700}.quote-deadline.valid{color:#287a45}.quote-deadline.expiring{color:#a75d00}.quote-deadline.urgent,.quote-deadline.expired{color:#b42318}.booking-detail-alert.quote-deadline{border-left:4px solid currentColor}.driver-readiness-indicator{position:absolute;right:32px;top:12px;width:29px;height:29px;padding:0;border-radius:50%;display:grid;place-items:center;font-size:18px;font-weight:900}.driver-readiness-indicator.complete{color:#147a45;background:#e8f8ef;border-color:#71c99a}.driver-readiness-indicator.incomplete{color:#b42318;background:#fff0f0;border-color:#f3a2a2}.form-feedback{min-height:1.25em;color:#b42318;font-size:12px;font-weight:700}.form-feedback.ok{color:#287a45}.quote-urgent{border-color:#ef9a9a!important}

/* 11.1.41.1 - analisi economica trasferimenti */
.transfer-cost-analysis{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}.transfer-cost-analysis-filters{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px}.transfer-cost-analysis-filters label{font-size:11px;color:var(--muted)}.transfer-cost-analysis-filters input,.transfer-cost-analysis-filters select{margin-top:5px}.transfer-cost-analysis-cards{display:grid;grid-template-columns:repeat(7,minmax(115px,1fr));gap:9px;margin-top:14px}.transfer-cost-analysis-card{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:5px;padding:12px;border:1px solid var(--line);background:#fff}.transfer-cost-analysis-card span{font-size:11px;color:var(--muted)}.transfer-cost-analysis-card b{font-size:17px}.transfer-cost-breakdown{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.transfer-cost-breakdown>span,.transfer-cost-breakdown>button{display:flex;align-items:center;gap:7px;padding:8px 10px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:12px}.transfer-cost-breakdown>button{cursor:pointer}
@media(max-width:1050px){.transfer-cost-analysis-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.transfer-cost-analysis-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:650px){.transfer-cost-analysis-filters,.transfer-cost-analysis-cards{grid-template-columns:1fr 1fr}.transfer-cost-analysis{padding:12px}}@media(max-width:430px){.transfer-cost-analysis-filters,.transfer-cost-analysis-cards{grid-template-columns:1fr}}
.transfer-route-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;border-bottom:1px solid var(--line)}.transfer-route-row>button{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,.6fr) auto;gap:12px;text-align:left;background:#fff;border:1px solid var(--line)}.transfer-route-row span,.transfer-route-row small{display:block}.transfer-route-row small{margin-top:3px;color:var(--muted)}.transfer-route-row>div{display:flex;gap:6px;flex-wrap:wrap}.transfer-no-toll{margin:9px 0;padding:9px;border-radius:9px;background:#fff7ed;color:#9a3412}
@media(max-width:700px){.transfer-route-row,.transfer-route-row>button{grid-template-columns:1fr}.transfer-route-row>div{justify-content:flex-start}}

/* 11.1.41.3 - calcolo automatico e analisi trasferimenti collassabile */
.transfer-cost-analysis{padding:0;overflow:hidden}.transfer-cost-analysis-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:0;background:#fbfcfe;text-align:left}.transfer-cost-analysis-toggle>span:first-child{display:grid;gap:3px}.transfer-cost-analysis-toggle strong{font-size:15px;color:#172033}.transfer-cost-analysis-toggle small{font-size:11px;color:var(--muted)}.transfer-cost-analysis-toggle-state{display:flex;align-items:center;gap:7px;color:#526174;font-size:12px;font-weight:800}.transfer-cost-analysis-toggle:focus-visible{outline:2px solid var(--red);outline-offset:-3px}.transfer-cost-analysis-body{padding:0 16px 16px;border-top:1px solid var(--line)}.transfer-cost-analysis-body[hidden]{display:none}
.transfer-cost-draft{display:grid;gap:9px}.transfer-cost-draft-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.transfer-cost-draft-head>b,.transfer-calculation-badge{display:inline-flex;padding:5px 9px;border-radius:999px;background:#fff3cd;color:#8a5a00;font-size:11px;font-weight:850}.transfer-cost-draft-head>b:first-child,.transfer-calculation-badge.automatic_complete{background:#dcfce7;color:#166534}.transfer-calculation-badge.override{background:#fee2e2;color:#991b1b}.transfer-cost-draft-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.transfer-cost-draft-grid>span{display:grid;gap:2px;padding:8px;border:1px solid #eadb93;border-radius:8px;background:#fff}.transfer-cost-draft-grid small{color:#64748b}.transfer-cost-draft .status{margin:0}.transfer-cost-draft ul{margin:5px 0 0;padding-left:18px}.transfer-cost-form input[readonly],.transfer-cost-form select:disabled{background:#f3f6f9;color:#475569}
@media(max-width:650px){.transfer-cost-analysis-toggle{align-items:flex-start;padding:12px}.transfer-cost-analysis-body{padding:0 12px 12px}.transfer-cost-draft-grid{grid-template-columns:1fr 1fr}}@media(max-width:430px){.transfer-cost-analysis-toggle{gap:8px}.transfer-cost-analysis-toggle small{display:none}.transfer-cost-draft-grid{grid-template-columns:1fr}}

/* 11.1.42 - dialog export riutilizzabile */
.export-dialog{width:min(820px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}.export-dialog form{display:grid;gap:14px}.export-preview{display:grid;gap:4px;padding:12px;border:1px solid #dce3ec;border-radius:10px;background:#f8fafc}.export-preview strong{font-size:20px}.export-preview span,.export-preview small{color:#64748b}.export-columns-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.export-columns-head>div{display:flex;gap:6px;flex-wrap:wrap}.export-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-height:300px;overflow:auto}.export-columns .check-card{min-width:0}.export-columns .check-card span{min-width:0}.export-columns .check-card small{display:block;color:#64748b;font-size:10px}.export-privacy-notice{padding:10px;border-left:3px solid #d97706;background:#fff7ed;color:#854d0e;font-size:12px}.export-hub{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.export-hub button{display:grid;gap:4px;text-align:left;padding:13px}.export-hub small{color:#64748b}
@media(max-width:700px){.export-dialog .grid3,.export-columns,.export-hub{grid-template-columns:1fr 1fr}}@media(max-width:460px){.export-dialog{width:calc(100vw - 14px);max-height:calc(100vh - 14px);padding:14px}.export-dialog .grid3,.export-columns,.export-hub{grid-template-columns:1fr}.export-columns-head{align-items:flex-start;display:grid}}

/* 11.1.42.1 - intestazioni e azioni export coerenti */
.page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.page-heading__copy{min-width:0}.page-heading__actions.actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin:0 0 0 auto;flex:0 0 auto;flex-wrap:wrap}.page-heading__actions button{white-space:nowrap}.export-error,.export-dialog .form-feedback{overflow-wrap:anywhere;white-space:normal}.export-error{color:#b42318!important;font-weight:750}
@media(max-width:650px){.page-heading{flex-direction:column}.page-heading__actions.actions{width:100%;margin-left:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.page-heading__actions button{width:100%;min-width:0;white-space:normal}.page-heading__actions button:only-child{grid-column:1/-1}}

/* 11.1.42.2 - riapertura amministrativa auditata */
.reopen-workflow-modal .compact-dialog{width:min(620px,calc(100vw - 28px))}.reopen-meta{display:grid;gap:4px;margin:8px 0 12px;color:#526174}.reopen-warning,.reopen-cycle-banner{padding:11px 13px;border-left:4px solid #b42318;border-radius:8px;background:#fff1f2;color:#7f1d1d}.reopen-warning{margin-bottom:14px}.reopen-cycle-banner{display:grid;gap:3px;margin:10px 0}.reopen-cycle-banner small{color:#9f1239}.reopen-admin-button{border-color:#b42318!important;color:#991b1b!important}.reopen-workflow-modal textarea{min-height:96px}.reopen-workflow-modal .actions-end{justify-content:flex-end}
@media(max-width:560px){.reopen-workflow-modal .compact-dialog{width:calc(100vw - 14px);padding:16px}.reopen-workflow-modal .grid2{grid-template-columns:1fr}}

/* 11.1.42.2 - stato revisione, lock e confronto audit */
.reopen-cycle-banner{grid-column:1/-1;margin:12px 0;padding:15px;border:1px solid #f0b44d;border-left:5px solid #d97706;background:#fff8e6;color:#713f12}.reopen-cycle-banner>b{font-size:16px}.reopen-cycle-banner p{margin:5px 0 12px}.reopen-cycle-banner dl{display:grid;grid-template-columns:90px minmax(140px,1fr) 120px minmax(180px,2fr);gap:9px;margin:0}.reopen-cycle-banner dl>div{min-width:0}.reopen-cycle-banner dt{font-size:10px;font-weight:800;text-transform:uppercase;color:#9a5b0a}.reopen-cycle-banner dd{margin:3px 0 0;overflow-wrap:anywhere}.review-lock-notice{margin-top:12px;padding:10px;border-radius:8px;background:#ffedd5;color:#7c2d12}.review-lock-notice.review-lock-owned{background:#ecfdf3;color:#166534}.review-lock-notice .actions{margin-top:8px;justify-content:flex-start}.review-history-actions{display:flex;justify-content:flex-end;margin-bottom:10px}.review-diff-dialog{width:min(900px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}.review-diff-table{display:grid;border:1px solid var(--line);border-radius:10px;overflow:hidden}.review-diff-table>div{display:grid;grid-template-columns:minmax(140px,.7fr) minmax(180px,1fr) minmax(180px,1fr)}.review-diff-table>div>*{min-width:0;padding:10px;border-bottom:1px solid var(--line);overflow-wrap:anywhere;white-space:normal}.review-diff-table>div>*+*{border-left:1px solid var(--line)}.review-diff-table>div:last-child>*{border-bottom:0}.review-diff-head{background:#f8fafc}.maintenance-card>.reopen-cycle-banner{grid-column:1/-1;width:100%;margin:0 0 10px}
@media(max-width:700px){.reopen-cycle-banner dl{grid-template-columns:1fr 1fr}.review-diff-table>div{grid-template-columns:1fr}.review-diff-table>div>*+*{border-left:0}.review-diff-table>div:not(.review-diff-head)>span:before{display:block;margin-bottom:3px;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.review-diff-table>div:not(.review-diff-head)>span:nth-child(2):before{content:'Valore prima'}.review-diff-table>div:not(.review-diff-head)>span:nth-child(3):before{content:'Valore dopo'}.review-diff-head b:not(:first-child){display:none}}

/* Dashboard flotta: card principali, tooltip per categoria e movimenti giornalieri. */
.dashboard-fleet-cards{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:14px}.dashboard-main-card,.dashboard-daily-card{background:#fff;border:1px solid #dce4ee;border-radius:14px;box-shadow:0 1px 2px rgba(15,23,42,.02)}.dashboard-main-card{min-width:0;overflow:visible;cursor:pointer;transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.dashboard-main-card:hover,.dashboard-main-card:focus-visible{border-color:#8fb1e8;box-shadow:0 10px 28px rgba(35,73,130,.12);transform:translateY(-1px);outline:0}.dashboard-main-card>header{display:flex;align-items:center;gap:14px;padding:16px 20px 8px}.dashboard-main-card h2,.dashboard-daily-card h2{margin:0;color:#172033;font-size:18px}.dashboard-main-card p,.dashboard-daily-card p{margin:3px 0 0;color:#526174;font-size:12px}.dashboard-card-icon{display:inline-flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:48px;border-radius:11px;background:#eef4ff;color:#2870db;font-size:30px;font-weight:800}.dashboard-card-icon svg,.dashboard-movement-row svg,.dashboard-tooltip svg{width:22px;height:22px;fill:currentColor}.dashboard-card-icon.status{font-size:36px}.dashboard-card-icon.calendar{background:#f3efff;color:#7553ce;font-size:25px}.dashboard-card-total{text-align:center;padding:0 18px}.dashboard-card-total strong{display:block;font-size:31px;line-height:1}.dashboard-card-total span{display:block;margin-top:3px;color:#64748b;font-size:11px}.dashboard-card-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));padding:8px 18px 14px}.dashboard-card-metrics.three{grid-template-columns:repeat(3,minmax(0,1fr));padding-top:22px}.dashboard-metric{position:relative;min-width:0;text-align:center;padding:8px 12px;border-left:1px solid #dce4ee;border-radius:8px}.dashboard-metric:first-child{border-left:0}.dashboard-metric:focus-visible{outline:2px solid #8fb1e8;outline-offset:-2px}.dashboard-metric>span{display:flex;align-items:center;justify-content:center;gap:6px;color:#344054;font-size:12px;font-weight:750;white-space:nowrap}.dashboard-metric>span i{width:9px;height:9px;border-radius:50%;background:#2870db}.dashboard-metric.available>span i,.dashboard-metric.free>span i{background:#23963f}.dashboard-metric.service>span i{background:#f08a24}.dashboard-metric>strong{display:block;margin-top:7px;color:#101828;font-size:28px;line-height:1}.dashboard-metric>small{display:block;margin-top:5px;color:#526174;font-size:11px}.dashboard-main-card>footer{display:flex;align-items:center;justify-content:center;gap:10px;padding:12px;border-top:1px solid #e5eaf1;color:#40536c;font-size:13px;font-weight:700}.dashboard-main-card:hover>footer{color:#1f62be}.dashboard-daily-card{margin:0 0 14px;padding:0 20px 14px;overflow:visible}.dashboard-daily-card>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 8px 10px}.dashboard-daily-card>header>div{display:flex;align-items:center;gap:12px}.dashboard-daily-card nav{display:flex;gap:10px}.dashboard-daily-card nav button{width:40px;height:40px;padding:0;font-size:24px;color:#344054}.dashboard-movement-table{border-top:1px solid #e5eaf1}.dashboard-movement-head,.dashboard-movement-row,.dashboard-movement-total{display:grid;grid-template-columns:minmax(0,1fr) 150px;align-items:center;gap:16px;padding:9px 10px;border-bottom:1px solid #e8edf3}.dashboard-movement-head{color:#526174;font-size:12px}.dashboard-movement-head span:last-child,.dashboard-movement-row>strong,.dashboard-movement-total strong{text-align:right}.dashboard-movement-row{position:relative;cursor:pointer;border-radius:7px;transition:background .15s ease}.dashboard-movement-row:hover,.dashboard-movement-row:focus-visible{background:#f5f8fc;outline:0}.dashboard-movement-row>span{display:flex;align-items:center;gap:10px;color:#344054;font-size:13px}.dashboard-movement-row>strong{color:#23963f}.dashboard-movement-row.color-1>strong{color:#2870db}.dashboard-movement-row.color-2>strong{color:#e07a16}.dashboard-movement-row.color-3>strong{color:#7254c7}.dashboard-movement-row.color-4>strong{color:#d92d3f}.dashboard-movement-total{border-bottom:0;font-size:13px;font-weight:800}.dashboard-daily-empty{padding:24px 10px;text-align:center;color:#667085}.dashboard-tooltip{position:fixed;z-index:120;width:min(250px,calc(100vw - 24px));padding:12px;border:1px solid #dfe5ed;border-radius:10px;background:#fff;color:#243247;box-shadow:0 12px 32px rgba(15,23,42,.16);opacity:0;visibility:hidden;transform:translateY(-3px);pointer-events:none;transition:opacity .14s ease,transform .14s ease}.dashboard-tooltip.measuring{display:block;visibility:hidden}.dashboard-tooltip>b{display:block;margin-bottom:8px;font-size:12px}.dashboard-tooltip>div{display:grid;grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:8px;padding:5px 0;font-size:12px}.dashboard-tooltip>div svg{width:15px;height:15px}.dashboard-tooltip footer{display:flex;justify-content:space-between;margin:7px -12px -12px;padding:9px 12px;border-top:1px solid #e6ebf1;background:#fafbfc;border-radius:0 0 10px 10px;font-size:12px}.dashboard-tooltip-trigger:hover>.dashboard-tooltip,.dashboard-tooltip-trigger:focus>.dashboard-tooltip,.dashboard-tooltip-trigger.tooltip-open>.dashboard-tooltip{opacity:1;visibility:visible;transform:translateY(0)}
@media(max-width:900px){.dashboard-fleet-cards{grid-template-columns:1fr}.dashboard-card-metrics.three{padding-top:10px}}
@media(max-width:600px){.dashboard-main-card>header{padding:14px 14px 8px}.dashboard-card-metrics,.dashboard-card-metrics.three{grid-template-columns:1fr;padding:6px 14px 12px}.dashboard-metric{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:10px;text-align:left;border-left:0;border-top:1px solid #e5eaf1}.dashboard-metric:first-child{border-top:0}.dashboard-metric>span{justify-content:flex-start}.dashboard-metric>strong{margin:0;font-size:22px}.dashboard-metric>small{margin:0}.dashboard-daily-card{padding:0 8px 10px}.dashboard-daily-card>header{align-items:flex-start}.dashboard-card-icon.calendar{display:none}.dashboard-movement-head,.dashboard-movement-row,.dashboard-movement-total{grid-template-columns:minmax(0,1fr) 90px;padding-left:6px;padding-right:6px}.dashboard-movement-head span:last-child{font-size:0}.dashboard-movement-head span:last-child:after{content:'Movimenti';font-size:12px}}

/* 11.1.42.4 - dashboard compatta e tooltip fuori dal contenitore delle card. */
.dashboard-compact-card{min-width:0;display:grid;align-content:start;gap:7px}.dashboard-route-card,.dashboard-movements-card{cursor:pointer}.dashboard-route-card:hover,.dashboard-route-card:focus-visible,.dashboard-movements-card:hover,.dashboard-movements-card:focus-visible{border-color:#8fb1e8;box-shadow:0 7px 20px rgba(35,73,130,.09);outline:0}.dashboard-compact-card>header{display:grid;gap:2px}.dashboard-compact-card>header>span,.dashboard-movements-head span{font-size:12px;color:var(--muted)}.dashboard-compact-card>header>small,.dashboard-movements-head small{font-size:10px;color:#64748b}.dashboard-primary-value{margin:0!important;font-size:25px!important}.dashboard-compact-metrics{display:grid;min-width:0;gap:5px}.dashboard-compact-metrics.two{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-compact-metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-compact-metric{min-width:0;padding:6px 4px;border-radius:8px;text-align:center;cursor:help}.dashboard-compact-metric:hover,.dashboard-compact-metric:focus-visible,.dashboard-movement-summary:hover,.dashboard-movement-summary:focus-visible{background:#f5f8fc;outline:2px solid #d5e3f5;outline-offset:-2px}.dashboard-compact-metric>span{display:flex;align-items:center;justify-content:center;gap:4px;min-width:0;font-size:9px;color:#526174;white-space:nowrap}.dashboard-compact-metric>span i{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#2870db}.dashboard-compact-metric.available>span i,.dashboard-compact-metric.free>span i{background:#23963f}.dashboard-compact-metric.service>span i{background:#f08a24}.dashboard-compact-metric>strong{margin:3px 0 0;font-size:18px}.dashboard-compact-metric>small{display:block;margin-top:1px;color:#64748b;font-size:9px}.dashboard-movements-card{position:relative}.dashboard-movements-head{display:flex;align-items:flex-start;justify-content:space-between;gap:5px}.dashboard-movements-head>div{display:grid;gap:2px;min-width:0}.dashboard-movements-head nav{display:flex;gap:3px}.dashboard-movements-head button{width:25px;height:25px;padding:0;font-size:18px;line-height:1}.dashboard-movement-summary{border-radius:8px;padding:2px 3px;cursor:help}.dashboard-movement-summary>strong{font-size:24px;margin:0}.dashboard-movement-summary>small{display:block;color:#64748b;font-size:9px}.dashboard-movement-summary .kpi-pair{margin-top:5px}.dashboard-kpi-loading{opacity:.62;pointer-events:none}.dashboard-tooltip-template{display:none}.dashboard-tooltip-portal{position:fixed;z-index:1000;width:min(390px,calc(100vw - 20px));padding:11px;border:1px solid #dfe5ed;border-radius:10px;background:#fff;color:#243247;box-shadow:0 12px 32px rgba(15,23,42,.2);pointer-events:none;animation:dashboard-tooltip-in .14s ease}.dashboard-tooltip-portal[hidden]{display:none}.dashboard-tooltip-title{margin-bottom:8px;font-size:12px;font-weight:800}.dashboard-tooltip-grid{display:grid;gap:0;font-size:11px}.dashboard-tooltip-head,.dashboard-tooltip-row,.dashboard-tooltip-total{display:grid;grid-template-columns:minmax(105px,1fr) repeat(var(--dashboard-tooltip-columns),minmax(42px,auto));align-items:center;gap:8px;padding:5px 2px;border-bottom:1px solid #edf1f5}.dashboard-tooltip-head{color:#64748b;font-size:9px}.dashboard-tooltip-head b,.dashboard-tooltip-row strong,.dashboard-tooltip-total strong{text-align:right}.dashboard-tooltip-row>span{display:flex;align-items:center;gap:6px;min-width:0}.dashboard-tooltip-row svg{width:14px;height:14px;flex:0 0 14px;fill:currentColor}.dashboard-tooltip-total{border-bottom:0;padding-top:8px;font-weight:800}.dashboard-tooltip-empty{padding:9px 2px;color:#64748b}.dashboard-compact-metric.tooltip-open,.dashboard-movement-summary.tooltip-open{background:#eef5ff;outline:2px solid #a9c5ea;outline-offset:-2px}@keyframes dashboard-tooltip-in{from{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:1250px){.dashboard-compact-metrics.three{gap:2px}.dashboard-compact-metric{padding-inline:2px}}
@media(max-width:600px){.dashboard-compact-metrics.three{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-tooltip-head,.dashboard-tooltip-row,.dashboard-tooltip-total{grid-template-columns:minmax(90px,1fr) repeat(var(--dashboard-tooltip-columns),minmax(38px,auto));gap:5px}.dashboard-movements-head button{width:30px;height:30px}}
.dashboard-compact-metrics.three .dashboard-compact-metric>span{min-height:20px;white-space:normal;line-height:1.05}

/* Dashboard flotta compatta V2: sei card allineate con drill-down per metrica. */
.kpis{grid-template-columns:repeat(6,minmax(145px,1fr));gap:9px;align-items:stretch}.dashboard-v2-card{min-width:0;min-height:158px;padding:0;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden}.dashboard-v2-card>header{min-width:0;display:flex;align-items:center;gap:8px;padding:10px 10px 6px}.dashboard-v2-card>header>div{min-width:0}.dashboard-v2-card h2{min-width:0;margin:0;color:#172033;font-size:12px;line-height:1.15;white-space:nowrap}.dashboard-v2-card>header>strong{margin:0 0 0 auto;font-size:22px;line-height:1}.dashboard-v2-card>header small{display:block;margin-top:2px;color:#64748b;font-size:9px;white-space:nowrap}.dashboard-v2-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;border-radius:9px;background:#edf4ff;color:#2870db;font-size:19px;font-weight:800}.dashboard-v2-icon svg{width:19px;height:19px;fill:currentColor}.dashboard-v2-icon.movements{background:#f2edff;color:#7352c8}.dashboard-v2-icon.occupancy{background:#e9f8ed;color:#23963f}.dashboard-v2-icon.contracts{background:#fff1e3;color:#e87916}.dashboard-v2-icon.quotes{background:#e7f8f8;color:#1597a3}.dashboard-v2-info{display:grid;place-items:center;flex:0 0 19px;width:19px;height:19px;margin-left:auto;border:1px solid #d8e1ec;border-radius:50%;background:#fff;color:#64748b!important;font-size:10px!important;font-weight:850;cursor:help}.dashboard-v2-info:hover,.dashboard-v2-info:focus-visible,.dashboard-v2-info.tooltip-open{border-color:#8fb1e8;background:#eef5ff;color:#1f62be!important;outline:0}.dashboard-v2-values{min-width:0;display:grid;align-items:center;padding:5px 8px 8px}.dashboard-v2-values.two{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-v2-values.three{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-v2-metric{min-width:0;padding:4px 3px;text-align:center;border-left:1px solid #dfe5ed;border-radius:7px;cursor:pointer}.dashboard-v2-metric:first-child{border-left:0}.dashboard-v2-metric:hover,.dashboard-v2-metric:focus-visible,.dashboard-v2-occupancy:hover,.dashboard-v2-occupancy:focus-visible{background:#f5f8fc;outline:2px solid #d5e3f5;outline-offset:-2px}.dashboard-v2-metric>span{min-height:20px;display:flex;align-items:center;justify-content:center;gap:4px;color:#44546a;font-size:9px!important;line-height:1.05}.dashboard-v2-metric>span i{width:7px;height:7px;flex:0 0 7px;border-radius:50%;background:#2870db}.dashboard-v2-metric.available>span i,.dashboard-v2-metric.free>span i{background:#23963f}.dashboard-v2-metric.service>span i{background:#ef7d15}.dashboard-v2-metric>strong{margin:2px 0 0;font-size:20px;line-height:1}.dashboard-v2-metric>small{display:block;margin-top:4px;color:#64748b;font-size:9px;line-height:1.1}.dashboard-v2-metric.outs>strong{color:#23963f}.dashboard-v2-metric.ins>strong{color:#2870db}.dashboard-v2-metric.urgent{background:#fff0f2;color:#b42318}.dashboard-v2-card>footer{min-width:0;display:flex;align-items:center;justify-content:center;gap:7px;padding:8px 9px;border-top:1px solid #e2e8f0;background:#fbfcfe;color:#284d7a;cursor:pointer;font-size:10px;font-weight:750}.dashboard-v2-card>footer:hover,.dashboard-v2-card>footer:focus-visible{background:#f1f6fc;color:#174f91;outline:0}.dashboard-v2-card>footer>span{color:inherit;font-size:inherit}.dashboard-v2-overdue{margin-left:auto;padding:2px 5px;border-radius:999px;background:#fff0f2;color:#b42318;font-size:8px;white-space:nowrap}.dashboard-v2-overdue:focus-visible{outline:2px solid #ef9a9a}.dashboard-movements-card>header nav{display:flex;gap:3px;margin-left:auto}.dashboard-movements-card>header nav button{width:25px;height:25px;padding:0;font-size:17px;line-height:1}.movement-values{padding-top:2px}.dashboard-v2-metric.movement>strong{margin:0;font-size:21px}.dashboard-v2-metric.movement>small{margin-top:5px}.dashboard-v2-occupancy{align-self:center;margin:0 10px;padding:5px 0;border-radius:8px;cursor:pointer}.dashboard-v2-occupancy>strong{margin:0;font-size:24px}.dashboard-v2-occupancy .kpi-progress{height:6px;margin-top:7px}.dashboard-v2-occupancy>small{display:block;margin-top:7px;color:#64748b;font-size:9px}.contracts-values,.quotes-values{align-self:center}.dashboard-kpi-loading{position:relative;opacity:.58}.dashboard-kpi-loading:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.72),transparent);animation:dashboard-loading 1s linear infinite}@keyframes dashboard-loading{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
@media(max-width:1050px){.kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-v2-card{min-height:152px}}
@media(max-width:650px){.kpis{grid-template-columns:1fr}.dashboard-v2-card{min-height:148px}.dashboard-v2-card h2{font-size:13px}.dashboard-v2-card>header,.dashboard-v2-values{padding-left:12px;padding-right:12px}}
.dashboard-v2-card{transition:border-color .16s ease,box-shadow .16s ease}.dashboard-v2-card:hover{border-color:#a9bdd5;box-shadow:0 6px 18px rgba(28,44,67,.08)}.dashboard-v2-card>header>strong[role=button]:focus-visible{border-radius:5px;outline:2px solid #8fb1e8;outline-offset:2px}
.dashboard-v2-card h2{margin-right:auto}.dashboard-v2-info{margin-left:0}

/* Icone dashboard: stessa famiglia outline e stesso box delle card movimento. */
.dashboard-v2-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:12px;font-size:0}
.dashboard-v2-icon svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8}
.dashboard-tooltip-row svg{fill:none;stroke:currentColor;stroke-width:1.8}

.dashboard-movement-count{display:flex;align-items:baseline;justify-content:center;gap:4px}.dashboard-movement-count strong{font-size:21px;line-height:1;cursor:pointer}.dashboard-movement-count em{color:#64748b;font-size:11px;font-style:normal;font-weight:750;cursor:pointer}.dashboard-movement-count strong:focus-visible,.dashboard-movement-count em:focus-visible{border-radius:4px;outline:2px solid #8fb1e8;outline-offset:1px}.dashboard-movement-tooltip>div{display:grid;gap:3px;padding:7px 0;border-bottom:1px solid #e8edf3}.dashboard-movement-tooltip>div>b{display:flex;align-items:center;gap:6px}.dashboard-movement-tooltip>div>b svg{width:15px;height:15px}.dashboard-movement-tooltip>div>span,.dashboard-movement-tooltip footer span{font-size:11px;color:#526174}.dashboard-movement-tooltip footer{display:grid;gap:4px;margin:6px -12px -12px;padding:9px 12px;background:#fafbfc;border-radius:0 0 10px 10px}
.summary-card-unassign{align-self:center;display:inline-flex;align-items:center;gap:5px;padding:6px 8px;border:1px solid #f2c3c8;background:#fff4f5;color:#a50f22;font-size:11px;white-space:nowrap}.summary-card-unassign svg{width:15px;height:15px}.unassign-vehicle-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 14px}.unassign-vehicle-summary dl>div{padding:9px;border:1px solid var(--line);border-radius:9px}.unassign-vehicle-summary dt{color:var(--muted);font-size:11px}.unassign-vehicle-summary dd{margin:3px 0 0;font-weight:750}.operational-warning{display:flex;gap:8px;margin:0 0 14px;padding:10px;border:1px solid #f0c36a;border-radius:9px;background:#fff8e8;color:#784b00;font-size:12px}@media(max-width:650px){.summary-card-unassign span{display:none}.unassign-vehicle-summary dl{grid-template-columns:1fr}}
.brand-color-dot{display:inline-block;width:.7rem;height:.7rem;border-radius:50%;margin-right:.45rem;vertical-align:middle;box-shadow:0 0 0 2px rgba(15,23,42,.08)}

/* 11.2.0.6 - offset sticky misurati dal layout, senza duplicare le altezze della shell. */
:root{--app-header-height:var(--topbar-height);--dashboard-kpi-height:0px;--planner-toolbar-height:0px;--planner-day-min-width:34px}
.app-page[data-page-view="dashboard"].active .kpis{position:sticky;top:var(--app-header-height);z-index:34;background:var(--shell-bg);box-shadow:0 5px 9px -10px rgba(15,23,42,.5)}
.app-page[data-page-view="dashboard"].active .dashboard-toolbar{position:sticky;top:calc(var(--app-header-height) + var(--dashboard-kpi-height));z-index:33;background:#fff;box-shadow:0 5px 10px -8px rgba(15,23,42,.45)}
.app-page[data-page-view="dashboard"].active .planner{position:relative;isolation:isolate;overflow:visible;align-items:flex-start}
.app-page[data-page-view="dashboard"].active .vehicle-col{position:sticky;left:0;top:auto;z-index:10;background:#fff}
.app-page[data-page-view="dashboard"].active .calendar-column{flex:1;min-width:0}
.app-page[data-page-view="dashboard"].active .vehicle-head,.app-page[data-page-view="dashboard"].active .calendar-head-viewport{position:sticky;top:calc(var(--app-header-height) + var(--dashboard-kpi-height) + var(--planner-toolbar-height));background:#f8fafc;box-shadow:0 4px 8px -8px rgba(15,23,42,.65)}
.app-page[data-page-view="dashboard"].active .vehicle-head{z-index:12}
.app-page[data-page-view="dashboard"].active .calendar-head-viewport{z-index:11;overflow:hidden}
.app-page[data-page-view="dashboard"].active .calendar-head{position:static;top:auto}
.app-page[data-page-view="dashboard"].active .calendar-wrap{overflow-x:auto;overflow-y:clip;overscroll-behavior-inline:contain}
.app-page[data-page-view="dashboard"].active .calendar-head,.app-page[data-page-view="dashboard"].active .calendar-row{min-width:max(100%,calc(var(--month-days) * var(--planner-day-min-width)))}
@media(max-width:650px){.app-page[data-page-view="dashboard"].active .kpis{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(230px,82vw);overflow-x:auto;overscroll-behavior-inline:contain}.app-page[data-page-view="dashboard"].active .dashboard-toolbar{gap:8px}.app-page[data-page-view="dashboard"].active .calendar-head,.app-page[data-page-view="dashboard"].active .calendar-row{min-width:calc(var(--month-days) * 36px)}}
/* 11.3.0 — archivio documenti fiscali */
.fiscal-page{display:grid;gap:16px}.fiscal-kpis{display:grid;grid-template-columns:repeat(9,minmax(105px,1fr));gap:10px}.fiscal-kpis article{border:1px solid var(--border,#dfe4ec);border-radius:12px;padding:12px;background:#fff;display:grid;gap:4px}.fiscal-kpis span{font-size:12px;color:#687386}.fiscal-kpis b{font-size:18px}.fiscal-filters{display:grid;grid-template-columns:2fr repeat(4,minmax(125px,1fr));gap:10px}.fiscal-document-list{display:grid;border:1px solid var(--border,#dfe4ec);border-radius:14px;overflow:hidden}.fiscal-document-row{border:0;border-bottom:1px solid var(--border,#e4e8ef);border-radius:0;background:#fff;padding:14px 16px;display:grid;grid-template-columns:1.1fr 1.4fr 1fr auto;gap:16px;text-align:left;align-items:center}.fiscal-document-row:last-child{border-bottom:0}.fiscal-document-row:hover{background:#f8fafc}.fiscal-document-row span{display:grid;gap:3px}.fiscal-document-row small{color:#687386}.fiscal-detail-layout{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,.8fr);gap:18px}.fiscal-detail-layout main,.fiscal-detail-layout aside{display:grid;gap:16px;align-content:start}.fiscal-parties-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.fiscal-parties-grid>div{display:grid;gap:4px;padding:12px;background:#f7f9fc;border-radius:10px}.fiscal-parties-grid span,.fiscal-parties-grid small{color:#687386}.fiscal-line{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--border,#e4e8ef)}.fiscal-line>span{display:grid;gap:3px}.fiscal-line small{color:#687386}.fiscal-line>div{display:flex;gap:6px}.fiscal-tax-row{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border,#e4e8ef)}.fiscal-detail-page pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:220px;overflow:auto;background:#f7f9fc;padding:10px;border-radius:8px;font-size:11px}.fiscal-detail-page details{margin-top:8px}.fiscal-pagination{display:flex;justify-content:flex-end}
@media(max-width:1100px){.fiscal-kpis{grid-template-columns:repeat(4,1fr)}.fiscal-filters{grid-template-columns:repeat(3,1fr)}.fiscal-detail-layout{grid-template-columns:1fr}}
@media(max-width:700px){.fiscal-kpis{grid-template-columns:repeat(2,1fr)}.fiscal-filters{grid-template-columns:1fr}.fiscal-document-row{grid-template-columns:1fr}.fiscal-parties-grid{grid-template-columns:1fr}.fiscal-line{grid-template-columns:1fr}.fiscal-line>div{justify-content:flex-start}}

/* 11.3.1 — centro amministrativo e composer laterale. */
.fiscal-admin-table{min-width:0;overflow-x:auto;border:1px solid var(--border,#dfe4ec);border-radius:14px;background:#fff}.fiscal-admin-head,.fiscal-document-row{min-width:1420px;display:grid;grid-template-columns:125px 100px minmax(155px,1.25fr) minmax(150px,1.15fr) 125px 90px 90px 85px 90px 105px minmax(240px,1.45fr);gap:10px;align-items:center}.fiscal-admin-head{padding:10px 12px;background:#f6f8fb;color:#657186;font-size:11px;font-weight:800;text-transform:uppercase}.fiscal-document-list{border:0;border-radius:0}.fiscal-document-row{padding:12px;border:0;border-top:1px solid var(--border,#e4e8ef);border-radius:0;text-align:left}.fiscal-document-row>span{display:grid;gap:2px;min-width:0}.fiscal-document-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fiscal-row-actions{display:flex;gap:5px;flex-wrap:wrap}.fiscal-row-actions button{padding:5px 7px;font-size:11px}.fiscal-drawer{position:fixed;inset:0;z-index:1300;display:grid;grid-template-columns:1fr minmax(680px,72vw);visibility:hidden;pointer-events:none}.fiscal-drawer.open{visibility:visible;pointer-events:auto}.fiscal-drawer-scrim{grid-column:1;grid-row:1;width:100%;height:100%;border:0;border-radius:0;background:rgba(15,23,42,.42);opacity:0;transition:opacity .2s}.fiscal-drawer.open .fiscal-drawer-scrim{opacity:1}.fiscal-drawer-panel{grid-column:2;grid-row:1;min-width:0;height:100vh;overflow:auto;background:#f5f7fb;box-shadow:-18px 0 45px rgba(15,23,42,.22);transform:translateX(100%);transition:transform .22s ease}.fiscal-drawer.open .fiscal-drawer-panel{transform:translateX(0)}.fiscal-drawer .fiscal-detail-page{padding:16px;max-width:none}.fiscal-drawer .booking-detail-toolbar{position:sticky;top:0;z-index:5;margin:-16px -16px 12px;padding:12px 16px;background:#fff;border-bottom:1px solid #e2e7ee}.fiscal-type-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:16px 0}.fiscal-type-picker button{min-height:64px;border:1px solid #cfd8e5;background:#fff;font-weight:800}.fiscal-type-picker button:hover{border-color:var(--brand);background:#fff7f7}.damage-document-button{display:block;margin-top:7px;padding:5px 8px;font-size:11px}.page-heading__actions svg,#bookingDetailInvoice svg,#incidentInvoiceBtn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}.page-heading__actions button,#bookingDetailInvoice,#incidentInvoiceBtn{display:inline-flex;align-items:center;gap:7px}.fiscal-line{grid-template-columns:28px minmax(220px,1fr) minmax(270px,1.1fr) 90px 90px}.fiscal-line.is-excluded{opacity:.55;background:#f7f8fa}.fiscal-line>.fiscal-line-editor{display:grid;grid-template-columns:minmax(140px,1.4fr) 72px 95px 72px;gap:7px}.fiscal-line-editor input{min-width:0}.fiscal-line-values{text-align:right}.fiscal-readable-summary{display:grid;gap:7px}.fiscal-readable-summary div{display:flex;justify-content:space-between;gap:12px}.fiscal-readable-summary span{color:#687386}.fiscal-validation-list{margin:8px 0 0;padding-left:20px}.fiscal-timeline .timeline-item b{text-transform:none}.fiscal-timeline .timeline-item small{color:#687386}.future-action[disabled]{opacity:.55;cursor:not-allowed}.fiscal-source-badge{font-size:11px;text-transform:uppercase;color:#687386}#fiscalDetailActions{display:flex;gap:7px;flex-wrap:wrap}
.fiscal-manual-line{display:grid;grid-template-columns:minmax(220px,1fr) 80px 110px 80px auto auto;gap:8px;align-items:center;padding:12px;background:#f7f9fc;border-radius:10px}.fiscal-manual-line input{min-width:0}

/* 11.3.2 — centro contabile compatto */
.sidebar-item[data-page="fiscal"] svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.fiscal-page{gap:10px}.fiscal-page .page-title{margin-bottom:0}.fiscal-kpis{grid-template-columns:repeat(9,minmax(92px,1fr));gap:7px}.fiscal-kpis button{min-width:0;padding:9px 10px;border:1px solid var(--border,#dfe4ec);border-radius:10px;background:#fff;text-align:left;display:grid;gap:2px}.fiscal-kpis button:hover,.fiscal-kpis button:focus-visible{border-color:var(--brand);box-shadow:0 2px 10px rgba(15,23,42,.08)}.fiscal-kpis button span{font-size:11px;color:#687386}.fiscal-kpis button b{font-size:16px}.fiscal-tabs{overflow-x:auto;white-space:nowrap}.fiscal-filters{display:flex;align-items:center;gap:6px;overflow-x:auto}.fiscal-filters input,.fiscal-filters select{height:34px;min-width:120px;padding:5px 8px}.fiscal-filters #fiscalSearch{min-width:250px;flex:1}.fiscal-section{min-width:0}.fiscal-billable-head,.fiscal-billable-row{min-width:1250px;display:grid;grid-template-columns:minmax(150px,1.3fr) 125px 90px 145px 105px 90px 95px 95px 90px minmax(210px,1.2fr);gap:9px;align-items:center}.fiscal-billable-head{padding:9px 12px;background:#f6f8fb;color:#657186;font-size:11px;font-weight:800;text-transform:uppercase}.fiscal-billable-row{padding:10px 12px;border-top:1px solid var(--border,#e4e8ef);background:#fff}.fiscal-billable-row>span{display:grid;gap:2px;min-width:0}.fiscal-billable-row small{color:#687386;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fiscal-line-editor{grid-template-columns:minmax(150px,1.5fr) 62px 86px 58px 70px 58px!important}.fiscal-discount-form{display:grid;grid-template-columns:1fr 90px auto;gap:7px;margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.fiscal-discount-form label{font-size:11px;color:#687386}.fiscal-discount-form input,.fiscal-discount-form select{height:32px;padding:4px 6px}.customer-accounting-kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:14px}.customer-accounting-kpis article{padding:10px;border:1px solid var(--border);border-radius:10px;display:grid;gap:3px}.customer-accounting-kpis span{font-size:11px;color:#687386}.customer-ledger{min-width:850px;border:1px solid var(--border);border-radius:10px;overflow:hidden}.customer-ledger>div{display:grid;grid-template-columns:100px 90px 130px 110px minmax(170px,1fr) 85px 85px 90px;gap:8px;padding:8px;border-top:1px solid var(--border);font-size:12px}.customer-ledger>.customer-ledger-head{border-top:0;background:#f6f8fb;font-size:10px;font-weight:800;text-transform:uppercase}.accounting-customer-search{display:grid;grid-template-columns:minmax(240px,420px) 1fr;gap:10px;align-items:start}.accounting-customer-search>div{display:flex;gap:6px;flex-wrap:wrap}.accounting-customer-search button{display:grid;text-align:left}.accounting-customer-search small{color:#687386}.bulk-invoice-toolbar{display:flex;gap:7px;align-items:end;flex-wrap:wrap}.bulk-invoice-toolbar label{display:grid;gap:3px;font-size:11px;color:#687386}.bulk-invoice-toolbar input,.bulk-invoice-toolbar select{height:34px}.bulk-preview-head,.bulk-confirm,.bulk-customer-group{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;margin-top:8px}.bulk-customer-group{align-items:flex-start}.bulk-customer-group>div,.bulk-customer-group>label{display:grid;gap:2px}.bulk-customer-group small{color:#687386}.bulk-confirm{position:sticky;bottom:8px;box-shadow:0 8px 28px rgba(15,23,42,.12)}
@media(max-width:1100px){.fiscal-kpis{grid-template-columns:repeat(5,1fr)}.customer-accounting-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.fiscal-kpis{grid-template-columns:repeat(2,1fr)}.fiscal-filters{display:grid;grid-template-columns:1fr 1fr;overflow:visible}.fiscal-filters #fiscalSearch{grid-column:1/-1;min-width:0}.fiscal-filters input,.fiscal-filters select{min-width:0;width:100%}.customer-accounting-kpis{grid-template-columns:1fr 1fr}.accounting-customer-search{grid-template-columns:1fr}.bulk-invoice-toolbar{display:grid;grid-template-columns:1fr 1fr}.bulk-customer-group{display:grid}.fiscal-drawer{grid-template-columns:1fr}.fiscal-drawer-panel{grid-column:1}.fiscal-discount-form{grid-template-columns:1fr}}
.customer-accounting-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media(max-width:700px){.customer-accounting-columns{grid-template-columns:1fr}}
@media(max-width:900px){.fiscal-drawer{grid-template-columns:1fr}.fiscal-drawer-panel{grid-column:1;width:100vw}.fiscal-drawer-scrim{display:none}.fiscal-detail-layout{grid-template-columns:1fr}.fiscal-type-picker{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.fiscal-line{grid-template-columns:1fr}.fiscal-line>.fiscal-line-editor,.fiscal-manual-line{grid-template-columns:1fr}.fiscal-line-values{text-align:left}}

/* 11.3.2.1 — stabilizzazione e densità del centro contabile. */
.page-card.fiscal-page{padding:14px 16px;gap:8px;align-content:start}.fiscal-page .page-heading{min-height:0}.fiscal-page .page-heading h1{font-size:21px;line-height:1.15}.fiscal-page .page-heading p{margin-top:2px;font-size:12px}.fiscal-kpis{grid-template-columns:repeat(8,minmax(88px,1fr));gap:6px}.fiscal-kpis button{padding:7px 9px;min-height:49px}.fiscal-kpis button b{font-size:15px}.fiscal-tabs{min-height:35px;margin:0}.fiscal-tabs button{padding:8px 10px;font-size:12px}.fiscal-filters{display:grid;grid-template-columns:minmax(230px,2fr) repeat(4,minmax(120px,1fr));gap:6px;overflow:visible}.fiscal-filters #fiscalSearch,.fiscal-filters input,.fiscal-filters select{min-width:0;width:100%;height:32px}.fiscal-billable-head,.fiscal-billable-row{min-width:1460px;grid-template-columns:minmax(145px,1.25fr) 120px 105px 85px 145px 130px 88px 92px 92px 85px minmax(205px,1.15fr)}
.booking-detail-actions #bookingDetailProforma,.booking-detail-actions #bookingDetailInvoice{display:inline-flex;align-items:center;gap:7px}.booking-detail-actions #bookingDetailProforma.hidden,.booking-detail-actions #bookingDetailInvoice.hidden{display:none}.booking-detail-actions .toolbar-svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.accounting-customer-workspace{display:grid;grid-template-columns:minmax(250px,310px) minmax(0,1fr);gap:12px;align-items:start}.accounting-customer-workspace>.accounting-customer-search{display:grid;grid-template-columns:1fr;gap:8px;padding:10px;border:1px solid var(--border);border-radius:11px;background:#fff}.accounting-customer-search>div{display:grid;gap:4px}.accounting-customer-search button{width:100%;padding:8px 9px;border:0;border-bottom:1px solid var(--border);border-radius:7px;background:#fff}.accounting-customer-search button:hover{background:#f5f7fa}.accounting-customer-pagination{display:flex;justify-content:space-between;align-items:center;gap:6px;font-size:11px;color:var(--muted)}.accounting-customer-workspace>#fiscalCustomerPosition{min-width:0;overflow-x:auto;padding:12px;border:1px solid var(--border);border-radius:11px;background:#fff}.customer-accounting-header{display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:10px}.customer-accounting-header h2{margin:0;font-size:18px}.customer-accounting-header p{margin:3px 0 0;color:var(--muted);font-size:12px}.customer-accounting-header>span{font-size:11px;color:var(--muted)}.accounting-customer-tabs{margin:0 0 10px}.customer-tab[data-tab-panel="accounting"]{overflow-x:auto}
@media(max-width:1100px){.fiscal-kpis{grid-template-columns:repeat(4,1fr)}.fiscal-filters{grid-template-columns:repeat(3,1fr)}.fiscal-filters #fiscalSearch{grid-column:span 2}}
@media(max-width:760px){.page-card.fiscal-page{padding:10px}.fiscal-kpis{grid-template-columns:repeat(2,1fr)}.fiscal-filters{grid-template-columns:1fr}.fiscal-filters #fiscalSearch{grid-column:auto}.accounting-customer-workspace{grid-template-columns:1fr}.accounting-customer-workspace>#fiscalCustomerPosition{padding:9px}.customer-accounting-header{display:grid}.customer-accounting-kpis{grid-template-columns:1fr 1fr}.accounting-customer-tabs{overflow-x:auto;white-space:nowrap}}

/* 11.3.2.2 — sostituzione veicolo durante il noleggio. */
.vehicle-replacement-dialog{width:min(920px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}.vehicle-replacement-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.vehicle-replacement-head span{color:var(--muted);font-size:10px;font-weight:800}.vehicle-replacement-head h2{margin:3px 0 0}.vehicle-replacement-dialog form{display:grid;gap:11px}.vehicle-replacement-dialog form>section{display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:11px}.vehicle-replacement-dialog h3{margin:0;font-size:14px}.vehicle-replacement-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:240px;overflow:auto}.vehicle-replacement-candidate{display:flex;justify-content:space-between;gap:10px;padding:10px;text-align:left;background:#fff}.vehicle-replacement-candidate span{display:grid;gap:2px}.vehicle-replacement-candidate small{color:var(--muted)}.vehicle-replacement-candidate em{color:#526174;font-size:10px;font-style:normal;text-align:right}.vehicle-replacement-candidate.selected{border-color:#2870db;background:#eef5ff;box-shadow:0 0 0 2px rgba(40,112,219,.12)}.vehicle-replacement-analysis{display:grid;gap:7px}.replacement-analysis-ok,.replacement-analysis-warning,.replacement-analysis-danger{display:grid;gap:3px;padding:9px 11px;border-radius:8px}.replacement-analysis-ok{background:#ecfdf3;color:#166534}.replacement-analysis-warning{background:#fff8e8;color:#854d0e}.replacement-analysis-danger,.replacement-alert-summary,.replacement-conflict-badge{background:#fff1f2;color:#9f1239}.replacement-analysis-danger span,.replacement-analysis-ok span{display:block}.replacement-alert-summary{display:grid;gap:3px;margin-bottom:10px;padding:10px;border-left:4px solid #dc2626;border-radius:8px}.replacement-conflict-badge{display:block!important;width:max-content;max-width:100%;margin-top:4px;padding:3px 6px;border-radius:5px;font-weight:750}.vehicle-assignment-history i{background:#2870db!important}.booking-bar.vehicle-assignment-segment{cursor:pointer}.form-feedback{min-height:18px;color:#b42318;font-size:12px}
@media(max-width:650px){.vehicle-replacement-dialog{width:calc(100vw - 14px);padding:14px}.vehicle-replacement-head{display:grid}.vehicle-replacement-dialog .grid2,.vehicle-replacement-candidates{grid-template-columns:1fr}}

/* 11.3.2.3 — cambio intestatario pre-OUT. */
.customer-reassignment-dialog{width:min(760px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}.customer-reassignment-dialog header>span{color:var(--muted);font-size:10px;font-weight:800}.customer-reassignment-dialog header h2{margin:3px 0}.customer-reassignment-dialog form{display:grid;gap:11px}.customer-reassignment-dialog form>section{display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:11px}.customer-reassignment-dialog h3{margin:0;font-size:14px}.customer-reassignment-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px}.customer-reassignment-person{display:grid;gap:3px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}.customer-reassignment-person b{font-size:13px}.customer-reassignment-person small{color:var(--muted)}.customer-reassignment-warning{padding:9px 11px;border-radius:8px;background:#fff8e8;color:#854d0e}.customer-reassignment-danger{padding:9px 11px;border-radius:8px;background:#fff1f2;color:#9f1239}.customer-reassignment-changed{display:inline-flex;width:max-content;margin-top:4px;padding:2px 6px;border-radius:999px;background:#eef5ff;color:#1d4ed8;font-size:10px;font-weight:750}
@media(max-width:650px){.customer-reassignment-dialog{width:calc(100vw - 14px);padding:14px}.customer-reassignment-search{grid-template-columns:1fr}}


/* 11.3.2.5 — cambio veicolo pre-OUT e scelta economica. */
.booking-vehicle-change-dialog{width:min(820px,calc(100vw - 28px));max-height:calc(100vh - 28px);overflow:auto}.booking-vehicle-change-dialog header>span{color:var(--muted);font-size:10px;font-weight:800}.booking-vehicle-change-dialog header h2{margin:3px 0}.booking-vehicle-change-dialog form{display:grid;gap:11px}.booking-vehicle-change-dialog form>section{display:grid;gap:9px;padding:12px;border:1px solid var(--line);border-radius:11px}.booking-vehicle-change-dialog h3{margin:0;font-size:14px}.booking-vehicle-change-current{display:flex;justify-content:space-between;gap:12px;padding:10px;border:1px solid var(--line);border-radius:9px;background:#f8fafc}.booking-vehicle-change-current span{display:grid;gap:3px}.booking-vehicle-change-current small{color:var(--muted)}.booking-vehicle-change-candidates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:330px;overflow:auto}.booking-vehicle-change-group{grid-column:1/-1;margin:6px 0 0;color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase}.booking-vehicle-change-candidate{display:flex;justify-content:space-between;gap:10px;padding:10px;text-align:left;background:#fff}.booking-vehicle-change-candidate span{display:grid;gap:3px}.booking-vehicle-change-candidate small{color:var(--muted)}.booking-vehicle-change-candidate em{color:#526174;font-size:11px;font-style:normal;text-align:right}.booking-vehicle-change-candidate.selected{border-color:#2870db;background:#eef5ff;box-shadow:0 0 0 2px rgba(40,112,219,.12)}.booking-vehicle-price-choice{display:flex;align-items:flex-start;gap:9px;padding:10px;border:1px solid var(--line);border-radius:9px;cursor:pointer}.booking-vehicle-price-choice:has(input:checked){border-color:#2870db;background:#eef5ff}.booking-vehicle-price-choice span{display:grid;gap:3px}.booking-vehicle-price-choice small{color:var(--muted)}.booking-vehicle-price-choice input{margin-top:3px}.booking-vehicle-price-delta{padding:9px 11px;border-radius:8px;background:#f8fafc}.booking-vehicle-price-delta.positive{background:#fff8e8;color:#854d0e}.booking-vehicle-price-delta.negative{background:#ecfdf3;color:#166534}
@media(max-width:650px){.booking-vehicle-change-dialog{width:calc(100vw - 14px);padding:14px}.booking-vehicle-change-candidates{grid-template-columns:1fr}}


/* 11.3.2.6 — azioni contestuali nelle card veicolo e intestatario. */
.summary-card-action-icon{position:absolute;right:12px;bottom:12px;width:31px;height:31px;padding:0;border-radius:9px;display:grid;place-items:center;color:#526174;background:#f8fafc;border-color:#d7e0eb;z-index:2}
.summary-card-action-icon:hover{color:var(--brand);background:#fff1f3;border-color:#e3a4ad}
.summary-card-action-icon svg{width:17px;height:17px}
.booking-card-actions-dialog{width:min(620px,calc(100vw - 28px))}
.booking-card-actions-dialog header>span{color:var(--muted);font-size:10px;font-weight:800}
.booking-card-actions-dialog header h2{margin:3px 0}
.booking-card-action-list{display:grid;gap:9px;margin-top:14px}
.booking-card-action-list>button{width:100%;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;padding:12px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:11px}
.booking-card-action-list>button:hover{border-color:#a9b9ce;background:#f8fafc}
.booking-card-action-list>button>span:nth-child(2){display:grid;gap:3px}
.booking-card-action-list>button b{color:var(--ink);font-size:14px}
.booking-card-action-list>button small{color:var(--muted);font-size:11px;line-height:1.35}
.booking-card-action-list>button>span:last-child{color:#94a3b8;font-size:24px}
.booking-card-action-icon{width:38px;height:38px;border-radius:10px;display:grid;place-items:center}
.booking-card-action-icon svg{width:20px;height:20px}
.booking-card-action-icon.tone-blue{background:#eaf1ff;color:#2563eb}
.booking-card-action-icon.tone-teal{background:#e8f8f4;color:#0f766e}
.booking-card-action-icon.tone-violet{background:#f1edff;color:#6d3eea}
.booking-card-action-icon.tone-rose{background:#fff0f2;color:#b4233c}
.booking-card-action-unavailable{margin-top:12px;padding:10px 12px;border:1px solid #e5e7eb;border-radius:9px;background:#f8fafc;color:#64748b;font-size:12px}
#bookingCustomerCard .driver-readiness-indicator{right:46px}
@media(max-width:650px){.booking-card-actions-dialog{width:calc(100vw - 14px);padding:14px}.booking-card-action-list>button{grid-template-columns:36px minmax(0,1fr) auto;padding:10px}}


/* 11.3.2.7 — dettaglio veicolo consultabile e modalità modifica esplicita. */
.vehicle-registry-actions{display:flex;align-items:center;justify-content:space-between;gap:12px}
.vehicle-taxonomy-actions{display:flex;gap:8px;flex-wrap:wrap}
.vehicle-registry-actions .registry-action{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0}
.vehicle-registry-actions .registry-action span{font-size:16px;line-height:1}
.vehicle-new-action{margin-left:auto;padding-inline:18px}
.vehicle-panel-head{align-items:center;padding-bottom:12px;border-bottom:1px solid var(--line)}
.vehicle-panel-head>div:first-child>span{display:block;color:var(--muted);font-size:10px;font-weight:800;letter-spacing:.04em}
.vehicle-panel-head h3{margin:3px 0 0;font-size:21px}
.vehicle-panel-head-actions{display:flex;align-items:center;gap:8px}
.vehicle-edit-action{display:inline-flex;align-items:center;gap:7px;background:var(--brand);border-color:var(--brand);color:#fff;font-weight:800}
.vehicle-edit-action svg{width:16px;height:16px}
.vehicle-read-view{display:grid;gap:15px}
.vehicle-read-hero{display:grid;grid-template-columns:70px minmax(0,1fr) auto;align-items:center;gap:15px;padding:18px;border:1px solid #dbe4ef;border-radius:14px;background:linear-gradient(135deg,#f8fbff,#fff)}
.vehicle-read-car{width:70px;height:70px;border-radius:16px;display:grid;place-items:center;background:#eaf1ff;color:#2563eb}
.vehicle-read-car svg{width:42px;height:42px}
.vehicle-read-hero span{color:#1d5fb8;font-size:19px;font-weight:850}
.vehicle-read-hero h4{margin:4px 0;font-size:21px}
.vehicle-read-hero p{margin:0;color:var(--muted)}
.vehicle-read-status{align-self:start;padding:6px 10px;border-radius:999px;background:#e8f8ef;color:#147a45;font-size:11px;white-space:nowrap}
.vehicle-read-status.rented{background:#eef2ff;color:#4338ca}.vehicle-read-status.service,.vehicle-read-status.out_of_service{background:#fff3df;color:#9a5b00}.vehicle-read-status.in_transfer{background:#eff6ff;color:#1d4ed8}.vehicle-read-status.inactive{background:#f1f5f9;color:#64748b}
.vehicle-read-highlights{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.vehicle-read-highlights article{display:grid;gap:5px;padding:13px;border:1px solid var(--line);border-radius:11px;background:#fff}
.vehicle-read-highlights span{color:var(--muted);font-size:11px}.vehicle-read-highlights b{font-size:15px}
.vehicle-read-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.vehicle-read-sections>section,.vehicle-read-notes{padding:15px;border:1px solid var(--line);border-radius:12px;background:#fff}
.vehicle-read-sections h4,.vehicle-read-notes h4{margin:0 0 11px;font-size:14px}
.vehicle-read-sections dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;margin:0}
.vehicle-read-sections dl>div{min-width:0;padding:9px 8px;border-top:1px solid #edf1f5}
.vehicle-read-sections dt{color:var(--muted);font-size:10px}.vehicle-read-sections dd{margin:3px 0 0;font-size:12px;font-weight:750;overflow-wrap:anywhere}
.vehicle-read-notes p{margin:0;color:#465469;white-space:pre-wrap;line-height:1.5}
#vehicleForm:not(.hidden){animation:vehicle-editor-in .16s ease}
@keyframes vehicle-editor-in{from{opacity:.45;transform:translateY(4px)}to{opacity:1;transform:none}}
@media(max-width:780px){.vehicle-registry-actions{align-items:stretch;flex-direction:column}.vehicle-new-action{margin-left:0}.vehicle-read-hero{grid-template-columns:54px minmax(0,1fr)}.vehicle-read-car{width:54px;height:54px}.vehicle-read-car svg{width:34px;height:34px}.vehicle-read-status{grid-column:1/-1;justify-self:start}.vehicle-read-highlights,.vehicle-read-sections{grid-template-columns:1fr}.vehicle-panel-head{align-items:flex-start}.vehicle-panel-head-actions{flex-wrap:wrap;justify-content:flex-end}}
@media(max-width:520px){.vehicle-taxonomy-actions{display:grid;grid-template-columns:repeat(3,1fr);width:100%}.vehicle-registry-actions .registry-action{padding-inline:8px}.vehicle-read-sections dl{grid-template-columns:1fr}}


/* 11.3.2.8 — archivio veicoli, modifica esplicita e galleria allegati. */
.vehicle-registry-actions{align-items:stretch;margin:14px 0 16px}
.vehicle-taxonomy-toolbar{display:flex;align-items:center;gap:14px;min-width:0;padding:8px 10px 8px 13px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
.vehicle-taxonomy-copy{display:grid;gap:2px;min-width:185px}
.vehicle-taxonomy-copy>span{font-size:10px;font-weight:850;letter-spacing:.06em;color:#42516a}
.vehicle-taxonomy-copy>small{font-size:11px;color:var(--muted);white-space:nowrap}
.vehicle-taxonomy-actions{gap:5px;flex-wrap:nowrap}
.vehicle-registry-actions .taxonomy-action{min-height:36px;padding:7px 10px;border-color:transparent;background:#fff;color:#263449;box-shadow:0 1px 2px rgba(15,23,42,.05)}
.vehicle-registry-actions .taxonomy-action:hover{border-color:#cbd5e1;background:#fff;color:var(--brand)}
.vehicle-registry-actions .taxonomy-action svg{width:17px;height:17px;flex:0 0 auto}
.vehicle-registry-actions .taxonomy-action span{font-size:12px;line-height:1}
.vehicle-new-action{align-self:center;min-height:42px}
#vehiclePanelEdit:not(.hidden):not([hidden]){display:inline-flex!important}
.vehicle-panel-head-actions{min-width:max-content}

.vehicle-attachments-box{margin-top:0;padding-top:18px}
.vehicle-attachments-box>.panel-head{align-items:flex-start;margin-bottom:14px}
.vehicle-attachments-box>.panel-head h3{margin-bottom:4px;font-size:20px}
.vehicle-attachments-box .upload-button{display:inline-flex;align-items:center;min-height:36px;padding:8px 12px;font-weight:800}
.vehicle-attachments-grid{grid-template-columns:repeat(auto-fill,minmax(245px,1fr));gap:14px}
.vehicle-attachment-card{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:150px auto;align-items:center;gap:0 10px;overflow:hidden;padding:0;border-color:#d8e1ec;border-radius:13px;box-shadow:0 1px 2px rgba(15,23,42,.03)}
.vehicle-attachment-card:hover{border-color:#b8c7da;box-shadow:0 7px 20px rgba(15,23,42,.08);transform:translateY(-1px)}
.vehicle-attachment-preview{position:relative;grid-column:1/-1;display:flex;width:100%;height:150px;overflow:hidden;background:#eef2f7;text-decoration:none}
.vehicle-attachment-preview img{width:100%;height:100%;border-radius:0;object-fit:cover;transition:transform .18s ease}
.vehicle-attachment-card:hover .vehicle-attachment-preview img{transform:scale(1.025)}
.vehicle-attachment-preview .vehicle-file-icon{width:100%;height:100%;border-radius:0}
.vehicle-file-kind{position:absolute;left:9px;bottom:9px;max-width:calc(100% - 18px);padding:5px 8px;border-radius:999px;background:rgba(15,23,42,.78);color:#fff;font-size:10px;font-weight:800;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vehicle-attachment-meta{min-width:0;padding:11px 0 11px 12px}
.vehicle-attachment-meta b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}
.vehicle-attachment-card .vehicle-attachment-meta small{max-width:none;margin-top:4px;font-size:11px}
.vehicle-attachment-actions{display:flex;align-items:center;gap:4px;padding:8px 9px 8px 0}
.vehicle-attachment-actions>a{padding:6px 7px;border-radius:7px;color:#315a91;font-size:11px;font-weight:800;text-decoration:none}
.vehicle-attachment-actions>a:hover{background:#eef4fb}
.vehicle-attachment-card .vehicle-file-delete{display:inline-grid;place-items:center;width:32px;height:32px;padding:0;border-color:#f0c2c8;border-radius:8px;background:#fff6f7;color:#b20f27}
.vehicle-file-delete svg{width:16px;height:16px}
.vehicle-file-delete:hover{background:#b20f27;color:#fff}
.vehicle-damage-card{grid-template-columns:minmax(0,1fr)}
.vehicle-damage-card .vehicle-attachment-meta{padding-right:12px}

@media(max-width:980px){
 .vehicle-registry-actions{flex-direction:column}
 .vehicle-taxonomy-toolbar{justify-content:space-between}
 .vehicle-new-action{align-self:stretch;margin-left:0}
}
@media(max-width:650px){
 .vehicle-taxonomy-toolbar{display:grid}
 .vehicle-taxonomy-copy{min-width:0}
 .vehicle-taxonomy-copy>small{white-space:normal}
 .vehicle-taxonomy-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
 .vehicle-registry-actions .taxonomy-action{padding-inline:6px}
 .vehicle-attachments-grid{grid-template-columns:1fr}
 .vehicle-attachment-card{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:180px auto}
 .vehicle-attachment-preview{height:180px}
}


/* 11.3.2.9 — azioni veicoli unificate e modifica sempre accessibile dal riepilogo. */
.vehicle-registry-actions{display:block;margin:14px 0 16px}
.vehicle-taxonomy-toolbar{display:flex;align-items:center;gap:18px;width:100%;padding:11px 12px 11px 15px}
.vehicle-taxonomy-copy{flex:0 0 205px;min-width:0}
.vehicle-taxonomy-copy>span{font-size:11px}
.vehicle-taxonomy-copy>small{font-size:12px;white-space:normal}
.vehicle-taxonomy-actions{display:flex;flex:1;justify-content:flex-end;gap:8px;flex-wrap:wrap}
.vehicle-registry-actions .taxonomy-action{min-height:42px;padding:9px 13px;border:1px solid #d8e1ec;border-radius:9px}
.vehicle-registry-actions .taxonomy-action span{font-size:12px;font-weight:800}
.vehicle-registry-actions .vehicle-create-action{border-color:var(--brand);background:var(--brand);color:#fff;box-shadow:none}
.vehicle-registry-actions .vehicle-create-action:hover{border-color:#8f0c20;background:#8f0c20;color:#fff}
.vehicle-read-hero-actions{display:flex;align-items:flex-end;justify-content:flex-start;flex-direction:column;gap:9px}
.vehicle-read-edit-action{min-height:38px;padding:8px 12px;white-space:nowrap}
#vehicleReadEdit:not(.hidden):not([hidden]){display:inline-flex!important}
@media(max-width:980px){
 .vehicle-taxonomy-toolbar{align-items:flex-start;flex-direction:column}
 .vehicle-taxonomy-copy{flex-basis:auto}
 .vehicle-taxonomy-actions{justify-content:flex-start;width:100%}
}
@media(max-width:650px){
 .vehicle-taxonomy-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .vehicle-registry-actions .taxonomy-action{width:100%;padding-inline:8px}
 .vehicle-read-hero-actions{grid-column:1/-1;align-items:flex-start}
}


/* 11.3.2.11 — gerarchia compatta del registro e modifica veicolo in testata. */
#registryModal .registry-title{align-items:center;margin-bottom:12px}
#registryModal .registry-title h2{margin:0 0 3px}
#registryModal .registry-title p{margin:0}
#registryModal .vehicle-registry-actions{margin:0 0 16px}
#registryModal .vehicle-taxonomy-toolbar{display:flex;justify-content:flex-end;width:100%;padding:10px;border:1px solid var(--line);border-radius:12px;background:#f8fafc}
#registryModal .vehicle-taxonomy-actions{display:flex;justify-content:flex-end;width:100%;gap:8px;flex-wrap:wrap}
#registryModal .vehicle-taxonomy-actions .taxonomy-action{min-height:40px}
#registryModal .vehicle-panel-head-actions #vehicleReadEdit:not(.hidden):not([hidden]){display:inline-flex!important}
#registryModal .vehicle-read-hero-actions{align-items:flex-end}
@media(max-width:650px){
 #registryModal .vehicle-taxonomy-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 #registryModal .vehicle-panel-head{align-items:flex-start}
 #registryModal .vehicle-panel-head-actions{width:auto;display:flex;justify-content:flex-end}
 #registryModal .vehicle-panel-head-actions #vehicleReadEdit span{display:none}
}


/* 11.3.2.12 — testata unica, filtri collassabili e azione modifica visibile. */
#registryModal .vehicle-taxonomy-toolbar{
 display:flex;align-items:center;justify-content:space-between;gap:18px;
 width:100%;padding:16px;border:1px solid var(--line);border-radius:14px;background:#f8fafc
}
#registryModal .vehicle-taxonomy-toolbar .registry-title{flex:1 1 320px;margin:0}
#registryModal .vehicle-taxonomy-toolbar .registry-title h2{margin:0 0 4px}
#registryModal .vehicle-taxonomy-toolbar .registry-title p{margin:0}
#registryModal .vehicle-taxonomy-actions{flex:0 1 auto;width:auto;justify-content:flex-end}
#registryModal .vehicle-taxonomy-actions [data-export-type="vehicles"]{min-height:40px;white-space:nowrap}
#registryModal .vehicle-search-row{grid-template-columns:minmax(280px,1fr) auto}
#registryModal .vehicle-search-actions{display:flex;align-items:flex-end;gap:8px}
#registryModal .vehicle-search-actions .count-badge{display:inline-flex;align-items:center;min-height:42px}
#registryModal .vehicle-filter-disclosure{margin-top:2px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}
#registryModal .vehicle-filter-disclosure summary{display:flex;align-items:center;justify-content:space-between;min-height:40px;padding:9px 12px;cursor:pointer;color:#334155;font-size:12px;font-weight:800;list-style:none}
#registryModal .vehicle-filter-disclosure summary::-webkit-details-marker{display:none}
#registryModal .vehicle-filter-disclosure summary::after{content:"⌄";font-size:18px;line-height:1;transition:transform .18s ease}
#registryModal .vehicle-filter-disclosure[open] summary::after{transform:rotate(180deg)}
#registryModal .vehicle-filter-disclosure .vehicle-filter-row{padding:0 12px 12px}
#registryModal #vehicleReadEdit:not(.hidden):not([hidden]){
 display:inline-flex!important;visibility:visible!important;opacity:1!important;
 background:#b20f27!important;border:1px solid #b20f27!important;color:#fff!important;
 box-shadow:0 2px 5px rgba(178,15,39,.24)
}
#registryModal #vehicleReadEdit:not(.hidden):not([hidden]):hover{background:#8f0c20!important;border-color:#8f0c20!important;color:#fff!important}
#registryModal #vehicleReadEdit svg{display:block;stroke:currentColor}
@media(max-width:980px){
 #registryModal .vehicle-taxonomy-toolbar{align-items:flex-start;flex-direction:column}
 #registryModal .vehicle-taxonomy-actions{width:100%;justify-content:flex-start}
}
@media(max-width:650px){
 #registryModal .vehicle-search-row{grid-template-columns:1fr}
 #registryModal .vehicle-search-actions{display:grid;grid-template-columns:auto 1fr}
 #registryModal .vehicle-search-actions button{width:100%}
}


/* 11.3.2.13 — azione Nuovo veicolo sempre visibile. */
#registryModal .vehicle-taxonomy-actions .vehicle-create-action{
 background:#b20f27!important;
 border-color:#b20f27!important;
 color:#fff!important;
 opacity:1
}
#registryModal .vehicle-taxonomy-actions .vehicle-create-action:hover{
 background:#8f0c20!important;
 border-color:#8f0c20!important;
 color:#fff!important
}
#registryModal .vehicle-taxonomy-actions .vehicle-create-action svg{stroke:currentColor}


/* v11.3.2.15 - configurazione unica Societa e Brand */
.company-brand-section .company-brand-intro{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px;padding:18px 20px;border:1px solid #dbe3ed;border-radius:14px;background:linear-gradient(135deg,#f8fafc,#eef3f8)}
.company-brand-section .company-brand-intro h2{margin:0 0 5px;font-size:21px}
.company-brand-section .company-brand-intro p{margin:0;max-width:850px;color:var(--muted);line-height:1.45}
.company-brand-workspace{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.company-brand-column{min-width:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}
.company-brand-column .panel-head{margin-bottom:12px}
.company-brand-column .panel-head h3{margin:0 0 3px}
.company-brand-column .panel-head p{margin:0}
.company-brand-row{min-height:68px}
.company-brand-row>span:first-child{min-width:0}
.company-brand-row b,.company-brand-row small{overflow:hidden;text-overflow:ellipsis}
.company-brand-form{margin-top:14px;padding:16px;background:#fff;border:1px solid #dbe3ed;border-radius:13px}
.company-brand-form .form-section-title{margin:16px 0 9px;padding-bottom:7px;border-bottom:1px solid #e6ebf1;font-size:12px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#475569}
.company-brand-form .form-section-title:first-of-type{margin-top:0}
.company-brand-form textarea{min-height:76px}
.config-form-feedback{min-height:20px;margin-top:10px;font-size:13px;font-weight:700}
.config-form-feedback.pending{color:#475569}
.config-form-feedback.error{padding:9px 11px;border:1px solid #fecaca;border-radius:9px;background:#fff1f2;color:#b42318}
.company-brand-form[aria-busy="true"]{opacity:.78}
.company-brand-form button[disabled]{cursor:wait;opacity:.75}
.unassigned-brand-panel{padding:16px;border:1px solid var(--line);border-radius:14px;background:#fbfcfe}
.unassigned-brand-panel h3{margin-top:0}
@media(max-width:1050px){.company-brand-workspace{grid-template-columns:1fr}}
@media(max-width:700px){.company-brand-column{padding:12px}.company-brand-form{padding:12px}.company-brand-section .company-brand-intro{padding:14px}.company-brand-section .panel-head{align-items:flex-start;gap:10px}.company-brand-section .panel-head button{flex:0 0 auto}}


/* 11.3.2.18 — modale documento fiscale */
.fiscal-drawer{display:grid;place-items:center;padding:24px;grid-template-columns:1fr}
.fiscal-drawer-scrim{position:absolute;inset:0;width:100%;height:100%;background:rgba(15,23,42,.58);backdrop-filter:blur(2px)}
.fiscal-drawer-panel{position:relative;grid-column:1;grid-row:1;width:min(1180px,96vw);height:min(900px,94vh);border-radius:18px;overflow:auto;background:#f4f6fa;box-shadow:0 28px 80px rgba(15,23,42,.32);transform:translateY(24px) scale(.985);opacity:0}
.fiscal-drawer.open .fiscal-drawer-panel{transform:translateY(0) scale(1);opacity:1}
.fiscal-drawer .fiscal-detail-page{padding:18px 20px 24px}
.fiscal-drawer .booking-detail-toolbar{margin:-18px -20px 14px;padding:12px 20px;border-radius:18px 18px 0 0}
.fiscal-drawer .booking-detail-header{padding:15px 18px;margin-bottom:12px;background:#fff;border:1px solid #e1e6ee;border-radius:14px}
.fiscal-drawer .booking-detail-header h1{font-size:24px}
.fiscal-detail-layout{grid-template-columns:minmax(0,1fr) 300px;gap:14px;align-items:start}
.fiscal-detail-layout main,.fiscal-detail-layout>aside{display:grid;gap:12px;min-width:0}
.fiscal-detail-layout .booking-section-card{margin:0;padding:14px;border-radius:13px}
.fiscal-parties-head{margin-bottom:10px}
.fiscal-parties-head h3{margin-bottom:3px}
.fiscal-party-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fiscal-party-card{display:grid;gap:4px;min-width:0;padding:13px 14px;border:1px solid #dfe5ed;border-radius:12px;background:#f8fafc}
.fiscal-party-card.primary{border-color:#9fc4ff;background:#f1f7ff;box-shadow:inset 3px 0 #2367c9}
.fiscal-party-card.driver{border-color:#b8dfcf;background:#f2fbf7;box-shadow:inset 3px 0 #16845b}
.fiscal-party-card span{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#687386}
.fiscal-party-card b{font-size:15px;overflow-wrap:anywhere}
.fiscal-party-card small,.fiscal-party-card em{font-size:12px;line-height:1.35;color:#5f6b7a;font-style:normal;overflow-wrap:anywhere}
.fiscal-party-card.compact{align-content:center}
#fiscalLines{overflow-x:auto}
.fiscal-line{min-width:760px;gap:8px;padding:9px 8px}
#fiscalTotals .economic-total{margin:4px -4px;padding:10px 8px;border-radius:9px;background:#eef4ff;color:#184f9e}
.fiscal-readable-summary div{display:grid;grid-template-columns:110px minmax(0,1fr);align-items:start}
.fiscal-readable-summary b{text-align:right;overflow-wrap:anywhere}
#fiscalDetailActions{justify-content:flex-end}
@media(max-width:900px){
 .fiscal-drawer{padding:0}
 .fiscal-drawer-panel{width:100vw;height:100vh;border-radius:0}
 .fiscal-drawer .booking-detail-toolbar{border-radius:0}
 .fiscal-detail-layout{grid-template-columns:1fr}
 .fiscal-party-cards{grid-template-columns:1fr}
}
@media(max-width:560px){
 .fiscal-drawer .fiscal-detail-page{padding:12px}
 .fiscal-drawer .booking-detail-toolbar{margin:-12px -12px 10px;padding:10px 12px;align-items:flex-start}
 .fiscal-drawer .booking-detail-actions{justify-content:flex-end}
 .fiscal-drawer .booking-detail-header{padding:12px}
 .fiscal-drawer .booking-detail-header h1{font-size:20px}
 .fiscal-readable-summary div{grid-template-columns:1fr;gap:2px}
 .fiscal-readable-summary b{text-align:left}
}

/* 11.3.2.85 — variazione commerciale esplicita e sempre ricalcolata. */
.booking-price-mode-control>small,.booking-price-editor label>small{display:block;margin-top:6px;color:#64748b;font-size:11px;font-weight:500;line-height:1.4}
.booking-price-adjustment-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) auto;align-items:center;gap:10px;padding:12px 14px;border:1px solid #cfe0f5;border-radius:11px;background:#f7fbff}
.booking-price-adjustment-summary span{display:grid;gap:3px;color:#64748b;font-size:11px}
.booking-price-adjustment-summary span b{color:#172033;font-size:13px}
.booking-price-adjustment-summary strong{justify-self:end;color:#1f5d9d;font-size:15px}
.practice-economic-lines .commercial b{color:#1f5d9d}
@media(max-width:680px){.booking-price-adjustment-summary{grid-template-columns:1fr}.booking-price-adjustment-summary strong{justify-self:start}}

/* 11.3.2.19 — leggibilita e reflow della modale documento fiscale. */
.fiscal-drawer-panel{width:min(1320px,calc(100vw - 40px))}
.fiscal-detail-layout{grid-template-columns:minmax(0,1fr) 340px;gap:16px}
.fiscal-detail-layout main,.fiscal-detail-layout>aside{min-width:0}
.fiscal-detail-layout .booking-section-card{overflow:hidden}
#fiscalLines{overflow:visible}
.fiscal-line{
 min-width:0;
 grid-template-columns:28px minmax(180px,1fr) minmax(360px,1.55fr) minmax(118px,auto) auto;
 gap:10px;
 align-items:center;
 padding:12px 4px
}
.fiscal-line>label{margin:0;display:flex;align-items:center;justify-content:center}
.fiscal-line>label input{width:16px;height:16px;margin:0}
.fiscal-line>span{min-width:0;line-height:1.35}
.fiscal-line>span>b{overflow-wrap:anywhere}
.fiscal-line>span>small{display:block;margin-top:3px;line-height:1.35;overflow-wrap:anywhere}
.fiscal-line>.fiscal-line-editor{
 min-width:0;
 grid-template-columns:minmax(150px,1.6fr) 62px 92px 58px 76px 62px!important;
 gap:7px
}
.fiscal-line-editor input,.fiscal-line-editor select{width:100%;min-width:0;height:38px;margin:0;padding:7px 8px}
.fiscal-line-values{min-width:118px;text-align:right;white-space:normal}
.fiscal-line-values b{display:block;font-size:14px}
.fiscal-line-values small{display:block;margin-top:4px;line-height:1.3}
.fiscal-line>div:last-child{display:flex;justify-content:flex-end;gap:6px;white-space:nowrap}
.fiscal-line>div:last-child button{min-height:36px;padding:7px 10px}
.fiscal-readable-summary div{grid-template-columns:minmax(112px,.85fr) minmax(150px,1.15fr);gap:12px}
.fiscal-readable-summary span{line-height:1.3}
.fiscal-readable-summary b{min-width:0;line-height:1.3;text-align:right;overflow-wrap:anywhere}
@media(max-width:1200px){
 .fiscal-drawer{padding:16px}
 .fiscal-drawer-panel{width:calc(100vw - 32px);height:calc(100vh - 32px)}
 .fiscal-detail-layout{grid-template-columns:1fr}
 .fiscal-detail-layout>aside{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fiscal-detail-layout>aside>.booking-section-card{margin:0}
}
@media(max-width:900px){
 .fiscal-drawer{padding:0}
 .fiscal-drawer-panel{width:100vw;height:100vh;border-radius:0}
 .fiscal-drawer .booking-detail-toolbar{border-radius:0;flex-wrap:wrap}
 .fiscal-detail-layout>aside{grid-template-columns:1fr}
 .fiscal-line{
  grid-template-columns:28px minmax(0,1fr) minmax(118px,auto);
  align-items:start
 }
 .fiscal-line>label{grid-column:1;grid-row:1}
 .fiscal-line>span:nth-child(2){grid-column:2;grid-row:1}
 .fiscal-line>.fiscal-line-editor{grid-column:2/4;grid-row:2;width:100%}
 .fiscal-line>.fiscal-line-values{grid-column:3;grid-row:1}
 .fiscal-line>div:last-child{grid-column:2/4;grid-row:3}
}
@media(max-width:680px){
 .fiscal-drawer .booking-detail-actions{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .fiscal-drawer .booking-detail-actions button{width:100%;min-width:0}
 .fiscal-party-cards{grid-template-columns:1fr}
 .fiscal-line{grid-template-columns:26px minmax(0,1fr);padding:13px 2px}
 .fiscal-line>label{grid-column:1;grid-row:1}
 .fiscal-line>span:nth-child(2){grid-column:2;grid-row:1}
 .fiscal-line>.fiscal-line-values{grid-column:2;grid-row:2;text-align:left}
 .fiscal-line>.fiscal-line-editor{grid-column:1/3;grid-row:3;grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .fiscal-line-editor [data-line-field="description"]{grid-column:1/-1}
 .fiscal-line>div:last-child{grid-column:1/3;grid-row:4;justify-content:flex-start}
 .fiscal-readable-summary div{grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr)}
 .fiscal-readable-summary b{text-align:right}
 .fiscal-manual-line{grid-template-columns:1fr 1fr}
 .fiscal-manual-line>*:first-child{grid-column:1/-1}
}

/* Hotfix modale fiscale: soggetti compatti e righe contabili senza sovrapposizioni. */
.fiscal-party-card.primary b{color:#111827}
.fiscal-party-card.compact{align-content:start;gap:2px;padding:8px 11px;min-height:0;background:#fff}
.fiscal-party-card.compact b{font-size:13px;color:#111827}
.fiscal-party-card.compact small{font-size:11px}
#fiscalLines{display:grid;gap:10px;overflow:visible}
.fiscal-line{
 display:grid;
 grid-template-columns:62px minmax(0,1fr) auto;
 gap:10px;
 align-items:end;
 min-width:0;
 padding:12px;
 border:1px solid #dfe5ed;
 border-radius:11px;
 background:#fff
}
.fiscal-line-include{display:grid!important;justify-items:center!important;align-self:center;gap:4px;color:#687386;font-size:10px;font-weight:800;text-transform:uppercase}
.fiscal-line-include input{width:16px!important;height:16px!important;margin:0}
.fiscal-line-fields{display:grid;grid-template-columns:minmax(210px,2fr) 72px 96px 132px 72px 138px;gap:8px;align-items:start;min-width:0}
.fiscal-line-fields>label,.fiscal-line-fields>div{display:grid;gap:5px;min-width:0;margin:0}
.fiscal-line-fields>label>span:first-child,.fiscal-line-fields>div>span:first-child{font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#687386}
.fiscal-line-fields input,.fiscal-line-fields select{width:100%;min-width:0;height:38px;margin:0;padding:7px 8px}
.fiscal-line-description small{line-height:1.25;color:#687386;overflow-wrap:anywhere}
.fiscal-discount-input{display:grid;grid-template-columns:48px minmax(0,1fr);gap:5px}
.fiscal-line-total{padding-left:9px;border-left:1px solid #e3e8ef}
.fiscal-line-total b{font-size:15px;color:#111827;white-space:nowrap}
.fiscal-line-total small{line-height:1.25;color:#687386}
.fiscal-line-actions{display:flex;gap:6px;align-self:end;white-space:nowrap}
.fiscal-line-fields-readonly>div>b{color:#111827;overflow-wrap:anywhere}
@media(max-width:1100px){
 .fiscal-line{grid-template-columns:56px minmax(0,1fr)}
 .fiscal-line-fields{grid-template-columns:minmax(190px,2fr) repeat(2,minmax(78px,.65fr)) repeat(2,minmax(86px,.75fr))}
 .fiscal-line-total{grid-column:1/-1;display:flex!important;align-items:center;justify-content:space-between;padding:8px 0 0;border-left:0;border-top:1px solid #e3e8ef}
 .fiscal-line-actions{grid-column:2;justify-content:flex-end}
}
@media(max-width:680px){
 .fiscal-line{grid-template-columns:1fr;align-items:start}
 .fiscal-line-include{display:flex!important;justify-content:flex-start!important}
 .fiscal-line-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fiscal-line-description,.fiscal-line-total{grid-column:1/-1}
 .fiscal-line-actions{grid-column:1;justify-content:flex-start}
}


/* 11.3.2.21 — gerarchia visiva della modale fiscale. */
.fiscal-parties-card{padding-top:12px!important}
.fiscal-lines-card{padding-top:10px!important;border-color:#cfd8e6!important;box-shadow:0 5px 16px rgba(15,23,42,.05)}
.fiscal-lines-toolbar{display:flex;justify-content:flex-end;margin-bottom:8px}
.fiscal-lines-toolbar #fiscalAddLine{padding:7px 11px;font-size:12px}
.fiscal-history-card{padding:11px 14px!important}
.fiscal-history-card h3,.fiscal-payments-card h3{margin:0 0 8px;font-size:15px;line-height:1.2}
#fiscalHistory{font-size:12px;line-height:1.25;color:#5f6b7a}
#fiscalHistory b,#fiscalHistory strong{font-size:12px;color:#334155}
#fiscalHistory small{font-size:11px}
.fiscal-payments-card{padding:12px!important}
#fiscalPayments{font-size:12px;color:#53627a}
#fiscalPayments .booking-record-row{padding:9px 10px;border-radius:9px}
#fiscalPayments .booking-record-row b{font-size:13px;line-height:1.2;color:#1f2937}
#fiscalPayments .booking-record-row small{font-size:11px;line-height:1.25}
.fiscal-movement-payments{margin-top:9px;padding-top:9px;border-top:1px solid #d8dee8}
.fiscal-payment-label{display:block;margin-bottom:6px;font-size:11px;font-weight:800;line-height:1.2;color:#475569;text-transform:uppercase;letter-spacing:.03em}
.fiscal-movement-payments .booking-record-row{padding:8px 10px}
@media(max-width:680px){
 .fiscal-lines-toolbar{justify-content:stretch}
 .fiscal-lines-toolbar #fiscalAddLine{width:100%}
}


/* 11.3.2.22 — allineamento colonne e rimozione del riepilogo IVA duplicato. */
.fiscal-detail-layout>main{padding:0}


/* Scheda contratto: avviso revisione nel flusso, senza sovrapposizioni */
.booking-review-banner:empty{display:none}
.booking-review-banner{margin:0 0 12px}
.booking-review-banner .reopen-cycle-banner{margin:0;grid-template-columns:auto minmax(0,1fr);column-gap:16px;row-gap:6px;padding:12px 16px}
.booking-review-banner .reopen-cycle-banner>b{grid-column:1}
.booking-review-banner .reopen-cycle-banner>p{grid-column:2;margin:0;color:#854d0e}
.booking-review-banner .reopen-cycle-banner>dl{grid-column:1/-1;grid-template-columns:80px minmax(140px,1fr) 110px minmax(180px,2fr)}
.booking-review-banner .review-lock-notice{grid-column:1/-1;margin-top:2px}
@media(max-width:800px){
 .booking-review-banner .reopen-cycle-banner{grid-template-columns:1fr}
 .booking-review-banner .reopen-cycle-banner>b,.booking-review-banner .reopen-cycle-banner>p,.booking-review-banner .reopen-cycle-banner>dl,.booking-review-banner .review-lock-notice{grid-column:1}
 .booking-review-banner .reopen-cycle-banner>dl{grid-template-columns:1fr 1fr}
}

/* Planner: gli intervalli brevi rispettano gli orari senza invadere la prenotazione successiva. */
.booking-bar.planner-hour-compact{padding-inline:0;min-width:2px}


/* 11.3.2.25 — descrizioni complete e storico collassabile nella fattura. */
.fiscal-drawer{padding:8px}
.fiscal-drawer-panel{width:min(1540px,calc(100vw - 16px));height:min(940px,calc(100vh - 16px))}
.fiscal-detail-layout{grid-template-columns:minmax(0,1fr) 320px;gap:16px}
.fiscal-line{grid-template-columns:54px minmax(0,1fr) auto;align-items:start}
.fiscal-line-fields{grid-template-columns:84px 110px 142px 84px minmax(140px,170px);align-items:start}
.fiscal-line-description{grid-column:1/-1}
.fiscal-line-description textarea{display:block;width:100%;min-width:0;min-height:42px;height:auto;margin:0;padding:10px 11px;resize:none;overflow:hidden;line-height:1.4;white-space:pre-wrap;overflow-wrap:anywhere}
.fiscal-line-fields-readonly .fiscal-line-description b{display:block;white-space:normal;line-height:1.4;overflow-wrap:anywhere}
.fiscal-line-actions{align-self:end}
.fiscal-history-card{padding:0!important}
.fiscal-history-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;cursor:pointer;list-style:none;user-select:none}
.fiscal-history-summary::-webkit-details-marker{display:none}
.fiscal-history-summary>span:first-child{display:flex;align-items:baseline;gap:9px}
.fiscal-history-summary b{font-size:15px;color:#1f2937}
.fiscal-history-summary small{font-size:11px;font-weight:700;color:#687386}
.fiscal-history-chevron{font-size:18px;line-height:1;color:#64748b;transition:transform .18s ease}
.fiscal-history-card[open] .fiscal-history-chevron{transform:rotate(180deg)}
.fiscal-history-card #fiscalHistory{padding:12px 14px 14px;border-top:1px solid #e2e8f0}
@media(max-width:1200px){
 .fiscal-drawer-panel{width:calc(100vw - 16px);height:calc(100vh - 16px)}
 .fiscal-detail-layout{grid-template-columns:1fr}
}
@media(max-width:900px){
 .fiscal-drawer{padding:0}
 .fiscal-drawer-panel{width:100vw;height:100vh}
 .fiscal-line{grid-template-columns:48px minmax(0,1fr)}
 .fiscal-line-actions{grid-column:2;justify-content:flex-end}
}
@media(max-width:680px){
 .fiscal-line{grid-template-columns:1fr}
 .fiscal-line-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fiscal-line-description,.fiscal-line-total{grid-column:1/-1}
 .fiscal-line-actions{grid-column:1;justify-content:flex-start}
 .fiscal-history-summary{padding:11px 12px}
 .fiscal-history-card #fiscalHistory{padding:11px 12px 13px}
}


/* 11.3.2.31 — flusso completo bozza/fattura, intestatario e azioni documento. */
.fiscal-line-fields{grid-template-columns:minmax(360px,3fr) 62px 88px 104px 64px 112px}
.fiscal-line-description{grid-column:auto}
.fiscal-party-card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.fiscal-party-card-head button{min-height:30px;padding:5px 10px;font-size:12px}
.fiscal-customer-picker-dialog{width:min(680px,calc(100vw - 32px))}
.fiscal-customer-picker-dialog>input{width:100%;margin:4px 0 12px}
.fiscal-customer-picker-results{display:grid;gap:8px;max-height:430px;overflow:auto}
.fiscal-customer-picker-results>button{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;padding:11px 12px;text-align:left;border:1px solid #dfe5ed;border-radius:10px;background:#fff}
.fiscal-customer-picker-results>button:hover{border-color:#8db5ed;background:#f5f9ff}
.fiscal-customer-picker-results span{display:grid;gap:3px;min-width:0}
.fiscal-customer-picker-results small{color:#687386;overflow-wrap:anywhere}
@media(max-width:1050px){
 .fiscal-line-fields{grid-template-columns:repeat(5,minmax(70px,1fr))}
 .fiscal-line-description{grid-column:1/-1}
}
@media(max-width:680px){
 .fiscal-line-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fiscal-line-description,.fiscal-line-total{grid-column:1/-1}
}


/* 11.3.2.34 — righe fiscali 2/3 + 1/3, riepilogo unico e template notifiche. */
.fiscal-line{grid-template-columns:54px minmax(0,1fr) auto;align-items:start}
.fiscal-line>.fiscal-line-fields{display:grid;grid-template-columns:minmax(0,2fr) minmax(300px,1fr);gap:14px;align-items:start;min-width:0;width:100%}
.fiscal-line-description{grid-column:auto;min-width:0}
.fiscal-line-description textarea{min-height:74px;resize:vertical;overflow-wrap:anywhere}
.fiscal-line-numbers{display:grid;grid-template-columns:minmax(58px,.7fr) minmax(74px,1fr) minmax(110px,1.25fr) minmax(62px,.8fr);gap:7px;align-items:start;min-width:0}
.fiscal-line-numbers>label,.fiscal-line-numbers>div{display:grid;gap:5px;min-width:0;margin:0}
.fiscal-line-numbers>label>span:first-child,.fiscal-line-numbers>div>span:first-child{font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#687386}
.fiscal-line-numbers input,.fiscal-line-numbers select{width:100%;min-width:0;height:38px;margin:0;padding:7px 8px}
.fiscal-line-numbers-readonly b{overflow-wrap:anywhere}
.fiscal-summary-card{margin-top:12px}.fiscal-summary-card h3{margin:0 0 10px}
.fiscal-summary-card .economic-lines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fiscal-summary-card .economic-lines>div{padding:11px 12px;border:1px solid #e0e6ee;border-radius:10px;background:#f8fafc}.fiscal-summary-card .fiscal-discount-form{grid-column:1/-1}
.fiscal-summary-card .economic-total{background:#fff7f7!important;border-color:#efc4ca!important}
.fiscal-payment-summary{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}.fiscal-payment-summary>div{display:grid;gap:3px;padding:9px;border:1px solid #e0e6ee;border-radius:9px;background:#f8fafc}.fiscal-payment-summary span{font-size:10px;font-weight:800;text-transform:uppercase;color:#687386}
#fiscalCustomerPickerModal{z-index:1500}
.notification-template-form{max-width:1120px;margin-top:14px}.notification-template-form .notification-template-meta{grid-template-columns:1fr 1fr 2fr}.notification-template-form textarea{min-height:180px;line-height:1.5}.notification-template-variables{display:block;padding:10px 12px;border:1px solid #d9e4f2;border-radius:9px;background:#f5f9ff;color:#475569;overflow-wrap:anywhere}.notification-email-preview{margin-top:8px;padding:14px;border:1px solid #d9e2ec;border-radius:12px;background:#f5f7fa}.notification-email-preview .panel-head{margin-bottom:12px}.notification-email-preview .panel-head>div{display:grid;gap:3px}.notification-email-preview iframe{display:block;width:100%;height:720px;border:1px solid #d7dee8;border-radius:10px;background:#f1f4f8}.notification-template-form label small{display:block;margin-top:2px;color:#7b8798;font-weight:500;line-height:1.3}
@media(max-width:1050px){.fiscal-line-fields{grid-template-columns:1fr}.fiscal-line-numbers{grid-template-columns:repeat(4,minmax(70px,1fr))}}
@media(max-width:680px){.fiscal-line{grid-template-columns:1fr}.fiscal-line-actions{grid-column:1}.fiscal-line-numbers{grid-template-columns:repeat(2,minmax(0,1fr))}.fiscal-summary-card .economic-lines{grid-template-columns:1fr}.notification-template-form .notification-template-meta{grid-template-columns:1fr}}


/* 11.3.2.36 — editor fiscale compatto, campi uniformi, dati noleggio e riepilogo verticale. */
.fiscal-rental-card h3{margin:0 0 10px;font-size:15px}
#fiscalRentalData{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(380px,1.5fr);gap:10px}
.fiscal-rental-vehicle,.fiscal-rental-period{display:grid;gap:8px}
.fiscal-rental-vehicle{grid-template-columns:minmax(90px,.8fr) minmax(140px,1.3fr) minmax(90px,.7fr)}
.fiscal-rental-period{grid-template-columns:repeat(2,minmax(0,1fr))}
.fiscal-rental-vehicle>span,.fiscal-rental-period>span{min-width:0;min-height:58px;padding:9px 10px;border:1px solid #dfe5ed;border-radius:9px;background:#f8fafc;display:grid;align-content:center;gap:3px}
#fiscalRentalData small{font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#687386}
#fiscalRentalData b{font-size:13px;overflow-wrap:anywhere}
#fiscalRentalData em{font-size:11px;font-style:normal;color:#687386;overflow-wrap:anywhere}
.fiscal-line{grid-template-columns:minmax(0,1fr) auto!important;gap:8px;align-items:end!important;padding:9px 0;min-width:0}
.fiscal-line>.fiscal-line-fields{display:grid!important;grid-template-columns:minmax(0,2fr) minmax(300px,1fr)!important;gap:12px;align-items:start!important;width:100%;min-width:0}
.fiscal-line-description,.fiscal-line-numbers>label,.fiscal-line-numbers>div{display:grid;grid-template-rows:13px 42px 14px;gap:4px;min-width:0;margin:0}
.fiscal-line-description textarea{width:100%;height:42px!important;min-height:42px!important;max-height:42px;padding:9px 10px;resize:none!important;overflow:hidden!important;line-height:22px;white-space:nowrap;text-overflow:ellipsis}
.fiscal-line-description>b,.fiscal-line-numbers-readonly b{height:42px;min-height:42px;padding:9px 10px;border:1px solid #dfe5ed;border-radius:8px;background:#f8fafc;line-height:22px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fiscal-line-description small{height:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fiscal-line-numbers{display:grid;grid-template-columns:minmax(58px,.7fr) minmax(78px,1fr) minmax(116px,1.35fr) minmax(62px,.8fr);gap:7px;align-items:start;min-width:0}
.fiscal-line-numbers input,.fiscal-line-numbers select{height:42px!important;min-height:42px;margin:0;padding:8px}
.fiscal-discount-input{display:grid;grid-template-columns:48px minmax(0,1fr);gap:5px;height:42px}
.fiscal-line-actions{align-self:end;margin-bottom:18px}
.fiscal-summary-card .economic-lines{display:block!important}
.fiscal-summary-card .economic-lines>div{display:grid!important;grid-template-columns:minmax(0,1fr) max-content!important;align-items:center;gap:12px;width:100%;padding:11px 0;border:0;border-bottom:1px solid #e0e6ee;border-radius:0;background:transparent}
.fiscal-summary-card .economic-lines>div:last-child{border-bottom:0}
.fiscal-summary-card .economic-lines .economic-total{margin:7px 0!important;padding:12px 10px!important;border:1px solid #efc4ca;border-radius:9px;background:#fff7f7}
.fiscal-summary-card .fiscal-discount-form{display:grid;grid-template-columns:1fr;gap:7px}
@media(max-width:1050px){#fiscalRentalData{grid-template-columns:1fr}.fiscal-line>.fiscal-line-fields{grid-template-columns:1fr!important}.fiscal-line-numbers{grid-template-columns:repeat(4,minmax(70px,1fr))}}
@media(max-width:680px){.fiscal-rental-vehicle,.fiscal-rental-period{grid-template-columns:1fr}.fiscal-line{grid-template-columns:1fr!important}.fiscal-line-numbers{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* 11.3.2.39 — restyling esclusivamente grafico del centro contabile. */
.page-card.fiscal-page{
  gap:9px;
  padding:12px 14px 14px;
  background:#fff;
}
.fiscal-page .page-heading{
  min-height:42px;
  padding:0 0 8px;
  border-bottom:1px solid #e7ebf1;
}
.fiscal-page .page-heading h1{
  font-size:20px;
  letter-spacing:-.02em;
}
.fiscal-page .page-heading p{
  color:#667286;
}
.fiscal-page .page-heading__actions button{
  min-height:34px;
  padding:6px 11px;
  border-color:#d9e0e9;
  background:#fff;
  box-shadow:0 1px 2px rgba(15,23,42,.04);
}
.fiscal-page .page-heading__actions button:hover{
  border-color:#c3ccd8;
  background:#f8fafc;
}
.fiscal-kpis{
  grid-template-columns:repeat(8,minmax(92px,1fr));
  gap:6px;
}
.fiscal-kpis button{
  position:relative;
  min-height:48px;
  padding:7px 10px 7px 12px;
  border:1px solid #e0e5ec;
  border-radius:9px;
  background:linear-gradient(180deg,#fff 0%,#fbfcfe 100%);
  box-shadow:none;
  transition:border-color .15s ease,background .15s ease,transform .15s ease;
}
.fiscal-kpis button::before{
  content:"";
  position:absolute;
  inset:8px auto 8px 0;
  width:2px;
  border-radius:2px;
  background:#d6dce5;
}
.fiscal-kpis button:hover,.fiscal-kpis button:focus-visible{
  border-color:#c7d0dc;
  background:#fff;
  box-shadow:0 3px 10px rgba(15,23,42,.06);
  transform:translateY(-1px);
}
.fiscal-kpis button:hover::before,.fiscal-kpis button:focus-visible::before{
  background:var(--brand);
}
.fiscal-kpis button span{
  color:#6b7688;
  font-size:10px;
  font-weight:700;
  letter-spacing:.015em;
}
.fiscal-kpis button b{
  color:#202938;
  font-size:15px;
  line-height:1.1;
}
.practice-tabs.fiscal-tabs{
  display:flex;
  align-items:center;
  gap:2px;
  min-height:38px;
  padding:3px;
  border:1px solid #e1e6ed;
  border-radius:10px;
  background:#f4f6f9;
  box-shadow:none;
}
.practice-tabs.fiscal-tabs button{
  min-height:30px;
  padding:6px 10px;
  border:0;
  border-radius:7px;
  background:transparent;
  color:#566276;
  font-size:11px;
  font-weight:700;
}
.practice-tabs.fiscal-tabs button:hover{
  background:rgba(255,255,255,.72);
  color:#202938;
}
.practice-tabs.fiscal-tabs button.active{
  background:#fff;
  color:var(--brand);
  box-shadow:0 1px 4px rgba(15,23,42,.09);
}
.fiscal-filters{
  grid-template-columns:minmax(240px,1.8fr) repeat(4,minmax(118px,1fr));
  gap:6px;
  padding:7px;
  border:1px solid #e2e7ee;
  border-radius:10px;
  background:#f7f9fc;
}
.fiscal-filters #fiscalSearch,.fiscal-filters input,.fiscal-filters select{
  height:31px;
  border-color:#d6dde7;
  border-radius:8px;
  background:#fff;
  font-size:12px;
}
.fiscal-filters #fiscalSearch:focus,.fiscal-filters input:focus,.fiscal-filters select:focus{
  border-color:#b7c2d0;
  box-shadow:0 0 0 2px rgba(178,15,39,.08);
}
.fiscal-admin-table{
  overflow:auto;
  border:1px solid #dfe5ed;
  border-radius:10px;
  background:#fff;
  box-shadow:0 2px 8px rgba(15,23,42,.035);
}
.fiscal-billable-head,.fiscal-billable-row{
  min-width:1410px;
  grid-template-columns:minmax(150px,1.3fr) 120px 105px 82px 142px 125px 86px 92px 92px 84px minmax(190px,1.08fr);
  gap:8px;
}
.fiscal-admin-head{
  background:#f4f6f9;
}
.fiscal-billable-head{
  position:sticky;
  top:0;
  z-index:2;
  padding:8px 11px;
  border-bottom:1px solid #dfe5ed;
  background:#f4f6f9;
  color:#637086;
  font-size:10px;
  letter-spacing:.025em;
}
.fiscal-billable-row{
  min-height:60px;
  padding:9px 11px;
  border-top:0;
  border-bottom:1px solid #e7ebf1;
  color:#273142;
  font-size:12px;
}
.fiscal-billable-row:last-child{
  border-bottom:0;
}
.fiscal-billable-row:hover{
  background:#fafbfd;
}
.fiscal-billable-row b,.fiscal-billable-row strong{
  line-height:1.18;
}
.fiscal-billable-row small{
  margin-top:1px;
  color:#68758a;
  font-size:10px;
}
.fiscal-billable-head>span:nth-child(n+7):nth-child(-n+10),
.fiscal-billable-row>*:nth-child(n+7):nth-child(-n+10){
  text-align:right;
}
.fiscal-row-actions{
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-start;
  gap:4px;
}
.fiscal-row-actions button{
  min-height:27px;
  padding:4px 7px;
  border-color:#d7dee8;
  border-radius:7px;
  background:#fff;
  font-size:10px;
  font-weight:700;
  white-space:nowrap;
}
.fiscal-row-actions button:hover{
  border-color:#bdc7d4;
  background:#f7f9fc;
}
.fiscal-row-actions button.primary{
  border-color:var(--shell-red,var(--red));
  background:var(--shell-red,var(--red));
  color:#fff;
}
.fiscal-row-actions button.primary:hover{
  filter:brightness(.96);
}
.fiscal-document-row{
  padding:10px 11px;
  font-size:12px;
}
#fiscalPagination{
  padding-top:4px;
  font-size:11px;
  color:#667286;
}
@media(max-width:1200px){
  .fiscal-kpis{grid-template-columns:repeat(4,minmax(110px,1fr))}
  .fiscal-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fiscal-filters #fiscalSearch{grid-column:span 2}
}
@media(max-width:760px){
  .page-card.fiscal-page{padding:9px}
  .fiscal-page .page-heading{align-items:flex-start}
  .fiscal-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .practice-tabs.fiscal-tabs{border-radius:8px}
  .fiscal-filters{grid-template-columns:1fr;padding:6px}
  .fiscal-filters #fiscalSearch{grid-column:auto}
}


/* 11.3.2.40 - filtri contabili collassabili e azioni leggibili */
.fiscal-filter-panel{
  overflow:hidden;
  border:1px solid #e2e7ee;
  border-radius:10px;
  background:#f7f9fc;
}
.fiscal-filter-panel>summary{
  min-height:38px;
  display:flex;
  align-items:center;
  gap:9px;
  padding:7px 10px;
  color:#344054;
  cursor:pointer;
  list-style:none;
  user-select:none;
}
.fiscal-filter-panel>summary::-webkit-details-marker{display:none}
.fiscal-filter-panel>summary:hover{background:#f2f5f9}
.fiscal-filter-panel>summary:focus-visible{
  outline:2px solid rgba(178,15,39,.22);
  outline-offset:-2px;
}
.fiscal-filter-panel>summary svg{
  width:17px;
  height:17px;
  flex:0 0 17px;
  fill:currentColor;
  color:#657186;
}
.fiscal-filter-panel>summary span{
  display:grid;
  gap:1px;
  min-width:0;
}
.fiscal-filter-panel>summary b{
  color:#273142;
  font-size:12px;
}
.fiscal-filter-panel>summary small{
  color:#6b7688;
  font-size:10px;
  font-weight:500;
}
.fiscal-filter-panel>summary em{
  margin-left:auto;
  color:#5f6c80;
  font-size:10px;
  font-style:normal;
  font-weight:750;
}
.fiscal-filter-panel>summary em::before{content:"Mostra"}
.fiscal-filter-panel[open]>summary em::before{content:"Nascondi"}
.fiscal-filter-panel[open]>.fiscal-filters{
  border:0;
  border-top:1px solid #e2e7ee;
  border-radius:0;
}
.fiscal-row-actions button:disabled,
.fiscal-row-actions button.primary:disabled{
  opacity:1;
  border-color:#d4dbe5;
  background:#eef1f5;
  color:#667085;
  cursor:not-allowed;
  filter:none;
}
@media(max-width:760px){
  .fiscal-filter-panel>summary{padding:7px 8px}
}


/* 11.3.2.42 — indicatori pagamento compatti nelle viste contabili. */
.accounting-payment-amount{
  display:inline-flex!important;
  align-items:center;
  justify-content:flex-end;
  gap:6px!important;
  white-space:nowrap;
}
.accounting-payment-dot{
  display:inline-block!important;
  width:9px;
  height:9px;
  min-width:9px;
  border:1px solid rgba(15,23,42,.12);
  border-radius:50%;
  box-shadow:0 0 0 2px #fff;
  vertical-align:middle;
}
.accounting-payment-dot.paid{background:#16a34a}
.accounting-payment-dot.unpaid{background:#dc2626}
.accounting-payment-dot.partial{background:#eab308}
.fiscal-document-row>.accounting-payment-dot{justify-self:center}
.booking-record-row .accounting-payment-dot{justify-self:start;margin-top:2px}

/* 11.3.2.52 — workspace movimento compatto e azioni raccolte. */
.booking-detail-toolbar{position:relative;z-index:80}
.booking-detail-actions{position:relative;z-index:81;overflow:visible}
.booking-action-menu{position:relative;margin:0}
.booking-detail-actions>.booking-toolbar-button{
 position:relative;z-index:2;pointer-events:auto
}
.booking-action-menu:not([open])>.booking-action-menu-popover{display:none!important}
.booking-action-menu[open]{z-index:10}
.booking-action-menu>summary{
 display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 13px;
 border:1px solid #cfd8e5;border-radius:9px;background:#fff;color:#273142;
 font-size:12px;font-weight:750;cursor:pointer;list-style:none;white-space:nowrap
}
.booking-action-menu>summary::-webkit-details-marker{display:none}
.booking-action-menu>summary:hover,.booking-action-menu[open]>summary{border-color:#b8c3d1;background:#f8fafc}
.booking-action-menu[open]>summary .toolbar-caret{transform:rotate(180deg)}
.booking-action-menu .toolbar-svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.booking-action-menu-popover{
 position:absolute;top:calc(100% + 7px);right:0;z-index:40;display:grid;min-width:250px;padding:6px;
 border:1px solid #dbe2eb;border-radius:11px;background:#fff;box-shadow:0 14px 34px rgba(15,23,42,.16)
}
.booking-action-menu-popover button{
 display:grid!important;gap:2px;width:100%;height:auto!important;min-height:0!important;padding:9px 10px!important;
 border:0!important;border-radius:8px!important;background:#fff!important;color:#273142!important;text-align:left
}
.booking-action-menu-popover button:hover{background:#f3f6fa!important}
.booking-action-menu-popover button>span{font-size:12px;font-weight:800}
.booking-action-menu-popover button>small{font-size:10px;font-weight:500;color:#687386}
.booking-action-menu-popover button.danger>span{color:#b42318}
.booking-action-menu.hidden{display:none}
.booking-tabs{padding:0 8px;border-radius:11px 11px 0 0}
.booking-tabs button{min-height:38px;padding:9px 10px;font-size:12px}
.booking-tab-panel{padding:12px;border-radius:0 0 11px 11px}
.booking-tab-panel>.panel-head{margin-bottom:9px}
.booking-tab-panel>.panel-head h3{font-size:14px;margin-bottom:2px}
.booking-tab-panel>.panel-head p{font-size:11px;line-height:1.35}
.booking-tab-panel .booking-record-list{gap:6px}
.booking-tab-panel .booking-record-row{min-height:48px;padding:9px 11px;border-radius:9px}
.booking-tab-panel .booking-record-row b{font-size:12px;line-height:1.25}
.booking-tab-panel .booking-record-row small{margin-top:2px;font-size:10px;line-height:1.3}
.booking-tab-panel .booking-fiscal-note{
 margin:9px 0 0;padding:8px 10px;border-radius:8px;background:#f6f8fb;
 color:#657187;font-size:11px;line-height:1.35
}
.booking-tab-panel .booking-timeline{gap:8px}
.booking-tab-panel .timeline-item{gap:9px;padding:5px 2px;min-width:0}
.booking-tab-panel .timeline-item i{flex:0 0 8px;width:8px;height:8px;margin-top:3px}
.booking-tab-panel .timeline-item>div{min-width:0}
.booking-tab-panel .timeline-item b{display:block;font-size:12px;line-height:1.25;color:#273142}
.booking-tab-panel .timeline-item span{display:block;margin-top:2px;font-size:10px;line-height:1.3;color:#65738a}
.booking-tab-panel .button-link{padding:6px 9px;border-radius:7px;font-size:11px}
.booking-tab-panel .record-actions,.booking-tab-panel .contract-panel-actions{gap:5px}
.booking-tab-panel .empty-state{padding:14px}
.booking-file-row>div{min-width:0}
.booking-file-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:900px){
 .booking-detail-actions{gap:6px}
 .booking-action-menu>summary{padding:0 10px}
 .booking-action-menu-popover{min-width:220px}
}

/* 11.3.2.52.2 — testata sempre nel flusso e modali sopra la barra azioni. */
.booking-detail-page>.booking-detail-toolbar{
 position:relative!important;
 top:auto!important;
 z-index:30;
 margin-bottom:14px;
}
.booking-detail-page>.booking-detail-header{
 position:relative;
 z-index:1;
 margin-top:0;
}
.modal:not(.embedded-module){z-index:1200}

/* 11.3.2.52.3 — azioni economiche sempre cliccabili; popover inattivi fuori dall'hit-area. */
#bookingDetailDeposit,#bookingDetailPayment{pointer-events:auto}

/* 11.3.2.57 - dotazioni condivise del modello */
.registry-list>.model-registry-item{display:flex;width:100%;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border:0;border-bottom:1px solid #edf1f5;border-radius:0;background:#fff;color:inherit;text-align:left}.registry-list>.model-registry-item:last-child{border-bottom:0}.registry-list>.model-registry-item:hover{background:#f8fafc}.registry-list>.model-registry-item small{max-width:70%;color:#64748b;text-align:right}

/* 11.3.2.60 - sezione anagrafica modelli veicolo */
.vehicle-models-panel{padding:18px}.vehicle-models-panel .panel-head{align-items:flex-start}.panel-eyebrow,.model-editor-title span{display:block;color:#64748b;font-size:11px;font-weight:800;letter-spacing:.08em}.vehicle-models-panel .panel-head h3{margin:2px 0 8px}.vehicle-models-layout{display:grid;grid-template-columns:minmax(360px,1.15fr) minmax(380px,.85fr);gap:18px}.vehicle-models-catalog,.vehicle-model-editor{border:1px solid #dbe2ec;border-radius:14px;background:#fff;padding:15px}.vehicle-models-catalog-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:12px}.vehicle-models-catalog-head label{flex:1;margin:0}.model-catalog-list{height:min(52vh,540px);margin:0}.registry-list>.model-registry-item{display:grid;grid-template-columns:minmax(150px,.8fr) minmax(220px,1.2fr) 18px;width:100%;align-items:center;gap:14px;padding:13px;border:0;border-bottom:1px solid #edf1f5;border-radius:0;background:#fff;color:inherit;text-align:left}.registry-list>.model-registry-item:hover{background:#f8fafc}.model-registry-item span{min-width:0}.model-registry-item b,.model-registry-item small{display:block}.model-registry-item small{margin-top:4px;color:#64748b;text-align:left}.model-equipment-summary{text-align:right;font-size:13px}.model-equipment-summary small{text-align:right}.model-editor-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.model-editor-title h4{margin:3px 0 0;font-size:19px}.model-form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.model-form-actions button{min-width:150px}@media(max-width:900px){.vehicle-models-layout{grid-template-columns:1fr}.model-catalog-list{height:340px}}@media(max-width:600px){.registry-list>.model-registry-item{grid-template-columns:1fr 18px}.model-equipment-summary{grid-column:1;text-align:left}.model-equipment-summary small{text-align:left}}

/* 11.3.2.61 - allineamento righe catalogo modelli */
.model-catalog-list.registry-list>.model-registry-item{grid-template-columns:minmax(190px,38%) minmax(260px,1fr) 18px;align-items:center;padding:14px 12px}
.model-catalog-list.registry-list>.model-registry-item>span:first-child,.model-catalog-list.registry-list>.model-registry-item>.model-equipment-summary{display:flex;min-width:0;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left}
.model-catalog-list.registry-list>.model-registry-item b,.model-catalog-list.registry-list>.model-registry-item small,.model-catalog-list.registry-list>.model-registry-item>.model-equipment-summary,.model-catalog-list.registry-list>.model-registry-item>.model-equipment-summary small{width:100%;margin:0;text-align:left}
.model-catalog-list.registry-list>.model-registry-item small{margin-top:5px}
.model-catalog-list.registry-list>.model-registry-item>.edit-chevron{justify-self:end;width:auto}
@media(max-width:700px){.model-catalog-list.registry-list>.model-registry-item{grid-template-columns:1fr 18px}.model-catalog-list.registry-list>.model-registry-item>.model-equipment-summary{grid-column:1;margin-top:7px}}

/* 11.3.2.62 - editor tipografico notifiche e anteprima reale */
.notification-format-toolbar{display:flex;align-items:center;gap:8px;padding:9px;border:1px solid #d5dce7;border-bottom:0;border-radius:10px 10px 0 0;background:#f8fafc}.notification-format-toolbar select{width:auto;min-width:120px;margin:0}.notification-format-toolbar button{width:38px;height:36px;padding:0}.notification-color-control{display:flex!important;flex-direction:row!important;align-items:center;gap:7px;margin:0!important;padding:0 8px;height:36px;border:1px solid #cfd8e5;border-radius:7px;background:#fff}.notification-color-control span{font-size:12px}.notification-color-control input{width:25px!important;height:25px!important;padding:1px;border:0}.notification-body-editor{min-height:190px;padding:12px;border:1px solid #cfd8e5;border-radius:0 0 10px 10px;background:#fff;color:#182230;font:14px/1.6 Arial,sans-serif;white-space:pre-wrap;outline:none}.notification-body-editor:focus{border-color:#2563eb;box-shadow:0 0 0 2px rgba(37,99,235,.12)}.notification-preview-head{align-items:flex-end!important;gap:16px}.notification-preview-controls{display:flex;align-items:center;gap:8px;min-width:min(560px,55%)}.notification-preview-controls select{min-width:0;flex:1;margin:0}.notification-preview-controls button{white-space:nowrap}@media(max-width:800px){.notification-preview-head{align-items:stretch!important;flex-direction:column}.notification-preview-controls{width:100%;min-width:0}.notification-format-toolbar{flex-wrap:wrap}}

.notification-summary-config{margin:10px 0 14px;padding:12px;border:1px solid #d7e0eb;border-radius:10px;background:#f8fafc}
.notification-summary-config .panel-head{margin-bottom:8px}
.notification-summary-config .panel-head small{display:block;margin-top:2px;color:#667085}
#notificationSummaryFields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.notification-summary-row{padding:8px 10px;min-height:42px}
.notification-summary-row>span{display:flex;gap:4px}
.notification-summary-row button{min-width:34px;padding:5px 8px}
@media(max-width:760px){#notificationSummaryFields{grid-template-columns:1fr}}

/* 11.3.2.70 — centro notifiche cliente contestuale */
#bookingCommunicationsModal .dialog{max-width:760px}.communications-list button{display:flex;align-items:center;justify-content:space-between;gap:18px;width:100%}.communications-list button>span:first-child{min-width:0}.communications-list button:disabled{cursor:not-allowed;opacity:1;background:#f4f6f8;border-color:#e2e8f0;color:#7b8798}.communications-list button:disabled:hover{background:#f4f6f8;border-color:#e2e8f0}.communications-list button .status-pill{flex:0 0 auto;white-space:nowrap}.communications-list+h3{margin-top:26px}


/* Selezione rapida del periodo sul planner desktop. */
.day-cell.planner-range-selected{position:relative;background:#dbeafe!important;box-shadow:inset 0 2px 0 #3b82f6,inset 0 -2px 0 #3b82f6}
.day-cell.planner-range-start{box-shadow:inset 2px 0 0 #2563eb,inset 0 2px 0 #3b82f6,inset 0 -2px 0 #3b82f6}
.day-cell.planner-range-end{box-shadow:inset -2px 0 0 #2563eb,inset 0 2px 0 #3b82f6,inset 0 -2px 0 #3b82f6}
.day-cell.planner-range-start.planner-range-end{box-shadow:inset 0 0 0 2px #2563eb}


/* Workspace commerciale preventivo/prenotazione. */
.booking-commercial-dialog{width:min(1120px,calc(100vw - 28px));padding:0;background:#f5f7fb}
.booking-commercial-head{position:sticky;top:0;z-index:5;height:auto;padding:20px 24px 16px;border-bottom:1px solid var(--line);background:#fff}
.booking-commercial-head span,.booking-commercial-step>header>span{color:#65738a;font-size:10px;font-weight:850;letter-spacing:.08em}
.booking-commercial-head h2{margin:3px 0 2px;font-size:25px}.booking-commercial-head p,.booking-commercial-step>header p{margin:0;color:var(--muted);font-size:12px}
#bookingForm{display:grid;gap:12px;padding:16px 20px 22px}
.booking-commercial-step{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:13px;background:#fff}
.booking-commercial-step>header{display:flex;align-items:flex-start;gap:10px}
.booking-commercial-step>header>span{display:grid;place-items:center;flex:0 0 25px;width:25px;height:25px;border-radius:50%;background:#eef4fb;color:#275b98}
.booking-commercial-step h3{margin:1px 0 3px;font-size:16px}.booking-commercial-step label{margin:0}
.booking-period-grid{display:grid;grid-template-columns:minmax(170px,1fr) minmax(190px,1fr) minmax(170px,1fr) minmax(190px,1fr);gap:10px}
.booking-category-toolbar{display:flex;align-items:end;justify-content:space-between;gap:16px}.booking-category-toolbar label{width:min(360px,100%)}#bookingCategoryOptionsStatus{padding-bottom:10px;color:#526174;font-size:12px;font-weight:750}
.booking-category-options{display:grid;gap:8px;transition:opacity .16s}.booking-category-options.loading{opacity:.55;pointer-events:none}
.booking-category-option{display:grid;grid-template-columns:64px minmax(180px,1fr) 125px 165px;align-items:center;gap:12px;width:100%;min-height:74px;padding:11px 13px;border:1px solid #d8e1ec;border-radius:11px;text-align:left;background:#fff}
.booking-category-option:hover{border-color:#8eb4e5;background:#f7fbff}.booking-category-option.selected{border-color:#2870db;background:#eef6ff;box-shadow:0 0 0 2px rgba(40,112,219,.12)}
.booking-category-option.unavailable{opacity:.58;background:#f7f8fa;cursor:not-allowed}.booking-category-code{display:grid;place-items:center;min-height:43px;border-radius:9px;background:#b90f2d;color:#fff;font-size:18px;font-weight:900}
.booking-category-copy,.booking-category-availability,.booking-category-price{display:grid;gap:3px}.booking-category-copy b{font-size:14px}.booking-category-option small{color:#65738a;font-size:10px}.booking-category-availability,.booking-category-price{text-align:right}.booking-category-availability b{color:#159447;font-size:20px}.booking-category-price b{font-size:16px}.booking-category-price small{line-height:1.35}.booking-category-price.has-adjustment b{color:#9a6700}
.booking-category-empty,.booking-future-placeholder{padding:16px;border:1px dashed #cbd5e1;border-radius:10px;background:#f8fafc;color:#64748b;text-align:center;font-size:12px}
#bookingSelectedCategorySummary{display:grid;gap:10px;padding-top:4px}.booking-future-step{background:#fbfcfe}.booking-commercial-actions{position:sticky;bottom:-1px;z-index:4;margin:0 -20px -22px;padding:12px 20px;border-top:1px solid var(--line);background:#fff}
@media(max-width:900px){.booking-period-grid{grid-template-columns:1fr 1fr}.booking-category-option{grid-template-columns:52px minmax(130px,1fr) 100px}.booking-category-price{grid-column:2/-1;text-align:left}.booking-category-toolbar{align-items:stretch;flex-direction:column}.booking-category-toolbar label{width:100%}#bookingCategoryOptionsStatus{padding:0}}
@media(max-width:560px){.booking-commercial-dialog{width:100%;height:100vh;max-height:100vh;border-radius:0}.booking-period-grid{grid-template-columns:1fr}.booking-category-option{grid-template-columns:48px 1fr}.booking-category-availability,.booking-category-price{grid-column:2;text-align:left}#bookingForm{padding-inline:10px}.booking-commercial-actions{margin-inline:-10px;padding-inline:10px}}

/* 11.3.2.84 — preventivo coerente con la scheda contratto. */
.practice-view #moduleHost{max-width:1720px;padding:0 18px 32px}
.practice-view .movement-workspace-toolbar{position:relative!important;top:auto!important;z-index:3;margin:0 0 12px;padding:0;background:transparent;backdrop-filter:none}
.practice-view .movement-draft-header{position:relative;z-index:1;min-height:110px;margin:0 0 12px;padding:20px 22px;overflow:visible;border-radius:14px;box-shadow:0 5px 18px rgba(15,23,42,.06)}
.practice-view .movement-draft-header .booking-detail-title-line h1{line-height:1.15}
.practice-view .movement-draft-cards{margin:0 0 12px;gap:12px}
.practice-view .movement-draft-cards article{min-height:72px;padding:14px 16px;border-radius:13px;box-shadow:0 3px 12px rgba(15,23,42,.035)}
.practice-view .movement-workspace-tabs{margin-bottom:16px;border-radius:13px 13px 0 0}
.practice-view .practice-workspace-layout{grid-template-columns:minmax(0,1fr) 320px;gap:18px}
.practice-view .practice-workspace-form.modal.embedded-module>.dialog{width:100%;max-width:none;min-height:auto;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:visible}
.practice-view .practice-workspace-form>.dialog>.x{display:none}
.practice-view .booking-commercial-head{position:relative;top:auto;z-index:1;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:18px;align-items:center;margin:0 0 14px;padding:20px 22px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 4px 16px rgba(15,23,42,.045)}
.practice-view .booking-commercial-head>span{grid-row:1/3;display:grid;place-items:center;min-width:112px;min-height:58px;padding:9px 12px;border-radius:11px;background:#f2f5f9;color:#526174}
.practice-view .booking-commercial-head h2{margin:0;font-size:24px;line-height:1.2}
.practice-view .booking-commercial-head p{margin-top:5px;font-size:13px;line-height:1.4}
.practice-view #bookingForm{gap:14px;padding:0}
.practice-view .booking-commercial-step{gap:14px;padding:0 18px 18px;border-radius:14px;box-shadow:0 3px 14px rgba(15,23,42,.035);overflow:hidden}
.practice-view .booking-commercial-step>header{align-items:center;gap:12px;margin:0 -18px;padding:14px 18px;border-bottom:1px solid #e7ebf1;background:#f8fafc}
.practice-view .booking-commercial-step>header>span{width:29px;height:29px;flex-basis:29px;background:#e7eef8;color:#1f5d9d;font-size:11px}
.practice-view .booking-commercial-step h3{margin:0 0 3px;font-size:15px}
.practice-view .booking-commercial-step>header p{font-size:11px;line-height:1.35}
.practice-view .booking-period-grid{gap:12px}
.practice-view .booking-period-grid label,.practice-view .booking-category-toolbar label{color:#526174;font-size:11px;font-weight:750}
.practice-view .booking-period-grid input,.practice-view .booking-period-grid select,.practice-view .booking-category-toolbar select{height:42px;margin-top:6px;border-radius:9px;background:#fff}
.practice-view .booking-category-toolbar{align-items:flex-end;padding:1px 0 2px}
.practice-view #bookingCategoryOptionsStatus{padding-bottom:10px}
.practice-view .booking-category-options{gap:10px}
.practice-view .booking-category-option{grid-template-columns:62px minmax(190px,1fr) 120px minmax(125px,155px) minmax(220px,285px);gap:14px;min-height:88px;padding:13px 15px;border-radius:12px;box-shadow:0 2px 7px rgba(15,23,42,.025)}
.practice-view .booking-category-option:hover{transform:translateY(-1px);box-shadow:0 7px 18px rgba(15,23,42,.07)}
.practice-view .booking-category-option.selected{box-shadow:0 0 0 2px rgba(40,112,219,.13),0 7px 18px rgba(15,23,42,.07)}
.practice-view .booking-category-code{min-height:48px;border-radius:10px;font-size:19px}
.practice-view .booking-category-copy b{font-size:15px}
.practice-view .booking-category-option small{font-size:11px;line-height:1.4}
.practice-view .booking-category-availability{padding-right:4px}
.practice-view .booking-category-availability b{font-size:21px}
.booking-category-upgrade{display:grid;justify-items:center;gap:3px;padding:8px 10px;border:1px solid #f0c36a;border-radius:9px;background:#fff8e8;color:#875600;text-align:center;white-space:nowrap}
.booking-category-upgrade small{color:#a26900!important;font-size:9px!important;font-weight:900;letter-spacing:.08em}.booking-category-upgrade b{font-size:12px}
.booking-category-upgrade.saving{border-color:#8fd2ad;background:#effbf4;color:#147647}.booking-category-upgrade.saving small{color:#147647!important}
.booking-category-upgrade.empty{visibility:hidden}
.practice-view .booking-category-price b{font-size:18px}
.practice-view .booking-category-price small{display:block;max-width:310px;margin-left:auto}
.practice-view #bookingSelectedCategorySummary{padding-top:7px;border-top:1px solid #edf1f5}
.practice-view #quoteBox{padding:12px 14px;line-height:1.55}
.practice-view #quoteBox strong{color:#172033}
.practice-view .practice-workspace-side{top:16px;gap:12px;padding-top:18px}
.practice-view .practice-workspace-side article{padding:17px;border-radius:14px;box-shadow:0 3px 14px rgba(15,23,42,.04)}
.practice-economic-kicker{display:block;margin-bottom:14px;color:#64748b;font-size:10px;font-weight:850;letter-spacing:.09em}
.practice-economic-total{padding-bottom:15px;border-bottom:1px solid #e8edf3}
.practice-economic-total>span,.practice-economic-total>small{display:block;color:#64748b;font-size:11px}
.practice-economic-total strong{display:block;margin:5px 0 6px;color:#172033;font-size:30px;line-height:1}
.practice-economic-lines{display:grid;margin-top:8px}
.practice-economic-lines>div{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid #edf1f5;font-size:12px}
.practice-economic-lines>div:last-child{border-bottom:0}
.practice-economic-lines span{color:#64748b}
.practice-economic-lines b{text-align:right}
.practice-economic-lines .calendar b{color:#9a6700}
.practice-economic-lines .discount b{color:#148653}
.practice-economic-notice{display:grid;gap:5px;margin-top:12px;padding:11px;border:1px solid #f2d28b;border-radius:10px;background:#fff9e8;color:#785700}
.practice-economic-notice b{font-size:12px}
.practice-economic-notice span{font-size:11px;line-height:1.45}
.practice-tariff-rule{border-left:3px solid #2870db!important;background:#f8fbff!important}
.practice-tariff-rule h3{font-size:13px!important}
.practice-tariff-rule p{font-size:11px!important}
@media(max-width:1180px){
 .practice-view .practice-workspace-layout{grid-template-columns:minmax(0,1fr) 285px}
 .practice-view .booking-category-option{grid-template-columns:58px minmax(160px,1fr) 105px minmax(110px,135px) minmax(190px,235px);gap:11px}
}
@media(max-width:1050px){
 .practice-view .practice-workspace-layout{grid-template-columns:1fr}
.practice-view .practice-workspace-side{position:static;grid-template-columns:minmax(0,1.25fr) minmax(240px,.75fr);order:-1;padding-top:0}
 .practice-view .practice-economic-card{grid-row:span 1}
}
@media(max-width:760px){
 .practice-view #moduleHost{padding-inline:10px}
 .practice-view .booking-commercial-head{grid-template-columns:1fr;gap:10px;padding:16px}
 .practice-view .booking-commercial-head>span{grid-row:auto;min-width:0;min-height:0;justify-self:start}
 .practice-view .booking-category-option{grid-template-columns:52px minmax(0,1fr) 150px}
 .practice-view .booking-category-upgrade{grid-column:2;grid-row:2;justify-self:start}
 .practice-view .booking-category-price{grid-column:3;grid-row:2;text-align:right}
 .practice-view .booking-category-price small{margin-left:0;max-width:none}
 .practice-view .practice-workspace-side{grid-template-columns:1fr}
}
@media(max-width:560px){
 .practice-view .movement-draft-header{padding:16px}
 .practice-view .booking-commercial-dialog{height:auto;max-height:none}
 .practice-view .booking-commercial-step{padding-inline:14px}
 .practice-view .booking-commercial-step>header{margin-inline:-14px;padding-inline:14px}
 .practice-view .booking-category-option{grid-template-columns:48px 1fr}
 .practice-view .booking-category-availability,.practice-view .booking-category-upgrade,.practice-view .booking-category-price{grid-column:2;text-align:left;justify-self:start}
 .practice-view .booking-category-upgrade{grid-row:auto}.practice-view .booking-category-price{grid-row:auto}
}

/* Commercial catalog · coverages, services and other products */
.commercial-catalog-section .config-section-body{padding:22px;background:linear-gradient(180deg,#f8fafc 0,#fff 165px)}
.commercial-catalog-head{margin-bottom:18px}
.commercial-catalog-head h3{margin-bottom:4px;font-size:20px}
.commercial-catalog-filters{display:grid;grid-template-columns:minmax(260px,1fr) 230px 170px;gap:12px;margin-bottom:14px;padding:14px;border:1px solid #dfe6ef;border-radius:13px;background:#fff;box-shadow:0 3px 12px rgba(15,23,42,.035)}
.commercial-catalog-filters label{margin:0;color:#526174;font-size:11px;font-weight:750}
.commercial-catalog-filters input,.commercial-catalog-filters select{height:40px;margin-top:6px;border-radius:9px;background:#fbfcfe}
.commercial-catalog-list{display:grid;gap:9px}
.commercial-catalog-empty{display:grid;justify-items:center;gap:5px;padding:34px 18px;border:1px dashed #cbd6e3;border-radius:12px;background:#fbfcfe;color:#64748b;text-align:center}
.commercial-catalog-empty b{color:#26364a;font-size:13px}.commercial-catalog-empty span{font-size:11px}.commercial-catalog-empty.error{border-color:#e8b8bf;background:#fff7f8}.commercial-catalog-empty.error b{color:#a42134}.commercial-catalog-empty button{margin-top:7px}
.commercial-catalog-card{display:grid;grid-template-columns:155px minmax(250px,1fr) minmax(185px,230px) auto 22px;align-items:center;gap:16px;width:100%;min-height:82px;padding:14px 16px;border:1px solid #dce4ed;border-radius:12px;background:#fff;color:#172033;text-align:left;box-shadow:0 2px 8px rgba(15,23,42,.03);transition:border-color .15s,box-shadow .15s,transform .15s}
.commercial-catalog-card:hover{border-color:#a9bfdc;box-shadow:0 7px 18px rgba(15,23,42,.075);transform:translateY(-1px)}
.commercial-catalog-type{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:7px 10px;border-radius:9px;background:#eef4fb;color:#27639f;font-size:11px;font-weight:850;text-align:center}
.commercial-catalog-type.insurance{background:#eaf7f0;color:#18784c}
.commercial-catalog-type.service{background:#edf4ff;color:#245fa8}
.commercial-catalog-type.other{background:#f3effb;color:#6e47a1}
.commercial-catalog-copy{display:grid;gap:3px;min-width:0}
.commercial-catalog-copy b{font-size:14px}
.commercial-catalog-copy small,.commercial-catalog-copy em{overflow:hidden;color:#66758a;font-size:11px;font-style:normal;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}
.commercial-catalog-copy em{color:#8a96a8}
.commercial-catalog-price{display:grid;gap:4px;text-align:right}
.commercial-catalog-price b{color:#172033;font-size:13px}
.commercial-catalog-price small{color:#6b788b;font-size:10px}
.commercial-catalog-card .edit-chevron{color:#8fa0b5;font-size:24px;line-height:1}
.commercial-catalog-editor{margin-top:18px;padding:0 20px 20px;border:1px solid #d8e1ec;border-radius:15px;background:#fff;box-shadow:0 10px 30px rgba(15,23,42,.075);overflow:hidden}
.commercial-editor-title{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 -20px 20px;padding:18px 20px;border-bottom:1px solid #e1e7ee;background:#f7f9fc}
.commercial-editor-title>div{display:grid;gap:3px}
.commercial-editor-title span:first-child{color:#718096;font-size:9px;font-weight:900;letter-spacing:.1em}
.commercial-editor-title h3{margin:0;font-size:19px}
.commercial-catalog-editor>.form-section-title,.commercial-insurance-fields .form-section-title{margin:19px 0 11px;padding-bottom:8px;border-bottom:1px solid #e7ebf1;color:#26364a;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}
.commercial-catalog-editor>label{display:block;margin-top:12px}
.commercial-active-check{min-height:42px;margin-top:19px!important;padding:10px 12px;border:1px solid #dce4ed;border-radius:9px;background:#f8fafc}
.commercial-insurance-fields{margin-top:15px;padding:1px 15px 15px;border:1px solid #cfe5d9;border-radius:12px;background:#f4fbf7}
.commercial-exclusions-field{margin-top:15px;padding:1px 15px 15px;border:1px solid #d8e2ee;border-radius:12px;background:#f8fafc}
.commercial-exclusions-field>.form-section-title{margin-bottom:5px}.commercial-exclusions-field>p{margin:0 0 11px;color:#607086;font-size:11px;line-height:1.45}
.commercial-exclusion-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.commercial-exclusion-options>label{display:flex;align-items:center;gap:9px;margin:0;padding:10px 11px;border:1px solid #dce4ed;border-radius:9px;background:#fff;cursor:pointer}
.commercial-exclusion-options input{width:17px;height:17px;margin:0}.commercial-exclusion-options span{display:grid;gap:2px}.commercial-exclusion-options b{font-size:11px}.commercial-exclusion-options small{color:#758397;font-size:9px}
.commercial-rules-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:22px 0 12px}
.commercial-rules-head .form-section-title{margin:0 0 5px;color:#26364a;font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.045em}
.commercial-rules-head p{margin:0;color:#6b788b;font-size:11px}
.commercial-rules-list{display:grid;gap:12px}
.commercial-rule-card{border:1px solid #dce4ed;border-radius:12px;background:#fbfcfe;overflow:hidden}
.commercial-rule-card>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 14px;border-bottom:1px solid #e3e8ef;background:#f2f6fa}
.commercial-rule-card>header>div{display:flex;align-items:center;gap:10px}
.commercial-rule-card>header span{color:#68809b;font-size:9px;font-weight:900;letter-spacing:.09em}
.commercial-rule-card>header b{font-size:12px}
.commercial-rule-card>header .danger{width:28px;height:28px;padding:0;border-radius:8px;font-size:18px;line-height:1}
.commercial-rule-card>.grid4,.commercial-rule-card>.grid3{padding:13px 14px 0}
.commercial-rule-card>.commercial-rule-footer{padding-bottom:14px}
.commercial-rule-card label{color:#526174;font-size:10px;font-weight:750}
.commercial-rule-card input,.commercial-rule-card select{height:39px;margin-top:5px;border-radius:8px;background:#fff}
.commercial-rule-card .check-label{align-self:end;min-height:39px;padding:9px 11px;border:1px solid #dce4ed;border-radius:8px;background:#fff}
.commercial-catalog-editor .config-form-feedback{min-height:18px;margin-top:12px;color:#2870db;font-size:12px}
.commercial-catalog-editor .config-form-feedback.error{color:#b42336}
.commercial-catalog-editor>.actions{margin-top:6px;padding-top:16px;border-top:1px solid #e5eaf0}
.config-field-help{display:block;margin-top:5px;color:#7a8798;font-size:9px;font-weight:500;line-height:1.35;text-transform:none;letter-spacing:0}
.commercial-active-check,.commercial-rule-card .check-label{flex-wrap:wrap}
.commercial-active-check .config-field-help,.commercial-rule-card .check-label .config-field-help{flex-basis:100%;padding-left:24px}
.practice-view .booking-period-step>header h3{font-size:17px}
.practice-view .booking-period-step>header p{font-size:12px}
.practice-view .booking-period-step .booking-period-grid label{font-size:12px}
.practice-view .booking-period-step .booking-period-grid input,.practice-view .booking-period-step .booking-period-grid select{font-size:13px}
.booking-commercial-options{display:grid;grid-template-columns:repeat(auto-fill,minmax(185px,1fr));grid-auto-rows:1fr;align-items:stretch;gap:10px}
.booking-commercial-option{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%;min-height:190px;border:1px solid #dbe3ed;border-radius:12px;background:#f8fafc;box-shadow:0 2px 7px rgba(15,23,42,.025);overflow:hidden;transition:border-color .15s,box-shadow .15s,background .15s,transform .15s}
.booking-commercial-option:hover{border-color:#87b5a0;box-shadow:0 7px 17px rgba(15,23,42,.075);transform:translateY(-1px)}
.booking-commercial-option.selected,.booking-commercial-option.required.selected{border-color:#28b978;background:#ecfbf3;box-shadow:0 0 0 2px rgba(40,185,120,.1)}
.booking-commercial-option.required:not(.selected){border-color:#8dc8a9;background:#f4fbf7;box-shadow:0 0 0 2px rgba(24,134,83,.08)}
.booking-commercial-option.replaced{border-color:#d8e0ea;background:#f8fafc;box-shadow:none;opacity:.78}
.booking-commercial-option.replaced .booking-commercial-check{border-style:dashed;background:#fff}
.booking-commercial-option>label:first-child{display:flex;flex-direction:column;align-items:center;gap:7px;height:100%;margin:0;padding:15px 13px 12px;text-align:center;cursor:pointer}
.booking-commercial-option input[type=checkbox]{position:absolute;opacity:0;pointer-events:none}
.booking-commercial-check{position:absolute;right:9px;top:9px;display:grid;place-items:center;width:20px;height:20px;border:1.5px solid #aab7c7;border-radius:50%;background:#fff}
.booking-commercial-option.selected .booking-commercial-check{border-color:#1ca466;background:#1ca466}
.booking-commercial-option.selected .booking-commercial-check:after{content:'✓';color:#fff;font-size:13px;font-weight:900}
.booking-commercial-option.required .booking-commercial-check{border-color:#188653;background:#188653}
.booking-commercial-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:#fff;color:#172033;font-size:23px;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}
.booking-commercial-icon img,.practice-coverage-icon img,.contract-commercial-icon img{display:block;width:30px;height:30px;object-fit:contain}
.booking-commercial-option.selected .booking-commercial-icon{background:#fff;color:#148653}
.booking-commercial-copy{display:grid;justify-items:center;gap:5px;min-width:0;width:100%}
.booking-commercial-copy b{color:#172033;font-size:14px}
.booking-commercial-copy small{color:#5f6f82;font-size:12px;line-height:1.4}
.booking-commercial-copy em{color:#758397;font-size:10px;font-style:normal;font-weight:700}
.booking-commercial-unit-price{font-size:13px!important;color:#526174!important}
.booking-commercial-insurance-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 8px;color:#64748b;font-size:10px;line-height:1.35}
.booking-commercial-insurance-meta span{white-space:nowrap}.booking-commercial-insurance-meta b{margin-right:3px;color:#526174;font-size:10px}
.booking-commercial-quantity{display:flex;align-items:center;justify-content:center;gap:9px;margin:0;padding:9px 12px;border-top:1px solid #ccecdc;color:#536277;font-size:11px;font-weight:750}
.booking-commercial-quantity input{width:78px;height:34px;margin:0;text-align:center}
.commercial-icon-select{font-size:14px}.commercial-icon-select option{font-size:14px}
.commercial-icon-picker{position:relative;margin-top:6px}.commercial-icon-current{display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:9px;width:100%;height:42px;padding:4px 10px;text-align:left}.commercial-icon-current #commercialIconPreview{display:grid;place-items:center}.commercial-icon-current img{width:30px;height:30px;object-fit:contain}.commercial-icon-grid{position:absolute;z-index:20;top:47px;right:0;display:none;grid-template-columns:repeat(4,minmax(86px,1fr));gap:7px;width:min(560px,80vw);max-height:380px;padding:10px;border:1px solid #d7e0eb;border-radius:12px;background:#fff;box-shadow:0 16px 36px rgba(15,23,42,.18);overflow:auto}.commercial-icon-picker.open .commercial-icon-grid{display:grid}.commercial-icon-grid button{display:grid;justify-items:center;gap:5px;min-height:88px;padding:8px;border:1px solid #e1e7ef;background:#f8fafc}.commercial-icon-grid button.selected{border-color:#2870db;background:#edf5ff;box-shadow:0 0 0 2px rgba(40,112,219,.12)}.commercial-icon-grid img{width:46px;height:46px;object-fit:contain}.commercial-icon-grid span{font-size:9px;line-height:1.2;text-align:center}
.contract-commercial-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px}.contract-commercial-card{display:grid;grid-template-columns:48px minmax(0,1fr);align-items:start;gap:12px;padding:15px;border:1px solid #dce4ed;border-radius:12px;background:#fff}.contract-commercial-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:11px;background:#f1f6fb}.contract-commercial-icon img{width:40px;height:40px}.contract-commercial-card>div{display:grid;gap:4px}.contract-commercial-card small{color:#6a788c;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.contract-commercial-card b{font-size:14px}.contract-commercial-card>div>span{color:#245fa8;font-size:12px;font-weight:800}.contract-commercial-meta{display:flex!important;flex-wrap:wrap;gap:5px 9px;margin-top:5px}.contract-commercial-meta span{color:#64748b!important;font-size:10px!important;font-weight:500!important}.contract-commercial-meta b{font-size:10px}.contract-commercial-dialog{width:min(1060px,calc(100vw - 28px));max-height:90vh;overflow:auto}.contract-commercial-dialog>.booking-commercial-options{margin:18px 0}.contract-commercial-dialog>.actions{position:sticky;bottom:0;margin:0 -20px -20px;padding:14px 20px;background:#fff;border-top:1px solid #e2e8f0}
.practice-economic-lines .product b{color:#245fa8}
.practice-view .booking-commercial-step>header{cursor:pointer;user-select:none}
.practice-view .booking-commercial-step>header:focus-visible{outline:2px solid #2870db;outline-offset:-2px}
.booking-step-selection{margin-left:auto;max-width:46%;overflow:hidden;color:#245fa8!important;font-size:11px!important;font-weight:750;text-align:right;text-overflow:ellipsis;white-space:nowrap}
.booking-step-toggle{margin-left:4px;color:#64748b;font-size:18px;line-height:1;transition:transform .15s}
.booking-commercial-step.collapsed{padding-bottom:0!important}
.booking-commercial-step.collapsed>:not(header){display:none!important}
.booking-commercial-step.collapsed .booking-step-toggle{transform:rotate(-90deg)}
.practice-coverage-summary{border-left:3px solid #28a66a!important}
.practice-coverage-summary>h3{font-size:14px!important}.practice-coverage-summary>p{font-size:11px!important}
.practice-coverage-item{display:grid;gap:10px;padding:11px 0;border-top:1px solid #e7edf3}
.practice-coverage-item:first-of-type{border-top:0;padding-top:0}
.practice-coverage-item>div{display:flex;align-items:center;gap:8px}.practice-coverage-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;background:#eaf8f1;font-size:18px}
.practice-coverage-item>p{margin:0!important;color:#526174!important;font-size:11px!important;line-height:1.5!important}
.practice-coverage-item dl{display:grid;gap:0;margin:0}.practice-coverage-item dl>div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-top:1px dashed #e2e8f0;font-size:11px}.practice-coverage-item dl>div:first-child{border-top:0}
.practice-coverage-item dt{color:#64748b}.practice-coverage-item dd{margin:0;color:#172033;font-weight:800;text-align:right}.practice-coverage-item dl>.deposit dd{color:#a54b00}.practice-coverage-item>small{color:#64748b;font-size:10px;line-height:1.4}
.commercial-coverage-fields{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.commercial-effects-title{margin-top:18px}.commercial-effects-help{margin:5px 0 10px;color:#64748b;font-size:11px}.commercial-coverage-effects{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.commercial-coverage-effects label{display:flex;align-items:center;gap:8px;min-height:40px;padding:8px 10px;border:1px solid #dce4ed;border-radius:9px;background:#f8fafc;color:#334155;font-size:11px;font-weight:750}.commercial-coverage-effects input{width:16px;height:16px;margin:0}
.practice-view .practice-workspace-side article{width:100%;box-sizing:border-box}
.practice-coverage-item dl>div{align-items:center}.practice-coverage-item dt{flex:1;min-width:0}.practice-coverage-item dd{min-width:82px;font-variant-numeric:tabular-nums}
.booking-detail-side .booking-coverage-side-card{min-height:0;margin-top:12px;padding:16px}.booking-detail-side .booking-coverage-side-card .practice-economic-kicker{display:block;margin-bottom:13px}.booking-detail-side .booking-coverage-side-card .practice-coverage-icon img{width:24px;height:24px;object-fit:contain}
.booking-detail-side{align-self:start!important}
.booking-detail-side .booking-section-card{min-height:0!important}
.booking-detail-side .economic-lines{min-height:0!important}
@media(max-width:1180px){.commercial-coverage-fields,.commercial-coverage-effects{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.commercial-coverage-fields,.commercial-coverage-effects{grid-template-columns:1fr}}
@media(max-width:1100px){
 .commercial-catalog-card{grid-template-columns:135px minmax(220px,1fr) minmax(170px,210px) auto 18px;gap:11px}
 .commercial-catalog-editor .grid4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
 .commercial-catalog-section .config-section-body{padding:14px}
 .commercial-catalog-filters{grid-template-columns:1fr}
 .commercial-catalog-card{grid-template-columns:1fr auto;padding:13px}
 .commercial-catalog-type{justify-self:start}
 .commercial-catalog-copy{grid-column:1/-1;grid-row:2}
 .commercial-catalog-price{grid-column:1;grid-row:3;text-align:left}
 .commercial-catalog-card .status-pill{grid-column:2;grid-row:1}
 .commercial-catalog-card .edit-chevron{grid-column:2;grid-row:3}
 .commercial-catalog-editor .grid4,.commercial-catalog-editor .grid3{grid-template-columns:1fr}
 .commercial-exclusion-options{grid-template-columns:1fr}
 .commercial-rules-head{align-items:stretch;flex-direction:column}
 .commercial-rules-head button{align-self:flex-start}
 .booking-commercial-options{grid-template-columns:repeat(2,minmax(0,1fr))}
 .booking-step-selection{max-width:38%}
}
@media(max-width:520px){.booking-commercial-options{grid-template-columns:1fr}.booking-step-selection{display:none}}

/* Lettura documenti OpenAI e download degli originali. */
#downloadAllCustomerDocuments{white-space:nowrap}
#downloadAllCustomerDocuments:disabled{opacity:.55;cursor:not-allowed}
.customer-ocr-row small{overflow-wrap:anywhere}
.customer-ocr-success{padding:12px 13px;border:1px solid #a9e7c4;border-radius:10px;background:#f1fbf6;color:#067647;font-size:12px}.customer-ocr-field-missing input,.customer-ocr-field-missing select,.customer-ocr-field-missing textarea,input.customer-ocr-field-missing,select.customer-ocr-field-missing,textarea.customer-ocr-field-missing{border-color:#d92d45!important;background:#fff5f6!important;box-shadow:0 0 0 2px rgba(217,45,69,.1)}label.customer-ocr-field-missing{color:#b20f27!important}label.customer-ocr-field-missing:after{content:'Non riconosciuto';display:block;margin-top:4px;color:#b20f27;font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}
@media(max-width:680px){.customer-tab[data-tab-panel="files"]>.panel-head{display:grid}.customer-tab[data-tab-panel="files"]>.panel-head>button{width:100%}.doc-actions{flex-wrap:wrap}}

/* Situazione contabile OpenAI nella configurazione. */
.openai-usage-status{display:grid;gap:14px}.openai-connection{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 16px;border:1px solid #dbe4ee;border-radius:12px;background:#f8fafc}.openai-connection>div{display:flex;align-items:center;gap:10px}.openai-connection>small{color:#64748b}.openai-usage-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.openai-usage-grid article{display:grid;gap:5px;padding:14px;border:1px solid #dbe4ee;border-radius:12px;background:#fff}.openai-usage-grid small{color:#64748b;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.openai-usage-grid b{color:#172033;font-size:22px;font-variant-numeric:tabular-nums}.openai-usage-grid span,.openai-usage-rates,.openai-last-call span,.openai-last-call small{color:#64748b;font-size:11px}.openai-usage-rates{padding:10px 12px;border-radius:9px;background:#f4f7fa}.openai-last-call{display:grid;gap:4px;padding:12px 14px;border-left:4px solid #23a66b;border-radius:8px;background:#f1fbf6}.openai-last-call.error{border-left-color:#c6293e;background:#fff2f4}.openai-last-call.error small{color:#a0122a;overflow-wrap:anywhere}
@media(max-width:900px){.openai-usage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.openai-connection{align-items:flex-start;flex-direction:column}.openai-usage-grid{grid-template-columns:1fr}}

/* Estensione economica dei contratti in corso. */
.booking-extension-button{border-color:#8db7a3!important;background:#eefaf4!important;color:#11643f!important}.booking-extension-dialog{width:min(760px,calc(100vw - 28px));max-height:90vh;overflow:auto}.booking-extension-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:0 28px 18px 0}.booking-extension-head span{color:#b20f27;font-size:10px;font-weight:900;letter-spacing:.08em}.booking-extension-head h2{margin:4px 0 0}.booking-extension-head>b{padding:8px 10px;border-radius:8px;background:#f1f5f9;color:#334155;font-size:12px}.booking-extension-dates{display:grid;grid-template-columns:1fr 1fr;gap:12px}.booking-extension-rule{margin:10px 0 16px;padding:10px 12px;border-left:3px solid #2870db;border-radius:7px;background:#eef5ff;color:#40536c;font-size:11px;line-height:1.5}.booking-extension-analysis{display:grid;gap:10px;margin-top:14px}.booking-extension-availability{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:9px}.booking-extension-availability.available{border:1px solid #9ed5ba;background:#effbf5;color:#12643f}.booking-extension-availability.blocked{border:1px solid #efb4bf;background:#fff2f4;color:#a0122a}.booking-extension-availability span{font-size:11px}.booking-extension-errors{display:grid;gap:5px;padding:10px 12px;border-radius:8px;background:#fff2f4;color:#a0122a;font-size:11px}.booking-extension-conflicts{margin:0;padding:10px 12px 10px 30px;border:1px solid #f0c8cf;border-radius:8px;color:#7e2634;font-size:11px}.booking-extension-price{display:grid;border:1px solid #dce4ed;border-radius:10px;background:#fff;overflow:hidden}.booking-extension-price>div{display:flex;justify-content:space-between;gap:18px;padding:9px 12px;border-top:1px solid #edf1f5;font-size:12px}.booking-extension-price>div:first-child{border-top:0}.booking-extension-price>div.total{background:#f3f8fc;font-size:13px}.booking-extension-applied-price{display:grid!important;grid-template-columns:1fr minmax(120px,160px);align-items:center;gap:3px 18px;padding:10px 12px;border-top:1px solid #dce4ed;background:#f9fbfd}.booking-extension-applied-price input{grid-column:2;grid-row:1 / span 2;text-align:right;font-size:15px;font-weight:800}.booking-extension-applied-price small{color:#64748b;font-size:10px}.booking-extension-tier{color:#64748b;font-size:10px;line-height:1.45}.booking-extension-dialog .form-feedback{min-height:18px}
@media(max-width:620px){.booking-extension-head,.booking-extension-availability{align-items:flex-start;flex-direction:column}.booking-extension-dates{grid-template-columns:1fr}}
.booking-extension-availability small{color:inherit;font-size:10px;font-weight:750}

/* Anteprime immediate dei documenti acquisiti. */
.customer-document-thumb{display:block;width:52px;height:42px;border-radius:9px;overflow:hidden;border:1px solid #d8dee8;background:#101828}.customer-document-thumb img{display:block;width:100%;height:100%;object-fit:cover}@media(max-width:900px){.customer-document-thumb{width:42px}}


/* Riferimenti uniformi ai contratti: numero movimento visibile, ID solo tecnico. */
.booking-reference-link{appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:0;margin:0;color:#bd1025;font:inherit;font-weight:800;line-height:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;cursor:pointer;vertical-align:baseline}
.booking-reference-link:hover{color:#8f0b1b;text-decoration-thickness:2px}
.booking-reference-link:focus-visible{outline:2px solid rgba(189,16,37,.3);outline-offset:3px;border-radius:3px}
.booking-reference-missing{color:#687386;font-weight:600}

/* Incident workflow: compact toolbar and editable damage rows */
.incident-detail-toolbar .toolbar-icon{width:18px;height:18px;display:inline-flex;flex:0 0 18px}
.incident-damage-card .section-card-head{align-items:center}.incident-damage-card .section-card-head small{display:block;color:var(--muted);margin-top:3px}
.incident-items-edit-dialog{width:min(1040px,calc(100vw - 32px));max-width:1040px}.incident-editor-rows{display:grid;gap:8px;margin:16px 0}.incident-editor-row{display:grid;grid-template-columns:minmax(280px,1fr) 90px 130px 90px 42px;gap:8px;align-items:center}.incident-editor-row input{min-width:0}.incident-editor-row button{height:42px}.incident-editor-totals{display:grid;grid-template-columns:repeat(2,minmax(0,220px));justify-content:end;gap:12px;margin:16px 0}.incident-editor-totals label{font-size:12px;font-weight:700;color:var(--muted)}.incident-editor-totals input{margin-top:5px}
@media(max-width:760px){.incident-editor-row{grid-template-columns:1fr 72px 100px 72px 38px}.incident-editor-totals{grid-template-columns:1fr}}


/* Dashboard planner: identità veicolo e gruppi categoria */
.app-page[data-page-view="dashboard"].active .planner{--row:38px}
.app-page[data-page-view="dashboard"].active .vehicle-col{width:270px;flex-basis:270px}
.app-page[data-page-view="dashboard"].active .vehicle-head{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:10px;padding:8px 12px;font-size:11px;font-weight:800;color:#526174;text-transform:uppercase;letter-spacing:.035em}
.app-page[data-page-view="dashboard"].active .vehicle-head>span:last-child{display:grid;gap:1px}
.app-page[data-page-view="dashboard"].active .vehicle-head small{font-size:8px;font-weight:700;color:#8a94a5;letter-spacing:.045em}
.planner-vehicle-row{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:center;gap:9px;padding:0 12px;line-height:1.05;cursor:pointer}
.planner-vehicle-plate{font-size:12px;font-weight:850;color:#1456b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planner-vehicle-model{display:block;min-width:0}
.planner-vehicle-model b,.planner-vehicle-model small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.planner-vehicle-model b{font-size:10px;color:#303b4c}
.planner-vehicle-model small{margin-top:2px;font-size:8px;font-weight:650;color:#7a8699}
.planner-vehicle-row.category-tone-1,.planner-category-row.category-tone-1{background:#f8fafc}
.planner-vehicle-row.category-start{border-top:2px solid #b9c4d2}
.planner-category-row.category-start .day-cell{border-top:2px solid #b9c4d2}
@media(max-width:700px){.app-page[data-page-view="dashboard"].active .vehicle-col{width:235px;flex-basis:235px}.app-page[data-page-view="dashboard"].active .vehicle-head,.planner-vehicle-row{grid-template-columns:72px minmax(0,1fr);gap:8px;padding-inline:10px}}

/* v11.17.1 - densita desktop uniforme per shell e dashboard */
@media (min-width:901px){
 :root{--sidebar-width:64px;--topbar-height:54px;--planner-day-min-width:31px}
 .app-shell{grid-template-columns:64px minmax(0,1fr)}
 .app-sidebar{width:64px}
 .sidebar-logo{height:54px}.sidebar-logo img{width:40px;height:26px}
 .sidebar-nav{padding:7px 6px;gap:3px}
 .sidebar-item{width:48px;height:40px;min-width:48px;min-height:40px;border-radius:9px}
 .sidebar-item svg,.topbar-action svg{width:19px;height:19px}
 .sidebar-item.active:before{left:-6px;height:23px}
 .app-topbar{height:54px;padding:0 10px 0 14px;gap:14px}
 .topbar-branch{gap:8px}.topbar-branch strong{font-size:14px}.topbar-branch span{font-size:12px;padding-left:8px}
 .global-search>svg{left:12px;width:17px;height:17px}
 .global-search input{height:36px;border-radius:10px;padding:0 38px;font-size:13px}
 .topbar-actions{gap:6px}.topbar-action{width:36px!important;height:36px!important;min-width:36px!important;min-height:36px!important;border-radius:9px!important}
 .page-area{padding:12px}
 .kpis{gap:8px}
 .dashboard-v2-card{min-height:140px;border-radius:12px}
 .dashboard-v2-card>header{gap:7px;padding:8px 9px 5px}
 .dashboard-v2-card h2{font-size:11px}.dashboard-v2-card>header small{font-size:8px}
 .dashboard-v2-icon{flex-basis:32px;width:32px;height:32px;border-radius:9px}
 .dashboard-v2-icon svg{width:18px;height:18px}
 .dashboard-v2-info{flex-basis:17px;width:17px;height:17px;font-size:9px!important}
 .dashboard-v2-values{padding:3px 7px 6px}.dashboard-v2-metric{padding:3px 2px}
 .dashboard-v2-metric>span{min-height:17px;font-size:8px!important}.dashboard-v2-metric>strong{font-size:18px}.dashboard-v2-metric>small{margin-top:3px;font-size:8px}
 .dashboard-v2-metric.movement>strong,.dashboard-movement-count strong{font-size:19px}
 .dashboard-v2-occupancy{margin:0 9px;padding:3px 0}.dashboard-v2-occupancy>strong{font-size:21px}.dashboard-v2-occupancy .kpi-progress{height:5px;margin-top:6px}.dashboard-v2-occupancy>small{margin-top:5px;font-size:8px}
 .dashboard-v2-card>footer{gap:6px;padding:6px 8px;font-size:9px}
 .dashboard-movements-card>header nav button{width:23px;height:23px;font-size:15px}
 .dashboard-toolbar{gap:12px}
 .dashboard-toolbar .toolbar-nav{gap:5px}.dashboard-toolbar .toolbar-nav button,.dashboard-toolbar .toolbar-controls>button{height:32px;padding:0 10px;font-size:12px}
 .dashboard-toolbar .toolbar-period{font-size:14px}.dashboard-toolbar .toolbar-controls{gap:12px}
 .toolbar-category{gap:7px;font-size:11px}.toolbar-category select{min-width:190px;height:32px;border-radius:8px;font-size:12px}
 .dashboard-toolbar .legend{gap:10px;font-size:10px}.planner-transfer-toggle{font-size:10px}
 .app-page[data-page-view="dashboard"].active .planner{--row:34px}
 .app-page[data-page-view="dashboard"].active .vehicle-col{width:245px;flex-basis:245px}
 .app-page[data-page-view="dashboard"].active .vehicle-head{height:40px;grid-template-columns:72px minmax(0,1fr);gap:8px;padding:6px 10px;font-size:10px}
 .app-page[data-page-view="dashboard"].active .vehicle-head small{font-size:7px}
 .planner-vehicle-row{grid-template-columns:72px minmax(0,1fr);gap:8px;padding:0 10px}
 .planner-vehicle-plate{font-size:11px}.planner-vehicle-model b{font-size:9px}.planner-vehicle-model small{margin-top:1px;font-size:7px}
 .calendar-head{height:40px}.day-head{padding-top:3px;font-size:9px}.day-head b{font-size:11px}.day-head small{font-size:8px}
 .booking-bar,.unavailability-bar{top:3px;height:calc(100% - 6px);padding:0 8px;border-radius:12px;font-size:10px}
}


/* Compact fleet rows v11.3.2.115 */
.fleet-vehicle-list{margin-top:10px}.fleet-vehicle-item{min-height:44px;padding:7px 12px;grid-template-columns:minmax(145px,.65fr) minmax(320px,1.45fr) minmax(360px,1.55fr) 18px;gap:12px}.fleet-vehicle-item>span:not(.edit-chevron){display:flex;align-items:center;gap:8px;min-width:0;white-space:nowrap;overflow:hidden}.fleet-vehicle-item b,.fleet-vehicle-item small{display:inline;min-width:0;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fleet-vehicle-item b{flex:none;font-size:13px}.fleet-vehicle-item small{font-size:10.5px}.fleet-plate{display:flex;font-size:14px}.fleet-plate small{flex:none;padding:2px 6px;border-radius:999px;background:#eef2f7;color:#637089;font-size:9px;font-weight:800;text-transform:uppercase}.fleet-vehicle-item .edit-chevron{font-size:21px;line-height:1}@media(max-width:900px){.fleet-vehicle-item{grid-template-columns:110px minmax(0,1fr) 18px;gap:9px}.fleet-vehicle-item>span:nth-child(3){display:none}.fleet-vehicle-item .edit-chevron{grid-column:3;grid-row:1}}
