:root{font-family:Arial,Helvetica,sans-serif;color:#172033;background:#f5f7fb}body{margin:0}.top{background:#0f3557;color:white;padding:14px 22px;display:flex;align-items:center;justify-content:space-between}.top a{color:white;margin-left:14px;text-decoration:none}.wrap{padding:22px;max-width:1180px;margin:auto}.card{background:white;border-radius:14px;padding:18px;margin-bottom:18px;box-shadow:0 2px 12px #0001}h1,h2{margin-top:0}input,select,textarea,button{padding:9px;border:1px solid #cfd8e3;border-radius:8px;margin:4px}button,.btn{background:#0f3557;color:white;border:0;text-decoration:none;display:inline-block}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}.table{width:100%;border-collapse:collapse;background:white}.table th,.table td{border-bottom:1px solid #e5e9f0;padding:8px;text-align:left}.pill{border-radius:20px;padding:3px 9px;background:#eaf0f6}.warn{background:#fff4d6}.signature{border:1px solid #aaa;border-radius:8px;background:white;touch-action:none}.small{font-size:12px;color:#64748b}.error{color:#b91c1c}.success{color:#15803d}
.report-head{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:8px;align-items:stretch}.report-title{font-size:22px;font-weight:bold;text-align:center;align-self:center}.report-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:8px}.report-card input{width:95%}.service-table input,.service-table select{width:92px;padding:5px}.service-table th{font-size:12px;background:#eaf0f6}.report-split{display:grid;grid-template-columns:1.2fr .9fr;gap:14px}.parts-table input,.parts-table select{max-width:150px;padding:5px}.signature-section{border-top:4px solid #0f3557}@media(max-width:900px){.report-head,.report-grid.two,.report-split{grid-template-columns:1fr}.service-table input,.service-table select{width:82px}}

.part-select{min-width:260px;max-width:420px}
.parts-table td{vertical-align:top}

/* Rimuove le frecce/spinner dai campi numerici: si scrive direttamente il valore */
input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0;}
input[type=number]{ -moz-appearance:textfield;}

#calendar{background:white;padding:8px;border-radius:10px}.calendar-actions{display:flex;gap:14px;align-items:center;margin-bottom:12px}.fc-event{cursor:pointer}.fc .fc-toolbar-title{font-size:22px}

.checkline{display:flex;align-items:center;gap:8px}.intervention-form label{display:flex;flex-direction:column;font-size:13px}.intervention-form select,.intervention-form input{min-width:140px}

.category-tabs{display:flex;flex-wrap:wrap;gap:8px}.tab{padding:8px 12px;border:1px solid #cfd8e3;border-radius:999px;text-decoration:none;color:#0f3557;background:white}.tab.active{background:#0f3557;color:white}.inline-stock-form{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.inline-stock-form input{width:70px}.inline-stock-form select{max-width:140px}.parts-by-category td{vertical-align:top}

.category-card{background:linear-gradient(135deg,#ffffff,#eef6ff)}.modern-tabs{display:flex;flex-wrap:wrap;gap:10px}.modern-tab{padding:10px 14px;border:1px solid #c7d2fe;border-radius:14px;text-decoration:none;color:#1e3a8a;background:#fff;box-shadow:0 1px 5px #0001;font-weight:600}.modern-tab.active{background:#0f3557;color:white;border-color:#0f3557}.modern-tab:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0002}.price-form{display:grid;grid-template-columns:75px 75px 75px;gap:5px;align-items:end}.price-form label{font-size:11px}.price-form input{width:70px;padding:5px}.price-form button{padding:6px 8px;font-size:12px}.parts-by-category th{background:#eaf0f6}.parts-by-category td{vertical-align:top}


.report-head-logo{grid-template-columns:1.5fr 1fr .8fr .8fr}.company-box{display:flex;gap:12px;align-items:center}.report-logo{width:88px;height:88px;object-fit:contain;border-radius:12px;background:#fff}.report-compact-card{padding:14px}.service-table-wrap{overflow-x:auto}.service-compact th,.service-compact td{padding:4px 5px;white-space:nowrap;font-size:11px}.service-compact input,.service-compact select{width:72px;max-width:72px;padding:4px 5px;font-size:11px;margin:1px}.service-compact .day-name{min-width:74px;font-weight:600}.service-compact input[type=date]{width:128px;max-width:128px}.service-compact .compact-mini{width:52px;max-width:52px}.service-compact .compact-readonly{width:60px;max-width:60px;background:#f8fafc}.service-compact .yesno{width:56px;max-width:56px}.service-compact .pause-select{width:68px;max-width:68px}.report-totals-grid{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:8px;align-items:end;margin-top:10px}.report-totals-grid label{display:flex;flex-direction:column;font-size:12px}.report-totals-grid input,.report-totals-grid select{margin:4px 0 0 0}.compact-totals input[readonly]{background:#f8fafc}.signature-section input[name=admin_password]{max-width:260px}@media(max-width:1200px){.report-totals-grid{grid-template-columns:repeat(3,minmax(150px,1fr))}}@media(max-width:900px){.service-compact input[type=date]{width:120px;max-width:120px}.report-head-logo{grid-template-columns:1fr}}

/* Correzioni rapporto compatto */
.service-compact{table-layout:auto;width:max-content;min-width:1120px}
.service-compact th,.service-compact td{padding:3px 4px;font-size:10.5px}
.service-compact input,.service-compact select{padding:3px 4px;font-size:10.5px;margin:0}
.service-compact input[type=date]{width:118px;max-width:118px}
.service-compact .compact-select{width:64px;max-width:64px}
.service-compact .compact-readonly{width:58px;max-width:58px}
.service-compact .compact-mini,.service-compact .six-digit{width:54px;max-width:54px}
.service-compact .day-name{min-width:68px}
.report-compact-card{max-width:1180px}
.company-box{min-height:44px}
.report-head-logo{grid-template-columns:1.2fr 1fr .75fr .75fr}

.dashboard-brand{display:flex;gap:14px;align-items:center;margin-bottom:16px}.dashboard-brand img{width:78px;height:78px;object-fit:contain;border-radius:14px;background:white;box-shadow:0 2px 12px #0001}.report-text-section{display:block;clear:both}.report-text-section h2{margin-top:18px;margin-bottom:8px;line-height:1.2}.report-textarea{display:block;width:100%;box-sizing:border-box;resize:vertical}.parts-section{display:block;clear:both}.hidden-part{display:none}.parts-table .part-select{min-width:320px;max-width:560px}.parts-table input{max-width:190px}.parts-table td{vertical-align:top}

.grid label{display:flex;flex-direction:column;font-size:13px}.grid textarea{min-height:70px}

.small-export-form{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.small-export-form input{max-width:120px}

.parts-table .part-category{min-width:180px}.parts-table .part-search{min-width:320px}.parts-table .part-description{min-width:320px}
.qty-select{width:64px;max-width:64px}.report-grid.two label input[type=number]{max-width:160px}
.stock-low{color:#b91c1c;font-weight:800}.price-form{grid-template-columns:75px 75px 75px 75px}.top nav a{white-space:nowrap}


/* Menu alto in stile pulsanti */
.top{gap:18px;flex-wrap:wrap;box-shadow:0 2px 12px #0002}
.top strong{font-size:18px;white-space:nowrap}
.top nav{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:flex-end}
.top nav a{background:#ffffff22;border:1px solid #ffffff55;border-radius:10px;padding:8px 12px;margin-left:0;color:#fff;text-decoration:none;font-weight:600;line-height:1;transition:all .15s ease;box-shadow:0 1px 4px #0001}
.top nav a:hover{background:#fff;color:#0f3557;transform:translateY(-1px)}
.top nav a:active{transform:translateY(0)}
@media(max-width:900px){.top{align-items:flex-start}.top nav{justify-content:flex-start}.top nav a{padding:8px 10px;font-size:13px}}

.danger{background:#dc2626;color:white;border:0;border-radius:8px;padding:7px 10px;cursor:pointer}.compact-table td,.compact-table th{padding:6px 8px}.absence-form{grid-template-columns:1fr 1fr 1fr 1.4fr 2fr auto}
@media(max-width:900px){.absence-form{grid-template-columns:1fr}}

.fc .absence-event{border-width:4px!important;border-style:solid!important}

.part-obsolete{background:#e5e7eb!important;color:#6b7280}.part-obsolete td{background:#e5e7eb!important;color:#6b7280}.obsolete-label{display:inline-block;background:#6b7280;color:white;border-radius:8px;padding:2px 6px;font-size:11px;margin-top:3px}.part-actions{min-width:150px}.part-actions .btn{display:inline-block;margin-bottom:6px}.inline-form{display:inline}.danger{background:#dc2626;color:#fff;border:0;border-radius:8px;padding:7px 10px;cursor:pointer}

.archive-search-form{grid-template-columns:2fr 2fr auto auto}@media(max-width:900px){.archive-search-form{grid-template-columns:1fr}}

.private-form,.payroll-form{grid-template-columns:1fr 120px 120px 2fr auto}.danger{background:#dc2626;color:#fff;border:0;border-radius:8px;padding:7px 10px;cursor:pointer}@media(max-width:900px){.private-form,.payroll-form{grid-template-columns:1fr}}


/* Pulsanti cliccabili nelle pagine - NON modifica barra comando, calendario e pulsanti rossi */
.wrap a:not(.danger):not(.fc-event):not(.fc-daygrid-day-number):not(.fc-col-header-cell-cushion),
.wrap button:not(.danger):not(.fc-button),
.wrap input[type=submit]:not(.danger),
.wrap .btn:not(.danger),
.wrap .tab,
.wrap .modern-tab,
.wrap .edit-btn,
.wrap .cancel-btn,
.wrap .archive-filter-btn{
  background:#49678D!important;
  background-color:#49678D!important;
  color:#ffffff!important;
  border:0!important;
  border-radius:9px!important;
  padding:9px 16px!important;
  min-height:38px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  vertical-align:middle!important;
  font-weight:800!important;
  line-height:1.1!important;
  text-decoration:none!important;
  box-sizing:border-box!important;
  box-shadow:0 2px 6px rgba(0,0,0,.15)!important;
  cursor:pointer!important;
  font-family:Arial,Helvetica,sans-serif!important;
}
.wrap a:not(.danger):not(.fc-event):not(.fc-daygrid-day-number):not(.fc-col-header-cell-cushion):hover,
.wrap button:not(.danger):not(.fc-button):hover,
.wrap input[type=submit]:not(.danger):hover,
.wrap .btn:not(.danger):hover,
.wrap .tab:hover,
.wrap .modern-tab:hover,
.wrap .edit-btn:hover,
.wrap .cancel-btn:hover,
.wrap .archive-filter-btn:hover{
  background:#3D5778!important;
  background-color:#3D5778!important;
  color:#ffffff!important;
  transform:translateY(-1px);
}
.wrap a:not(.danger):not(.fc-event):not(.fc-daygrid-day-number):not(.fc-col-header-cell-cushion):active,
.wrap button:not(.danger):not(.fc-button):active,
.wrap input[type=submit]:not(.danger):active,
.wrap .btn:not(.danger):active{transform:translateY(0)}
/* Mantiene invariati menu calendario e numeri giorno */
.fc .fc-button{box-shadow:none!important}
.fc a.fc-daygrid-day-number,.fc a.fc-col-header-cell-cushion{background:transparent!important;color:#172033!important;border:0!important;box-shadow:none!important;min-height:0!important;padding:2px!important;display:inline!important;font-weight:600!important}
/* Mantiene invariati i pulsanti rossi */
.danger{background:#dc2626!important;color:white!important;border:0!important;border-radius:8px!important}


/* Bordo blu scuro sottile sui pulsanti modificati, esclusi barra alta, calendario e pulsanti rossi */
.wrap a:not(.danger):not(.fc-event):not(.fc-daygrid-day-number):not(.fc-col-header-cell-cushion),
.wrap button:not(.danger):not(.fc-button),
.wrap input[type=submit]:not(.danger),
.wrap .btn:not(.danger),
.wrap .tab,
.wrap .modern-tab,
.wrap .edit-btn,
.wrap .cancel-btn,
.wrap .archive-filter-btn{
  border:1px solid #0f3557!important;
}
.fc .fc-button,.danger{border:0!important}

.stock-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 10px;border-radius:999px;font-size:18px;font-weight:800;line-height:1;border:2px solid transparent;box-sizing:border-box}
.stock-positive{background:#dcfce7;color:#166534;border-color:#166534}
.stock-negative{background:#fee2e2;color:#b91c1c;border-color:#b91c1c}
.stock-zero{background:#e5e7eb;color:#374151;border-color:#9ca3af}
.stock-under-min{box-shadow:0 0 0 2px #ef4444 inset}

.equipment-lists .wide-inline{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.equipment-lists input{min-width:240px}.two-cols{grid-template-columns:1fr 1fr}.checkline{display:flex;gap:7px;align-items:center;font-weight:600}.checkline input{width:auto}

.part-code-missing{display:inline-block;background:#f59e0b;color:#111827;border:1px solid #b45309;border-radius:6px;padding:3px 7px;font-weight:900}
.missing-label{display:inline-block;margin-top:4px;background:#f59e0b;color:#111827;border-radius:5px;padding:2px 6px;font-size:10px;font-weight:900;letter-spacing:.3px}

.export-grid-vertical{grid-template-columns:1fr;max-width:820px}.small-export-form select{padding:9px;border:1px solid #cfd8e3;border-radius:10px;background:white}

.export-list{display:grid;grid-template-columns:1fr;gap:16px;max-width:900px}.small-export-form select{padding:9px;border:1px solid #d1d5db;border-radius:10px}

.todo-head{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}.todo-form{grid-template-columns:2fr 170px 140px auto}.todo-form label{font-size:12px}.todo-table td{vertical-align:middle}.todo-check{min-width:42px!important;padding:8px 12px!important;font-size:18px!important}.todo-due{background:#fff7ed}.todo-due td:nth-child(2),.todo-due td:nth-child(3){color:#b45309;font-weight:800}@media(max-width:900px){.todo-form{grid-template-columns:1fr}}


/* Impaginazione compatta compilazione report come layout richiesto */
.report-form-card{padding:16px 18px 14px 18px}
.report-form-header{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:14px;align-items:start;margin-bottom:10px}
.report-company-block{padding-top:4px}
.report-company-name{font-size:28px;font-weight:800;line-height:1.05;margin-bottom:6px;color:#0f3557}
.report-center-title{display:flex;align-items:center;justify-content:center;min-height:74px;text-align:center;font-size:40px;font-weight:900;line-height:.95;color:#0f3557;letter-spacing:.3px}
.report-top-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-self:start}
.report-top-info-grid label,.report-client-grid label{display:flex;flex-direction:column;font-size:14px;font-weight:600;color:#0f172a}
.report-top-info-grid input,.report-client-grid input,.report-client-grid select{width:100%;box-sizing:border-box;margin:6px 0 0 0}
.report-client-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;align-items:end}
.report-client-grid .left-only{grid-column:1 / 2}
.report-empty-cell{display:block}
.report-form-note{margin-top:10px}
.report-card input[type=number]{max-width:140px}
@media(max-width:980px){
  .report-form-header{grid-template-columns:1fr}
  .report-top-info-grid{grid-template-columns:1fr}
  .report-client-grid{grid-template-columns:1fr}
  .report-client-grid .left-only{grid-column:auto}
  .report-empty-cell{display:none}
  .report-center-title{min-height:auto;justify-content:flex-start;text-align:left}
}


/* Elenco clienti più compatto, senza colonna PEC visibile */
.customers-table{table-layout:fixed;font-size:12px}
.customers-table th,.customers-table td{padding:6px 7px;vertical-align:top;word-break:break-word}
.customers-table th:nth-child(1){width:20%}
.customers-table th:nth-child(2){width:14%}
.customers-table th:nth-child(3){width:21%}
.customers-table th:nth-child(4){width:10%}
.customers-table th:nth-child(5){width:18%}
.customers-table th:nth-child(6){width:9%}
.customers-table th:nth-child(7){width:8%}
.customer-name-cell{font-weight:700}
.customer-actions-cell .btn,.customer-actions-cell .danger{margin:2px 0;min-width:78px;padding:6px 8px!important;font-size:11px!important}


/* Menu interventi dentro calendario e indicatori operatore */
.intervention-menu-card{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.operator-dot-cell{width:24px;text-align:center;padding-left:6px!important;padding-right:4px!important}
.operator-dot{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid #ffffff;box-shadow:0 0 0 1px #94a3b8;vertical-align:middle}
.operator-color-blu{background:#2563eb}
.operator-color-verde{background:#16a34a}
.operator-color-rosso{background:#dc2626}
.operator-color-giallo{background:#ca8a04}
.operator-color-arancione{background:#ea580c}
.operator-color-viola{background:#9333ea}
.operator-color-grigio{background:#64748b}
.operator-color-{background:#0f3557}

/* Evidenzia il modulo intervento quando si clicca un giorno del calendario */
.calendar-picked-day{box-shadow:0 0 0 3px #8FAFC4 inset,0 2px 12px #0001!important}
.fc-daygrid-day,.fc-timegrid-slot{cursor:pointer}


/* Logo WJS in login + watermark trasparente su tutte le pagine */
body.with-watermark{position:relative;min-height:100vh;background:#f5f7fb}
body.with-watermark::before{content:"";position:fixed;inset:0;background:url('/static/wjs_logo.jpg') center center / min(46vw,520px) auto no-repeat;opacity:.055;pointer-events:none;z-index:0}
body.with-watermark > *{position:relative;z-index:1}
.login-page .wrap{position:relative;z-index:1}
.login-card{backdrop-filter:saturate(105%);box-shadow:0 6px 20px #0001}
.login-logo-wrap{display:flex;justify-content:center;align-items:center;margin-bottom:10px}
.login-logo{width:130px;max-width:70%;height:auto;object-fit:contain;border-radius:14px;background:#fff;padding:8px;box-shadow:0 2px 12px #0001}


/* Pulsante Macchine clienti dentro pagina Clienti */
.page-head-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:10px}
.page-head-actions h1{margin-bottom:0}
@media(max-width:700px){.page-head-actions{align-items:flex-start}.page-head-actions .btn{width:100%}}

/* Pulsante da ordinare dentro Magazzino, con indicatore rosso */
.parts-top-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.to-order-btn{position:relative;gap:8px}
.to-order-btn.has-to-order{padding-right:18px!important}
.to-order-badge{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;margin-left:8px;border-radius:999px;background:#dc2626;color:#fff;font-size:12px;font-weight:900;line-height:1;border:2px solid #fff;box-shadow:0 0 0 1px #991b1b}
.to-order-warning{color:#b91c1c!important;font-weight:800}

/* Numero operatori in compilazione rapportino */
.report-totals-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))!important}
#operators_count{max-width:120px}
