/* Job location: map, lettered points and directions links (admin preview and technician portal). */
.job-map-card { background:#fff; border:1px solid #dbe3f5; border-radius:16px; padding:16px; box-shadow:0 1px 2px #0f172a0d; }
.job-map-card[hidden],.job-map-canvas[hidden],.job-map-status:empty { display:none; }
.job-map-canvas { width:100%; height:300px; margin-top:12px; border-radius:12px; overflow:hidden; border:1px solid #dbe3f5; background:#eef4ff; }
.job-map-status { margin-top:10px; font-size:12px; color:#92400e; background:#fffbeb; border:1px solid #fde68a; border-radius:8px; padding:8px 12px; }
.job-map-list { list-style:none; margin:12px 0 0; padding:0; }
.job-map-point { display:flex; gap:12px; padding:12px 0; border-top:1px solid #e2e8f0; }
.job-map-point:first-child { border-top:0; }
.job-map-letter { flex-shrink:0; width:26px; height:26px; border-radius:999px; background:#2b3990; color:#fff; font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; }
.job-map-point-body { min-width:0; flex:1; }
.job-map-point-label { font-size:14px; font-weight:600; color:#0f172a; overflow-wrap:anywhere; }
.job-map-point-address { font-size:12px; color:#475569; margin-top:2px; overflow-wrap:anywhere; }
.job-map-point-note { font-size:13px; color:#334155; margin-top:4px; white-space:pre-wrap; overflow-wrap:anywhere; }
.job-map-links { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.job-map-link { display:inline-flex; align-items:center; min-height:40px; padding:6px 12px; border:1px solid #cbdafb; border-radius:8px; background:#eef4ff; color:#2b3990; font-size:12px; font-weight:600; text-decoration:none; }
.job-map-link:hover { background:#e0ebff; }
.job-map-link:focus-visible { outline:2px solid #3c84fa; outline-offset:2px; }
.job-map-info { max-width:220px; font-size:13px; color:#0f172a; }
.job-map-info p { margin-top:4px; white-space:pre-wrap; }

/* Admin editor */
.job-map-admin-row { border:1px solid #e2e8f0; border-radius:10px; padding:12px; margin-top:12px; min-width:0; }
.job-map-admin-row legend { font-size:12px; font-weight:700; color:#2b3990; padding:0 4px; }
.job-map-field { display:block; margin-top:8px; }
.checklist-panel .job-map-field input { display:block; width:100%; box-sizing:border-box; margin-top:4px; min-height:44px; padding:8px 10px; border:1px solid #cbd5e1; border-radius:8px; font-size:16px; color:#1e293b; }
.job-map-coord-hint { font-size:12px; margin-top:4px; color:#be123c; }
.job-map-coord-hint[data-ok="true"] { color:#047857; }
.job-map-admin-actions { margin-top:12px; }
#job-map-admin-status[data-state="error"] { color:#be123c; }
@media(max-width:640px) { .job-map-canvas { height:240px; } }
