/* 1.0.14 owner-acceptance corrections: invoice viewer, print host, save feedback, control captions, view tracking. */

/* Existing-invoice viewer (branded RAD document inside the standard dialog). */
dialog.rad-invoice-viewer{width:min(900px,calc(100vw - 16px));max-height:calc(100dvh - 16px);padding:0}
dialog.rad-invoice-viewer main{padding:0 12px 16px}
.rad-inv-summary{margin:10px 0 6px;color:#d8d8d8;font-weight:600}
.rad-inv-actions{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.rad-inv-actions .btn{min-height:44px}
.rad-inv-sheet{padding:6px 0 0;overflow:auto}
.rad-invoice-doc{min-height:0}
.rad-inv-party{font-size:9.5pt;line-height:1.5;color:#111;overflow-wrap:anywhere}
.rad-inv-k{color:#555;font-weight:700}
.rad-inv-kv span{font-size:9pt;color:#111;text-align:right;flex:1;overflow-wrap:anywhere}
.rad-inv-table td{vertical-align:top}
.rad-inv-desc{white-space:pre-wrap;overflow-wrap:anywhere}
.rad-inv-num{text-align:right;white-space:nowrap}
.rad-inv-table th:nth-child(n+2){text-align:right}
.rad-inv-notes{white-space:pre-wrap;font-size:9pt;color:#222;line-height:1.45;margin:4px 0 0}
.rad-inv-loading,.rad-inv-error{padding:18px 4px}
.rad-inv-receipts{margin-top:14px;border-top:1px solid #333;padding-top:10px}
.rad-inv-receipt{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0}
.rad-inv-receipt span{flex:1 1 220px}
.rad-inv-edit{display:grid;gap:10px;padding-top:8px}
.rad-inv-edit-line{display:grid;grid-template-columns:minmax(0,1fr) 90px 120px 110px 44px;gap:8px;align-items:end;border-bottom:1px solid #2a2a2a;padding-bottom:8px}
.rad-inv-edit-line textarea{width:100%;resize:vertical}
.rad-inv-edit-amt{align-self:center;text-align:right;font-weight:700}
@media (max-width:700px){
 .rad-inv-edit-line{grid-template-columns:1fr 1fr}
 .rad-inv-edit-desc{grid-column:1/-1}
 .rad-invoice-doc .doc-meta{flex-direction:column}
}

/* Print host: only the branded invoice/receipt prints, at full length (multi-page invoices are not clipped). */
#rad-print-host{display:none}
@media print{
 body.rad-print-host-active>*:not(#rad-print-host){display:none!important}
 body.rad-print-host-active #rad-print-host{display:block!important}
 #rad-print-host .doc-page{height:auto!important;min-height:10.5in!important;overflow:visible!important;box-shadow:none!important;width:100%!important}
 #rad-print-host .doc-table tr{break-inside:avoid}
 #rad-print-host .doc-table thead{display:table-header-group}
}

/* U-8 / U-5: one standard Saving… / Saved ✓ / Failed banner, kept in view at the top of the form. */
.rad-ops-dialog>header{position:sticky;top:0;z-index:3;background:inherit}
.rad-ops-dialog>[role=alert]:not(:empty),.rad-save-status:not([hidden]){position:sticky;top:52px;z-index:3}
.rad-save-status{margin:8px 12px;padding:10px 12px;border-radius:8px;font-weight:700;background:#1d2633;color:#dbe8ff;border:1px solid #33465f}
.rad-save-status[data-state=saving]{background:#1d2633;color:#dbe8ff}
.rad-save-status[data-state=saved]{background:#12301e;color:#b8f5cf;border-color:#2a6b44}
.rad-save-status[data-state=failed]{background:#3a1717;color:#ffd2d2;border-color:#7a2a2a}
.rad-ops-dialog>[role=alert]:not(:empty){margin:8px 12px;padding:10px 12px;border-radius:8px;background:#3a1717;color:#ffd2d2;border:1px solid #7a2a2a;font-weight:700}

.rad-save-toast{position:fixed;top:calc(12px + env(safe-area-inset-top,0px));left:50%;transform:translateX(-50%);z-index:2147483000;max-width:calc(100vw - 32px);padding:12px 18px;border-radius:10px;font-weight:800;background:#12301e;color:#b8f5cf;border:1px solid #2a6b44;box-shadow:0 8px 24px #000a;pointer-events:none}
.rad-save-toast button{pointer-events:auto}
.rad-save-toast button{margin-left:10px;min-height:36px;padding:6px 12px;border-radius:8px;border:1px solid #b8f5cf;background:transparent;color:inherit;font-weight:800;cursor:pointer}
.rad-save-toast[data-state=failed]{background:#3a1717;color:#ffd2d2;border-color:#7a2a2a}

/* U-2: radio and checkbox captions sit beside their controls on one line. */
.rad-ops-dialog label:has(>input[type=radio]),.rad-ops-dialog label:has(>input[type=checkbox]),
.rad-flex-management label:has(>input[type=radio]),.rad-flex-management label:has(>input[type=checkbox]){display:flex!important;flex-direction:row!important;align-items:center;gap:10px;min-height:44px;text-transform:none;letter-spacing:0;font-weight:600;cursor:pointer}
.rad-ops-dialog label>input[type=radio],.rad-ops-dialog label>input[type=checkbox]{width:22px!important;height:22px;min-height:0!important;flex:0 0 22px;margin:0}
.rad-contact-roles{display:flex;flex-wrap:wrap;gap:4px 18px}
/* U-1: jump links to Contacts and Service locations at the top of the customer form. */
.rad-customer-jump{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 8px}

/* L-12: visible calendar/clock picker on dark date and time fields. */
input[type=date],input[type=time],input[type=datetime-local]{color-scheme:dark}
.doc-page input[type=date],.doc-page input[type=time]{color-scheme:light}
input[type=date]::-webkit-calendar-picker-indicator,input[type=time]::-webkit-calendar-picker-indicator,input[type=datetime-local]::-webkit-calendar-picker-indicator{opacity:1;cursor:pointer;padding:4px}

/* U-9 / L-14: the Back to Job chip has a close control and never covers content. */
.rad-hcp-return{position:static;left:auto;bottom:auto;display:inline-flex;align-items:center;gap:0;padding:0;margin:0 0 12px;max-width:min(420px,100%)}
.rad-hcp-return button{background:transparent;border:0;color:inherit;font:inherit;min-height:44px;padding:10px 14px;cursor:pointer}
.rad-hcp-return .rad-hcp-return-open{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.rad-hcp-return .rad-hcp-return-close{flex:0 0 auto;min-width:44px;border-left:1px solid #5a4a18}
/* L-11 / L-20: finished steps keep a check; the gold step is the real next step. */
.job-step.done:not(.goldstep){border-color:#3d5a3f;color:#b8e0bb}

/* L-2: saved previews look like the printed document. */
.rad-builder-preview #doc-page .line-row.print-empty,.rad-builder-preview #doc-page .doc-line-remove,.rad-builder-preview #doc-page .doc-pb-actions{display:none!important}
.rad-builder-preview #doc-page input,.rad-builder-preview #doc-page textarea,.rad-builder-preview #doc-page select{border-color:transparent!important;background:transparent!important;resize:none}

/* L-5: long scope text is truncated in lists. */
.rad-list-clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}

/* Estimate view tracking. */
.rad-view-badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;font-weight:800;letter-spacing:.02em;border:1px solid #444;color:#bbb;background:#1a1a1a;white-space:nowrap}
.rad-view-badge[data-viewed=true]{color:#111;background:#d4af37;border-color:#d4af37}
.rad-view-meta{font-size:12px;color:#aaa}
.rad-view-history table{width:100%;border-collapse:collapse}
.rad-view-history td,.rad-view-history th{padding:6px;border-bottom:1px solid #2a2a2a;text-align:left}

.rad-office-head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* D-1: in iPhone landscape the report/document editor stays clear of the camera and rounded-corner insets (0 elsewhere). */
.doc-workspace{padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px);box-sizing:border-box}
