.legionella-module{--lg-red:#fde8eb;--lg-red-line:#ecafb7;--lg-green:#e3f2ea;--lg-orange:#fff0db;color:#173e68}
.legionella-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}.legionella-heading p{margin:0}.legionella-actions,.legionella-tabs,.legionella-legend,.legionella-limits{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.legionella-limits{padding:14px 18px;background:#edf4fb;border:1px solid #d6e4f0;border-radius:12px;margin-bottom:18px}.legionella-limits span{padding:5px 8px;font-size:.85rem}.legionella-tabs{margin:18px 0}.legionella-tabs button{min-height:42px}
.legionella-filters{display:grid;grid-template-columns:120px minmax(140px,1fr) minmax(170px,2fr) minmax(150px,2fr);gap:12px;align-items:end}.legionella-filters select,.legionella-filters input{margin:6px 0 0;padding:9px;min-height:44px}
.legionella-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:16px 0}.legionella-summary>div{border:1px solid #d8e3ec;border-radius:11px;background:#fff;padding:14px}.legionella-summary strong{display:block;font-size:1.6rem;margin-top:5px}.legionella-summary small{color:#617386}
.legionella-years{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}.legionella-month{background:#fff;border:1px solid #d7e2ee;border-radius:12px;padding:14px}.legionella-month h3{margin:0 0 12px;font-size:1rem}.legionella-week,.legionella-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.legionella-week{margin-bottom:6px;text-align:center;font-size:.72rem;color:#637b91}.legionella-day{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:42px;padding:4px 0;border:1px solid #e1e8ef;background:#f6f8fb;border-radius:7px;color:#173e68;font-size:.85rem;position:relative}.legionella-day small{font-size:.6rem;line-height:1.2}.legionella-day.is-today{outline:2px solid #21587e;outline-offset:1px}.legionella-day.is-alert,.legionella-value.is-alert{background:var(--lg-red);border-color:var(--lg-red-line);color:#8d2734}.legionella-day.is-complete{background:var(--lg-green);border-color:#b3d9c4}.legionella-day.is-pending{background:var(--lg-orange);border-color:#e8ceaa}.legionella-day.is-future,.legionella-day.is-empty{color:#74879a}.legionella-day.is-activity{background:#e7eff9}.legionella-legend span{font-size:.78rem;padding:5px 8px;border:1px solid #d7e2ec;border-radius:6px;background:#f6f8fb}.legionella-legend .is-alert{background:var(--lg-red)}.legionella-legend .is-complete{background:var(--lg-green)}.legionella-legend .is-pending{background:var(--lg-orange)}
.legionella-point-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.legionella-point{border:1px solid #d7e2ed;border-radius:12px;background:#fff;display:flex;gap:12px;padding:15px;min-width:0}.legionella-point-content{min-width:0;flex:1}.legionella-point h3{margin:0 0 6px}.legionella-point p{font-size:.83rem;margin:4px 0;overflow-wrap:anywhere}.legionella-photo,.legionella-photo-empty{width:100px;height:86px;border-radius:8px;object-fit:cover;flex:0 0 auto;background:#edf2f7}.legionella-photo-empty{display:grid;place-items:center;text-align:center;font-size:.7rem;color:#667e92;padding:9px}.legionella-point button{margin-top:9px;padding:8px 10px;min-height:38px;font-size:.8rem}.legionella-assets{display:grid;gap:10px}.legionella-asset{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px;border:1px solid #d7e2ed;border-radius:10px;background:#fff}.legionella-asset small{color:#667e92}.legionella-point.is-inactive,.legionella-asset.is-inactive{background:#f6f7f9}
.legionella-dialog{width:min(950px,calc(100% - 24px));max-width:950px;padding:24px;max-height:92dvh}.legionella-dialog .dialog-heading{align-items:start}.legionella-dialog .dialog-heading h2{font-size:1.35rem}.legionella-dialog fieldset{border:1px solid #ccdbe8;border-radius:10px;padding:14px;margin:14px 0}.legionella-dialog legend{font-size:.85rem;font-weight:700;padding:0 6px}.legionella-dialog .check{margin:7px 0}.legionella-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.legionella-choices label{display:flex;align-items:center;gap:8px;border:1px solid #d7e1ea;border-radius:7px;padding:9px;background:#fff;margin:0;font-size:.85rem}.legionella-choices input{width:17px!important;height:17px;margin:0;flex-shrink:0}.legionella-choices label:has(input:checked){background:#edf5fc;border-color:#669cc6}.legionella-choices small{font-size:.7rem}.legionella-measures{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.legionella-measures input{margin:5px 0}.legionella-measures label{font-size:.82rem}.legionella-measures small{font-size:.7rem;color:#637b91}.legionella-measures label.is-alert{padding:7px;border-radius:7px;background:var(--lg-red);color:#8d2734}.legionella-value{display:inline-block;min-width:65px;border:1px solid transparent;border-radius:6px;padding:6px;text-align:center}.legionella-records table{min-width:900px}.legionella-records td{vertical-align:top}.legionella-records .is-alert-row{background:#fff2f3}.legionella-records small{color:#657b8f}.legionella-note{font-size:.82rem;color:#657b8f;margin:10px 0}.legionella-error{color:#9a2436;background:#fff0f2;padding:12px;border-radius:8px}.legionella-day-points{display:grid;gap:9px;margin:16px 0}.legionella-day-points>div{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #dae4ec;border-radius:9px;padding:12px}.legionella-dialog [role=status]{white-space:pre-wrap;overflow-wrap:anywhere}.legionella-dialog img[data-lg-photo]{width:100%;max-height:280px;object-fit:contain}.legionella-reference-info{font-size:.82rem;padding:12px;margin-top:20px;border-top:1px solid #d7e2ec}.legionella-reference-info a{text-decoration:underline}
@media(max-width:1100px){.legionella-years{grid-template-columns:repeat(2,minmax(0,1fr))}.legionella-filters{grid-template-columns:120px 1fr 1fr}.legionella-filters label:last-child{grid-column:2/-1}.legionella-point-grid{grid-template-columns:1fr}}
@media(max-width:720px){.legionella-heading{align-items:stretch;flex-direction:column}.legionella-summary{grid-template-columns:repeat(2,1fr)}.legionella-filters{grid-template-columns:1fr 1fr}.legionella-filters label:nth-child(n+3){grid-column:1/-1}.legionella-years{grid-template-columns:1fr}.legionella-choices{grid-template-columns:1fr}.legionella-measures{grid-template-columns:repeat(2,minmax(0,1fr))}.legionella-dialog{padding:16px}.legionella-point{flex-direction:column}.legionella-photo,.legionella-photo-empty{width:100%;height:150px}.legionella-asset{align-items:start;flex-direction:column}.legionella-actions button{flex:1}.legionella-limits{gap:2px;padding:10px}.legionella-limits span{font-size:.8rem}.legionella-day{min-height:44px}}
.lg-map-panel{background:#fff;border:1px solid #d7e2ed;border-radius:12px;padding:16px;min-width:0}.lg-map-toolbar{display:flex;align-items:end;flex-wrap:wrap;gap:10px;margin-bottom:12px}.lg-map-toolbar label{font-size:.83rem;min-width:140px;flex:1;margin:0}.lg-map-toolbar label:first-child{flex:2}.lg-map-toolbar label.check{display:flex;gap:8px;align-items:center;min-width:100px;flex:0 0 auto;padding:10px}.lg-map-toolbar select{margin:5px 0 0;min-height:42px;padding:8px}.lg-map-toolbar button{min-height:42px}.lg-map-zoom{display:flex;align-items:center;gap:6px}.lg-map-zoom output{min-width:45px;text-align:center;font-size:.85rem}.lg-map-edit-tools{padding:12px;border:1px solid #9ec3df;background:#eef7fe;border-radius:8px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.lg-map-edit-tools p{grid-column:1/-1;font-size:.82rem;margin:0}.lg-map-edit-tools select{margin:6px 0 0;min-height:42px}.lg-map-status:empty{display:none}.lg-map-status{font-size:.85rem;margin:10px 0}.lg-map-stage{overflow:auto;max-height:65dvh;min-height:180px;background:#e7edf1;border:1px solid #ccdce6;border-radius:9px;overscroll-behavior:contain;position:relative}.lg-map-canvas{position:relative;min-width:100%;margin:0;isolation:isolate}.lg-map-background{display:block;width:100%;height:auto;min-height:180px;user-select:none}.lg-map-markers{position:absolute;inset:0;pointer-events:none}.lg-map-marker{pointer-events:auto;position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;gap:0;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;color:#173e68;z-index:1;white-space:nowrap;max-width:160px}.lg-map-marker:focus-visible,.lg-map-marker.is-selected{outline:3px solid #e7ab37;border-radius:20px;z-index:3}.lg-map-marker:hover{z-index:4}.lg-map-pin{display:grid;place-items:center;width:34px;height:34px;background:#fff;border:2px solid #61768d;box-shadow:0 2px 4px #0005;border-radius:50%;flex-shrink:0}.lg-map-pin svg{width:23px;height:23px}.lg-map-label{background:#fffef5;color:#173e68;font-weight:700;font-size:11px;padding:4px 6px;border-radius:4px;box-shadow:0 1px 4px #0005;max-width:120px;overflow:hidden;text-overflow:ellipsis}.lg-map-label[hidden]{display:none}.lg-map-marker.is-editing{cursor:grab;touch-action:none}.lg-map-marker.is-editing:active{cursor:grabbing}.lg-source-pou .lg-map-pin{border-color:#723a91;color:#723a91}.lg-source-xarxa .lg-map-pin{border-color:#087da0;color:#087da0}.lg-map-legend{display:flex;gap:8px 16px;flex-wrap:wrap;margin:14px 0;font-size:.74rem;color:#5e768b}.lg-map-legend span{display:flex;align-items:center;gap:4px}.lg-map-legend svg,.lg-map-selected h3 svg,.lg-map-point-list button svg{height:20px;width:20px;flex-shrink:0}.lg-map-legend .lg-source-pou{color:#723a91}.lg-map-legend .lg-source-xarxa{color:#087da0}.lg-map-empty{min-height:200px;display:grid;place-content:center;text-align:center;background:#f2f6fa;border:1px dashed #b5c9d9;border-radius:9px}.lg-map-lower{display:grid;grid-template-columns:1fr 1fr;gap:16px}.lg-map-selected{border:1px solid #cedce8;border-radius:9px;padding:14px;background:#f9fbfe}.lg-map-selected h3{display:flex;align-items:center;gap:8px;margin-top:0;font-size:1rem}.lg-map-selected p{font-size:.84rem}.lg-map-selected .legionella-photo{width:100%;height:150px;object-fit:contain}.lg-map-point-list{min-width:0}.lg-map-point-list summary{padding:12px;background:#eef4fa;border-radius:7px;cursor:pointer}.lg-map-point-list button{width:100%;display:flex;align-items:center;gap:8px;text-align:left;margin:5px 0;font-size:.8rem}.lg-map-point-list small{color:#698093}.lg-point-card{display:grid;grid-template-columns:minmax(180px,1fr) minmax(0,2fr);gap:20px}.lg-point-card>div{min-width:0}.lg-point-card p{font-size:.86rem;overflow-wrap:anywhere}.lg-point-card img{width:100%;max-height:260px;object-fit:contain}.lg-point-card .legionella-photo-empty{width:100%;height:140px}.lg-point-card h3{font-size:1rem;margin:24px 0 12px}.lg-history-change{border-left:3px solid #cfdeeb;background:#f6f9fc;padding:12px;margin:8px 0}.lg-history-change p{margin:4px 0;font-size:.8rem}.lg-history-change small{color:#6a7e90}.lg-history-change img{max-height:150px;width:auto;max-width:100%}
@media(max-width:720px){.lg-map-panel{padding:10px}.lg-map-toolbar{gap:7px}.lg-map-toolbar label{min-width:120px}.lg-map-toolbar label:first-child{flex:1 1 100%}.lg-map-stage{max-height:55dvh}.lg-map-toolbar button{flex-grow:1}.lg-map-edit-tools,.lg-map-lower,.lg-point-card{grid-template-columns:1fr}.lg-map-edit-tools{padding:10px}.lg-map-marker{max-width:120px}.lg-map-pin{width:32px;height:32px}.lg-map-label{max-width:90px}.lg-point-card .legionella-records table{min-width:850px}.lg-map-selected .legionella-actions button{font-size:.78rem}}
/* Coordinates anchor the centre of the icon; the label never shifts it. */
.lg-map-marker{transform:translate(-17px,-17px)}
@media(max-width:720px){.lg-map-marker{transform:translate(-16px,-16px)}}
.lg-map-marker{width:34px;height:34px;max-width:34px}.lg-map-marker .lg-map-label{position:absolute;left:32px;top:6px;overflow:visible;max-width:none;white-space:nowrap}.lg-map-marker.is-edge .lg-map-label{left:auto;right:32px}.lg-map-cluster .lg-map-pin{font-weight:800;background:#f3f8fe}.lg-map-label-form{padding:12px;background:#f1f6fc;border-radius:8px;margin-top:8px;font-size:.83rem}.lg-map-label-form .check{display:flex;gap:8px;align-items:center}.lg-map-label-form input[type=checkbox]{width:16px}
.lg-map-canvas{min-width:0;margin:0 auto}

/* Handle gestures only inside the plan; browser navigation remains available outside it. */
.lg-map-stage{touch-action:none;cursor:grab;user-select:none;scrollbar-gutter:stable}.lg-map-stage:active{cursor:grabbing}.lg-map-zoom{padding:10px 12px;border-radius:8px;background:#eef4fa;font-size:.85rem;font-weight:600}
.lg-external-record{border:1px solid #ccd9e7;background:#fff;border-radius:12px;padding:18px;margin:16px 0}.lg-external-record.has-detection{border-color:#e8aab2;background:#fff3f4}.lg-external-title{display:flex;justify-content:space-between;gap:16px}.lg-external-title h3{margin:6px 0}.lg-external-parameters{min-width:560px;width:100%;font-size:.86rem}.lg-external-parameters td{vertical-align:top}.lg-external-parameters small{display:block;margin-top:4px}.lg-import-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(280px,1fr);gap:20px}.lg-import-layout aside{position:sticky;top:0;align-self:start}.lg-pdf-reader{width:100%;height:68vh;min-height:360px;border:1px solid #ccd9e7;border-radius:8px;background:#f5f7fb}.lg-import-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lg-import-file{padding:12px;border:1px solid #ccd9e7;border-radius:8px;margin-bottom:12px}.lg-import-file summary{cursor:pointer;font-weight:700;overflow-wrap:anywhere}.lg-import-record{margin:16px 0;padding:14px;border:1px solid #ccd9e7;border-radius:8px}.lg-param-edit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;margin:12px 0;background:#f5f7fb;border-radius:8px}.lg-alias-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:12px 0;border-bottom:1px solid #ccd9e7}.lg-import-warning{padding:10px;background:#fff2de;border-radius:6px}.lg-day-documents{font-size:8px;font-style:normal;color:#572583}.legionella-day:has(.lg-day-documents){outline:1px solid #9c6dc1;outline-offset:-1px}.legionella-dialog:has(.lg-import-layout){max-width:1300px;width:94vw}.lg-import-layout input,.lg-import-layout select{min-width:0;width:100%}@media(max-width:700px){.lg-import-layout{display:flex;flex-direction:column-reverse}.lg-import-layout aside{position:static}.lg-pdf-reader{height:42vh}.lg-import-grid,.lg-param-edit,.lg-alias-row{grid-template-columns:1fr}.lg-external-title{display:block}.lg-external-record{padding:12px}.legionella-dialog:has(.lg-import-layout){width:98vw}}
.lg-week-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;margin:4px 0 8px}.lg-week-workdays{grid-column:1/7;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;padding:2px;border-radius:7px;background:#edf2f6}.lg-week-row .legionella-day{position:relative;padding:4px 1px;min-height:43px;background:transparent;min-width:0}.lg-week-row.is-complete .lg-week-workdays,.lg-week-row.is-complete .lg-week-summary{background:#def2e4;color:#185e35}.lg-week-row.is-current .lg-week-workdays,.lg-week-row.is-current .lg-week-summary{background:#ffe9c9;color:#825309}.lg-week-row .legionella-day.is-non-control{background:#f4f6f8;color:#8895a2}.lg-week-row>button.legionella-day{color:#8798a7}.lg-week-summary{grid-column:1/7;border:0;border-radius:5px;padding:4px 2px;font-size:10px;line-height:1.3;background:#eef3f7;color:#546e85;min-height:25px;cursor:pointer}.lg-week-alert{background:#fce0e4;color:#a32940;border-radius:3px;padding:1px 3px}.lg-day-alert{position:absolute;top:0;right:2px;background:#cf4656;color:white;font-size:9px;font-style:normal;width:12px;border-radius:50%}.lg-week-row .legionella-day small{font-size:9px}.legionella-legend .is-current{background:#ffe9c9;color:#825309}.lg-shared-note{background:#eaf4fc;border-left:3px solid #4c88b8;padding:12px;border-radius:6px;font-size:.85rem}.lg-plan-point{display:grid;grid-template-columns:1fr 1fr;gap:14px;padding:12px 0;border-bottom:1px solid #d7e2ed}.lg-plan-point .check{display:flex;align-items:center;gap:8px;font-size:.85rem}.lg-plan-point input[type=checkbox]{width:18px;flex-shrink:0}.lg-plan-point label{font-size:.82rem}.lg-local-holiday{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin:10px 0}.lg-local-holiday label{margin:0}.lg-local-holiday button{margin-bottom:0}.legionella-month{min-width:0}@media(max-width:720px){.lg-plan-point,.lg-local-holiday{grid-template-columns:1fr}.lg-week-summary{font-size:11px}.lg-week-row .legionella-day{min-height:46px}}

.lg-repeat-sample{display:block;margin-top:8px;min-height:44px;white-space:nowrap}.lg-all-done{padding:14px;background:var(--lg-green);border-radius:9px}.lg-other-week-readings{margin:14px 0}.lg-other-week-readings summary{min-height:44px;padding:12px;cursor:pointer}

.lg-control-groups{display:grid;gap:18px;min-width:0;margin:14px 0 20px}
.lg-control-group{min-width:0;border:1px solid #cfdeeb;border-radius:5px;overflow:hidden;background:#fff}
.legionella-dialog .lg-control-group-heading{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:12px;margin:0;padding:9px 12px;background:#eaf2f9;border-bottom:1px solid #cfdeeb;font-size:.94rem;line-height:1.3}
.legionella-dialog .lg-control-group-heading>span:first-child{grid-column:2;text-align:center;color:#075985;overflow-wrap:anywhere}
.lg-control-group-count{grid-column:3;justify-self:end;flex-shrink:0;font-size:.78rem;font-weight:800;color:#b42332;white-space:nowrap}
.lg-control-row{box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;min-height:48px;padding:1px 10px 1px 12px}
.lg-control-row+.lg-control-row{border-top:1px solid #e2eaf1}
.lg-control-identity{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 12px;min-width:0;line-height:1.35}
.lg-control-name{font-size:.88rem;overflow-wrap:anywhere}
.legionella-module .lg-control-detail{display:inline;font-size:.77rem;color:#60788e;overflow-wrap:anywhere}
.legionella-dialog .lg-control-row>button{flex:0 0 auto;min-height:44px;margin:0;padding:8px 12px;font-size:.84rem;line-height:1.2;border-radius:5px;white-space:nowrap}
.lg-control-row:has(>button:hover){background:#f7fafc}
@media(max-width:720px){.lg-control-groups{gap:16px}.legionella-dialog .lg-control-group-heading{padding:9px 10px;font-size:.87rem}.lg-control-group-count{font-size:.73rem}.lg-control-row{gap:8px;padding:1px 6px 1px 10px}.lg-control-identity{display:block;padding:4px 0}.lg-control-name{display:block;font-size:.83rem}.legionella-module .lg-control-detail{display:block;font-size:.72rem;margin-top:2px}.legionella-dialog .lg-control-row>button{padding:8px 10px;font-size:.8rem}}

@media(max-width:480px){.legionella-dialog .lg-control-group-heading{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}.legionella-dialog .lg-control-group-heading>span:first-child{grid-column:1/-1}.lg-control-group-count{grid-column:2;grid-row:2}}

.legionella-day .lg-day-treatment{display:block;position:static;font-size:.55rem;line-height:1.3;font-style:normal;font-weight:800;background:#fff0d4;color:#795000;border-radius:3px;padding:1px 3px;margin-top:2px}.legionella-day .lg-day-treatment.is-external{background:#efe7f9;color:#64418c}.legionella-legend .lg-treatment-legend{background:#fff0d4;color:#795000}.legionella-legend .lg-treatment-legend.is-external{background:#efe7f9;color:#64418c}.legionella-day:has(.lg-day-treatment){min-height:58px}.fleet-water-tank p{font-size:.85rem;color:#61778c}

.lg-week-summary .lg-week-treatments{display:block;font-weight:700;color:#795000;font-size:.68rem;margin-top:3px}
/* The full control row is the registration action. */
.legionella-dialog button.lg-control-row-action{display:flex;width:100%;min-height:48px;margin:0;padding:12px;gap:12px;border:0;border-radius:0;background:#fff;color:inherit;text-align:left;font:inherit;cursor:pointer;box-shadow:none;white-space:normal}
.legionella-dialog button.lg-control-row-action+.lg-control-row-action{border-top:1px solid #e2eaf1}
.legionella-dialog button.lg-control-row-action:hover{background:#f1f7fc}
.legionella-dialog button.lg-control-row-action:focus-visible{outline:3px solid #2f72a8;outline-offset:-3px;background:#edf5fc}
.lg-control-row-action .lg-control-identity{flex:1;min-width:0}
.lg-control-row-action .lg-control-open{flex:0 0 auto;font-size:1.4rem;line-height:1;color:#61778c}
@media(max-width:720px){.legionella-dialog button.lg-control-row-action{padding:10px;gap:8px}}

/* Weekly print action occupies the final cell after the weekly summary. */
.lg-week-print{grid-column:7;min-width:0;min-height:30px;border:1px solid #b8cbdc;border-radius:5px;background:#fff;color:#173e68;font-size:9px;padding:3px 1px;cursor:pointer}.lg-week-print:hover{background:#e8f3fa}.lg-week-print:focus-visible{outline:3px solid #de8434;outline-offset:2px}
