/* MyLabs v3.1 · seleção de empresas no planejamento de rotas (lista única, filtros rápidos,
   orçamento do dia e pinos clicáveis). Carregada por último. */

.visually-hidden { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

/* Filtros: busca, botões rápidos e ordenação ------------------------------------------------- */
.rp-filters { display:grid; gap:10px; margin:10px 0 6px; }
.rp-search input { width:100%; min-height:44px; padding:0 14px; border-radius:12px; font-size:.95rem; }
.rp-filter-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.rp-filter-chips { display:flex; flex-wrap:wrap; gap:6px; }
.rp-filter-chips button { min-height:34px; padding:0 12px; border-radius:999px; border:1px solid rgba(148,163,184,.35); background:transparent; color:inherit; font-weight:600; font-size:.82rem; cursor:pointer; }
.rp-filter-chips button b { display:inline-block; min-width:20px; margin-left:4px; padding:1px 6px; border-radius:999px; background:rgba(148,163,184,.2); font-size:.75rem; }
.rp-filter-chips button[aria-pressed="true"] { background:#2563eb; border-color:#2563eb; color:#fff; }
.rp-filter-chips button[aria-pressed="true"] b { background:rgba(255,255,255,.25); }
.rp-sort { display:flex; align-items:center; gap:6px; font-size:.82rem; font-weight:600; }
.rp-sort select { min-height:34px; border-radius:10px; }

/* Grupo do operador ------------------------------------------------------------------------- */
.rp-group { border-left:4px solid var(--route-operator-color, #3b82f6) !important; }
.rp-budget { margin:10px 0; padding:10px 12px; border-radius:12px; background:rgba(37,99,235,.1); border:1px solid rgba(59,130,246,.3); }
.rp-budget-line { display:flex; flex-wrap:wrap; gap:4px 14px; align-items:baseline; font-size:.85rem; }
.rp-budget-line strong { font-size:1rem; }
.rp-budget-line small { opacity:.7; }
.rp-budget-bar { height:8px; margin-top:8px; border-radius:999px; background:rgba(148,163,184,.25); overflow:hidden; }
.rp-budget-bar span { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#22c55e,#16a34a); transition:width .25s ease; }
.rp-budget.is-over { background:rgba(220,38,38,.12); border-color:rgba(239,68,68,.55); }
.rp-budget.is-over .rp-budget-bar span { background:#dc2626; }
.rp-budget-note { display:block; margin-top:6px; font-size:.78rem; opacity:.85; }
.rp-budget.is-over .rp-budget-note { color:#fca5a5; opacity:1; font-weight:600; }
body.route-planning-light .rp-budget.is-over .rp-budget-note { color:#b91c1c; }

.rp-tools { display:flex; flex-wrap:wrap; gap:6px; margin:8px 0; }
.rp-tools button { min-height:38px; padding:0 12px; border-radius:10px; font-weight:600; }
.rp-tools .rp-suggest { flex:1 1 100%; min-height:44px; background:#2563eb !important; color:#fff !important; border:0 !important; font-weight:800; }
.rp-tools .rp-suggest::before { content:"✨ "; }

/* Linhas da lista --------------------------------------------------------------------------- */
.rp-list { display:grid; gap:4px; max-height:min(62vh,720px); overflow:auto; padding-right:2px; }
.rp-row { display:grid !important; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; gap:10px; padding:9px 10px !important; border-radius:10px; border:1px solid rgba(148,163,184,.18); cursor:pointer; transition:background .15s ease, border-color .15s ease; margin:0 !important; }
.rp-row:hover { background:rgba(59,130,246,.1); border-color:rgba(59,130,246,.45); }
.rp-row.is-selected { background:rgba(34,197,94,.12); border-color:rgba(34,197,94,.55); }
.rp-row.is-disabled { cursor:default; opacity:.6; }
.rp-row.is-disabled.is-selected { opacity:1; }
.rp-row input { width:20px; height:20px; margin:0; accent-color:#16a34a; }
.rp-row-main { min-width:0; display:flex; flex-wrap:wrap; align-items:center; gap:4px 6px; }
.rp-row-main strong { font-size:.9rem; line-height:1.25; overflow-wrap:anywhere; max-width:100%; }
.rp-row-main small { flex:1 1 100%; font-size:.76rem; opacity:.75; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rp-row-meta { display:grid; justify-items:end; gap:1px; font-size:.75rem; text-align:right; white-space:nowrap; }
.rp-row-meta b { font-size:.85rem; }
.rp-row-meta b small { font-weight:500; opacity:.7; }
.rp-last { opacity:.75; }
.rp-last.is-overdue { color:#f59e0b; opacity:1; font-weight:700; }
body.route-planning-light .rp-last.is-overdue { color:#b45309; }
.rp-tag { font-style:normal; font-size:.68rem; font-weight:700; padding:1px 7px; border-radius:999px; background:rgba(148,163,184,.22); }
.rp-tag.is-extra { background:rgba(100,116,139,.3); }
.rp-tag.is-fixed { background:rgba(124,58,237,.3); }
.rp-tag.is-taken { background:rgba(59,130,246,.25); }
.rp-tag.is-red { background:rgba(220,38,38,.3); }
.rp-tag.is-yellow { background:rgba(234,179,8,.3); }

/* Mapa do planejamento: pinos candidatos e destaque ------------------------------------------ */
.leaflet-interactive.rp-candidate { cursor:pointer; }
.route-marker-shell.is-hover .route-stop-marker, .route-marker-shell.is-hover { transform:scale(1.25); z-index:1000 !important; }
.rp-popup-remove { margin-top:6px; min-height:34px; padding:0 12px; border-radius:8px; border:0; background:#dc2626; color:#fff; font-weight:700; cursor:pointer; }

/* No celular o mapa do planejamento ficava espremido (~90 px): altura mínima utilizável. */
@media (max-width:900px) {
  #route-planning-panel .route-map-panel { height:auto !important; min-height:0 !important; }
  #route-preview-map { height:340px !important; min-height:340px !important; flex:0 0 auto !important; }
}
@media (max-width:560px) {
  .rp-row { grid-template-columns:auto minmax(0,1fr); }
  .rp-row-meta { grid-column:2; justify-items:start; grid-auto-flow:column; gap:10px; text-align:left; }
  .rp-list { max-height:none; }
}
