:root{color:#16202a;--accent:#075985;--surface:#fff;--border:#d6dde2;--muted:#52616d;background:#f5f7f8;font-family:system-ui,sans-serif}*{box-sizing:border-box}body{margin:0}.app-nav{border-bottom:1px solid var(--border);background:var(--surface);flex-wrap:wrap;align-items:center;gap:1rem;padding:.75rem max(1rem,50vw - 36rem);display:flex}.app-nav-user{color:var(--muted);margin-left:auto}.app-nav form{margin:0}.logout-button{color:var(--muted);background:0 0;padding:.5rem;font-weight:400}.logout-button:hover,.logout-button:focus-visible{background:#e9eef1}.narrow-shell{max-width:42rem}a{color:var(--accent)}button,input,select,textarea,.button,.text-link{font:inherit}button,input,select,textarea,.button{min-height:44px}button,.button{background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:.5rem;justify-content:center;align-items:center;padding:.6rem 1rem;font-weight:700;text-decoration:none;display:inline-flex}button:disabled{cursor:wait;opacity:.7}.page-shell{max-width:48rem;margin:0 auto;padding:1rem}.page-shell.has-save-bar{padding-bottom:7rem}.page-header,.section-heading{justify-content:space-between;align-items:center;gap:1rem;display:flex}.page-header{margin-bottom:1.5rem}.page-header h1,.detail-section h2{margin:0}.eyebrow{color:var(--muted);margin:0 0 .25rem;font-size:.875rem}.text-link{align-items:center;min-height:44px;display:inline-flex}.card-list{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.job-card,.empty-state,.detail-section,.job-form,.form-errors{border:1px solid var(--border);background:var(--surface);border-radius:.75rem;display:block}.job-card{min-height:44px;color:inherit;padding:1rem;text-decoration:none}.job-card>*{color:var(--muted);margin-top:.35rem;display:block}.job-card strong{color:inherit;margin-top:0}.job-card .job-card-heading{justify-content:space-between;align-items:flex-start;gap:.75rem;margin-top:0;display:flex}.job-card-heading strong{min-width:0}.job-list-filter{align-items:end;gap:.75rem;margin-bottom:1rem;display:flex}.job-list-filter .field{flex:auto}.job-list-filter select{background:var(--surface)}.pagination{justify-content:space-between;gap:1rem;margin-top:1rem;display:flex}.button-secondary{border:1px solid var(--border);background:var(--surface);color:var(--accent)}.empty-state,.detail-section,.form-errors{padding:1rem}.job-form{gap:1rem;padding:1rem;display:grid}.field{gap:.35rem;display:grid}.field label{font-weight:700}.field input,.field select,.field textarea{border:1px solid var(--border);border-radius:.5rem;width:100%;padding:.6rem}.field textarea{min-height:7rem}.field-error,.form-errors{color:#b42318}.field-error{margin:0}.field-help{color:var(--muted);margin:0}.checkbox-list{gap:.5rem;display:grid}.field .checkbox-option{align-items:center;gap:.65rem;min-height:44px;font-weight:400;display:flex}.field .checkbox-option input{width:auto;margin:0}.detail-section{margin-top:1rem}.detail-list{gap:.75rem;display:grid}.detail-list div{gap:.2rem;display:grid}.detail-list dt{color:var(--muted);font-size:.875rem}.detail-list dd{margin:0}.job-information-primary{margin-bottom:0}.job-information-details{border-top:1px solid var(--border);margin-top:.75rem}.job-information-details summary{min-height:44px;color:var(--accent);cursor:pointer;padding:.65rem 0;font-weight:700}.job-information-details .detail-list{margin:.5rem 0 0}.status{color:#075985;background:#dbeafe;border-radius:99rem;padding:.35rem .6rem;font-weight:700}.status-in_progress{color:#075985;background:#dbeafe}.status-under_review{color:#6b4f00;background:#fff1c2}.status-changes_requested{color:#912018;background:#fee4e2}.status-completed{color:#374151;background:#e5e7eb}.status-notice{color:#5f4300;background:#fff8e1;border:1px solid #f0c36d;border-radius:.75rem;margin-top:1rem;padding:.85rem 1rem}.status-notice p{white-space:pre-wrap;margin:.35rem 0 0}.editing-notice{color:var(--muted);margin:1rem 0 0;font-size:.875rem}.job-actions h2{margin-bottom:.25rem}.status-actions{gap:.75rem;margin-top:.75rem;display:grid}.status-actions form{margin:0}.status-return-form{gap:.35rem;display:grid}.status-return-form label{font-weight:700}.status-return-form textarea{border:1px solid var(--border);border-radius:.5rem;width:100%;padding:.6rem}.status-return-form button{background:#b42318;justify-self:start}.status-history{gap:.75rem;margin:1rem 0 0;padding-left:1.5rem;display:grid}.status-history span{color:var(--muted);margin-top:.2rem;font-size:.875rem;display:block}.status-history p,.data-readonly{white-space:pre-wrap}.status-history-panel summary{cursor:pointer;min-height:44px;padding:.65rem 0;font-weight:700}.report-link p{color:var(--muted)}.photo-capture{gap:.75rem;margin-top:.75rem;display:grid}.photo-add-controls{align-items:end;gap:.75rem;display:grid}.photo-category-field{gap:.35rem;display:grid}.photo-category-field label{font-size:.875rem;font-weight:700}.photo-category-field select{border:1px solid var(--border);background:var(--surface);border-radius:.5rem;width:100%;padding:.6rem}.file-upload{justify-items:start;gap:.35rem;display:grid;position:relative}.file-upload-input{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;min-height:0;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-upload-button{background:var(--accent);color:#fff;cursor:pointer;border-radius:.5rem;justify-content:center;align-items:center;gap:.5rem;min-height:48px;padding:.7rem 1.15rem;font-weight:700;display:inline-flex}.file-upload-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-width:2px;width:1.25rem;height:1.25rem}.file-upload-input:focus-visible+.file-upload-button{outline-offset:2px;outline:3px solid #7dd3fc}.file-upload-help{color:var(--muted);margin:0;font-size:.875rem;font-weight:400}.file-upload-disabled{opacity:.6}.file-upload-disabled .file-upload-button{cursor:not-allowed}.outbox-warning{color:#664d03;background:#fff3cd;border-radius:.5rem;margin:0;padding:.75rem}.photo-error{color:#b42318;margin:.35rem 0 0}.outbox-list,.photo-grid{gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.outbox-list li{border:1px solid var(--border);border-radius:.5rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem;display:flex}.outbox-list span{color:var(--muted);margin-top:.2rem;display:block}.photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:1rem}.photo-grid li{min-width:0}.photo-thumbnail{width:100%;min-height:0;color:inherit;background:0 0;border-radius:.5rem;padding:0;display:block;position:relative;overflow:hidden}.photo-thumbnail img{aspect-ratio:4/3;border-radius:inherit;object-fit:cover;width:100%;display:block}.photo-expand-icon{fill:none;stroke:#fff;stroke-linecap:round;stroke-width:1.8px;background:#16202abf;border-radius:999px;width:2rem;height:2rem;padding:.35rem;position:absolute;bottom:.5rem;right:.5rem}.photo-thumbnail:hover .photo-expand-icon,.photo-thumbnail:focus-visible .photo-expand-icon{background:var(--accent)}.photo-thumbnail:focus-visible{outline-offset:2px;outline:3px solid #7dd3fc}.photo-lightbox{color:#fff;background:#111827;border:0;border-radius:.75rem;width:min(94vw,80rem);max-width:none;height:min(92vh,60rem);max-height:none;padding:0}.photo-lightbox::backdrop{background:#0f172ad1}.photo-lightbox-content{grid-template-rows:auto minmax(0,1fr) auto;height:100%;display:grid}.photo-lightbox form{justify-content:flex-end;margin:0;padding:.5rem;display:flex}.photo-lightbox-close{color:#16202a;background:#fff}.photo-lightbox img{object-fit:contain;width:100%;height:100%;min-height:0;display:block}.photo-lightbox-caption{color:#16202a;white-space:pre-wrap;background:#fff;grid-template-columns:auto minmax(0,1fr);gap:.75rem;padding:.75rem 1rem;display:grid}.photo-lightbox-caption span{overflow-wrap:anywhere;min-width:0;margin:0}.photo-grid>li>span{margin-top:.25rem;font-size:.875rem;display:block}.photo-comment-form,.summary-form{gap:.35rem;margin-top:.5rem;display:grid}.photo-delete-form{gap:.35rem;margin-top:.75rem;display:grid}.photo-comment-form label,.summary-form label{font-size:.875rem;font-weight:700}.photo-comment-form textarea,.summary-form textarea{border:1px solid var(--border);border-radius:.5rem;width:100%;padding:.6rem}.photo-delete-form button{justify-self:start}.unsaved-field textarea{background:#fffaf0;border-color:#d69e2e;box-shadow:0 0 0 1px #d69e2e}.unsaved-label{color:#7a4d00;justify-self:start;margin:0;font-size:.8rem;font-weight:700}.save-bar{z-index:20;right:1rem;bottom:max(.75rem, env(safe-area-inset-bottom));background:#fff8e1;border:1px solid #d69e2e;border-radius:.75rem;justify-content:space-between;align-items:center;gap:1rem;max-width:46rem;margin:0 auto;padding:.75rem;display:none;position:fixed;left:1rem;box-shadow:0 .5rem 1.5rem #16202a2e}.save-bar-visible{display:flex}.save-bar p{color:#5f4300;margin:0;font-weight:700}.save-bar button{flex:none}.save-bar-emphasis{animation:.7s ease-out save-bar-emphasis}@keyframes save-bar-emphasis{0%,to{box-shadow:0 .5rem 1.5rem #16202a2e}50%{box-shadow:0 0 0 .35rem #d69e2e59,0 .5rem 1.5rem #16202a2e}}@media (prefers-reduced-motion:reduce){.save-bar-emphasis{animation:none}}.danger-button{background:#b42318}.report-toolbar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.report-header{text-align:center;margin:1rem 0 1.5rem}.report-header h1{margin:0}.report-photos{gap:1.5rem;margin:1rem 0 0;padding-left:1.5rem;display:grid}.report-photos .photo-thumbnail{max-width:34rem}.photo-category{color:var(--muted);margin:.5rem 0 0;font-weight:700}.print-report{display:none}@media (width>=48rem){.page-shell{padding:2rem}.job-card{grid-template-columns:1.5fr auto;column-gap:1rem;display:grid}.job-card>:first-child{grid-row:span 3}.photo-add-controls{grid-template-columns:minmax(0,13rem) auto}}@page{size:A4 landscape;margin:8mm}@media print{:root,body{color:#000;background:#fff}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.app-nav,.no-print,.photo-lightbox,.save-bar{display:none!important}.screen-report{display:none}.print-report{display:block}.print-sheet{break-after:page;grid-template-rows:auto minmax(0,1fr) auto;gap:3mm;width:100%;height:194mm;font-size:9pt;display:grid;overflow:hidden}.print-sheet:last-child{break-after:auto}.print-sheet-header{border:.4mm solid #475569;grid-template-columns:58mm minmax(0,1fr);display:grid}.print-title{border-right:.4mm solid #475569;flex-direction:column;justify-content:center;padding:3mm 4mm;display:flex}.print-title p{color:#475569;letter-spacing:.12em;margin:0 0 1mm;font-size:8pt;font-weight:700}.print-title h1{margin:0;font-size:16pt;line-height:1.25}.print-job-meta{grid-template-columns:repeat(4,minmax(0,1fr));margin:0;display:grid}.print-job-meta div{border-bottom:.2mm solid #cbd5e1;border-right:.2mm solid #cbd5e1;min-width:0;padding:1.5mm 2mm}.print-job-meta div:nth-child(4),.print-job-meta div:nth-child(6),.print-job-meta div:last-child{border-right:0}.print-job-meta div:last-child{border-bottom:0}.print-job-meta .print-meta-wide{grid-column:span 2}.print-job-meta .print-meta-full{grid-column:1/-1}.print-job-meta dt{color:#475569;font-size:7pt;font-weight:700}.print-job-meta dd{margin:.5mm 0 0;line-height:1.25}.print-photo-area{border:.4mm solid #475569;min-height:0;padding:2mm}.print-photo-grid{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(3,minmax(0,1fr));gap:2mm;height:100%;margin:0;padding:0;list-style:none;display:grid}.print-photo-grid.print-photo-grid-small{grid-template-rows:repeat(2,minmax(0,1fr));grid-template-columns:repeat(2,minmax(0,1fr))}.print-photo-grid.print-photo-grid-single{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr)}.print-photo-grid li,.print-photo-grid figure{min-width:0;min-height:0}.print-photo-grid figure{border:.2mm solid #94a3b8;grid-template-rows:minmax(0,1fr) auto;height:100%;margin:0;display:grid}.print-photo-grid img{object-fit:contain;width:100%;height:100%;min-height:0;display:block}.print-photo-grid figcaption{white-space:pre-wrap;border-top:.2mm solid #94a3b8;grid-template-columns:auto minmax(0,1fr);gap:2mm;padding:1.5mm 2mm;line-height:1.25;display:grid}.print-photo-grid figcaption strong{color:#334155}.print-empty-photos{margin:0}.print-sheet-footer{border:.4mm solid #475569;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:4mm;padding:2mm 3mm;display:grid}.print-sheet-footer div{grid-template-columns:auto minmax(0,1fr);gap:3mm;display:grid}.print-sheet-footer strong{color:#334155;white-space:nowrap}.print-sheet-footer p{white-space:pre-wrap;margin:0;line-height:1.35}.print-sheet-footer>span{color:#475569;white-space:nowrap;font-size:8pt}}
