dialog.photo-markup-dialog{width:min(760px,calc(100vw - 16px));max-height:calc(100dvh - 16px);padding:0;border:1px solid var(--line);border-radius:16px;background:var(--card,#fff);color:var(--ink);overflow:auto}
.photo-markup-dialog::backdrop{background:rgba(9,24,38,.72)}
.photo-markup-head{display:flex;align-items:start;gap:12px;padding:16px;border-bottom:1px solid var(--line)}
.photo-markup-head>div{flex:1;min-width:0}.photo-markup-head h2{font-size:19px;line-height:1.3;letter-spacing:0;text-transform:none;margin:0;color:var(--navy)}
.photo-markup-head p{font-size:12px;line-height:1.45;color:var(--mut);margin:5px 0 0}
.photo-markup-dialog .btn{margin:0;min-height:44px}.photo-markup-body{padding:12px 16px}
.photo-markup-tools{display:flex;flex-wrap:wrap;gap:6px}.photo-markup-tools .btn[aria-pressed=true]{background:var(--navy);color:#fff}
.photo-markup-colours{display:flex;gap:10px;padding:12px 0}.photo-markup-colours button{width:44px;height:44px;min-height:44px;border-radius:50%;background:var(--swatch);border:2px solid #7d8c98;cursor:pointer}
.photo-markup-colours [aria-pressed=true]{outline:3px solid var(--sea,#187c94);outline-offset:2px}
.photo-markup-stage{display:flex;justify-content:center;background:#152331;border-radius:8px;overflow:hidden}
.photo-markup-stage canvas{display:block;max-width:100%;width:auto;height:auto;max-height:48dvh;object-fit:contain;touch-action:none;cursor:crosshair}
.photo-markup-comment{display:grid;gap:6px;margin-top:14px;font-size:13px;font-weight:700}.photo-markup-comment textarea{width:100%;min-height:85px;resize:vertical;font-weight:400}
.photo-markup-error{color:var(--bad);font-size:13px;margin:8px 0 0}.photo-markup-error:empty{display:none}
.photo-markup-footer{padding:12px 16px;position:sticky;bottom:0;background:var(--card,#fff);border-top:1px solid var(--line)}.photo-markup-footer .btn{width:100%}
.job-photo-edit{margin-top:4px!important;min-height:44px!important}.job-photo-comment{font-size:12px;white-space:pre-wrap;overflow-wrap:anywhere;margin:2px 0;color:var(--ink)}
.job-photo-copy-note{font-size:11px;color:var(--mut)}
html[data-theme="dark"] .photo-markup-tools .btn[aria-pressed=true],html[data-theme="dark"] .photo-markup-footer .btn{background:#9cc8ff;color:#102033;border-color:#9cc8ff}
html[data-theme="dark"] .job-photo-card label.f{color:var(--mut)}
html[data-theme="dark"] .job-photo-card .seg{background:var(--bg);border-color:var(--line)}
html[data-theme="dark"] .job-photo-card .btn:not(.sub){background:#9cc8ff;color:#102033;border-color:#9cc8ff}
