/* =========================================================================
   Taskr Connect — módulos Cruzeiro / Entrega logística / Limpeza (v2, 02/10/2026).
   Os módulos rodam na mesma tela da Entrega (#tela-entrega[data-modo]); aqui só o que
   muda por módulo. Versão anterior (tela própria): modulos-connect.css.bak-TELA-PROPRIA.
   ========================================================================= */
/* foto fixa de cada módulo */
#tela-entrega[data-modo="cruzeiro"] .ec-fundo-fixo{background:linear-gradient(100deg,rgba(6,6,5,.82) 0%,rgba(6,6,5,.5) 45%,rgba(6,6,5,.25) 100%),linear-gradient(0deg,rgba(6,6,5,.9) 0%,rgba(6,6,5,.1) 32%,rgba(6,6,5,0) 55%),url('/plataforma-api/imagens/cruzeiro-fundo.webp') 50% 50%/cover no-repeat}
#tela-entrega[data-modo="chamada"] .ec-fundo-fixo{background:linear-gradient(100deg,rgba(6,6,5,.82) 0%,rgba(6,6,5,.5) 45%,rgba(6,6,5,.25) 100%),linear-gradient(0deg,rgba(6,6,5,.9) 0%,rgba(6,6,5,.1) 32%,rgba(6,6,5,0) 55%),url('/plataforma-api/imagens/chamar-fundo.webp') 50% 50%/cover no-repeat}
#tela-entrega[data-modo="custom"] .ec-fundo-fixo{background:linear-gradient(100deg,rgba(6,6,5,.82) 0%,rgba(6,6,5,.5) 45%,rgba(6,6,5,.25) 100%),linear-gradient(0deg,rgba(6,6,5,.9) 0%,rgba(6,6,5,.1) 32%,rgba(6,6,5,0) 55%),url('/plataforma-api/imagens/custom-fundo-ondas.webp') 50% 50%/cover no-repeat}
#tela-entrega[data-modo="logistica"] .ec-fundo-fixo{background:linear-gradient(100deg,rgba(6,6,5,.82) 0%,rgba(6,6,5,.5) 45%,rgba(6,6,5,.25) 100%),linear-gradient(0deg,rgba(6,6,5,.9) 0%,rgba(6,6,5,.1) 32%,rgba(6,6,5,0) 55%),url('/plataforma-api/imagens/entrega-fundo-t300-vazia.jpg') 50% 35%/cover no-repeat}
#tela-entrega[data-modo="limpeza"] .ec-fundo-fixo{background:linear-gradient(100deg,rgba(6,6,5,.82) 0%,rgba(6,6,5,.5) 45%,rgba(6,6,5,.25) 100%),linear-gradient(0deg,rgba(6,6,5,.9) 0%,rgba(6,6,5,.1) 32%,rgba(6,6,5,0) 55%),url('/plataforma-api/imagens/entrega-fundo-cc1-vazia.jpg') 50% 35%/cover no-repeat}

/* campos que só existem na entrega (o que levar, ligar ao chegar) */
#tela-entrega:is([data-modo="cruzeiro"],[data-modo="logistica"],[data-modo="limpeza"],[data-modo="chamada"],[data-modo="custom"]) :is(.pa-etapa-item-input,.pa-link-telefonia,.pa-etapa-telefonia,.pa-mapa-ponto-popup-input){display:none !important}

/* logística: 2 pontos = coleta e entrega; sem ordem; pausar/concluir/cancelar aparecem travados (sem comando na API) */
#tela-entrega:is([data-modo="logistica"],[data-modo="chamada"],[data-modo="custom"]) .pa-secao-ordem{display:none}
#tela-entrega[data-modo="logistica"] .pa-etapa-card .pa-etapa-info::before{display:block;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#F7FF3F;margin-bottom:2px}
#tela-entrega[data-modo="logistica"] .pa-etapa-card:nth-child(1) .pa-etapa-info::before{content:"Coleta"}
#tela-entrega[data-modo="logistica"] .pa-etapa-card:nth-child(2) .pa-etapa-info::before{content:"Entrega";color:#3DDC84}

/* limpeza: planos no lugar dos pontos; pontos do mapa só de referência; sem "Concluir" */
#tela-entrega[data-modo="limpeza"] .pa-mapa-picker-ponto{pointer-events:none}
#tela-entrega[data-modo="limpeza"] [data-comando="COMPLETE"]{display:none}
#tela-entrega[data-modo="limpeza"] .ec-cmd-secund{grid-template-columns:1fr}
.md-plano{display:grid !important;grid-template-columns:20px 1fr;align-items:center;gap:12px;width:100%;text-align:left;font:inherit;color:inherit;cursor:pointer}
.md-plano .md-plano-sub{display:block;font-size:12px;opacity:.6;margin-top:2px}
.md-plano.sel{border-color:#F7FF3F !important;background:rgba(247,255,63,.08) !important}
.md-radio{width:18px;height:18px;border-radius:50%;border:2px solid currentColor;opacity:.5;display:grid;place-items:center}
.md-plano.sel .md-radio{border-color:#F7FF3F;opacity:1}
.md-plano.sel .md-radio::after{content:"";width:8px;height:8px;border-radius:50%;background:#F7FF3F}
.md-plano-nome{font-size:24px !important;line-height:1.2}

/* ---------- 05/10 · limpeza: mapa + tarefa, áreas da tarefa destacadas no mapa */
.md-limpeza-bloco{display:grid;gap:8px;margin-bottom:16px}
.md-select{position:relative;display:block}
.md-select select{width:100%;height:44px;padding:0 38px 0 12px;appearance:none;-webkit-appearance:none;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:#fff;font:inherit;font-size:13.5px;font-weight:600;cursor:pointer}
.md-select select:focus{outline:none;border-color:#F7FF3F}
.md-select select option{background:#151515;color:#fff}
.md-select::after{content:"";position:absolute;right:14px;top:50%;width:7px;height:7px;border-right:2px solid rgba(255,255,255,.6);border-bottom:2px solid rgba(255,255,255,.6);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.md-aviso-mapa{margin:0;font-size:12px;color:#FBBF24}
.md-tarefas{display:grid;gap:6px;max-height:min(42vh,420px);overflow:auto;padding-right:2px;scrollbar-width:thin}
#tela-entrega .md-areas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
#tela-entrega .md-areas polygon{fill:rgba(255,255,255,.05);stroke:rgba(255,255,255,.35);stroke-width:1;stroke-dasharray:3 2;vector-effect:non-scaling-stroke}
#tela-entrega .md-areas polygon.sel{fill:rgba(247,255,63,.32);stroke:#F7FF3F;stroke-width:2;stroke-dasharray:none}
#tela-entrega .md-area-rotulo{position:absolute;transform:translate(-50%,-50%);padding:1px 6px;font-size:9px;font-weight:700;color:#0A0A0A;background:#F7FF3F;white-space:nowrap;pointer-events:none;z-index:1}
#tela-entrega[data-modo="limpeza"] .md-plano .pa-etapa-ponto-nome{color:#fff}
#tela-entrega[data-modo="limpeza"] .md-plano .md-plano-sub{color:rgba(255,255,255,.62);opacity:1}
#tela-entrega[data-modo="limpeza"] .md-plano .md-radio{color:rgba(255,255,255,.7)}
.md-select select{text-overflow:ellipsis}

/* ---------- 08/10 · Troca de mapa: botão travado, linha "Mapa do robô" e janela de escolha */
.pc-btn-travado{opacity:.55;cursor:not-allowed;border-style:dashed}
.pc-btn-travado:hover{border-color:var(--tc-linha-2)}
.md-linha-mapa{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:2px 0 12px;padding:9px 12px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.03);font-size:12.5px;color:rgba(255,255,255,.7)}
.md-linha-mapa b{color:#fff;font-weight:600}
.md-trocar-mapa{display:inline-flex;align-items:center;gap:6px;flex:0 0 auto;height:30px;padding:0 12px;border:1px solid rgba(247,255,63,.5);background:none;color:#F7FF3F;font:inherit;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}
.md-trocar-mapa:hover{background:rgba(247,255,63,.1)}
.md-trocar-mapa svg{width:13px;height:13px}
.md-trocar-mapa.travado{border:1px dashed rgba(255,255,255,.25);color:rgba(255,255,255,.45);cursor:not-allowed}
.md-trocar-mapa.travado:hover{background:none}
.md-aviso-mapa{display:grid;gap:8px;padding:10px 12px;border:1px solid rgba(251,191,36,.35);background:rgba(251,191,36,.08);color:#FBBF24;font-size:12px}
.md-aviso-mapa b{color:#FCD34D}
.md-aviso-mapa .md-trocar-mapa{justify-self:start}

.tm-fundo{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.55)}
.tm-card{width:min(520px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;background:var(--tc-painel);border:1px solid var(--tc-linha-2);box-shadow:0 24px 60px rgba(0,0,0,.4);color:var(--tc-texto)}
.tm-cab{display:flex;justify-content:space-between;gap:12px;padding:20px 22px 12px}
.tm-rot{font-size:10.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--tc-apoio)}
.tm-cab h3{margin:4px 0 4px;font-family:'Plus Jakarta Sans',sans-serif;font-size:20px;font-weight:800}
.tm-atual{margin:0;font-size:12.5px;color:var(--tc-texto-2)}
.tm-x{width:32px;height:32px;display:grid;place-items:center;border:0;background:none;color:var(--tc-apoio);cursor:pointer}
.tm-x svg{width:16px;height:16px}.tm-x:hover{color:var(--tc-texto)}
.tm-busca{display:flex;align-items:center;gap:8px;margin:0 22px 8px;padding:0 12px;height:40px;border:1px solid var(--tc-linha-2);background:var(--tc-painel-2)}
.tm-busca svg{width:15px;height:15px;color:var(--tc-apoio)}
.tm-busca input{flex:1;border:0;background:none;color:var(--tc-texto);font:inherit;font-size:13.5px;outline:none}
.tm-lista{flex:1;min-height:120px;max-height:300px;overflow:auto;margin:0 22px;display:grid;align-content:start;gap:4px;scrollbar-width:thin}
.tm-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border:1px solid var(--tc-linha);background:none;color:var(--tc-texto);font:inherit;font-size:13px;text-align:left;cursor:pointer}
.tm-item:hover:not(:disabled){border-color:var(--tc-texto)}
.tm-item.sel{border-color:#E5D400;background:rgba(247,255,63,.14)}
.tm-item:disabled{opacity:.55;cursor:default}
.tm-item em{font-style:normal;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tc-apoio)}
.tm-item em.sug{color:#B8A800}
.tm-vazio{margin:8px 0;font-size:13px;color:var(--tc-apoio)}
.tm-aviso{display:grid;grid-template-columns:16px 1fr;gap:8px;margin:12px 22px 0;font-size:12px;line-height:1.45;color:var(--tc-texto-2)}
.tm-aviso svg{width:15px;height:15px;margin-top:1px;color:#D99A00}
.tm-msg{margin:10px 22px 0;font-size:12.5px;color:var(--tc-texto-2);min-height:1px}
.tm-msg .pc-spin{display:inline-block;vertical-align:-3px;margin-right:6px}
.tm-msg.erro{color:#D93B3B}.tm-msg.aviso{color:#B7791F}
.tm-pe{display:flex;justify-content:flex-end;gap:8px;padding:16px 22px 20px}
.tm-btn{height:40px;padding:0 18px;border:1px solid var(--tc-linha-2);background:none;color:var(--tc-texto);font:inherit;font-size:13px;font-weight:700;cursor:pointer}
.tm-btn.y{background:#F7FF3F;border-color:#F7FF3F;color:#0A0A0A}
.tm-btn:disabled{opacity:.45;cursor:not-allowed}
.tm-msg .pc-spin{width:14px;height:14px;border-width:2px}

/* ---------- 08/10 · lista de mapas da limpeza (própria): mapa atual do robô destacado em amarelo */
.md-dd{position:relative}
.md-dd-btn{display:flex;align-items:center;gap:10px;width:100%;min-height:46px;padding:8px 12px;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.04);color:#fff;font:inherit;text-align:left;cursor:pointer}
.md-dd-btn:hover,.md-dd-btn[aria-expanded="true"]{border-color:#F7FF3F}
.md-dd-btn small,.md-dd-op small{margin-left:auto;font-size:11.5px;color:rgba(255,255,255,.55);white-space:nowrap}
.md-dd-seta{width:14px;height:14px;flex:0 0 auto;color:rgba(255,255,255,.6);transition:transform .15s}
.md-dd-btn[aria-expanded="true"] .md-dd-seta{transform:rotate(180deg)}
.md-dd-nome{display:flex;align-items:center;gap:8px;min-width:0;font-size:13.5px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.md-dd-nome.vazio{color:rgba(255,255,255,.5);font-weight:500}
.md-dd-nome em{flex:0 0 auto;font-style:normal;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;background:#F7FF3F;color:#0A0A0A}
.md-dd-painel{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;display:flex;flex-direction:column;max-height:340px;background:#141414;border:1px solid rgba(247,255,63,.35);box-shadow:0 18px 40px rgba(0,0,0,.55)}
.md-dd-painel[hidden]{display:none}
.md-dd-busca{display:flex;align-items:center;gap:8px;margin:8px;padding:0 10px;height:36px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04)}
.md-dd-busca svg{width:14px;height:14px;color:rgba(255,255,255,.5)}
.md-dd-busca input{flex:1;border:0;background:none;color:#fff;font:inherit;font-size:13px;outline:none}
.md-dd-lista{overflow:auto;padding:0 6px 6px;display:grid;gap:2px;scrollbar-width:thin;scrollbar-color:#3A3A3A transparent}
.md-dd-op{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border:0;border-left:3px solid transparent;background:none;color:#fff;font:inherit;text-align:left;cursor:pointer}
.md-dd-op[hidden]{display:none}
.md-dd-op:hover{background:rgba(255,255,255,.06)}
.md-dd-op.atual{border-left-color:#F7FF3F;background:rgba(247,255,63,.09)}
.md-dd-op.atual .md-dd-nome{color:#F7FF3F}
.md-dd-op.sel{background:rgba(255,255,255,.08)}
.md-dd-op.atual.sel{background:rgba(247,255,63,.16)}
.md-dd-ok{width:14px;height:14px;flex:0 0 auto;color:#F7FF3F}

/* logística: comandos travados (cadeado) + aviso do motivo */
#tela-entrega .md-cmd-travado,#tela-entrega .md-cmd-travado:hover{cursor:not-allowed;opacity:.5;transform:none !important}
#tela-entrega .ec-cmd-principal.md-cmd-travado{background:rgba(12,12,12,.6);color:#F7FF3F;border-color:rgba(247,255,63,.5)}
#tela-entrega .ec-cmd-sec.md-cmd-travado:hover{border-color:rgba(255,255,255,.16);background:rgba(12,12,12,.72)}
#tela-entrega .ec-cmd-sec.perigo.md-cmd-travado:hover{border-color:rgba(242,95,92,.4)}
.md-cmd-aviso{display:flex;align-items:flex-start;gap:8px;margin:2px 0 0;font-size:12.5px;line-height:1.45;color:rgba(255,255,255,.72)}
.md-cmd-aviso svg{flex:none;width:14px;height:14px;margin-top:2px;color:#F7FF3F}

/* tarefa customizada: rótulo das opções e ponto de retorno do passeio */
.md-fns-rot{display:block;margin:0;padding:14px 20px 4px;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.md-retorno{display:grid;gap:6px;margin:12px 0 18px}
.md-retorno span{font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.md-retorno em{font-style:normal;text-transform:none;letter-spacing:0;font-weight:500}
.md-retorno select{height:42px;padding:0 12px;border:1px solid rgba(255,255,255,.18);background:rgba(12,12,12,.7);color:#fff;font:inherit;font-size:14px}

/* passeio guiado: mídia e áudio de cada parada */
#tela-entrega[data-modo="custom"] .md-midia{display:grid;gap:6px;margin-top:8px}
.md-midia label{display:grid;gap:4px}
.md-midia select{width:100%}
.md-midia label span{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.md-midia select,.md-midia input{height:34px;padding:0 10px;border:1px solid rgba(255,255,255,.16);background:rgba(12,12,12,.7);color:#fff;font:inherit;font-size:12.5px;min-width:0}
.md-midia input{width:100%;box-sizing:border-box}
.md-midia select:focus,.md-midia input:focus{outline:none;border-color:#F7FF3F}
.md-midia-rot{font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.55)}
.md-midia-tipos{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(255,255,255,.16)}
.md-midia-tipos button{height:32px;border:0;border-right:1px solid rgba(255,255,255,.12);background:rgba(12,12,12,.6);color:rgba(255,255,255,.75);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.md-midia-tipos button:last-child{border-right:0}
.md-midia-tipos button:hover{color:#fff}
.md-midia-tipos button.on{background:#F7FF3F;color:#0A0A0A}
.md-midia-link{display:grid;gap:6px}
.md-midia-link .md-upload{justify-self:start}
.md-upload{display:inline-flex;align-items:center;height:34px;padding:0 10px;border:1px dashed rgba(247,255,63,.6);color:#F7FF3F;font-size:12px;font-weight:600;white-space:nowrap;cursor:pointer}
.md-upload:hover{background:rgba(247,255,63,.1)}
.md-upload-aviso{margin:0;font-size:11.5px;line-height:1.4;color:#FFB74D}
/* 29/10: na tarefa customizada o "Cancelar tarefa customizada" sai (pedido do Lincoln) — fica o Concluir, na linha toda */
#tela-entrega[data-modo="custom"] .ec-cmds [data-comando="CANCEL_ALL_DELIVERY"]{display:none}
#tela-entrega[data-modo="custom"] .ec-cmd-secund{grid-template-columns:1fr}
