*{box-sizing:border-box}body{margin:0;background:#edf3f8;color:#17334e;font:16px/1.5 system-ui,sans-serif}header{display:flex;align-items:center;gap:20px;background:#083b6a;color:white;padding:18px max(18px,calc((100vw - 1180px)/2));border-bottom:4px solid #d4ad4b}header img{width:125px;background:white;padding:7px;border-radius:6px}header strong{font-size:21px}header small{display:block}header button{margin-left:auto}main{max-width:1180px;margin:auto;padding:24px 18px}.panel{background:white;border:1px solid #d5e0eb;border-radius:12px;padding:22px;margin-bottom:20px}.login{max-width:430px;margin:35px auto}.login h1{font-size:27px}h1,h2,h3{margin:0 0 12px}h1{font-size:28px}h2{font-size:21px}p{margin:8px 0 16px}button,input,select,textarea{font:inherit}button{border:1px solid #b7cbdc;padding:11px 16px;border-radius:7px;background:white;color:#083b6a;cursor:pointer}button.primary{background:#09538c;color:white;border-color:#09538c}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #78b7e7;outline-offset:2px}label{display:block;margin:14px 0;font-weight:600}input:not([type=checkbox]),select,textarea{display:block;width:100%;margin-top:5px;padding:10px;border:1px solid #bccddd;border-radius:6px;background:white;color:#17334e}textarea{min-height:100px}input[type=checkbox]{width:20px;height:20px;accent-color:#09538c;vertical-align:middle;margin-right:8px}.page-head,.attendance{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.attendance>div:first-child{flex:1}.attendance .notice{flex-basis:100%;margin:0}.clock-actions{display:flex;gap:10px;flex-wrap:wrap}.layout{display:grid;grid-template-columns:300px 1fr;gap:20px}.job{display:block;text-align:left;width:100%;margin-top:12px;border-left:4px solid #09538c}.job.active{background:#e8f3fc}.job strong,.job small{display:block}.job small{font-size:14px;margin-top:5px}.notice{font-size:14px;color:#5c6e80}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}dl{display:grid;grid-template-columns:1fr 1fr;gap:14px}dt{font-size:14px;color:#5c6e80}dd{margin:2px 0;font-weight:600}.check{font-weight:500;padding:8px 0;border-bottom:1px solid #e4ecf3}.photos{display:flex;gap:12px;flex-wrap:wrap}.photos figure{margin:0}.photos img{max-width:150px;max-height:120px;object-fit:contain}.photos figcaption{font-size:14px}canvas{border:1px solid #b7cbdc;border-radius:7px;max-width:100%;touch-action:none;display:block}.warning{background:#fff0d4;padding:12px;border-radius:7px;color:#715000}#message:not(:empty),#loginMessage:not(:empty){padding:12px;background:#eef4fa;border-radius:7px}.print-sheet img{max-width:220px;max-height:180px}.print-sheet p{white-space:pre-wrap}.shift{border-bottom:1px solid #dae5ef;padding:12px 0}[hidden]{display:none!important}@media(max-width:760px){.layout{grid-template-columns:1fr}.panel{padding:17px}.clock-actions button{flex:1}header{gap:12px;padding:14px}header img{width:95px}dl{grid-template-columns:1fr}h1{font-size:25px}}@media print{body{background:white}header,#loginPanel,#portal{display:none!important}main{max-width:none;padding:0}.print-sheet{display:block!important}button{display:none}.print-sheet figure{break-inside:avoid}}
.point-report-narrative{white-space:pre-wrap;overflow-wrap:anywhere}
.report-sections{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.report-sections button{flex:1;min-width:140px}.schematic-tools{background:#edf5fc;padding:16px;border-radius:10px;margin:14px 0}.schematic-tools .actions{margin-top:0}.upload-schematic{margin:0;max-width:320px}.schematic-empty{border:2px dashed #b7cbdc;padding:24px;text-align:center}.field-plan{border:1px solid #b7cbdc;border-radius:8px;overflow:hidden}.field-plan button{min-width:44px;min-height:44px}#siteDrawing{width:100%;background:white}#numberedReport{margin-top:16px}#pointForm summary{cursor:pointer;font-weight:600;padding:8px 0}

.photo-report-gate{padding:18px;border:1px solid #d4ad4b;background:#fff6df;border-radius:10px;margin:16px 0}.photo-report-gate button{width:100%}

.weekly-job-card{display:block;width:100%;box-sizing:border-box;cursor:default}.weekly-job-card h3{margin:0 0 8px;font-size:18px}.weekly-job-card p{margin:0 0 10px;line-height:1.5;color:#52677c}.weekly-job-card small{display:block;margin-bottom:12px}.weekly-job-card button{min-height:44px;min-width:100px}

#jobs{display:block}.diary-day{border-bottom:1px solid #dce5ef;padding:12px 0}.diary-day:last-child{border:0}.diary-day h2{font-size:18px;margin:0 0 10px}.diary-day h2 small{font-size:13px;font-weight:400;color:#60768b;margin-left:8px}.diary-job{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px;background:#f4f7fa;border-radius:8px;margin:8px 0}.diary-job strong{font-size:16px}.diary-job small{display:block;color:#60768b;margin-top:5px}.diary-job p{font-size:14px;color:#52677c;margin:6px 0 0;line-height:1.4}.diary-job button{min-width:80px;min-height:44px;flex:none}.diary-empty{font-size:14px;color:#8191a0;margin:0 0 8px}

#portal:not(.job-open) #jobPanel,#portal:not(.job-open) #vanSection{display:none!important}#portal .layout{display:block}#portal.job-open .layout>section:first-child{display:none}#portal.report-locked #reportForm,#portal.report-locked #startJob,#portal.report-locked #jobPanel>.actions,#portal.report-locked #numberedReport,#portal.report-locked #vanSection{display:none!important}.clock-caption{padding:18px;border-radius:10px;border-left:4px solid #d4ad4b;background:#fff3d8;color:#624700;font-weight:600;line-height:1.6}#portalWeek{padding:10px;border:1px solid #b6c8d9;border-radius:6px;margin-bottom:16px}

main{max-width:1400px}.calendar-month{font-size:24px;color:#082c50;margin:18px 0}.calendar-scroll{overflow-x:auto}.month-calendar{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));min-width:770px;border-top:1px solid #ccd8e5;border-left:1px solid #ccd8e5}.calendar-heading{background:#082c50;color:white;text-align:center;font-size:13px;font-weight:600;padding:12px 4px;border-right:1px solid #ccd8e5;border-bottom:1px solid #ccd8e5}.calendar-cell{min-height:150px;background:white;border-right:1px solid #ccd8e5;border-bottom:1px solid #ccd8e5;padding:8px;min-width:0}.calendar-cell h3{font-size:14px;margin:0 0 8px;text-align:right;color:#34536d}.calendar-cell.outside-month{background:#f4f7fa}.calendar-today{background:#f0f7ff}.calendar-today h3{color:#075895;font-weight:800}.calendar-job{border-left:3px solid #09538c;background:#eaf3fb;border-radius:5px;padding:8px;margin-top:6px;overflow-wrap:anywhere}.calendar-job strong{display:block;font-size:13px;line-height:1.4}.calendar-job small{display:block;font-size:12px;color:#4f6e86;margin-bottom:4px}.calendar-job p{font-size:12px;line-height:1.4;margin:4px 0 8px;color:#52677c}.calendar-job button{width:100%;padding:7px 4px;font-size:12px;min-height:36px}@media(max-width:650px){.calendar-cell{min-height:130px}.calendar-month{font-size:20px}.calendar-scroll{margin:0 -8px}}

.calendar-map{display:block;text-align:center;padding:8px 4px;margin:6px 0;border:1px solid #b5cee2;border-radius:6px;background:white;color:#09538c;font-size:13px;text-decoration:none;min-height:36px}.calendar-map:focus-visible{outline:2px solid #09538c;outline-offset:2px}

.calendar-job .calendar-address{font-size:12px;line-height:1.4;color:#475569;overflow-wrap:anywhere;margin:6px 0}

.diary-members{margin:0 0 16px;color:#334155;font-size:14px;line-height:1.5}

.diary-members{padding:18px 20px;background:#eff6ff;border:1px solid #bfdbfe;border-left:5px solid #2563eb;border-radius:14px;margin:0 0 20px}.diary-team-title{display:block;font-size:19px;color:#15396b;margin-bottom:12px}.diary-member-badges{display:flex;gap:10px;flex-wrap:wrap}.diary-member-badge{display:inline-flex;padding:10px 16px;border-radius:999px;font-size:16px;font-weight:700;line-height:1.3}.member-colour-0{background:#dbeafe;color:#1e40af}.member-colour-1{background:#dcfce7;color:#166534}.member-colour-2{background:#f3e8ff;color:#6b21a8}.member-colour-3{background:#ffedd5;color:#9a3412}.member-colour-4{background:#cffafe;color:#155e75}

.diary-leader{display:block;font-size:17px;font-weight:700;color:#1e40af;margin:0 0 12px}.team-agreement{background:#f0f9ff;border-left:5px solid #0284c7;margin-bottom:18px}.team-agreement h2{font-size:18px}.agreement-accepted{color:#166534}

#portal.prestart-locked #reportForm,#portal.prestart-locked #startJob,#portal.prestart-locked #jobPanel>.actions,#portal.prestart-locked #numberedReport,#portal.prestart-locked #vanSection{display:none!important}.prestart-screen{margin-top:20px;padding:20px;border:2px solid #0284c7;border-radius:14px;background:#f0f9ff}.prestart-screen fieldset{margin:18px 0;padding:16px;border:1px solid #cbd5e1;border-radius:10px;background:white}.prestart-screen legend{font-weight:700;line-height:1.5}.prestart-screen label{display:flex;gap:10px;align-items:center;margin:12px 0}.prestart-screen input{width:auto}.prestart-screen p{line-height:1.5}

.original-sketch{max-width:100%;max-height:400px;object-fit:contain}
#portal.prestart-locked .report-sections{display:none!important}

.render-notice{padding:14px;background:#e0f2fe;border-left:4px solid #0284c7;color:#0c4a6e;font-weight:600;line-height:1.5}

.calendar-weekday{display:none}@media(max-width:650px){
main{padding:12px;max-width:100%}header{padding:10px;gap:8px}header img{width:76px}header strong{font-size:16px}header small{font-size:12px}.panel{padding:14px;min-width:0}.page-head h1{font-size:23px}.page-head{gap:10px}button,.calendar-map{min-height:48px}input,select,textarea{font-size:16px;max-width:100%;box-sizing:border-box}input[type=file]{width:100%}canvas{max-width:100%;touch-action:none}img{max-width:100%}.diary-members{padding:14px}.diary-member-badge{font-size:16px;padding:10px 14px}.diary-member-badges{gap:8px}.diary-leader{font-size:16px}.calendar-scroll{overflow:visible;margin:0}.month-calendar{display:block;min-width:0;border:0}.calendar-heading,.calendar-cell.outside-month,.calendar-cell:not(.calendar-has-jobs){display:none}.calendar-cell{border:1px solid #cbd5e1;border-radius:12px;padding:12px;margin-bottom:14px;min-height:0}.calendar-cell h3{text-align:left;font-size:18px;margin:0 0 10px}.calendar-weekday{display:inline}.calendar-job{padding:14px;margin-top:10px}.calendar-job strong{font-size:18px}.calendar-job small,.calendar-job p,.calendar-job .calendar-address{font-size:15px;line-height:1.5}.calendar-job button,.calendar-map{font-size:16px;padding:12px;width:100%;box-sizing:border-box}.attendance{display:block}.clock-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px}.clock-actions button{flex:1 1 140px}.prestart-screen{padding:12px}.prestart-screen fieldset{padding:12px;min-width:0}.prestart-screen legend{font-size:16px}.prestart-screen label{padding:12px 8px;min-height:48px;background:#f1f5f9;border-radius:8px}.prestart-screen input,.team-agreement input[type=checkbox]{width:22px;height:22px;flex:none}.prestart-screen button{width:100%}.report-sections{display:grid;grid-template-columns:1fr;gap:8px}.report-sections button{min-width:0;width:100%;font-size:16px}.schematic-tools{padding:12px}.schematic-tools .actions{display:grid;gap:10px}.upload-schematic{max-width:none}.actions{flex-wrap:wrap}.render-notice{font-size:15px}.photos{grid-template-columns:1fr 1fr}.field-plan{overflow-x:auto}.check{line-height:1.5}
}

.field-plan{position:relative}.field-plan>img{display:block;width:100%;height:auto}.schematic-pins{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.schematic-pins g{pointer-events:all;cursor:pointer}.schematic-pins circle{fill:#09538c;stroke:white;stroke-width:5}.schematic-pins text{fill:white;font:bold 36px system-ui;text-anchor:middle;dominant-baseline:central;pointer-events:none}.schematic-pins g:focus circle{stroke:#fbbf24;stroke-width:10}.point-photo-nav{padding:12px;background:#e0f2fe;border-radius:10px;margin:12px 0}.point-photo-nav .actions{display:flex;gap:10px}.point-photo-nav button{flex:1;min-height:48px}.point-stage-caption{font-weight:700}.point-photo-stage{padding:12px;border:1px solid #cbd5e1;border-radius:10px;margin:12px 0}

@media(max-width:650px){.schematic-pins circle{r:65px}.schematic-pins text{font-size:65px}.point-photo-nav .actions{flex-wrap:wrap}.point-photo-stage{padding:10px}}

.point-position{display:none}.field-plan{cursor:crosshair}.point-photo-stage input{min-height:48px}

.point-photo-preview{background:#f0f9ff;border:2px solid #0284c7;border-radius:12px;padding:14px;margin:12px 0}.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.preview-heading strong{font-size:20px}.preview-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.preview-columns section{min-width:0}.preview-columns h3{color:#09538c}.preview-columns img{display:block;width:100%;max-height:260px;object-fit:contain;border-radius:8px;background:white;margin-bottom:10px}.preview-columns p{color:#64748b}

.team-roster{margin:0 0 16px}.team-roster>summary,.report-menu>summary{padding:12px;font-weight:700;cursor:pointer}.team-roster .diary-members{margin-top:10px}.camera-photo-button{position:relative;background:#09538c;color:white;border-radius:10px;padding:18px;text-align:center;overflow:hidden;cursor:pointer}.camera-photo-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.camera-photo-button:focus-within{outline:3px solid #fbbf24}.photo-library-choice summary{padding:10px;cursor:pointer}
@media(max-width:650px){header small{display:none}.page-head{margin-bottom:12px}#portal.job-open>.page-head,#portal.job-open>.team-roster{display:none}.team-agreement h2{font-size:17px}.team-agreement:has(.agreement-accepted){padding:10px}.attendance .notice{display:none}.attendance h2{font-size:18px}.attendance{padding:12px}.attendance label{margin:8px 0}.attendance #shiftStatus{margin:8px 0}.clock-actions button:disabled{display:none}.calendar-job{position:relative}.calendar-map{display:inline-block;width:auto;padding:8px 12px;margin-bottom:10px}.calendar-job button{margin-top:4px}.report-menu{margin:12px 0;border:1px solid #cbd5e1;border-radius:10px}.report-menu .report-sections{margin:8px;padding:4px}#startJob:disabled{display:none}#jobPanel>dl{font-size:14px;gap:8px}#jobPanel>dl div:nth-child(3),#jobPanel>dl div:nth-child(4){display:none}.schematic-tools{padding:10px;background:transparent}.schematic-tools>.notice{font-size:14px;margin-bottom:8px}#pointForm details[data-point]{border:1px solid #cbd5e1;border-radius:12px;padding:10px;margin:12px 0}#pointForm details[data-point]>summary{font-size:18px}.point-stage-caption{display:none}.point-photo-nav{padding:0;background:transparent}.point-photo-nav button{font-size:18px}.point-photo-stage{border:0;padding:0}.photos figcaption{display:none}.preview-columns img{max-height:200px}}

#portal.job-open>.page-head,#portal.job-open>.team-roster{display:none}#attendanceMenu{background:white;border:1px solid #d5e0eb;border-radius:10px;margin:12px 0}#attendanceMenu>summary{padding:14px;font-weight:700;cursor:pointer}#attendanceMenu .attendance{margin:0;border:0}#jobPanel.showing-report>h2,#jobPanel.showing-report>dl,#jobPanel.showing-report>details,#jobPanel.showing-report>p,#jobPanel.showing-report>#startJob:disabled{display:none}#jobPanel.showing-report>.report-menu{display:block}#portal.job-open:has(#jobPanel.showing-report)>details.panel{display:none}#portal.job-open:has(#jobPanel.showing-report) #vanSection{display:none}#jobPanel.showing-photos .schematic-settings{margin-top:8px}#jobPanel.showing-report{padding-top:14px}

@media(max-width:650px){.mobile-report-pages{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 0;margin:12px 0;position:sticky;top:0;background:white;z-index:5}.mobile-report-pages button{font-size:16px;min-height:48px}.point-photo-preview .preview-columns{display:none}#jobPanel[data-report-page=schematic] .point-photo-preview{display:none}#jobPanel[data-report-page=photos] .point-photo-preview{padding:10px;margin:0 0 12px}#jobPanel[data-report-page=photos] .point-photo-preview .preview-heading{display:none}#jobPanel[data-report-page=photos] .point-photo-preview .actions{margin:0}#jobPanel[data-report-page=photos] .schematic-tools{display:none}#jobPanel.showing-report>.mobile-report-pages{display:grid}#numberedReport{margin-top:0;padding:12px}#numberedReport h2{font-size:20px}#portal.prestart-locked .mobile-report-pages,#portal.report-locked .mobile-report-pages{display:none!important}}

@media(max-width:650px){#jobPanel[data-report-page=photos] .schematic-empty{display:none}}

@media(max-width:650px){#jobPanel[data-report-page=schematic] .point-photo-preview:has([data-cancel-move]){display:block}}

.schematic-pins g{touch-action:none;user-select:none;-webkit-user-select:none}.schematic-pins g:active{cursor:grabbing}.schematic-pins g{cursor:grab}
@media(max-width:650px){#jobPanel[data-report-page=schematic] .point-photo-preview{display:block}#jobPanel[data-report-page=schematic] .point-photo-preview .actions{margin-top:8px;display:grid;grid-template-columns:1fr 1fr}#jobPanel[data-report-page=schematic] [data-open-point-photos]{grid-column:1/-1}[data-delete-point]{color:#b91c1c;border-color:#fecaca}.schematic-tools>.notice{font-size:14px}}

@media(max-width:650px){.mobile-page-menu{margin:12px 0;background:#09538c;color:white;border-radius:10px;position:sticky;top:8px;z-index:6}.mobile-page-menu>summary{padding:14px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.mobile-page-menu>summary::-webkit-details-marker{display:none}.mobile-page-menu>summary span{font-weight:700}.current-report-page{font-size:15px}.mobile-page-menu .report-sections{display:grid;grid-template-columns:1fr;padding:10px;margin:0;gap:8px}.mobile-page-menu button{text-align:left;min-height:48px}.mobile-page-menu button.primary{background:white;color:#09538c;border-color:white}#jobPanel.showing-report>.mobile-page-menu{display:block}#portal.prestart-locked .mobile-page-menu,#portal.report-locked .mobile-page-menu{display:none!important}#jobPanel[data-report-page=schematic] .schematic-tools>.notice{display:none}#jobPanel[data-report-page=schematic] #numberedReport>h2,#jobPanel[data-report-page=photos] #numberedReport>h2{display:none}#jobPanel[data-report-page=schematic] #numberedReport{border:0;padding:0}.point-photo-preview .preview-heading{font-size:16px}.point-photo-preview .actions{gap:8px}.photo-library-choice{font-size:14px}.team-roster{font-size:14px}.calendar-job{box-shadow:none}.calendar-job small{font-size:14px}#portal.job-open #message:empty{display:none}#attendanceMenu>summary{padding:10px;font-size:14px}#jobPanel>button:first-child{font-size:14px;padding:8px 12px;min-height:44px}}

@media(max-width:650px){[data-move-point]{display:none!important}#jobPanel[data-report-page=schematic] .point-photo-preview .actions{grid-template-columns:1fr}#jobPanel[data-report-page=schematic] [data-delete-point]{padding:10px}#jobPanel[data-report-page=schematic] [data-open-point-photos]{background:#09538c;color:white}}

.mobile-page-menu{margin:12px 0;background:#09538c;color:white;border-radius:10px}.mobile-page-menu>summary{padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:12px;cursor:pointer;list-style:none}.mobile-page-menu>summary::-webkit-details-marker{display:none}.mobile-page-menu .report-sections{margin:0;padding:10px}.mobile-page-menu button.primary{background:white;color:#09538c}.current-report-page{font-size:15px}#jobPanel.showing-report>.mobile-page-menu{display:block}

.job-report-dashboard{padding:16px 0}.dashboard-report-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.dashboard-report-actions button{min-height:64px;font-weight:700}.job-report-dashboard .notice{text-align:center}#portal.prestart-locked .job-report-dashboard,#portal.report-locked .job-report-dashboard{display:none!important}@media(max-width:650px){#reportForm button[type=submit]{display:none}.dashboard-report-actions{grid-template-columns:1fr;gap:10px}.dashboard-report-actions button{min-height:54px;text-align:left}.job-report-dashboard h2{font-size:22px}#jobPanel[data-report-page=dashboard]>#startJob:not(:disabled){display:block}}

.schematic-preview-footer{margin-top:20px;padding-top:16px;border-top:1px solid #d5e0eb}.schematic-preview-footer button{width:100%;min-height:50px}

.print-sheet .field-plan>img{max-width:100%;max-height:none}.field-report-preview .field-plan{max-width:650px}.field-report-preview section{break-inside:avoid}

.report-brand-heading{display:flex;align-items:center;gap:24px;border-bottom:4px solid #d4ad4b;padding:18px 0;margin-bottom:24px}.report-brand-heading img{width:140px}.report-brand-heading h1{color:#083b6a}.report-introduction h2,.report-other-services h2{color:#083b6a;border-bottom:1px solid #d4ad4b;padding-bottom:8px}.report-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.report-service-grid h3{font-size:14px;margin-bottom:5px}.report-service-grid p{font-size:12px}.report-eco-card{border-left:4px solid #d4ad4b;padding:16px;background:#edf3f8}.print-sheet a{color:#09538c}.report-other-services{break-before:page}.report-introduction{margin-bottom:28px}@media print{.report-brand-heading{break-inside:avoid}.report-service-grid>div,.report-eco-card{break-inside:avoid}}

.report-website-links{padding:12px 0;border-bottom:1px solid #d4ad4b}.report-invoice span{overflow-wrap:anywhere;font-size:12px}

@media(max-width:650px){.dashboard-report-actions{grid-template-columns:1fr 1fr;gap:12px}.dashboard-report-actions button{min-height:88px;text-align:center;background:#eff6ff;color:#083b6a;border:1px solid #d5e0eb;border-radius:14px;font-size:16px}.dashboard-report-actions button.primary{background:#09538c;color:white}#dashboardPreviewReport{width:100%;margin-top:4px;min-height:50px}.job-report-dashboard{padding:12px 0}.job-report-dashboard>p:not(.notice){font-size:14px;color:#5c6e80}.job-report-dashboard>.notice{font-size:12px;margin-top:12px}#portal.job-open:has(#jobPanel[data-report-page=dashboard]) #message{font-size:13px;padding:6px}#portal.job-open:has(#jobPanel[data-report-page=attendance]) #attendanceMenu{margin:12px 0}#jobPanel[data-report-page=dashboard]{border:0}#portal.job-open:has(#jobPanel[data-report-page=dashboard])>details.panel{display:none}}

@media screen{#printSheet{display:none!important}}

.sample-certificate{margin:14px 0;break-inside:avoid}.print-sheet .sample-certificate img{max-width:320px;width:100%;max-height:none;border:1px solid #d5e0eb}.sample-certificate p{font-size:11px;color:#5c6e80}

@media print{
 @page{size:A4;margin:15mm}
 .print-sheet{font:10pt/1.4 Arial,sans-serif;color:#17334e}
 .print-sheet h1{font-size:20pt;margin:14pt 0 8pt;break-after:avoid}
 .print-sheet h2{font-size:14pt;margin:12pt 0 6pt;break-after:avoid}
 .print-sheet h3{font-size:11pt;break-after:avoid}
 .print-sheet p{margin:5pt 0 9pt;orphans:3;widows:3}
 .report-brand-heading{margin:0 0 8pt;padding:0 0 8pt;gap:18pt}
 .report-brand-heading img{width:100pt}
 .report-brand-heading h1{margin:0 0 4pt;font-size:19pt}
 .report-contact{font-size:9pt;max-width:310pt}
 .report-website-links{padding:0 0 7pt;font-size:9pt}
 .report-invoice{break-inside:avoid;position:relative;padding-right:140pt;min-height:160pt}
 .report-invoice h2{margin-top:6pt;font-size:13pt}
 .report-invoice .sample-certificate{position:absolute;right:0;top:0;width:125pt;margin:0;text-align:center}
 .report-invoice .sample-certificate h3{font-size:9pt;margin:0 0 4pt}
 .print-sheet .sample-certificate img{width:115pt;max-width:115pt}
 .sample-certificate a,.sample-certificate p{font-size:8pt}
 .report-introduction{margin:12pt 0 0;break-inside:avoid}
 .field-report-preview{break-before:page}
 .field-report-preview>.field-plan{width:100%;max-width:100%;overflow:visible;break-inside:avoid;margin-bottom:15pt}
 .field-report-preview .field-plan>img{width:100%;max-height:180mm;object-fit:contain}
 .field-report-preview section{break-inside:auto}
 .field-report-preview .report-photo-point{break-before:page}
 .report-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:14pt}
 .report-photo-pair figure{margin:0 0 12pt;break-inside:avoid}
 .print-sheet .report-photo-pair img{width:100%;max-width:100%;max-height:95mm;object-fit:contain}
 .report-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:12pt}
 .print-sheet a{text-decoration:underline;color:#09538c}
}

#portal.prestart-locked .job-report-dashboard,#portal.report-locked .job-report-dashboard{display:block!important}.job-report-dashboard[hidden]{display:none!important}#portal.prestart-locked .report-sections{display:grid!important}.dashboard-report-actions button:disabled,.report-sections button:disabled{opacity:.5;cursor:not-allowed}.calendar-back{display:block!important;margin-bottom:14px}#calendarHome{font-size:13px;margin-left:auto}#portal.attendance-first #jobPanel>dl,#portal.attendance-first #jobPanel>details:not(.mobile-page-menu),#portal.attendance-first #jobPanel>p:not(.clock-caption){display:none}#portal.attendance-first .clock-caption{display:none}#attendanceMenu #startJob{display:block!important;width:100%;margin-top:12px}#attendanceMenu[hidden]{display:none!important}#jobPanel>.prestart-screen[hidden]{display:none!important}#portal.attendance-first #jobPanel>.actions,#portal.attendance-first #reportForm,#portal.attendance-first #numberedReport{display:none!important}@media(max-width:650px){header{flex-wrap:wrap}#calendarHome{min-height:40px}.job-report-dashboard button:disabled{display:block!important}}

#portal.prestart-locked .job-report-dashboard[hidden],#portal.report-locked .job-report-dashboard[hidden]{display:none!important}

.finish-steps{margin:18px 0;padding:16px;background:#eef5fb;border:1px solid #cad8e5;border-radius:10px}.finish-steps .actions{display:grid;grid-template-columns:1fr;gap:10px}.finish-steps button{min-height:48px}.finish-steps button:disabled{opacity:.5}#portal.attendance-first #finishSteps,#portal.report-locked #finishSteps{display:none!important}.finish-steps[hidden]{display:none!important}

#reportSignatures{padding:14px;margin-top:16px;border:1px solid #cad8e5;border-radius:10px}.signature-pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.signature-pair>section,.signature-pair>details{min-width:0}.signature-pair canvas{width:100%;background:white;touch-action:none}.signature-pair img{max-width:100%;height:auto}.signature-pair input[type=checkbox]{width:20px;flex:none}@media(max-width:760px){.signature-pair{grid-template-columns:1fr}}

.signature-name{font-weight:600;margin-top:8px}#engineerSignerName[readonly]{background:#eef4fa;color:#17334e}

.signature-dashboard-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.signature-dashboard-button small{font-weight:400}#jobPanel[data-report-page="signatures"] #reportForm>fieldset:not(#reportSignatures){display:none}#jobPanel[data-report-page="service"] #reportSignatures{display:none}#jobPanel[data-report-page="signatures"] #reportSignatures{margin-top:0}#jobPanel[data-report-page="signatures"] #reportForm button[type="submit"]{margin-top:16px}

#portal.calendar-view>.page-head,#portal.calendar-view>.team-roster{display:flex!important}#portal.calendar-view>.team-roster{display:block!important}#portal.calendar-view .layout>section:first-child{display:block!important}#portal.calendar-view #jobPanel,#portal.calendar-view #attendanceMenu,#portal.calendar-view .attendance,#portal.calendar-view #teamAgreement,#portal.calendar-view>#vanSection,#portal.calendar-view>details.panel{display:none!important}

#jobPanel[data-report-page="signatures"] #reportForm button[type="submit"]{display:block;width:100%;min-height:48px}#reportSignatures{scroll-margin-top:20px}

#jobPanel[data-report-page="dashboard"]> :not(.calendar-back):not(.job-report-dashboard){display:none!important}#portal:has(#jobPanel[data-report-page="dashboard"]) #attendanceMenu,#portal:has(#jobPanel[data-report-page="dashboard"]) #teamAgreement{display:none!important}

.section-return{margin:12px 0 20px}.section-return button{width:100%;min-height:48px;text-align:left;font-weight:600}

#finishMessage:not(:empty){padding:14px;margin-top:14px;background:white;border-left:4px solid #09538c;border-radius:6px;font-weight:600;overflow-wrap:anywhere}

.report-recovery{padding:16px;margin:16px 0;background:#fff3d8;border-left:4px solid #d4ad4b;border-radius:8px}.report-recovery button{width:100%;min-height:48px}#jobPanel:not([data-report-page="service"]) #reportRecovery{display:none!important}

.red-review-question{padding:12px 0;border-bottom:1px solid #e4ecf3}.red-review-question p{margin:6px 0;color:#52677c;font-size:14px}

.motor-evidence{padding:16px;margin:16px 0;border:2px solid #cad8e5;border-radius:12px;background:#f5f9fd}.motor-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:16px}.motor-evidence video{display:block;width:100%;max-height:400px;background:#000;border-radius:8px}.motor-evidence figure{margin:12px 0}.motor-evidence img{max-width:100%}.motor-save-status:not(:empty){font-weight:600}.motor-working-video{margin-top:20px}@media(max-width:650px){.motor-photo-pair{grid-template-columns:1fr}.motor-evidence{padding:12px}}

#vanSection[hidden]{display:none!important}#jobPanel[data-report-page="van"]>#vanSection{display:block!important}#jobPanel[data-report-page="van"]> :not(.calendar-back):not(#vanSection){display:none!important}#vanSection #vanForm{display:block!important}#portal.job-open:has(#jobPanel[data-report-page="van"]) #vanSection{display:block!important}#vanSection img{max-width:100%;height:auto}

.van-signature{margin:20px 0;padding:16px;border:1px solid #cad8e5;border-radius:10px}.van-signature canvas{display:block;width:100%;height:auto;border:1px solid #cad8e5;border-radius:8px;background:white;touch-action:none}.van-signature .check input{width:22px;flex:none}.van-signature .check{display:flex;gap:10px;align-items:flex-start}.van-signature input[readonly]{background:#eef4fa}

.evidence-camera{width:min(600px,calc(100% - 24px));max-height:90dvh;overflow:auto;border:0;border-radius:12px;padding:18px}.evidence-camera::backdrop{background:#000b}.evidence-camera video,.evidence-camera img{width:100%;max-height:60dvh;object-fit:contain}.evidence-camera .actions{display:flex;flex-wrap:wrap;gap:10px}.photo-evidence-stamp{display:block;font-size:12px;line-height:1.5;overflow-wrap:anywhere;color:#17334e}

.red-dashboard-review{margin:16px 0;padding:18px;border:1px solid #d5e0eb;border-radius:14px;background:#f5f9fd}.red-dashboard-review h3{margin:0 0 10px}.red-dashboard-review p,.red-dashboard-review li{font-size:15px;line-height:1.5;overflow-wrap:anywhere}.red-dashboard-review .red-result{display:inline-block;padding:6px 12px;border-radius:8px;font-size:20px}.red-result.passed{color:#166534;background:#dcfce7}.red-result.failed{color:#991b1b;background:#fee2e2}.red-result.pending{color:#854d0e;background:#fef3c7}.red-dashboard-review button{margin-top:12px;min-height:44px}.red-dashboard-review small{display:block;color:#5c6e80}

#jobPanel[data-report-page="signatures"] #reportForm>fieldset:not(#reportSignatures){display:none}#reportSignatures[disabled]{opacity:.65}

.capture-photo-guide{margin-bottom:24px;padding-bottom:24px;border-bottom:1px solid #cad8e5}.capture-photo-guide>h2{margin-top:0}.capture-photo-guide ul{padding-left:22px;font-size:15px;line-height:1.5}.capture-example-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.capture-example-card{min-width:0;border:1px solid #cad8e5;border-radius:12px;padding:12px;background:#f5f9fd}.capture-example-card h3{margin:0 0 10px}.capture-example-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.capture-example-pair figure{margin:0;min-width:0}.capture-example-pair figcaption{font-weight:700;margin-bottom:6px}.capture-example-pair img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:contain;background:white;border-radius:6px}.capture-example-card p{font-size:15px;line-height:1.4;margin:10px 0}.capture-example-source{font-size:12px}@media(max-width:900px){.capture-example-grid{grid-template-columns:1fr}}

.capture-example-card h4{margin:14px 0 8px;font-size:15px}

.dashboard-report-actions button[data-dashboard-page="attendance"],.dashboard-report-actions button[data-dashboard-page="safety"]{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left}.dashboard-report-actions button small{font-size:14px;font-weight:400;line-height:1.4}#jobPanel[data-report-page="safety"] .prestart-screen{display:block}#jobPanel[data-report-page="attendance"] .prestart-screen{display:none}#teamAgreement[hidden],.prestart-screen[hidden]{display:none!important}

.sketch-palette{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:8px;margin:14px 0}.sketch-palette button{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;padding:10px 6px;background:#fff;border:2px solid #c6d5e2;border-radius:10px;color:#17334e;font-size:13px;min-height:110px}.sketch-palette button[aria-pressed="true"]{border-color:#09538c;background:#e1effb;box-shadow:0 0 0 1px #09538c}.sketch-palette svg{width:72px;height:65px}.sketch-palette button>span:first-child{font-size:38px;height:65px}.sketch-size{max-width:200px}#siteDrawing{touch-action:none;cursor:crosshair;border:1px solid #9eb4c7}#sketchToolHint{font-size:14px;color:#17334e}

.sketch-palette button{touch-action:none;user-select:none}

#schematicEditor{overflow-anchor:none}#schematicEditor button{min-height:44px}#sketchDraftStatus{font-size:13px;color:#486177;margin:6px 0}#siteDrawing{aspect-ratio:5/3;height:auto;user-select:none;-webkit-user-select:none}
@media(max-width:650px){
 #schematicEditor:not([hidden]){position:fixed;inset:0;z-index:1000;background:#edf5fc;padding:max(10px,env(safe-area-inset-top)) 10px max(10px,env(safe-area-inset-bottom));overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:6px}
 #schematicEditor>.notice{font-size:13px;margin:0;order:0}#schematicEditor #siteDrawing{order:1;flex:none;width:100%}
 #schematicEditor .sketch-palette{order:2;grid-template-columns:repeat(5,minmax(0,1fr));gap:5px;margin:4px 0}
 #schematicEditor .sketch-palette button{min-height:68px;padding:4px 2px;font-size:11px;line-height:1.2;touch-action:none}
 #schematicEditor .sketch-palette svg{width:42px;height:38px}#schematicEditor .sketch-palette button>span:first-child{font-size:25px;height:38px}
 #schematicEditor .sketch-size{order:3;max-width:none;display:flex;align-items:center;gap:10px;margin:0;font-size:13px}#schematicEditor .sketch-size select{width:130px;margin:0;min-height:44px}
 #schematicEditor #sketchToolHint{order:4;font-size:13px;margin:0}#schematicEditor #sketchDraftStatus{order:5;margin:0}
 #schematicEditor>.actions{order:6;position:sticky;bottom:0;background:#edf5fc;padding:8px 0;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
 #schematicEditor>.actions button{padding:8px 4px;font-size:13px;min-height:46px}
}

.customer-signature{padding:14px;border:2px solid #09538c;border-radius:10px;background:#f4f9ff}.customer-signature h3{font-size:21px}.customer-signature canvas{width:100%;height:auto;aspect-ratio:10/3;min-height:150px;border:2px dashed #7899b6}.customer-signature button{min-height:48px}#saveSignature{display:block;width:100%;margin-top:12px;background:#09538c;color:white}#customerSignatureStatus:not(:empty){padding:10px;background:#e4eff8;border-radius:6px}

.wet-film-tests{border-top:2px solid #d4ad4b;margin:24px 0;padding-top:18px}.wet-film-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.wet-film-grid article{min-width:0;border:1px solid #cad8e5;padding:14px;border-radius:12px}.wet-film-grid img{width:100%;max-height:280px;object-fit:contain}.wet-film-grid button{width:100%;min-height:44px;margin-top:10px}.wet-film-grid small{display:block;overflow-wrap:anywhere}.schematic-pins [data-wet-marker] circle{fill:#8b4a08;stroke:white;stroke-width:4}.schematic-pins [data-wet-marker] text{font-size:24px;fill:white}.wet-film-status{font-weight:600}@media(max-width:650px){.wet-film-grid{grid-template-columns:1fr}}

.job-duration{display:block;padding:8px 10px!important;background:#dceeff;color:#083b6a;font-weight:750;border-left:4px solid #09538c;border-radius:5px;font-size:15px!important}

/* Quiet shortcut; the existing attendance and safety tiles remain direct actions. */
.team-next-action{margin:14px 0;padding:12px 14px;border:1px solid #d5e0eb;border-radius:10px;background:#f7fafc;overflow-wrap:anywhere}
.team-next-action-label{display:block;margin-bottom:4px;color:#52677c;font-size:12px;font-weight:650}
.team-next-action>button{min-height:44px;text-align:left;padding:8px 12px;font-weight:650;background:white}
.team-next-action>strong{display:block;font-size:16px}
.team-next-action>p{margin:8px 0 0;font-size:14px;line-height:1.5;color:#52677c}
@media(max-width:650px){.team-next-action>button{width:100%}}
@media print{.team-next-action{display:none!important}}

.prestart-confirmation-bar{position:sticky;top:8px;z-index:4;padding:12px 16px;background:#f0f9ff;border:1px solid #0284c7;border-radius:10px;box-shadow:0 3px 10px #083b6a18}.prestart-confirmation-bar p{margin:4px 0 8px}.prestart-confirmation-bar button{width:100%;min-height:48px}.prestart-confirmation-bar #prestartProgress{font-weight:700}
