.workflow-card{padding:22px;margin-bottom:22px;border-left:4px solid #0369a4;background:linear-gradient(120deg,#f1f8fa,#fff)}.workflow-card h2{margin-bottom:8px}.workflow-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:15px}.workflow-links a{font-size:12px;padding:8px 12px;border:1px solid #d6e3e9;border-radius:6px;background:#fff;color:#34576e}.readiness-list{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0;padding:0;list-style:none}.readiness-list a{display:block;padding:7px 10px;border-radius:5px;background:#fff6e7;color:#7b5b25;font-size:12px}.address-lookup{padding:12px;background:#f4f8fa;border:1px solid #dce7ed;border-radius:7px;margin-bottom:12px}.address-lookup label{margin-bottom:7px}.postcode-controls{display:flex;gap:8px}.postcode-controls input{min-width:0;max-width:160px;text-transform:uppercase}.postcode-controls button{white-space:nowrap}.address-lookup select{width:100%;max-width:100%}.address-lookup [hidden]{display:none!important}.photo-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:20px;padding:18px;margin-bottom:20px}.photo-toolbar label{margin:0;min-width:180px}.photo-batch-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;padding:15px 0;position:sticky;top:0;background:#f6f8fa;z-index:3}.photo-batch-bar .check{margin:0}.review-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:18px;margin-top:20px}.review-photo-card{border:1px solid #dce5eb;border-radius:10px;background:white;overflow:hidden;position:relative}.photo-select{position:absolute;top:10px;left:10px;z-index:1;background:#fff;padding:7px;border-radius:5px;margin:0;display:flex}.photo-open{width:100%;padding:0;background:#edf1f5;border:0;cursor:zoom-in}.photo-open img{width:100%;height:180px;object-fit:contain;display:block}.photo-card-details{padding:15px}.photo-card-details strong{font-size:13px;display:block;overflow-wrap:anywhere;margin:10px 0 4px}.photo-card-details small{font-size:11px;color:#6f8291;overflow-wrap:anywhere}.photo-badges{display:flex;gap:6px;flex-wrap:wrap}.photo-badges span{font-size:10px;padding:4px 6px;background:#eef2f5;border-radius:4px}.photo-badges .ready{background:#e5f5ec;color:#24694e}.photo-badges .pending{background:#fff0d5;color:#805c18}.review-photo-card.excluded .photo-open{opacity:.6}.photo-order{display:flex;gap:6px;margin-top:12px}.photo-order button{border:1px solid #dce5eb;border-radius:5px;background:white;padding:7px 11px;cursor:pointer}.photo-viewer{width:min(1120px,95vw);max-height:92vh;padding:20px;border:1px solid #dce5eb;border-radius:12px;box-shadow:0 25px 100px #10263950}.photo-viewer::backdrop{background:#152532bb}.viewer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.viewer-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}.viewer-image{background:#edf1f5;border-radius:8px;padding:12px}.viewer-image img{display:block;width:100%;height:60vh;object-fit:contain}.viewer-navigation{display:flex;justify-content:space-between;gap:10px;margin-top:10px}.viewer-details h2{font-size:15px;overflow-wrap:anywhere}.viewer-details button{margin-bottom:10px}.viewer-details p{font-size:12px}.case-tabs{position:sticky;top:0;background:#f6f8fa;z-index:4;padding:12px 0;border-bottom:1px solid #dce5eb;overflow:auto}.case-tabs a{white-space:nowrap}.case-tabs a.active{color:#0369a4;border-bottom:2px solid #0369a4}.photo-evidence-summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px;border:1px solid #dce5eb;border-radius:8px;margin:20px 0}.photo-evidence-summary p{margin:0}section[id]{scroll-margin-top:85px}.attention a.attention-item{text-decoration:none;color:inherit}.attention a.attention-item:hover{background:#f2f7fa}.sidebar nav a.active{box-shadow:inset 3px 0 #83c5eb}
@media(max-width:800px){.viewer-layout{grid-template-columns:1fr}.viewer-image img{height:35vh}.photo-viewer{padding:14px}.viewer-details textarea{min-height:70px}.photo-toolbar label{min-width:0;width:100%}.photo-evidence-summary{align-items:flex-start;flex-direction:column}.workflow-card{padding:18px}.photo-batch-bar{gap:8px}.postcode-controls{flex-wrap:wrap}.postcode-controls input{max-width:none;flex:1}.review-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.photo-open img{height:145px}.photo-card-details{padding:10px}.photo-card-details strong{font-size:12px}.photo-order{flex-wrap:wrap}}
@media(max-width:400px){.review-photo-grid{grid-template-columns:1fr}.photo-open img{height:190px}}
.damage-diagram{position:relative;min-height:250px;display:flex;align-items:center;justify-content:center}.damage-diagram .workspace-original-diagram{pointer-events:none}.damage-diagram svg{position:relative;z-index:1}.photo-select input{margin:0}.photo-select{line-height:1}.photo-toolbar label input{margin-bottom:0}.viewer-details select{margin-bottom:10px}.photo-batch-bar #photo-save-state{font-size:12px;color:#547383}
.mobile-photo-review{display:none}.address-lookup button{border:1px solid #cedae2;border-radius:6px;background:#fff;padding:8px 12px;font-size:12px;color:#183348}.address-lookup input,.address-lookup select{font-size:13px;padding:8px;border:1px solid #cedae2;border-radius:5px}.address-lookup label{font-size:12px;display:block}.address-lookup .small{font-size:11px;line-height:1.5}
@media(max-width:800px){.mobile-photo-review{display:inline-flex}.viewer-header{position:sticky;top:-14px;background:#fff;padding:10px 0;z-index:5;gap:8px}.viewer-header strong{font-size:11px}.viewer-header button{font-size:11px;padding:7px 9px}}
/* Directory and invoice workflow */
[hidden]{display:none!important}.directory-actions{display:flex;flex-direction:column;gap:10px;align-items:flex-start}#firm-billing{border:0;padding:0;margin:20px 0}#firm-billing legend{font-weight:650;font-size:15px;margin-bottom:16px}.invoice-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:22px;align-items:start}.invoice-summary{position:sticky;top:24px}.billing-recipient{border-top:1px solid var(--line);padding-top:18px}.invoice-total{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:18px 0}.invoice-total strong{font-size:25px}.invoice-case select{min-width:180px}#invoice-review-dialog{border:1px solid var(--line);border-radius:12px;width:min(680px,calc(100% - 24px));max-height:85vh;color:var(--ink);padding:0;overflow:auto}#invoice-review-dialog::backdrop{background:#082b4377}.review-charge{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);padding-bottom:12px}.review-charge strong{white-space:nowrap}#review-recipient{white-space:pre-line}#invoice-search{min-width:0}#directory-editor{scroll-margin-top:25px}
.invoice-layout>div{min-width:0}
.case-discount-entry{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.invoice-discount-offer{max-width:none}
.directory-select{margin-top:6px;min-width:0}.directory-select-trigger{position:relative;text-align:left;width:100%;min-height:42px;border:1px solid #cfdce4;border-radius:7px;background:#fff;color:var(--ink);font-size:14px;font-weight:400;padding:10px 35px 10px 12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.directory-select-trigger::after{content:'▾';position:absolute;right:12px;top:10px}.directory-select-trigger:focus{outline:0;border-color:var(--teal);box-shadow:0 0 0 3px #0369a412}.directory-select-menu{position:fixed;z-index:100;background:white;border:1px solid #cfdce4;border-radius:9px;padding:9px;box-shadow:0 8px 30px #082b4329;display:flex;flex-direction:column;gap:7px;font-weight:400}.directory-select-menu input{margin:0;flex-shrink:0;font-size:14px}.directory-select-options{overflow:auto;min-height:0;overscroll-behavior:contain}.directory-select-option{padding:10px 11px;border-radius:5px;cursor:pointer;font-size:13px;line-height:1.45;overflow-wrap:anywhere}.directory-select-option:hover,.directory-select-option.active{background:#eef6f5;color:var(--teal-dark)}.directory-select-option[aria-selected=true]{font-weight:600}.directory-select-empty{font-size:13px;color:var(--muted);padding:8px;margin:0!important}
.invoice-case td:last-child{min-width:240px}.invoice-case label{margin:12px 0 0}.invoice-case label input{font-size:12px}#report-content-controls .text-link{display:block;margin-top:14px}
@media(max-width:1050px){.invoice-layout{grid-template-columns:1fr}.invoice-summary{position:static}}@media(max-width:480px){.directory-layout .filter-bar input{min-width:0}.review-charge{flex-direction:column;gap:5px}}

/* A shared 500 x 240 frame keeps the bitmap and marks inseparable. */
.damage-diagram svg{width:500px;max-width:100%;height:auto;flex:none;aspect-ratio:500/240}

/* Accounts show fees, cash and remaining balances as separate figures. */
.billing-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin:20px 0}.billing-kpis small{display:block;color:var(--muted);font-size:11px;margin-top:6px}.balance-kpi{border-left:3px solid var(--teal)}.billing-reconciliation{display:flex;flex-wrap:wrap;gap:12px 24px;padding:14px;background:#f3f8fa;border-radius:8px;margin:16px 0}.billing-reconciliation p{margin:0;font-size:12px}.billing-reconciliation strong{display:block;margin-top:5px}.billing-history{padding:14px 0;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px 18px}.billing-history small{display:block;flex-basis:100%;color:var(--muted)}.payment-due{padding:16px;border-radius:8px;background:#eaf6f1;display:flex;flex-direction:column;gap:6px}.payment-due strong{font-size:25px}.statement-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:20px;align-items:start}.statement-layout>section{min-width:0}.statement-receipt{position:sticky;top:20px}.firm-balance-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:20px 0}.firm-balance-card{border:1px solid var(--line);border-radius:10px;padding:18px;background:#fff;display:flex;flex-direction:column;gap:9px}.firm-balance-card h3{font-size:15px;margin:0}.firm-balance-card strong{font-size:23px}.firm-balance-card small{color:var(--muted)}.billing-table td:not(:first-child){font-variant-numeric:tabular-nums}.billing-table th{white-space:normal}.billing-table td:first-child{overflow-wrap:anywhere}
@media(max-width:1150px){.statement-layout{grid-template-columns:1fr}.statement-receipt{position:static}}@media(max-width:650px){.billing-kpis{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.billing-kpis .kpi{padding:14px}.billing-kpis .kpi strong{font-size:23px}.billing-table thead{display:none}.billing-table tbody,.billing-table tr,.billing-table td{display:block}.billing-table tr{padding:12px 0;border-bottom:1px solid var(--line)}.billing-table td{border:0;padding:6px 12px;min-width:0!important;white-space:normal}.billing-table td:before{content:attr(data-label);display:block;font-size:11px;color:var(--muted);margin-bottom:4px}.firm-balance-grid{grid-template-columns:1fr}.statement-layout .panel-body{padding:16px}.billing-history{flex-direction:column}.billing-table input{width:100%;max-width:100%;font-size:16px}}

.estimate-photo-preview{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px;margin:16px 0}.estimate-photo-preview figure{margin:0}.estimate-photo-preview img{width:100%;height:120px;object-fit:contain;border-radius:8px;background:#eef3f6}.estimate-photo-preview figcaption{font-size:12px;text-align:center}

.estimate-panel{margin-bottom:20px;overflow-wrap:anywhere}.estimate-panel>label{display:block;margin-top:18px}.estimate-panel>input{width:100%;min-width:0;margin:8px 0}.estimate-panel .actions{display:flex;gap:10px;flex-wrap:wrap}.estimate-panel .button{margin-top:12px}.estimate-panel input[type=file]{max-width:100%}

.import-file-record{display:grid;gap:6px;padding:12px 0;border-bottom:1px solid #dce5eb;overflow-wrap:anywhere}.import-file-record .text-link{font-size:12px}

.photo-drag-handle{touch-action:none;cursor:grab;min-height:44px;user-select:none}.photo-drag-handle:active{cursor:grabbing}.review-photo-card.photo-dragging{opacity:.65;outline:2px solid var(--teal)}.review-photo-card.photo-drop-before{box-shadow:inset 5px 0 var(--teal);outline:2px solid var(--teal)}.review-photo-card.photo-drop-after{box-shadow:inset -5px 0 var(--teal);outline:2px solid var(--teal)}
