/* Otimizar rotas (visão do gerente) */
.ent-otimizar { display: flex; align-items: center; gap: 12px; width: 100%; padding: 14px 16px; border-radius: 18px; background: var(--tinta); color: #fff; text-align: left; transition: transform .12s var(--sair); }
.ent-otimizar:active { transform: scale(.98); }
.ent-otimizar > .ic { width: 26px; height: 26px; flex: none; color: var(--gema); }
.ent-otimizar b { display: block; font: 700 16px var(--f-titulo); }
.ent-otimizar small { font-size: 12.5px; opacity: .8; }
.plano { display: grid; gap: 10px; padding: 14px; border-radius: 20px; background: #fff; border: 1.5px solid var(--linha); animation: entra .3s var(--sair); }
.plano-cab b { display: flex; align-items: center; gap: 6px; font: 700 16px var(--f-titulo); }
.plano-cab b .ic { width: 18px; height: 18px; color: var(--brasa); }
.plano-cab span { font-size: 12.5px; color: var(--tinta-2); }
.plano-rota { display: grid; grid-template-columns: 38px minmax(0, 1fr); gap: 10px; padding: 10px; border-radius: 14px; background: color-mix(in srgb, var(--tinta) 3%, transparent); box-shadow: inset 4px 0 0 var(--c); }
.plano-rota .av { width: 38px; height: 38px; background: var(--c); color: #fff; }
.plano-rota b { font-size: 14.5px; }
.plano-rota b small { font-weight: 600; color: var(--tinta-2); }
.plano-rota ol { list-style: none; margin: 6px 0; padding: 0; display: grid; gap: 4px; counter-reset: p; }
.plano-rota li { display: flex; align-items: center; gap: 6px; font-size: 13.5px; counter-increment: p; }
.plano-rota li::before { content: counter(p); width: 18px; height: 18px; border-radius: 50%; background: var(--c); color: #fff; display: grid; place-items: center; font-size: 11px; font-weight: 700; flex: none; }
.plano-rota li em { font-style: normal; font-weight: 700; }
.plano-rota li small { margin-left: auto; font-size: 11.5px; color: var(--tinta-2); }
.plano-meta { font-size: 12px; font-weight: 600; color: var(--tinta-2); }
.plano-pe { display: grid; grid-template-columns: auto 1fr; gap: 8px; }
.m-plano { fill: none; stroke: var(--c); stroke-width: calc(var(--k, .5) * 1.6); stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: calc(var(--k, .5) * 3) calc(var(--k, .5) * 2.2); opacity: .9; animation: marcha 1.2s linear infinite; }
@keyframes marcha { to { stroke-dashoffset: calc(var(--k, .5) * -10.4); } }
.m-plano-n { font: 700 3.6px var(--f-titulo); text-anchor: middle; }
.ent-atrib button { background: var(--tinta); color: #fff; border: 0; min-height: 48px; padding: 6px 14px; }
.ent-atrib button small { color: rgba(255, 255, 255, .75); opacity: 1; }
.ent-atrib button:not([disabled]):hover { background: var(--brasa); }
.ent-atrib button[disabled] { background: color-mix(in srgb, var(--tinta) 8%, transparent); color: var(--tinta-2); }
.ent-atrib button[disabled] small { color: var(--tinta-3); }
.m-cred { position: absolute; right: 8px; bottom: 6px; z-index: 1; font-size: 10px; color: color-mix(in srgb, var(--tinta) 60%, transparent); background: rgba(255, 255, 255, .7); padding: 1px 6px; border-radius: 6px; pointer-events: none; }
.m-tiles { filter: sepia(.08) contrast(1.02); } .m-rotulos { opacity: .85; pointer-events: none; }
.ent-tempos { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; font-size: 12.5px; font-weight: 600; color: var(--tinta-2); }
.ent-tempos > span:first-child { display: inline-flex; align-items: center; gap: 4px; }
.ent-tempos .ic { width: 14px; height: 14px; }
.ent-tempos b { color: var(--tinta); }
.prazo { padding: 3px 9px; border-radius: 8px; font-size: 12px; font-weight: 700; }
.prazo.ok { background: color-mix(in srgb, var(--tinta) 7%, transparent); color: var(--tinta); }
.prazo.quase { background: color-mix(in srgb, var(--gema) 30%, transparent); color: var(--tinta); }
.prazo.atraso { background: var(--brasa); color: #fff; animation: pulsoBtn 1.6s infinite; }
