:root{--o:#ff6900;--os:#fff3e8;--line:#e5e5e5;--muted:#707070;--red:#c71919;--green:#118348;--blue:#1769aa;--yellow:#946b00}
*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#fafafa;color:#181818}.hide{display:none!important}button,input,select,textarea{font:inherit}.primary{background:var(--o);color:#fff;border:0;border-radius:9px;padding:12px 16px;font-weight:700;cursor:pointer}.full{width:100%}
.login{min-height:100vh;display:grid;place-items:center;padding:20px}.loginbox{width:min(440px,100%);background:#fff;border:1px solid var(--line);border-top:5px solid var(--o);border-radius:16px;padding:27px}.loginbox img{width:250px;max-width:100%}.loginbox p,.muted{color:var(--muted)}
label{display:block;font-size:13px;font-weight:700;margin-top:15px}input,select,textarea{display:block;width:100%;padding:11px;margin-top:6px;border:1px solid #ccc;border-radius:8px;background:#fff}.err{color:var(--red)!important;font-size:13px;font-weight:bold}
.app{display:grid;grid-template-columns:245px 1fr;min-height:100vh}aside{background:#fff;border-right:1px solid var(--line);padding:20px 16px;display:flex;flex-direction:column}aside img{width:205px;max-width:100%;margin-bottom:25px}nav{margin-top:20px}nav button{display:block;width:100%;text-align:left;border:0;background:#fff;padding:13px;border-radius:8px;margin:3px 0;cursor:pointer}nav button.active{background:var(--os);color:var(--o);font-weight:bold}.aside-note{margin-top:auto;border:1px solid #ffd2b2;background:#fff9f5;padding:12px;border-radius:9px;font-size:11px;line-height:1.4}
.work{min-width:0}header{background:#fff;border-bottom:1px solid var(--line);padding:17px 25px;display:flex;justify-content:space-between;align-items:center}header small{color:var(--o);font-weight:bold}header h1{font-size:21px;margin:4px 0}.who{display:flex;gap:15px;align-items:center;font-size:12px}.who button,.back,#saveTech,.smallbtn{background:#fff;border:1px solid var(--o);color:var(--o);border-radius:8px;padding:10px;cursor:pointer}
main{max-width:1250px;margin:auto;padding:24px}.hero,.actions,.detailhead,.sectiontitle{display:flex;justify-content:space-between;align-items:center;gap:15px}.hero h2,.sectiontitle h3{margin:0}.hero p,.sectiontitle p{color:var(--muted);margin:5px 0;font-size:12px}
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;margin:20px 0}.stats div,.card{background:#fff;border:1px solid var(--line);border-radius:13px;padding:18px}.stats span{font-size:12px;color:var(--muted);display:block}.stats b{font-size:27px;display:block;margin-top:7px}.card{margin-top:16px}.card h2{margin:0 0 7px}
.reqhead,.req{display:grid;grid-template-columns:110px 1.1fr 105px 125px 125px 120px 105px;gap:10px;align-items:center}.reqhead{padding:12px 6px 7px;color:var(--muted);font-size:10px;font-weight:bold;border-bottom:1px solid var(--line)}.req{padding:13px 6px;border-bottom:1px solid var(--line);cursor:pointer;font-size:11px}.req:hover{background:#fffaf6}.req strong{font-size:12px}.req small{color:var(--muted)}.urgentrow{background:#fff8f8;border-left:4px solid var(--red)}.urgbadge{display:inline-block;background:var(--red);color:white;border-radius:5px;padding:5px 7px;font-size:9px;font-weight:bold}.ordbadge{display:inline-block;background:#eee;color:#555;border-radius:5px;padding:5px 7px;font-size:9px;font-weight:bold}.timer{font-weight:bold}.timer.warn{color:var(--o)}.timer.late{color:var(--red)}
.pill{padding:6px 8px;border-radius:99px;text-align:center;font-size:9px}.newst{background:#fff0e5;color:#b64c00}.takenst{background:#eef5ff;color:var(--blue)}.scheduledst{background:#fff5d8;color:var(--yellow)}.closedst{background:#eaf9f0;color:var(--green)}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}.wide{grid-column:1/-1}.urgent-check,.billcheck{display:flex;align-items:center;gap:9px}.urgent-check input,.billcheck input{width:20px;height:20px;margin:0}.actions{justify-content:flex-end;margin-top:18px}.dgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:20px 0}.dgrid div{border-bottom:1px solid var(--line);padding-bottom:10px}.dgrid small{display:block;color:var(--muted);font-size:10px}.detailhead small{color:var(--o);font-weight:bold}
.takebox{margin-top:20px;background:var(--os);border:1px solid #ffd0ac;padding:18px;border-radius:10px}.takebox h3{margin-top:0}.techform{border-top:1px solid var(--line);margin-top:22px;padding-top:15px}
.parts-head,.part-row{display:grid;grid-template-columns:2fr .6fr 1fr 1fr 40px;gap:8px;align-items:center}.parts-head{font-size:10px;color:var(--muted);font-weight:bold;margin-top:12px}.part-row input{margin-top:6px}.part-total{text-align:right;font-weight:bold}.remove{border:0;background:#fff;color:var(--red);cursor:pointer;font-size:18px}.parts-total{text-align:right;margin:14px 0;font-size:13px}
.sectionbox{margin-top:24px;border-top:1px solid var(--line);padding-top:20px}.note-log{display:grid;gap:10px;margin-top:14px}.note-item{border:1px solid var(--line);border-left:4px solid var(--o);border-radius:9px;padding:12px;background:#fff}.note-item .meta{font-size:10px;color:var(--muted);margin-bottom:6px}.note-item p{margin:0;line-height:1.45;font-size:13px}
.uploadbox{display:inline-flex;align-items:center;justify-content:center;border:1px dashed var(--o);color:var(--o);padding:12px 16px;border-radius:9px;cursor:pointer}.uploadbox input{display:none}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;margin-top:14px}.photo-card{border:1px solid var(--line);border-radius:10px;overflow:hidden;background:#fff}.photo-card img{display:block;width:100%;height:120px;object-fit:cover}.photo-card div{padding:8px;font-size:10px;color:var(--muted)}
.billing{margin-top:22px;padding:16px;border:1px solid #ffd1b0;background:#fff8f2;border-radius:10px}.billing p{font-size:11px;color:var(--muted);margin-bottom:0}
.readonly-banner{background:#f3f4f6;color:#555;border:1px solid #ddd;border-radius:8px;padding:10px 12px;font-size:12px;margin-bottom:15px}
@media(max-width:1000px){.reqhead{display:none}.req{grid-template-columns:1fr 1fr 1fr}.dgrid{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.app{grid-template-columns:1fr}aside{display:none}header{align-items:flex-start;flex-direction:column}.who{flex-wrap:wrap}.stats{grid-template-columns:1fr 1fr}.grid{grid-template-columns:1fr}.wide{grid-column:auto}.parts-head{display:none}.part-row{grid-template-columns:1fr 70px 1fr 1fr 35px}}
@media(max-width:520px){main{padding:13px}.hero{align-items:stretch;flex-direction:column}.req{grid-template-columns:1fr}.dgrid{grid-template-columns:1fr}.actions{align-items:stretch;flex-direction:column}.actions button{width:100%}.part-row{grid-template-columns:1fr 1fr}.part-row .remove{grid-column:2}}
.detail-actions{display:flex;align-items:center;gap:12px}.pdfbtn{background:#fff;border:1px solid var(--o);color:var(--o);border-radius:8px;padding:10px 12px;font-weight:bold;cursor:pointer}


.filters{border-top:3px solid var(--o)}.filter-head{display:flex;align-items:center;justify-content:space-between;gap:15px}.filter-head h3{margin:0}.filter-head p{margin:4px 0 0;color:var(--muted);font-size:11px}.filter-grid{display:grid;grid-template-columns:2fr 1.4fr 1.2fr 1fr 1.2fr 1fr 1fr;gap:10px}.filter-grid label{font-size:10px}.filter-grid input,.filter-grid select{padding:8px;font-size:11px}.deletebtn{border:0;background:transparent;color:#b42318;font-size:17px;cursor:pointer;padding:5px 8px;border-radius:6px}.deletebtn:hover{background:#fff0f0}.req.admin-delete{grid-template-columns:100px 1.1fr 95px 115px 115px 110px 100px 38px}.reqhead.admin-delete{grid-template-columns:100px 1.1fr 95px 115px 115px 110px 100px 38px}
@media(max-width:1100px){.filter-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:700px){.filter-grid{grid-template-columns:1fr}.filter-head{align-items:stretch;flex-direction:column}}

.autosave{font-size:10px;color:var(--green);background:#edf9f2;border:1px solid #ccebd9;border-radius:99px;padding:6px 9px;white-space:nowrap}.autosave.saving{color:var(--o);background:#fff6ed;border-color:#ffd8b7}
.type-main{font-size:12px;font-weight:800;line-height:1.2}.practice-sub{font-size:9px!important;color:#888!important;display:block;margin-top:4px}.solbadge{display:inline-block;background:#6d28d9;color:#fff;border-radius:5px;padding:5px 7px;font-size:9px;font-weight:bold;margin-top:4px}.solbtn{border:1px solid #6d28d9;background:#fff;color:#6d28d9;border-radius:6px;padding:5px 7px;font-size:9px;font-weight:bold;cursor:pointer}.solbtn.active{background:#6d28d9;color:#fff}.priority-cell{display:flex;flex-direction:column;align-items:flex-start;gap:3px}
.req.solicitedrow{box-shadow:inset 4px 0 0 #6d28d9}.req.urgentrow.solicitedrow{box-shadow:inset 4px 0 0 #c71919,inset 8px 0 0 #6d28d9}

#printSheet{display:none}

@media print{
  @page{
    size:A4 portrait;
    margin:7mm;
  }

  html,body{
    width:210mm;
    margin:0!important;
    padding:0!important;
    background:#fff!important;
  }

  /* Print ONLY the generated intervention sheet. */
  body > *:not(#printSheet){
    display:none!important;
  }

  #printSheet{
    display:block!important;
    width:196mm!important;
    max-width:196mm!important;
    margin:0 auto!important;
    padding:0!important;
    overflow:visible!important;
    page-break-inside:avoid!important;
    break-inside:avoid-page!important;
  }

  #printSheet *{
    box-sizing:border-box!important;
  }

  #printSheet .ph{
    page-break-inside:avoid!important;
    break-inside:avoid-page!important;
  }

  #printSheet table,
  #printSheet tr,
  #printSheet td,
  #printSheet th{
    page-break-inside:avoid!important;
    break-inside:avoid-page!important;
  }

  #printSheet .sec{
    page-break-after:avoid!important;
    break-after:avoid-page!important;
  }

  #printSheet .blank{
    height:18mm!important;
  }

  #printSheet .notesblank{
    min-height:10mm!important;
  }

  #printSheet .sign td{
    height:20mm!important;
  }

  #printSheet .foot{
    margin-top:1.5mm!important;
  }
}

.owner-banner{margin:14px 0;background:#f5f5f5;border-left:4px solid #666}

.close-practice-btn{
  background:#fff;
  border:1px solid #b8b8b8;
  color:#333;
  border-radius:8px;
  padding:10px 14px;
  font-weight:700;
  cursor:pointer;
  margin-bottom:12px;
}
.close-practice-btn:hover{border-color:var(--o);color:var(--o);background:#fff8f2}

/* v7.4 - registro note stile chat */
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:18px;align-items:start}
.detail-main{min-width:0;margin-top:0}
.notes-chat{display:flex!important;position:sticky;top:18px;height:calc(100vh - 125px);min-height:540px;background:#fff;border:1px solid var(--line);border-radius:13px;overflow:hidden;flex-direction:column;padding:0}
.chat-head{display:flex;justify-content:space-between;align-items:center;padding:15px 16px;border-bottom:1px solid var(--line);background:#fff8f2}
.chat-head h3{margin:0;font-size:15px}.chat-head p{margin:3px 0 0;color:var(--muted);font-size:10px}.chat-dot{width:9px;height:9px;border-radius:50%;background:var(--o)}
.chat-log{flex:1;overflow-y:auto;padding:14px;background:#f7f7f7;display:flex;flex-direction:column;gap:10px;margin:0}
.chat-log .note-item{max-width:88%;margin:0;border:0;border-radius:12px 12px 12px 3px;padding:10px 11px;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.07)}
.chat-log .note-item.mine{align-self:flex-end;background:var(--os);border-radius:12px 12px 3px 12px}
.chat-log .note-item .meta{font-size:9px;font-weight:bold;color:var(--o);margin-bottom:5px}.chat-log .note-item p{font-size:12px;line-height:1.35}
.chat-composer{border-top:1px solid var(--line);padding:10px;background:#fff}.chat-composer textarea{margin:0 0 8px;resize:none;font-size:12px}.chat-composer button{width:100%;padding:9px}
@media(max-width:1050px){.detail-layout{grid-template-columns:1fr}.notes-chat{position:relative;top:auto;height:500px;min-height:0}}
@media print{.notes-chat{display:none!important}}

.parts-status{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:10px 0;padding:10px 12px;background:#fff8f2;border:1px solid #ffd8b7;border-radius:8px}
.waitst{background:#fff0d8;color:#8a5b00}.deniedst{background:#fdecec;color:#a61b1b}.partsst{background:#eee9ff;color:#5b35a5}

.dynamic-box{margin-top:16px;padding:14px;border:1px solid #ffd5b5;background:#fffaf6;border-radius:10px}.dynamic-box h3{margin:0 0 4px}
.difficultbadge{display:inline-block;background:#3f3f46;color:#fff;border-radius:5px;padding:5px 7px;font-size:9px;font-weight:bold;margin-top:4px}
.internal-warning{background:#fff7ed;border:1px solid #fdba74;border-left:5px solid #f97316;border-radius:9px;padding:10px 12px;margin:12px 0;font-size:12px;font-weight:700}

.maintenance-row{display:grid;grid-template-columns:1.2fr .9fr 1.1fr 1fr .8fr .9fr .9fr .9fr 120px;gap:10px;align-items:center;padding:11px 8px;border-bottom:1px solid var(--line);font-size:11px}
.maintenance-row.head{font-size:9px;font-weight:bold;color:var(--muted);text-transform:uppercase;background:#fafafa}
.mstatus{font-weight:800}.m-ok{color:#237a45}.m-60{color:#a16207}.m-30{color:#c2410c}.m-exp{color:#b42318}
.maintenance-actions{display:flex;gap:5px;justify-content:flex-end}.maintenance-actions button{font-size:9px;padding:6px}
.landing-row{display:grid;grid-template-columns:90px 1fr 1fr;gap:8px;align-items:end;margin-top:8px}.landing-row b{font-size:11px}
@media(max-width:1100px){.maintenance-row{grid-template-columns:1fr 1fr 1fr}.maintenance-row.head{display:none}}

#stairSurvey h4{margin:16px 0 6px;border-bottom:1px solid #ffd5b5;padding-bottom:5px}
.stair-aid-divider{margin:14px 0 8px;padding:10px 12px;border-left:4px solid var(--o);background:#fff8f2;border-radius:6px}
.stair-aid-divider b{display:block;font-size:12px}.stair-aid-divider span{font-size:10px;color:var(--muted)}

#stairSurveyContainer{border:2px solid #f58220}
#stairSurveyContainer #stairSurvey{display:block!important;margin:0;border:0;background:#fff;padding:4px 0}
#stairSurveyContainer #stairAidDivider{display:block!important}

/* v9.3 - fix definitivo visibilità rilievo scala */
#stairSurveyContainer:not(.hide){display:block!important}
#stairSurveyContainer #stairSurvey{display:block!important}
#stairSurveyContainer #stairAidDivider{display:block!important}
#stairSurveyContainer .grid{display:grid!important}


/* ===== v10 ORDINI RICAMBI ===== */
.parts-head-v10,.part-row{
  grid-template-columns:1.65fr .9fr .42fr .65fr 1.05fr .72fr 34px!important;
}
.part-row .pavailability{min-width:0}
.parts-order-info{margin-top:10px;padding:10px 12px;border-radius:7px;background:#fff7ef;border-left:4px solid #ff6900;font-size:11px}
.order-head,.order-row{
  display:grid;
  grid-template-columns:.9fr 1.05fr 1.25fr 1.35fr .5fr 1fr 1.05fr .9fr;
  gap:9px;align-items:center;padding:10px 8px;border-bottom:1px solid var(--line);font-size:10px
}
.order-head{background:#fafafa;color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}
.order-row{cursor:pointer}
.order-row:hover{background:#fff8f2}
.order-row.late-order{border-left:4px solid #b42318;background:#fff7f6}
.order-row.to-order{border-left:4px solid #ff6900}
.order-code{font-weight:800;color:#333}
.order-status{font-size:9px;font-weight:800}
.order-late{color:#b42318;font-weight:800}
.order-detail-head{display:flex;align-items:center;justify-content:space-between;gap:20px}
.order-detail-head h2{margin:3px 0 0}
.order-actionbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.dangerbtn{border:1px solid #c9372c;background:#fff;color:#b42318;border-radius:6px;padding:8px 11px;cursor:pointer}
.order-history{display:flex;flex-direction:column;gap:7px}
.order-history-item{padding:9px 11px;border-left:3px solid #ff6900;background:#fafafa;border-radius:4px;font-size:11px}
.order-history-item small{display:block;color:var(--muted);margin-bottom:3px}
.back-order{margin-bottom:12px;border:0;background:transparent;cursor:pointer;font-weight:700}
.purchase-only-message{padding:12px;background:#fff7ef;border-radius:6px;border-left:4px solid #ff6900}
@media(max-width:1100px){
  .order-head{display:none}
  .order-row{grid-template-columns:1fr 1fr 1fr}
  .parts-head-v10{display:none}
  .part-row{grid-template-columns:1fr 1fr!important}
}


/* ===== v10.1 workflow ordini ===== */
.order-workflow{
  margin-top:18px;padding:14px;border:1px solid #ececec;border-radius:9px;background:#fafafa
}
.order-workflow-title{
  font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);margin-bottom:9px
}
.order-actionbar{display:flex;flex-wrap:wrap;gap:8px;margin-top:0}
.order-step{
  border:1px solid #d9d9d9;background:#fff;color:#666;border-radius:7px;padding:9px 13px;
  cursor:pointer;font-weight:700;transition:.15s ease
}
.order-step.order-step-active{
  background:#ff6900!important;border-color:#ff6900!important;color:#fff!important;
  box-shadow:0 0 0 3px rgba(255,105,0,.10)
}
.order-step.order-step-done{
  background:#fff6ef!important;border-color:#ffb47d!important;color:#c84f00!important
}
.order-step.order-step-future{
  background:#f6f6f6!important;border-color:#e4e4e4!important;color:#a0a0a0!important
}
.order-step:disabled{cursor:default;opacity:1}
.order-secondary-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}


/* ===== v11 SERVER / LOGIN ===== */
.loginbox input{width:100%;box-sizing:border-box}
.login-note{display:block;margin-top:12px;color:var(--muted);line-height:1.35}
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:9999;display:flex;align-items:center;justify-content:center;padding:20px}
.modal-card{width:min(460px,100%);background:#fff;border-radius:12px;padding:24px;box-shadow:0 20px 60px rgba(0,0,0,.22)}
.modal-card label{display:block;margin:12px 0;font-size:11px;font-weight:700}
.modal-card input{width:100%;box-sizing:border-box;margin-top:5px}
.server-error{color:#b42318!important}

/* ===== v12 AMBIENTI ASL / CONFIGURAZIONE ===== */
.environment-box{max-width:610px}
.environment-choices{display:grid;gap:10px;margin:18px 0}
.environment-choice{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;padding:15px 16px;border:1px solid #e5e5e5;border-radius:9px;background:#fff;cursor:pointer;text-align:left}
.environment-choice:hover{border-color:#ff6900;background:#fff8f2}
.environment-choice b{font-size:14px}.environment-choice small{display:block;color:var(--muted);margin-top:3px}.environment-choice span:last-child{font-size:18px;color:#ff6900}
.environment-inline{padding:10px 12px;border-radius:7px;background:#fff7ef;border-left:4px solid #ff6900;font-size:12px}
#where{font-weight:800;color:#b64a00}
.config-create{display:grid;grid-template-columns:1.4fr .7fr auto;gap:10px;align-items:end;margin:12px 0 16px}
.config-list{margin-top:12px;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.config-row{display:grid;grid-template-columns:1.4fr 1fr auto;gap:10px;align-items:center;padding:10px 12px;border-bottom:1px solid var(--line);font-size:11px}
.config-row:last-child{border-bottom:0}.config-row.inactive{opacity:.55;background:#fafafa}
.config-row .meta{color:var(--muted);font-size:10px}.config-row-actions{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.config-checks{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0 14px}.config-check{display:flex!important;flex-direction:row!important;align-items:center!important;gap:6px!important;padding:8px 10px;border:1px solid #e5e5e5;border-radius:7px;background:#fafafa}.config-check input{width:auto!important}
.permission-row{grid-template-columns:1.2fr 2fr auto}.permission-asls{display:flex;gap:8px;flex-wrap:wrap}.permission-asls label{display:flex;flex-direction:row;align-items:center;gap:5px;font-size:10px}.permission-asls input{width:auto}
.reference-empty{padding:10px;border:1px dashed #e0a06f;background:#fffaf5;border-radius:6px;color:#8a4b1f;font-size:11px}
@media(max-width:900px){.config-create{grid-template-columns:1fr}.config-row,.permission-row{grid-template-columns:1fr}.config-row-actions{justify-content:flex-start}}

.config-success{
  margin-top:10px;padding:10px 12px;border-radius:7px;
  background:#edf9f1;border:1px solid #b8e2c5;color:#216e39;font-weight:700;font-size:11px
}
.environment-choice span:last-child{font-size:10px;font-weight:800;color:#ff6900}

/* v12.2 — prova ausilio */
#trialWorkflow{border-left:5px solid #ff6900}
#trialWorkflow select{font-weight:800}
.trial-state-hint{margin-top:10px;padding:9px 11px;background:#fff4ec;border-radius:7px;font-size:11px}
