#commesseView{
  min-width:0;
  height:100%;
  overflow:hidden;
  background:#fff;
}

.jobsPage{
  height:100%;
  min-width:0;
  overflow:auto;
  overscroll-behavior:contain;
  padding:28px clamp(18px,3vw,42px) 42px;
  color:#0f172a;
}

.jobsHeader,
.jobsToolbar,
.jobsBulkBar,
.jobsFooter{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}

.jobsHeader{ margin-bottom:22px; }
.jobsTitle{ margin:0; font-size:clamp(25px,3vw,34px); line-height:1.1; letter-spacing:-.035em; }
.jobsSubtitle{ margin:7px 0 0; color:#64748b; font-size:14px; }

.jobsPrimaryBtn,
.jobsSecondaryBtn,
.jobsDangerBtn,
.jobsGhostBtn{
  min-height:42px;
  border-radius:12px;
  border:1px solid rgba(15,23,42,.12);
  padding:0 16px;
  font:inherit;
  font-size:14px;
  font-weight:750;
  cursor:pointer;
  transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
}

.jobsPrimaryBtn{ color:#fff; background:#054c5c; border-color:#054c5c; box-shadow:0 8px 20px rgba(5,76,92,.18); }
.jobsSecondaryBtn{ color:#054c5c; background:#fff; }
.jobsDangerBtn{ color:#b42318; background:#fff; border-color:rgba(180,35,24,.25); }
.jobsGhostBtn{ min-height:36px; padding:0 12px; color:#334155; background:#fff; }
.jobsPrimaryBtn:hover,.jobsSecondaryBtn:hover,.jobsGhostBtn:hover{ transform:translateY(-1px); }
.jobsPrimaryBtn:disabled,.jobsSecondaryBtn:disabled,.jobsDangerBtn:disabled,.jobsGhostBtn:disabled{ opacity:.5; cursor:not-allowed; transform:none; box-shadow:none; }

.jobsMetrics{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}

.jobsMetric{
  min-width:0;
  padding:17px 18px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  background:linear-gradient(145deg,#fff,#f8fbfc);
  box-shadow:0 8px 24px rgba(15,23,42,.045);
}
.jobsMetricLabel{ color:#64748b; font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.jobsMetricValue{ margin-top:7px; font-size:25px; font-weight:800; letter-spacing:-.03em; color:#0f172a; }

.jobsToolbar{
  padding:14px;
  margin-bottom:14px;
  border:1px solid rgba(15,23,42,.08);
  border-radius:16px;
  background:#f8fafc;
}
.jobsSearch{ position:relative; flex:1 1 280px; min-width:180px; }
.jobsSearch svg{ position:absolute; left:13px; top:50%; transform:translateY(-50%); width:18px; color:#64748b; pointer-events:none; }
.jobsInput,.jobsSelect,.jobsTextarea{
  width:100%;
  min-width:0;
  border:1px solid rgba(15,23,42,.13);
  border-radius:11px;
  background:#fff;
  color:#0f172a;
  font:inherit;
  font-size:14px;
}
.jobsInput,.jobsSelect{ height:42px; padding:0 12px; }
.jobsSearch .jobsInput{ padding-left:41px; }
.jobsTextarea{ min-height:92px; padding:11px 12px; resize:vertical; }
.jobsToolbar .jobsSelect{ flex:0 1 190px; width:auto; }

.jobsInput:focus,.jobsSelect:focus,.jobsTextarea:focus,
.jobsPrimaryBtn:focus-visible,.jobsSecondaryBtn:focus-visible,.jobsDangerBtn:focus-visible,.jobsGhostBtn:focus-visible,
.jobsIconBtn:focus-visible,.jobsSortBtn:focus-visible,.jobsRowCheck:focus-visible{
  outline:3px solid rgba(5,76,92,.18);
  outline-offset:2px;
  border-color:#054c5c;
}

.jobsBulkBar{
  display:none;
  margin-bottom:14px;
  padding:12px 14px;
  border:1px solid rgba(5,76,92,.16);
  border-radius:14px;
  background:#eff9fa;
}
.jobsBulkBar.isVisible{ display:flex; }
.jobsBulkCount{ color:#054c5c; font-size:14px; font-weight:800; }
.jobsBulkActions{ display:flex; gap:8px; flex-wrap:wrap; }

.jobsNotice{
  display:none;
  margin-bottom:14px;
  padding:12px 14px;
  border-radius:12px;
  font-size:14px;
}
.jobsNotice.isVisible{ display:block; }
.jobsNotice.isError{ color:#9f1c13; background:#fff2f0; border:1px solid rgba(180,35,24,.18); }
.jobsNotice.isSuccess{ color:#05603a; background:#ecfdf3; border:1px solid rgba(5,150,105,.18); }

.jobsTableShell{
  position:relative;
  width:100%;
  min-width:0;
  overflow-x:auto;
  border:1px solid rgba(15,23,42,.08);
  border-radius:18px;
  background:#fff;
  box-shadow:0 10px 30px rgba(15,23,42,.055);
}
#commesseView table.adminDataTable{ --admin-table-min-width:1120px; margin:0 !important; }
#commesseView table.adminDataTable col.jobsColCheck{ width:54px; }
#commesseView table.adminDataTable col.jobsColName{ width:210px; }
#commesseView table.adminDataTable col.jobsColCode{ width:130px; }
#commesseView table.adminDataTable col.jobsColCustomer{ width:175px; }
#commesseView table.adminDataTable col.jobsColDate{ width:125px; }
#commesseView table.adminDataTable col.jobsColEmployees{ width:180px; }
#commesseView table.adminDataTable col.jobsColStatus{ width:120px; }
#commesseView table.adminDataTable col.jobsColUpdated{ width:150px; }
#commesseView table.adminDataTable col.jobsColActions{ width:72px; }

.jobsSortBtn{
  display:inline-flex;
  align-items:center;
  gap:5px;
  padding:0;
  border:0;
  background:transparent;
  color:inherit;
  font:inherit;
  font-weight:inherit;
  cursor:pointer;
}
.jobsNameBtn{
  padding:0;
  border:0;
  background:transparent;
  color:#0f172a;
  font:inherit;
  font-weight:750;
  text-align:left;
  cursor:pointer;
}
.jobsNameBtn:hover{ color:#054c5c; text-decoration:underline; text-underline-offset:3px; }
.jobsSubline{ display:block; margin-top:4px; color:#64748b; font-size:12px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jobsCode{ font-family:"JetBrains Mono",ui-monospace,monospace; font-size:12px; color:#334155; }
.jobsEmployeeList{ display:flex; align-items:center; min-width:0; }
.jobsEmployeeChip{ display:inline-flex; max-width:125px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; padding:4px 8px; border-radius:999px; background:#eef5f6; color:#054c5c; font-size:12px; font-weight:700; }
.jobsEmployeeMore{ margin-left:6px; color:#64748b; font-size:12px; }
.jobsStatus{ display:inline-flex; align-items:center; gap:7px; padding:5px 9px; border-radius:999px; font-size:12px; font-weight:800; text-transform:capitalize; }
.jobsStatus::before{ content:""; width:7px; height:7px; border-radius:50%; background:currentColor; }
.jobsStatus--attiva{ color:#057a55; background:#ecfdf3; }
.jobsStatus--bozza{ color:#475569; background:#f1f5f9; }
.jobsStatus--sospesa{ color:#9a6700; background:#fff8db; }
.jobsStatus--chiusa{ color:#315ca8; background:#edf4ff; }
.jobsStatus--archiviata{ color:#6b7280; background:#f3f4f6; }

.jobsIconBtn{
  display:inline-grid;
  place-items:center;
  width:36px;
  height:36px;
  border:1px solid rgba(15,23,42,.1);
  border-radius:10px;
  background:#fff;
  color:#334155;
  cursor:pointer;
}
.jobsActionsCell{ position:relative; overflow:visible !important; }
.jobsMenu{
  position:fixed;
  z-index:10070;
  min-width:190px;
  padding:6px;
  border:1px solid rgba(15,23,42,.1);
  border-radius:12px;
  background:#fff;
  box-shadow:0 18px 48px rgba(15,23,42,.18);
}
.jobsMenu[hidden]{ display:none; }
.jobsMenu button{ width:100%; min-height:38px; padding:0 11px; border:0; border-radius:9px; background:transparent; color:#1e293b; font:inherit; font-size:13px; font-weight:650; text-align:left; cursor:pointer; }
.jobsMenu button:hover,.jobsMenu button:focus-visible{ background:#f1f5f9; outline:none; }
.jobsMenu button.isDanger{ color:#b42318; }

.jobsState{
  display:grid;
  place-items:center;
  min-height:300px;
  padding:34px 20px;
  text-align:center;
}
.jobsState[hidden]{ display:none; }
.jobsStateIcon{ width:48px; height:48px; display:grid; place-items:center; margin:0 auto 13px; border-radius:15px; background:#eef7f8; color:#054c5c; font-size:22px; }
.jobsStateTitle{ margin:0; font-size:18px; }
.jobsStateText{ max-width:430px; margin:8px auto 18px; color:#64748b; font-size:14px; line-height:1.55; }
.jobsSpinner{ width:34px; height:34px; border:3px solid rgba(5,76,92,.14); border-top-color:#054c5c; border-radius:50%; animation:jobsSpin .8s linear infinite; }
@keyframes jobsSpin{ to{ transform:rotate(360deg); } }

.jobsFooter{ padding:14px 2px 0; color:#64748b; font-size:13px; }
.jobsPagination{ display:flex; align-items:center; gap:8px; }

.jobsOverlay{
  position:fixed;
  inset:0;
  z-index:10080;
  display:none;
  align-items:center;
  justify-content:center;
  padding:18px;
  background:rgba(15,23,42,.48);
  backdrop-filter:blur(7px);
}
.jobsOverlay.isOpen{ display:flex; }
.jobsDialog{
  width:min(720px,100%);
  max-height:min(88dvh,820px);
  display:flex;
  flex-direction:column;
  border-radius:20px;
  background:#fff;
  box-shadow:0 28px 80px rgba(15,23,42,.28);
  overflow:hidden;
}
.jobsDialog--wide{ width:min(920px,100%); }
.jobsDialog--small{ width:min(500px,100%); }
.jobsDialogHeader{ display:flex; align-items:flex-start; justify-content:space-between; gap:15px; padding:20px 22px 15px; border-bottom:1px solid rgba(15,23,42,.08); }
.jobsDialogTitle{ margin:0; font-size:21px; letter-spacing:-.025em; }
.jobsDialogSub{ margin:5px 0 0; color:#64748b; font-size:13px; }
.jobsDialogBody{ min-height:0; overflow:auto; padding:20px 22px; }
.jobsDialogFooter{ display:flex; justify-content:flex-end; gap:9px; flex-wrap:wrap; padding:15px 22px 20px; border-top:1px solid rgba(15,23,42,.08); }
.jobsClose{ width:38px; height:38px; border:0; border-radius:11px; background:#f1f5f9; color:#334155; font-size:22px; cursor:pointer; }

.jobsFormGrid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; }
.jobsField{ min-width:0; }
.jobsField--full{ grid-column:1/-1; }
.jobsLabel{ display:block; margin-bottom:7px; color:#334155; font-size:12px; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
.jobsRequired{ color:#b42318; }
.jobsFieldHint{ margin-top:5px; color:#64748b; font-size:12px; }
.jobsFormError{ display:none; margin-bottom:14px; padding:11px 12px; border:1px solid rgba(180,35,24,.18); border-radius:11px; background:#fff2f0; color:#9f1c13; font-size:13px; }
.jobsFormError.isVisible{ display:block; }

.jobsEmployeePicker{ max-height:190px; overflow:auto; border:1px solid rgba(15,23,42,.12); border-radius:12px; padding:6px; }
.jobsEmployeeOption{ display:flex; align-items:center; gap:10px; padding:9px; border-radius:9px; cursor:pointer; }
.jobsEmployeeOption:hover{ background:#f8fafc; }
.jobsEmployeeOption input{ width:17px; height:17px; accent-color:#054c5c; }
.jobsEmployeeOptionText{ min-width:0; }
.jobsEmployeeOptionName{ display:block; font-size:13px; font-weight:700; }
.jobsEmployeeOptionMeta{ display:block; margin-top:2px; color:#64748b; font-size:11px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

.jobsDetailGrid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.jobsDetailCell{ padding:13px; border:1px solid rgba(15,23,42,.08); border-radius:12px; background:#fafcfd; }
.jobsDetailCell--full{ grid-column:1/-1; }
.jobsDetailLabel{ color:#64748b; font-size:11px; font-weight:800; letter-spacing:.045em; text-transform:uppercase; }
.jobsDetailValue{ margin-top:6px; color:#0f172a; font-size:14px; line-height:1.5; overflow-wrap:anywhere; white-space:pre-wrap; }
.jobsAuditTitle{ margin:22px 0 10px; font-size:15px; }
.jobsAuditList{ display:grid; gap:9px; }
.jobsAuditItem{ display:grid; grid-template-columns:12px 1fr auto; gap:10px; align-items:start; padding:11px 0; border-bottom:1px solid rgba(15,23,42,.07); }
.jobsAuditDot{ width:9px; height:9px; margin-top:5px; border-radius:50%; background:#0f788c; }
.jobsAuditAction{ font-size:13px; font-weight:750; }
.jobsAuditMeta{ margin-top:3px; color:#64748b; font-size:12px; }
.jobsAuditTime{ color:#64748b; font-size:11px; white-space:nowrap; }

.jobsBulkChoice{ display:grid; gap:10px; margin-top:15px; }
.jobsBulkChoice[hidden]{ display:none; }
.jobsResultList{ display:grid; gap:8px; }
.jobsResultRow{ display:flex; justify-content:space-between; gap:14px; padding:10px 12px; border-radius:10px; background:#f8fafc; font-size:13px; }
.jobsResultRow.isOk{ color:#05603a; background:#ecfdf3; }
.jobsResultRow.isError{ color:#9f1c13; background:#fff2f0; }

@media (max-width:760px){
  .jobsPage{ padding:20px 14px 34px; }
  .jobsHeader{ align-items:stretch; }
  .jobsHeader .jobsPrimaryBtn{ width:100%; }
  .jobsMetrics{ grid-template-columns:1fr; gap:9px; }
  .jobsMetric{ padding:13px 15px; display:flex; align-items:center; justify-content:space-between; }
  .jobsMetricValue{ margin:0; font-size:21px; }
  .jobsToolbar{ align-items:stretch; }
  .jobsToolbar .jobsSelect{ width:100%; flex:1 1 100%; }
  .jobsBulkBar{ align-items:stretch; }
  .jobsBulkActions{ display:grid; grid-template-columns:1fr; width:100%; }
  .jobsFormGrid,.jobsDetailGrid{ grid-template-columns:1fr; }
  .jobsField--full,.jobsDetailCell--full{ grid-column:auto; }
  .jobsOverlay{ align-items:flex-end; padding:0; }
  .jobsDialog,.jobsDialog--wide,.jobsDialog--small{ width:100%; max-height:94dvh; border-radius:20px 20px 0 0; }
  .jobsDialogHeader,.jobsDialogBody,.jobsDialogFooter{ padding-left:16px; padding-right:16px; }
  .jobsDialogFooter .jobsPrimaryBtn,.jobsDialogFooter .jobsSecondaryBtn,.jobsDialogFooter .jobsDangerBtn{ flex:1 1 140px; }
  .jobsFooter{ align-items:flex-start; }
}

@media (prefers-reduced-motion:reduce){
  .jobsSpinner{ animation-duration:1.6s; }
  .jobsPrimaryBtn,.jobsSecondaryBtn,.jobsGhostBtn{ transition:none; }
}
