.cleaning-calendar{container-type:inline-size;min-width:0}
.cleaning-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin-top:20px;align-items:start}
.cleaning-day{background:#f3f6f7;border:1px solid #e3e9eb;border-radius:10px;padding:10px;min-width:0;min-height:180px}
.cleaning-day.is-today{border-color:#179a83;background:#edf8f4}
.cleaning-week h3{margin:0 0 14px;font-size:14px;line-height:1.5}
.cleaning-week small{display:block;color:#526b75;font-size:12px;font-weight:400;margin-top:4px}
button.cleaning-visit{display:flex;flex-direction:column;align-items:flex-start;gap:7px;background:#fff;color:#163842;border:1px solid #dce7e5;border-left:3px solid #2db786;border-radius:7px;padding:12px 10px;margin:0 0 10px;width:100%;height:auto;min-height:145px;text-align:left;white-space:normal;line-height:1.4;font-weight:400;box-shadow:0 2px 4px #15333d06}
button.cleaning-visit:hover{background:#fafffd;border-color:#168d77}
button.cleaning-visit:focus-visible,.cleaning-calendar button:focus-visible,.cleaning-calendar select:focus-visible,.cleaning-calendar input:focus-visible{outline:3px solid #087b69;outline-offset:3px}
.cleaning-time{font-size:13px;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.cleaning-centre{font-size:14px;font-weight:700;overflow-wrap:anywhere}
.cleaning-person,.cleaning-client{font-size:12px;color:#526b75;overflow-wrap:anywhere}
.cleaning-week .job-state{font-size:11px;max-width:100%;white-space:normal;margin-top:2px}
.cleaning-filters{display:flex;flex-wrap:wrap;align-items:end;gap:12px;margin:20px 0 12px}
.cleaning-filters label,.cleaning-date{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;min-width:0}
.cleaning-filters label{flex:1 1 150px;max-width:320px}
.cleaning-filters select{width:100%;min-width:0;max-width:100%;height:40px}
.cleaning-navigation{flex-wrap:wrap;align-items:end}
.cleaning-date input{height:40px;max-width:180px}
.cleaning-summary{color:#274650;font-weight:600;font-size:13px;line-height:1.7}
.cleaning-summary span{font-weight:400;color:#526b75}
.cleaning-empty{padding:16px;background:#f3f6f7;border-radius:8px;line-height:1.6}
.cleaning-warning{padding:12px;background:#fff3d4;color:#724100;border-radius:7px}
.cleaning-conflict{font-size:12px;color:#994500;font-weight:600}
button.cleaning-visit.has-conflict{border-left-color:#ce760d}
.cleaning-list{grid-template-columns:1fr}
.cleaning-list .cleaning-day{min-height:0;display:grid;grid-template-columns:150px 1fr;gap:14px}
.cleaning-list .cleaning-day-visits{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.cleaning-list .cleaning-visit{margin:0}
@container (max-width:1100px){
 .cleaning-week{grid-template-columns:1fr}
 .cleaning-day{min-height:0;display:grid;grid-template-columns:130px 1fr;gap:14px}
 .cleaning-day-visits{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}
 button.cleaning-visit{margin:0}
}
@container (max-width:560px){
 .cleaning-day,.cleaning-list .cleaning-day{display:block}
 .cleaning-day-visits,.cleaning-list .cleaning-day-visits{grid-template-columns:1fr}
 .cleaning-navigation{display:grid;grid-template-columns:1fr 1fr;width:100%}
 .cleaning-date input{max-width:100%;min-width:0;width:100%}
 .cleaning-filters label{flex-basis:42%;max-width:none}
}
.job-form fieldset .check{display:inline-flex;margin:6px 18px 6px 0}
#cleaning-content .bar{gap:12px;flex-wrap:wrap}
#cleaning-content .bar h2{font-size:19px;line-height:1.4}

#dlg .job-form label[hidden]{display:none!important}.cleaning-invoice-note{padding:0 24px}

.cleaning-drop-hours{display:none}.cleaning-dragging .cleaning-drop-hours{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin:8px 0;grid-column:1/-1}.cleaning-drop-hours span{padding:8px 2px;background:white;border:1px dashed #96b8b1;border-radius:5px;font-size:11px;text-align:center}.cleaning-drop-over{background:#c8f3e5!important;outline:2px solid #168d77}.cleaning-visit[draggable=true]{cursor:grab}.cleaning-move-button{margin:-5px 0 14px;font-size:12px;color:#126f5e}.cleaning-day-visits:has(.cleaning-move-button){display:flex;flex-direction:column}

.cleaning-day{position:relative}.cleaning-dragging .cleaning-drop-hours{position:absolute;z-index:5;top:55px;left:4px;right:4px;padding:5px;background:#f1faf7;box-shadow:0 8px 20px #143b432b;border-radius:8px}.cleaning-filters select{padding-top:0;padding-bottom:0;line-height:normal}

.cleaning-draggable{cursor:grab;user-select:none}.cleaning-dragging{cursor:grabbing}

.cleaning-staff-row{margin:16px 0;padding:16px;border:1px solid #d9e5e8;border-radius:16px;background:linear-gradient(145deg,#fff,#f2f8f8);box-shadow:0 4px 0 #d8e4e7,0 9px 22px #12343e0d}.cleaning-staff-row>h3{margin:0 0 12px;color:#173e47}.cleaning-staff-agenda .cleaning-visit{margin-bottom:8px}#cleaning-batch-preview{overflow:auto;max-height:330px}#cleaning-content .bar{flex-wrap:wrap} @media(max-width:700px){.cleaning-staff-row{padding:10px}.cleaning-staff-agenda .cleaning-week{display:block}.cleaning-staff-agenda .cleaning-day{margin-bottom:10px}}

.cleaning-slot{display:flex;flex-wrap:wrap;align-items:end;gap:10px;padding:10px;margin:8px 0;border:1px solid #d9e5e8;border-radius:12px;background:#f6fafa}.cleaning-slot label{flex:1;min-width:120px}.cleaning-slot input,.cleaning-slot select{display:block;width:100%}.cleaning-slot button{flex:0 0 auto}
.cleaning-absence{padding:8px;border-radius:8px;background:#fff0d6;border:1px solid #eed29c;color:#634c21;font-size:12px}
