/* MyLabs v3.0 · pinos por operador, legenda enxuta, traçado legível e portal do operador.
   Carregada por último. */

/* Pinos das empresas: círculo cheio na cor do operador, iniciais em branco ------------------- */
#map .point-pin.visit-pin { width:34px !important; height:34px !important; display:grid !important; place-items:center; border-radius:50% 50% 50% 6px !important; transform:rotate(-45deg); background:var(--point-color) !important; border:3px solid #fff !important; box-shadow:0 3px 10px rgba(0,0,0,.55) !important; }
#map .point-pin.visit-pin > span { transform:rotate(45deg); color:#fff !important; font:800 12px/1 var(--pro-font, system-ui) !important; letter-spacing:.02em; text-shadow:0 1px 2px rgba(0,0,0,.45); }
#map .point-pin.visit-pin.is-unassigned { background:#475569 !important; border-style:dashed !important; border-color:#cbd5e1 !important; }
#map .point-pin.visit-pin > b { position:absolute; right:-8px; bottom:-8px; transform:rotate(45deg); min-width:17px; height:17px; border-radius:9px; display:grid; place-items:center; border:2px solid #fff; font:800 10px/1 var(--pro-font, system-ui); color:#fff; background:#64748b; }
#map .point-pin.visit-pin.visit-completed > b { background:#16a34a; }
#map .point-pin.visit-pin.visit-not_completed > b { background:#dc2626; }
#map .point-pin.visit-pin.visit-in_progress > b { background:#f59e0b; }
#map .point-pin.visit-pin .pin-devices { transform:rotate(45deg); left:-10px; top:-10px; }
#map .point-icon.is-selected .point-pin, #map .point-pin.is-selected { outline:3px solid #fde047; outline-offset:2px; }
.map-pin-tooltip { background:#0f172a !important; color:#e2e8f0 !important; border:1px solid #334155 !important; border-radius:8px !important; box-shadow:0 6px 18px rgba(0,0,0,.45) !important; padding:6px 9px !important; font-size:12px; }
.map-pin-tooltip::before { border-top-color:#334155 !important; }

/* Legenda: só operadores (com quantidade) e situação da visita ------------------------------ */
#intel-health-legend[hidden] { display:none !important; }
#operator-legend .operator-color-key { font-size:.85rem !important; color:var(--pro-text, #e6edf6) !important; font-weight:600; }
#operator-legend .operator-color-key i { width:24px !important; height:24px !important; border-radius:50% 50% 50% 4px !important; background:var(--operator-color) !important; color:#fff !important; border:2px solid #fff !important; font-style:normal; font-size:10px; display:inline-grid !important; place-items:center; }
#operator-legend .operator-color-key i.unassigned { background:#475569 !important; border-style:dashed !important; }
#intel-visit-legend { opacity:.85; }

/* Lista do mapa: só leitura do responsável (atribuição fica na aba Empresas) ---------------- */
#humyn-map-company-list .humyn-map-company-row { grid-template-columns:minmax(0,1fr) !important; }
.humyn-map-row-owner { display:inline-flex; align-items:center; gap:6px; font-size:.8rem; font-weight:600; color:var(--pro-text, #e6edf6); min-width:0; flex:1; }
.humyn-map-row-owner i { width:12px; height:12px; border-radius:50%; background:var(--owner-color); border:2px solid #fff; flex:0 0 auto; }
.humyn-map-row-owner.is-empty { color:var(--pro-muted, #94a3b8); font-weight:500; }
.humyn-map-row-owner.is-empty i { background:#475569; border-style:dashed; }

/* Planejamento: seta de direção e número do trecho ------------------------------------------ */
.route-leg-arrow-shell { background:none !important; border:0 !important; }
.route-leg-arrow { position:relative; width:26px; height:26px; display:grid; place-items:center; }
.route-leg-arrow b { position:absolute; inset:0; display:grid; place-items:center; transform:rotate(var(--leg-angle)); color:#fff; font-size:13px; line-height:1; text-shadow:0 0 2px #0b1220, 0 0 3px #0b1220, 0 0 4px #0b1220; pointer-events:none; }

/* Portal do operador ----------------------------------------------------------------------- */
.operator-route-marker.is-completed { background:#16a34a !important; border-color:#bbf7d0 !important; color:#fff !important; }
.operator-route-marker.is-not_completed { background:#dc2626 !important; border-color:#fecaca !important; color:#fff !important; }
.operator-route-marker.is-in_progress { background:#f59e0b !important; color:#111827 !important; box-shadow:0 0 0 4px rgba(245,158,11,.35); }
.operator-route-sequence li.is-completed .operator-route-stop span { background:#16a34a !important; color:#fff !important; }
.operator-route-sequence li.is-not_completed .operator-route-stop span { background:#dc2626 !important; color:#fff !important; }
.operator-route-sequence li.is-completed > div > strong, .operator-route-sequence li.is-not_completed > div > strong { opacity:.75; }
.operator-progress { height:10px; margin:10px 0 14px; border-radius:999px; background:rgba(148,163,184,.2); overflow:hidden; }
.operator-progress span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#22c55e,#16a34a); transition:width .3s ease; }
.remote-failure-photo { display:flex; flex-direction:column; gap:8px; margin:12px 0; padding:12px; border-radius:12px; border:1px dashed rgba(148,163,184,.45); }
.remote-failure-photo-label { font-weight:700; }
.remote-photo-button { display:flex !important; align-items:center; justify-content:center; gap:8px; min-height:52px; border-radius:12px; background:#2563eb; color:#fff !important; font-weight:700; font-size:1rem; cursor:pointer; }
.remote-photo-button:active { filter:brightness(.92); }
#remote-failure-photo-preview { width:100%; max-height:260px; object-fit:cover; border-radius:10px; border:1px solid rgba(148,163,184,.35); }
.remote-failure-photo small { color:var(--pro-muted, #94a3b8); }

/* Portal do operador v3.1 · tela "Hoje" ---------------------------------------------------- */
.operator-day-card { padding:14px 16px; border-radius:14px; background:linear-gradient(140deg,#13284a,#0f1d33); border:1px solid rgba(96,165,250,.3); margin-bottom:14px; }
.operator-day-progress { display:flex; align-items:baseline; gap:8px; }
.operator-day-progress strong { font-size:1.6rem; color:#fff; }
.operator-day-progress span { color:#bfdbfe; }
.operator-day-card small { color:#94a3b8; }
.operator-day-card .operator-progress { margin:8px 0; }
.operator-next-stop { border-radius:16px !important; padding:16px !important; border:2px solid rgba(59,130,246,.55) !important; background:#101e36 !important; margin-bottom:16px; }
.operator-next-stop.is-active { border-color:#f59e0b !important; box-shadow:0 0 0 4px rgba(245,158,11,.15); }
.operator-next-stop h3 { font-size:1.3rem !important; margin:4px 0 !important; }
.operator-next-label { color:#93c5fd; font-weight:700; text-transform:uppercase; font-size:.75rem; letter-spacing:.06em; }
.operator-next-stop.is-active .operator-next-label { color:#fbbf24; }
.operator-next-devices { display:inline-block; margin:6px 0 !important; padding:3px 10px; border-radius:999px; background:rgba(59,130,246,.18); color:#bfdbfe !important; font-weight:700; }
.operator-next-actions { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
.operator-big-action { min-height:56px !important; font-size:1.05rem !important; font-weight:800 !important; border-radius:14px !important; }
.operator-link-action { background:none !important; border:0 !important; color:#fca5a5 !important; text-decoration:underline; font-weight:600; min-height:40px; }
.operator-all-done { text-align:center; padding:18px; border-radius:16px; background:rgba(22,163,74,.15); border:1px solid rgba(34,197,94,.45); margin-bottom:16px; }
.operator-all-done strong { font-size:1.2rem; color:#86efac; }
.operator-map-hint { margin:6px 0 0; font-size:.78rem; color:#94a3b8; text-align:center; }
.operator-stops-title { margin:18px 0 8px; font-size:1rem; }
.operator-route-sequence li { padding:12px !important; border-radius:12px !important; }
.operator-route-sequence li.is-next { border:2px solid rgba(59,130,246,.6) !important; }
.operator-route-sequence li small { display:block; }
.operator-stop-address { color:#94a3b8; }
.operator-stop-actions { display:flex; flex-wrap:wrap; gap:6px; margin-top:8px; }
.operator-stop-actions .operator-map-actions { display:flex; gap:6px; width:100%; }
.operator-stop-actions .operator-map-actions a { flex:1; text-align:center; }
.operator-stop-actions > button.primary { flex:1 1 100%; min-height:44px; }
.operator-route-controls { margin-top:16px; }
.operator-route-controls summary { cursor:pointer; color:#93c5fd; font-weight:600; padding:8px 0; }
.operator-route-origin-marker { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#0f172a; border:3px solid #fff; color:#fff; font-size:18px; box-shadow:0 2px 8px rgba(0,0,0,.5); }
#operator-route-map .route-leg-arrow b { font-size:12px; }

.operator-link-action.is-neutral { color:#93c5fd !important; }
