/* © 2026 Edson Roberto — Todos os direitos reservados.
   LimpaRota — redesenho 2026 (paleta, cartões brancos, ícones de linha, barras inferiores). Carregado depois de style.css. */
:root{--navy:#15324F;--navy2:#1d4570;--blue:#2474B5;--green:#1B8B58;--amber:#F0AD4E;--red:#D94D48;--bg:#F5F7FA;--ink:#17283a;--muted:#6B7A8C;--line:#E4E9F0;--soft:#EAF2FA;--r:16px;--sh:0 2px 10px rgba(21,50,79,.07),0 1px 2px rgba(21,50,79,.05);
  --pri:#15324F;--acc:#2474B5;--sec:#1B8B58;--pri-soft:#EAF2FA}
body{background:var(--bg);color:var(--ink);font-family:Inter,"Segoe UI",Roboto,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased}
.ic{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}
.ic.sm{width:16px;height:16px}.ic.lg{width:28px;height:28px}.ic.xl{width:40px;height:40px}
/* ---------- logótipo ---------- */
.lr-logo{display:inline-flex;align-items:center;gap:8px;min-width:0;line-height:1}
.lr-logo .lr-mark{width:30px;height:36px;flex:none}
.lr-word{display:flex;flex-direction:column;font-weight:900;letter-spacing:.5px;font-size:15px;line-height:.95}
.lr-word b:first-child{color:#fff}.lr-word b:last-child{color:#5BB0F0}
.lr-logo small{display:block;font-size:11px;font-weight:600;color:#c9d6e4;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:150px;letter-spacing:0}
.lr-logo.dark .lr-word b:first-child{color:var(--navy)}.lr-logo.dark .lr-word b:last-child{color:var(--blue)}.lr-logo.dark small{color:var(--muted)}
.lr-brandcol{display:flex;flex-direction:column;min-width:0}
.lr-tlogo{height:18px;max-width:60px;object-fit:contain;background:#fff;border-radius:4px;padding:1px;vertical-align:middle;margin-right:4px}
/* ---------- cabeçalho ---------- */
header{background:var(--navy)!important;color:#fff;box-shadow:none;border-bottom:0!important;gap:6px!important;min-height:60px}
header .brand{font-size:inherit!important;flex:1 1 auto!important;min-width:0;overflow:hidden}
header .brand img{display:none}
#menuBtn{background:rgba(255,255,255,.08)!important;border:0;color:#fff;border-radius:12px;width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:0!important;flex:none}
#menuBtn::before{content:"";width:22px;height:22px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M4 6h16M4 12h16M4 18h16'/%3E%3C/svg%3E") center/contain no-repeat}
header .sync{background:rgba(27,139,88,.9)!important;border-radius:22px!important;font-weight:600}header .sync.off{background:var(--red)!important}header .sync.wait{background:var(--amber)!important;color:#1b1b1b!important}
header select{background:#fff1;color:#fff;border:1px solid #ffffff33!important;border-radius:10px!important;min-height:40px}header select option{color:#111}
#gvBtn{background:rgba(255,255,255,.1)!important;border:0!important;border-radius:12px!important;color:#fff!important;position:relative}
.hd-ic{background:rgba(255,255,255,.08);border:0;color:#fff;border-radius:12px;min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;position:relative;cursor:pointer;flex:none;padding:0}
.hd-ic .bdg,.gv-badge,.tb .bdg{position:absolute;top:2px;right:2px;background:var(--red);color:#fff;font-size:11px;font-weight:800;border-radius:10px;min-width:18px;height:18px;line-height:18px;text-align:center;padding:0 5px}
.hd-av{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#F0AD4E,#e58d2b);color:#fff;font-weight:800;display:inline-flex;align-items:center;justify-content:center;border:2px solid #ffffff55;flex:none;font-size:15px;cursor:pointer;padding:0}
#helpBtn{min-width:44px;min-height:44px;border-radius:12px!important;background:rgba(255,255,255,.08)!important;font-size:0!important;display:inline-flex;align-items:center;justify-content:center}
#helpBtn::before{content:"";width:22px;height:22px;background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9a2.5 2.5 0 1 1 3.5 2.3c-.6.3-1 .9-1 1.7M12 17h.01'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.5 9a2.5 2.5 0 1 1 3.5 2.3c-.6.3-1 .9-1 1.7M12 17h.01'/%3E%3C/svg%3E") center/contain no-repeat}
#billBanner{background:#EAF2FA!important;color:var(--navy)!important;font-size:13px!important}
/* ---------- base ---------- */
main{background:var(--bg)}
.card{border-radius:var(--r);box-shadow:var(--sh);border:1px solid var(--line);margin:12px}
.card h3{color:var(--navy)}
.btn{background:var(--blue);border-radius:12px;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.btn.acc{background:var(--green)}.btn.sec{background:#EEF2F7;color:var(--navy)}.btn.red{background:var(--red)}
a.btn.sec{color:var(--navy)}
input,textarea,select{border-color:#D5DDE7;border-radius:12px}input:focus,textarea:focus,select:focus{outline:2px solid #2474B555;border-color:var(--blue)}
.tag{background:var(--soft);color:var(--navy);font-weight:600;border-radius:8px}.tag.ok{background:#E3F4EB;color:var(--green)}.tag.red{background:#FBE7E6;color:var(--red)}
.sheet{background:rgba(13,30,48,.45)}.sheet-in{border-radius:22px 22px 0 0;padding:18px 16px calc(18px + env(safe-area-inset-bottom))}
.sheet-in h3{color:var(--navy);font-size:20px;margin:4px 40px 10px 0}
.close{background:#EEF2F7!important;color:var(--navy);width:36px!important;height:36px!important}
.toast{border-radius:14px;background:var(--navy)}
.alertbar,#obraBar{background:#FBE7E6!important;color:#8e2622!important;border-radius:14px;margin:10px 12px!important;border:1px solid #f3c4c2;font-size:14px}
.alertbar .btn,#obraBar .btn{background:#fff;color:#8e2622}
/* badges de estado */
.st{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:700;border-radius:8px;padding:3px 9px;white-space:nowrap}
.st.pend{background:#FDF1DE;color:#b26b00}.st.ok{background:#E3F4EB;color:var(--green)}.st.go{background:#E4EFFA;color:var(--blue)}.st.shut{background:#EEF1F5;color:#5b6b7d}.st.bad{background:#FBE7E6;color:var(--red)}.st.solid-ok{background:var(--green);color:#fff}.st.solid-bad{background:var(--red);color:#fff}
/* ---------- barra inferior (funcionário / cliente) ---------- */
body.rd-tabs nav{background:#fff!important;border-top:1px solid var(--line)!important;box-shadow:0 -4px 16px rgba(21,50,79,.06);overflow:visible!important;padding:0 4px env(safe-area-inset-bottom)!important;display:flex!important;align-items:stretch}
body.rd-tabs nav>button:not(.tb){display:none!important}
body.rd-tabs nav button.tb{flex:1 1 0!important;min-width:0!important;border:0;background:none!important;color:#7A8797;font-size:12px!important;font-weight:600;padding:8px 2px 6px!important;display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:62px;position:relative;box-shadow:none!important;line-height:1.1}
nav .tb.on{color:var(--blue)!important}nav .tb.on::before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--blue)}
nav .tb .ic{width:24px;height:24px}
nav .tb.mid{color:var(--navy)!important}nav .tb.mid .qrc{width:58px;height:58px;margin-top:-26px;border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 6px 16px rgba(36,116,181,.45);border:4px solid #fff}
nav .tb.mid .qrc .ic{width:26px;height:26px}nav .tb.mid.on::before{display:none}
nav .tb .bdg{top:4px;right:calc(50% - 22px)}
header #syncPill{font-size:0!important;width:44px;min-width:44px;max-width:44px!important;height:44px;padding:0!important;border-radius:12px!important;display:inline-flex;align-items:center;justify-content:center;flex:none}
header #syncPill::before{content:"";width:22px;height:22px;background:#fff;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.5 19H8a5 5 0 1 1 1-9.9A6 6 0 0 1 20.5 11 4 4 0 0 1 17.5 19z'/%3E%3Cpath d='m9.5 14 2 2 3.5-4'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.5 19H8a5 5 0 1 1 1-9.9A6 6 0 0 1 20.5 11 4 4 0 0 1 17.5 19z'/%3E%3Cpath d='m9.5 14 2 2 3.5-4'/%3E%3C/svg%3E") center/contain no-repeat}
header #syncPill.off::before,header #syncPill.wait::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 2l20 20M8.5 16.5a5 5 0 0 1 7 0M5 12.9a10 10 0 0 1 5.2-2.8M12 20h.01M1.4 8.8A15 15 0 0 1 6.3 6M22.6 8.8A15 15 0 0 0 9 5.3'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M2 2l20 20M8.5 16.5a5 5 0 0 1 7 0M5 12.9a10 10 0 0 1 5.2-2.8M12 20h.01M1.4 8.8A15 15 0 0 1 6.3 6M22.6 8.8A15 15 0 0 0 9 5.3'/%3E%3C/svg%3E")}
header #syncPill.wait::before{background:#1b1b1b}
header #menuBtn{order:0}header .brand{order:1}header .hd-search{order:2}header #syncPill{order:3}header #routeFilter{order:4}header #gvBtn{order:5}header #helpBtn{order:6}header .hd-ic{order:6}header #rdAv{order:9}
body.rd-tabs header #helpBtn{display:none!important}
/* ---------- topo azul (heros) ---------- */
.hero{background:linear-gradient(180deg,var(--navy) 0%,var(--navy2) 100%);color:#fff;padding:14px 16px 64px;margin-bottom:-52px}
.hero h2{margin:0;font-size:24px;font-weight:800;letter-spacing:-.2px}.hero .sub{color:#c9d6e4;font-size:14px;margin-top:4px}
.kpis3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:0 12px;position:relative}
.kpis4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 12px;position:relative}
.kt{border:0;border-radius:var(--r);padding:12px 10px;color:#fff;text-align:left;display:flex;flex-direction:column;gap:2px;box-shadow:0 6px 14px rgba(21,50,79,.18);min-height:96px;cursor:pointer;font:inherit}
.kt .ic{width:26px;height:26px;margin-bottom:4px}.kt b{font-size:28px;font-weight:800;line-height:1}.kt small{font-size:12px;font-weight:600;opacity:.95}
.kt.blue{background:linear-gradient(135deg,#2f86cc,#2474B5)}.kt.green{background:linear-gradient(135deg,#25a46b,#1B8B58)}.kt.amber{background:linear-gradient(135deg,#f5bd66,#F0AD4E)}.kt.red{background:linear-gradient(135deg,#e5625d,#D94D48)}.kt.grey{background:linear-gradient(135deg,#8796a8,#6b7a8c)}
.kt.lite{background:#fff;color:var(--ink);border:1px solid var(--line)}.kt.lite .ic{color:var(--blue)}
@media(max-width:380px){.kt{min-height:86px;padding:10px 8px}.kt b{font-size:24px}.kt small{font-size:11px}.kpis4{gap:6px}.hero h2{font-size:21px}}
/* ---------- secções ---------- */
.sec-h{display:flex;align-items:center;justify-content:space-between;margin:18px 16px 8px}.sec-h h3{margin:0;font-size:17px;color:var(--navy)}
.sec-h a,.sec-h button.lnk{color:var(--blue);font-weight:700;font-size:14px;background:none;border:0;cursor:pointer;display:inline-flex;align-items:center;gap:2px;min-height:44px;padding:0 4px}
/* próximo serviço */
.next{background:#fff;border-radius:20px;margin:14px 12px;padding:16px;box-shadow:0 8px 24px rgba(21,50,79,.10);border:1px solid var(--line)}
.next .nh{display:flex;justify-content:space-between;align-items:center;font-weight:700;color:var(--muted);font-size:14px}
.next .nb{display:flex;gap:12px;margin-top:8px}.next .nb>div:first-child{flex:1;min-width:0}
.next h4{margin:0 0 6px;font-size:20px;color:var(--navy);font-weight:800}
.next .ln{display:flex;align-items:center;gap:6px;color:#3d4b5c;font-size:14px;margin:4px 0}.next .ln .ic{width:17px;height:17px;color:var(--muted)}
.wcimg{width:86px;height:96px;border-radius:14px;background:linear-gradient(180deg,#dbe9f6,#eef4fa);display:flex;align-items:flex-end;justify-content:center;overflow:hidden;flex:none}
.wcimg svg{width:62px;height:86px}
.acts2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.bt{display:flex;align-items:center;justify-content:center;gap:8px;border-radius:14px;min-height:54px;font-size:16px;font-weight:700;border:0;cursor:pointer;text-decoration:none;font-family:inherit;padding:0 10px}
.bt.out{background:#EAF2FA;color:var(--blue);border:1.5px solid #cfe1f3}.bt.green{background:var(--green);color:#fff}.bt.blue{background:var(--blue);color:#fff}.bt.navy{background:var(--navy);color:#fff}.bt.ghost{background:#fff;color:var(--navy);border:1.5px solid var(--line)}.bt.orange{background:linear-gradient(90deg,#f39c4a,#ec7d2c);color:#fff}
.bt[disabled]{opacity:.45;cursor:not-allowed}.bt.full{width:100%}
.next .ct-call{margin-top:10px;padding-top:10px;border-top:1px solid var(--line)}
/* acessos rápidos */
.qa{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:4px 12px}
.qa button{background:#fff;border:1px solid var(--line);border-radius:14px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--navy);box-shadow:var(--sh);position:relative;cursor:pointer;min-height:76px;font-family:inherit}
.qa button .ic{color:var(--blue);width:24px;height:24px}.qa button .gv-badge{position:absolute;top:4px;right:6px}
/* lista de paragens */
.stops{background:#fff;border-radius:var(--r);margin:0 12px;box-shadow:var(--sh);border:1px solid var(--line);overflow:hidden}
.stop{display:flex;align-items:center;gap:10px;padding:12px;border-bottom:1px solid var(--line);cursor:pointer;min-height:64px}.stop:last-child{border-bottom:0}
.stop .n{width:32px;height:32px;border-radius:50%;background:#EEF2F7;color:var(--navy);font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}
.stop .si{width:34px;height:34px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex:none;background:#FDF1DE;color:#c47f10}.stop .si.ok{background:#E3F4EB;color:var(--green)}.stop .si.shut{background:#EEF1F5;color:#6b7a8c}
.stop .tx{flex:1;min-width:0}.stop .tx b{display:block;color:var(--navy);font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stop .tx small{color:var(--muted);font-size:13px}
.stop .chev{color:#9aa7b6}
/* ---------- Rota (lista do dia) ---------- */
#v-hoje{padding-bottom:20px}
.hoje-top{background:#fff;border-radius:var(--r);margin:12px;padding:14px 16px;box-shadow:var(--sh);border:1px solid var(--line)}
.hoje-top b{color:var(--navy);font-size:21px}.bar7{margin:0 12px 6px!important;height:8px!important;border-radius:6px!important;background:#E4E9F0!important}.bar7 i{background:var(--green)!important;border-radius:6px}
.wc7{border-radius:var(--r)!important;border:1px solid var(--line)!important;box-shadow:var(--sh)!important;border-left:5px solid var(--amber)!important;margin:10px 12px!important}
.wc7.is-done{border-left-color:var(--green)!important}.wc7.is-shut{border-left-color:#9aa7b6!important}.wc7.is-cur{border-left-color:var(--blue)!important}
.pbtn{background:var(--navy)!important;border-radius:12px!important}.pbtn.go{background:var(--green)!important}
.gv-hoje{border-radius:var(--r)!important;border:1px solid var(--line)!important;box-shadow:var(--sh)!important;background:#fff!important;color:var(--navy)!important}
.mv-box .mv-main{background:var(--navy)!important}
.ct-btn.call{background:var(--navy)!important}.ct-btn.wa{background:#25D366!important}
/* ---------- Mais (grelha) ---------- */
.prof{display:flex;align-items:center;gap:14px;background:#fff;border-radius:var(--r);margin:12px;padding:16px;box-shadow:var(--sh);border:1px solid var(--line)}
.prof .av{width:58px;height:58px;border-radius:50%;background:linear-gradient(135deg,#F0AD4E,#e58d2b);color:#fff;font-weight:800;font-size:22px;display:flex;align-items:center;justify-content:center;flex:none}
.prof b{display:block;font-size:18px;color:var(--navy)}.prof small{color:var(--muted);display:block}.prof .onl{color:var(--green);font-weight:700;font-size:13px}.prof .onl.off{color:var(--red)}
body.rd-tabs #v-mais .bigopts,.rd-grid{display:grid!important;grid-template-columns:repeat(3,1fr);gap:10px;padding:4px 12px 12px}
body.rd-tabs #v-mais .bigopt,.rd-grid .bigopt{flex-direction:column!important;align-items:center!important;text-align:center;gap:6px!important;padding:14px 6px!important;margin:0!important;border-radius:var(--r)!important;border:1px solid var(--line)!important;box-shadow:var(--sh)!important;min-height:104px;background:#fff;position:relative}
body.rd-tabs #v-mais .bigopt>span,.rd-grid .bigopt>span{font-size:26px!important;width:auto!important;height:auto;display:flex;align-items:center;justify-content:center;color:var(--blue)}
body.rd-tabs #v-mais .bigopt b,.rd-grid .bigopt b{font-size:13px!important;color:var(--navy);line-height:1.2}
body.rd-tabs #v-mais .bigopt small,.rd-grid .bigopt small{display:none!important}
body.rd-tabs #v-mais .bigopt .ic,.rd-grid .bigopt .ic{width:28px;height:28px}
.bigopt.danger b,.bigopt.danger>span{color:var(--red)!important}
.rd-foot{text-align:center;color:#8896a6;font-size:12px;padding:16px 12px 24px;line-height:1.6}
.rd-foot .lr-logo{justify-content:center;margin-bottom:4px}
@media(max-width:380px){body.rd-tabs #v-mais .bigopts,.rd-grid{gap:8px;padding:4px 8px 12px}}
/* ---------- registos ---------- */
.chips{display:flex;gap:8px;overflow-x:auto;padding:10px 12px 4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}
.chips button{border:1px solid var(--line);background:#fff;color:var(--navy);border-radius:12px;padding:0 14px;min-height:40px;font-weight:700;font-size:14px;white-space:nowrap;cursor:pointer;font-family:inherit}
.chips button.on{background:var(--blue);border-color:var(--blue);color:#fff}
.recs{margin:6px 12px}.rec{display:flex;gap:12px;background:#fff;border-radius:var(--r);padding:10px;margin-bottom:10px;box-shadow:var(--sh);border:1px solid var(--line);align-items:center;cursor:pointer}
.rec .th{width:64px;height:64px;border-radius:12px;object-fit:cover;flex:none;background:#EAF2FA;display:flex;align-items:center;justify-content:center;color:var(--blue)}
.rec .tx{flex:1;min-width:0}.rec .tx b{color:var(--navy);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rec .tx small{color:var(--muted);display:block;font-size:13px}
.empty{text-align:center;color:var(--muted);padding:30px 16px}
.pg-h{display:flex;align-items:center;gap:8px;padding:14px 16px 4px}.pg-h h2{margin:0;font-size:22px;color:var(--navy);font-weight:800}.pg-h .sub{color:var(--muted);font-size:13px}
/* ---------- limpeza por passos ---------- */
.stepper{display:flex;align-items:flex-start;justify-content:space-between;margin:6px 0 14px;position:relative}
.stepper::before{content:"";position:absolute;left:12%;right:12%;top:19px;height:3px;background:#E4E9F0;z-index:0}
.stepper .sp{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;font-size:12px;font-weight:700;color:#9aa7b6;position:relative;z-index:1;background:none;border:0;cursor:pointer;font-family:inherit;min-height:44px}
.stepper .sp i{width:40px;height:40px;border-radius:50%;background:#fff;border:2.5px solid #D5DDE7;display:flex;align-items:center;justify-content:center;color:#9aa7b6}
.stepper .sp.on{color:var(--blue)}.stepper .sp.on i{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 4px 12px rgba(36,116,181,.4)}
.stepper .sp.done{color:var(--green)}.stepper .sp.done i{background:var(--green);border-color:var(--green);color:#fff}
.stepper .sp .ic{width:20px;height:20px}
.cstep{display:none}.cstep.on{display:block}
.cstep>h4.cs-t{font-size:18px;color:var(--navy);margin:4px 0 10px;display:flex;align-items:center;gap:8px}
.cstep .step{border:1px solid var(--line)!important;border-radius:var(--r)!important;background:#fff;padding:12px!important}
.cstep .chk,.cl-list label.chk{border:1px solid var(--line);border-radius:12px;padding:12px;margin:8px 0;font-size:16px;font-weight:600;color:var(--navy);min-height:52px;background:#fff}
.cstep .chk input{width:22px;height:22px;accent-color:var(--blue)}
.cnav{display:flex;gap:10px;margin-top:16px;position:sticky;bottom:-18px;background:#fff;padding:10px 0 14px;z-index:3}.cnav .bt{flex:1}
.ph2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:10px 0}
.phbox{border:2px dashed #C8D4E2;border-radius:var(--r);min-height:130px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--navy);font-weight:700;font-size:14px;position:relative;overflow:hidden;cursor:pointer;background:#FAFCFE;text-align:center;padding:8px}
.phbox .ic{width:30px;height:30px;color:var(--blue)}.phbox.has{border-style:solid;border-color:var(--green);padding:0}.phbox img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.phbox .req{position:absolute;top:6px;right:6px;background:var(--red);color:#fff;border-radius:10px;font-size:11px;padding:1px 7px;font-weight:800}.phbox.has .req{background:var(--green)}
.phbox .lb{position:absolute;bottom:0;left:0;right:0;background:rgba(21,50,79,.75);color:#fff;font-size:12px;padding:4px}
.cs-info{background:#F5F8FC;border-radius:14px;padding:12px;margin-bottom:10px;font-size:14px;color:#3d4b5c}
.cs-info b{color:var(--navy);font-size:16px}
/* conclusão */
.done-hero{text-align:center;padding:6px 0 4px}.done-hero .ok{width:84px;height:84px;border-radius:50%;background:var(--green);color:#fff;display:flex;align-items:center;justify-content:center;margin:6px auto 10px;box-shadow:0 8px 24px rgba(27,139,88,.35)}
.done-hero .ok .ic{width:46px;height:46px;stroke-width:3}.done-hero h2{margin:0;color:var(--navy);font-size:24px}.done-hero small{color:var(--muted)}
.ad2{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.ad2 figure{margin:0;text-align:center;font-size:13px;color:var(--muted);font-weight:600}.ad2 img,.ad2 .noimg{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:14px;background:#EAF2FA;display:flex;align-items:center;justify-content:center}
.done-wc{text-align:center;margin:6px 0 12px}.done-wc b{display:block;color:var(--navy);font-size:17px}
.done-acts{display:flex;flex-direction:column;gap:10px}
details.rd-more{margin-top:14px;border-top:1px solid var(--line);padding-top:8px}details.rd-more summary{color:var(--blue);font-weight:700;min-height:44px;display:flex;align-items:center;cursor:pointer}
/* ---------- cliente ---------- */
.ob{background:#fff;border-radius:var(--r);margin:10px 12px;box-shadow:var(--sh);border:1px solid var(--line);padding:12px;display:grid;grid-template-columns:96px 1fr;gap:12px}
.ob .oimg{width:96px;height:100%;min-height:96px;border-radius:12px;object-fit:cover;background:#dfe9f3}
.ob .ot{min-width:0}.ob .ot .h{display:flex;justify-content:space-between;gap:6px;align-items:flex-start}.ob .ot b{color:var(--navy);font-size:16px}.ob .ot small{display:block;color:var(--muted);font-size:13px;margin-top:2px}
.pbar{height:7px;background:#E4E9F0;border-radius:6px;overflow:hidden;margin:8px 0 2px}.pbar i{display:block;height:100%;background:var(--green);border-radius:6px}
.ob .pl{display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}
.ob .ob-acts{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ob .ob-acts .bt{min-height:46px;font-size:14px}
.obtg{display:flex;align-items:center;gap:10px;border-radius:14px;padding:0 12px;min-height:46px;border:0;font-weight:800;font-size:14px;cursor:pointer;font-family:inherit;color:#fff;justify-content:center}
.obtg.open{background:var(--green)}.obtg.shut{background:var(--red)}
.obtg .ic{width:20px;height:20px}
.ob-hint{grid-column:1/-1;font-size:12px;color:var(--muted);text-align:center;margin-top:-2px}
.notif{display:flex;gap:12px;padding:12px;border-bottom:1px solid var(--line);align-items:flex-start}.notif:last-child{border-bottom:0}
.notif .ni{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;background:#E3F4EB;color:var(--green)}.notif .ni.bad{background:#FBE7E6;color:var(--red)}.notif .ni.warn{background:#FDF1DE;color:#c47f10}.notif .ni.info{background:#E4EFFA;color:var(--blue)}
.notif b{display:block;color:var(--navy);font-size:15px}.notif small{color:var(--muted);font-size:13px;display:block}
/* toggle da obra (diferenciador) — mais visível */
#v-obras .toggle{border-radius:16px!important;box-shadow:0 6px 16px rgba(0,0,0,.12);font-size:20px!important}
#v-obras .toggle.on{background:var(--green)!important}#v-obras .toggle.off{background:var(--red)!important}
/* ---------- admin ---------- */
body.adm7 #side{background:linear-gradient(180deg,#15324F 0%,#112a43 100%)!important;color:#dce6f1;width:250px;box-shadow:none}
body.adm7 #side .side-h{padding:18px 16px 14px;border-bottom:1px solid #ffffff14}
body.adm7 #side .side-h .brand{color:#fff}
body.adm7 #side .sg small{color:#7f97b1!important;font-weight:700;letter-spacing:.6px;padding:12px 18px 4px;display:block;font-size:11px;text-transform:uppercase}
body.adm7 #side button[data-v],body.adm7 #side button[data-install],body.adm7 #side .side-out{color:#dce6f1!important;display:flex!important;align-items:center;gap:12px;padding:0 14px!important;min-height:42px;margin:1px 8px;width:calc(100% - 16px)!important;border-radius:10px;font-size:14px!important;font-weight:500;background:none;border:0;text-align:left;font-family:inherit}
body.adm7 #side button[data-v]:hover,body.adm7 #side button[data-install]:hover{background:#ffffff12!important}
body.adm7 #side button.on{background:var(--blue)!important;color:#fff!important;font-weight:700}
body.adm7 #side .ic{width:19px;height:19px;opacity:.95}
.side-co{margin-top:auto;padding:14px 16px;border-top:1px solid #ffffff14;display:flex;align-items:center;gap:10px}
.side-co .av{width:38px;height:38px;border-radius:50%;background:#ffffff1f;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;flex:none;overflow:hidden}.side-co .av img{width:100%;height:100%;object-fit:contain;background:#fff}
.side-co b{display:block;color:#fff;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.side-co small{color:#93a9c0;font-size:12px}
.side-copy{color:#6f88a3;font-size:10.5px;padding:0 16px 14px;line-height:1.4}
@media(min-width:900px){body.adm7{padding-left:250px!important}
  body.adm7 header{background:#fff!important;color:var(--ink);border-bottom:1px solid var(--line)!important;padding-left:20px!important;padding-right:20px!important}
  body.adm7 header .brand{display:none}
  body.adm7 header select{background:#fff;color:var(--ink);border:1px solid var(--line)!important;max-width:220px!important}
  body.adm7 .hd-ic,body.adm7 #helpBtn{background:#F2F5F9!important;color:var(--navy)}body.adm7 #helpBtn::before{background:var(--navy)}
  body.adm7 .hd-search{display:flex!important}}
.hd-search{display:none;flex:1 1 auto;max-width:440px;align-items:center;gap:8px;background:#F2F5F9;border-radius:12px;padding:0 12px;min-height:42px;color:#8896a6;margin-right:auto}
.hd-search input{border:0!important;background:none;outline:none!important;padding:8px 0;font-size:14px;min-height:40px}
.dash2{padding:6px 8px 20px}
.dash2 .pg-h{padding:12px 8px 6px;justify-content:space-between;flex-wrap:wrap}
.d-grid{display:grid;grid-template-columns:1.25fr 1fr;gap:12px;margin:12px 4px}
@media(max-width:899px){.d-grid{grid-template-columns:1fr}}
.panel{background:#fff;border-radius:var(--r);box-shadow:var(--sh);border:1px solid var(--line);padding:14px;min-width:0}
.panel .ph{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.panel .ph h3{margin:0;font-size:16px;color:var(--navy)}
.live{display:flex;align-items:center;gap:10px;padding:10px 2px;border-bottom:1px solid var(--line)}.live:last-child{border-bottom:0}
.live time{color:var(--muted);font-size:13px;width:42px;flex:none;font-variant-numeric:tabular-nums}.live .li{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex:none;color:#fff;background:var(--green)}.live .li.warn{background:var(--amber)}.live .li.bad{background:var(--red)}.live .li.info{background:var(--blue)}
.live .li .ic{width:16px;height:16px;stroke-width:2.5}.live .tx{flex:1;min-width:0}.live .tx b{display:block;font-size:14px;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live .tx small{color:var(--muted);font-size:12.5px}
.live img{width:40px;height:40px;border-radius:8px;object-fit:cover;flex:none}
#dmap{height:290px;border-radius:12px;z-index:0}
.qc{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:12px 4px}
@media(max-width:899px){.qc{grid-template-columns:repeat(2,1fr)}}
.qc button{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh);padding:16px;text-align:left;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;gap:4px;position:relative;min-height:120px}
.qc .qi{width:44px;height:44px;border-radius:12px;background:#EAF2FA;color:var(--blue);display:flex;align-items:center;justify-content:center;margin-bottom:6px}
.qc b{color:var(--navy);font-size:15px}.qc small{color:var(--muted);font-size:13px}.qc .arr{position:absolute;right:14px;bottom:14px;color:var(--blue)}
.kmore{display:flex;flex-wrap:wrap;gap:8px;margin:12px 4px}.kmore .kpi{flex:1 1 140px;min-height:auto!important}
.dash2 .kpis{display:flex!important;flex-wrap:wrap;gap:8px;margin:12px 4px!important;padding:0!important;grid-template-columns:none!important}
.dash2 .kpis .kpi{flex:1 1 150px;border-radius:14px!important;border:1px solid var(--line)!important;box-shadow:var(--sh)!important;background:#fff!important;padding:10px 12px!important;min-height:auto!important;flex-direction:row!important;align-items:center;gap:10px;display:flex!important;text-align:left}
.dash2 .kpis .kpi b{font-size:20px!important}.dash2 .kpis .kpi span{font-size:18px}
@media(min-width:900px){.dash2 .kpis4{padding:0;gap:14px}.dash2 .kt{min-height:118px;padding:16px}.dash2 .kt b{font-size:34px}}
.leaflet-container{font-family:inherit}
/* rodapé de direitos */
.copy-foot{text-align:center;font-size:11px;color:#8896a6;padding:10px 12px 18px}
#login .card{border-radius:20px}

.cstep .step[data-rdph]{display:none!important}
.cstep #p_before,.cstep #p_after{display:none}
.ph1 .phbox{min-height:170px}
#c_save{width:100%;min-height:56px;border-radius:14px;background:var(--green)!important;display:flex;align-items:center;justify-content:center;gap:8px;font-size:17px}
#c_save.rd-dis{opacity:.5}
.cs-body>.step,.cs-body>div[data-f]{margin:10px 0}
.cs-info .card{margin:8px 0 0;box-shadow:none}

.rd-desk{display:none!important}
@media(min-width:900px){body.adm7 .rd-desk{display:inline-flex!important}}
@media(max-width:599px){body.rd-admin #rdAv{display:none}}
body.adm7 #side{display:flex;flex-direction:column}
.dash2 .pg-h .sub{color:var(--muted);font-size:14px}
/* quadro do dia no telemóvel: colunas empilhadas (nada fica fora do ecrã) */
@media(max-width:600px){.board{flex-direction:column;overflow-x:visible}.bcol{min-width:0;width:100%}}
.bcol{background:#EEF2F7!important;border-radius:var(--r)!important}.bcard{border-radius:12px!important;box-shadow:var(--sh)}
/* ---------- seletor inteligente de clientes/obras (app31) ---------- */
.pk{border:1px solid var(--line);border-radius:var(--r);background:#fff;padding:10px;margin:6px 0 10px;box-shadow:var(--sh);min-width:0}
.pk-top{background:var(--soft);border-radius:12px;padding:8px 10px;margin-bottom:8px}
.pk-count{display:flex;align-items:center;gap:8px;flex-wrap:wrap;color:var(--navy);font-size:15px;min-height:28px}.pk-count b{font-size:18px}
.pk-clr{margin-left:auto;background:#fff;border:1px solid var(--line);color:var(--red);font-weight:700;border-radius:10px;min-height:36px;padding:0 12px;font:inherit;font-size:14px;cursor:pointer}
.pk-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:92px;overflow-y:auto}.pk-chips:empty{display:none}.pk-chips{margin-top:6px}
.pk-chip{display:inline-flex;align-items:center;gap:6px;max-width:100%;min-height:36px;padding:4px 10px;border-radius:18px;border:0;background:var(--blue);color:#fff;font:inherit;font-size:13px;font-weight:600;cursor:pointer;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pk-chip i{font-style:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pk-chip span{opacity:.85;font-size:12px;flex:none}
.pk-search{position:relative;margin-bottom:8px}.pk-search .pk-ic{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--muted);pointer-events:none}
.pk-search input{width:100%;box-sizing:border-box;min-height:48px;padding-left:40px!important;font-size:16px;margin:0}
.pk-az{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:8px}
.pk-az .pk-l{flex:1 1 auto}.pk-l{min-width:40px;height:40px;padding:0 8px;border-radius:10px;border:1.5px solid var(--line);background:#fff;color:var(--navy);font:inherit;font-weight:800;font-size:15px;cursor:pointer}
.pk-l.on{background:var(--navy);border-color:var(--navy);color:#fff}
.pk-list{position:relative;max-height:min(46vh,430px);overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;border-radius:12px;background:var(--bg);padding:6px;border:1px solid var(--line)}
.pk-g{background:#fff;border:1px solid var(--line);border-radius:14px;padding:8px;margin-bottom:8px}.pk-g:last-child{margin-bottom:0}
.pk-g.has{border-color:#9cc3e6;box-shadow:0 0 0 2px #2474B522}
.pk-gh{display:flex;align-items:center;gap:8px;margin-bottom:6px}.pk-gn{flex:1;min-width:0}.pk-gn b{display:block;color:var(--navy);font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pk-gn small{color:var(--muted);font-size:12px}
.pk-all{flex:none;min-height:40px;padding:0 12px;border-radius:10px;border:1.5px solid #cfe1f3;background:#EAF2FA;color:var(--blue);font:inherit;font-weight:700;font-size:14px;cursor:pointer}
.pk-all.on{background:#fff;color:var(--muted);border-color:var(--line)}
.pk-obs{display:grid;grid-template-columns:repeat(auto-fill,minmax(138px,1fr));gap:6px}
.pk-ob{display:block;margin:0;cursor:pointer;min-width:0;position:relative}.pk-ob input{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none}
.pk-box{display:flex;gap:8px;align-items:flex-start;min-height:52px;height:100%;box-sizing:border-box;padding:9px 10px;border-radius:12px;border:1.5px solid var(--line);background:#fff}
.pk-tick{flex:none;width:22px;height:22px;border-radius:7px;border:2px solid #b8c4d2;color:transparent;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:14px;margin-top:1px}
.pk-tx{min-width:0;display:flex;flex-direction:column;gap:2px}.pk-tx b{font-size:14px;color:var(--ink);font-weight:600;overflow-wrap:anywhere}.pk-tx small{font-size:12px;color:var(--muted);overflow-wrap:anywhere}.pk-tx .pk-shut{color:var(--red)}
.pk-ob input:checked+.pk-box{border-color:var(--blue);background:#EAF2FA}.pk-ob input:checked+.pk-box .pk-tick{background:var(--blue);border-color:var(--blue);color:#fff}
.pk-ob input:focus-visible+.pk-box{outline:2px solid var(--blue)}
.pk-empty{padding:18px;text-align:center;color:var(--muted)}
.pk-save{position:sticky;bottom:0;background:#fff;padding:10px 0 calc(10px + env(safe-area-inset-bottom));margin:8px 0 calc(-18px - env(safe-area-inset-bottom));box-shadow:0 -8px 14px -10px rgba(21,50,79,.35);z-index:3}
.pk-save .btn{margin:0}
.pk-sq{margin-bottom:6px!important;min-height:44px;font-size:16px}
/* ---------- Dividir rotas por dias + Otimizar trajeto (app32) ---------- */
#arOv{background:var(--bg)!important}#arOv h2{color:var(--navy)}#arOv .card{margin:10px 0}
.ar-set label{display:block;margin-top:12px;font-weight:600;color:var(--navy)}
.ar-ws{display:flex;flex-wrap:wrap;gap:6px}.ar-w{display:inline-flex!important;align-items:center;gap:8px;margin:0!important;min-height:44px;padding:0 12px;border:1.5px solid var(--line);border-radius:12px;background:#fff;font-weight:600!important;cursor:pointer}
.ar-w input{width:20px;height:20px;margin:0}.ar-w:has(input:checked){border-color:var(--blue);background:#EAF2FA}
.ar-pre{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:6px 0}
.ar-p{min-height:44px;border-radius:12px;border:1.5px solid #cfe1f3;background:#EAF2FA;color:var(--blue);font:inherit;font-weight:700;font-size:13px;line-height:1.1;padding:4px;cursor:pointer}
.ar-p.on{background:var(--blue);border-color:var(--blue);color:#fff}
.ar-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}
.ar-d{min-height:52px;border-radius:12px;border:2px solid var(--line);background:#fff;color:var(--navy);font:inherit;font-weight:800;font-size:14px;padding:0;cursor:pointer}
.ar-d.on{background:var(--navy);border-color:var(--navy);color:#fff}.ar-d[data-d="6"],.ar-d[data-d="7"]{border-style:dashed}.ar-d.on[data-d="6"],.ar-d.on[data-d="7"]{background:var(--green);border-color:var(--green);border-style:solid}
.ar-sum{margin-top:8px;background:var(--soft);border-radius:12px;padding:10px;color:var(--navy);font-size:14px}
.ar-chips{display:flex;flex-wrap:wrap;gap:4px;margin-top:6px}.ar-chips span{background:#fff;border:1px solid #cfe1f3;border-radius:8px;padding:2px 8px;font-size:13px;font-weight:600}
.ar-lims{display:grid;grid-template-columns:1fr 1fr;gap:8px}.ar-lims input{width:100%;box-sizing:border-box}.ar-lims label{font-size:13px}
.ar-dep{display:grid;grid-template-columns:1fr;gap:6px}.ar-dep input{width:100%;box-sizing:border-box;margin:0}.ar-dep .btn{margin:0}
@media(min-width:700px){.ar-dep{grid-template-columns:2fr 1fr auto}}
.ar-kpi{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin:8px 0}.ar-kpi div{background:var(--soft);border-radius:12px;padding:8px 6px;text-align:center;min-width:0}
.ar-kpi b{display:block;font-size:17px;color:var(--navy);white-space:nowrap}.ar-kpi span{font-size:12px;color:var(--muted)}
.ar-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.ar-t{flex:1 1 88px;min-height:52px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--navy);font:inherit;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px}
.ar-t b{font-size:14px}.ar-t small{font-size:11px;color:var(--muted)}.ar-t.on{background:var(--navy);border-color:var(--navy);color:#fff}.ar-t.on small{color:#cfe1f3}
.ar-map{height:300px;border-radius:14px;margin:8px 0;border:1px solid var(--line)}
.ar-act{display:flex;flex-direction:column;gap:6px}.ar-act .btn{margin:0}
.ar-dayh{margin:16px 4px 4px;font-size:18px;font-weight:800;color:var(--navy);text-transform:capitalize}
.ar-rt h3{margin:0 0 4px;font-size:16px}
.ar-opt{background:#E3F4EB;color:#14532d;border-radius:10px;padding:8px 10px;font-size:13px;margin:6px 0}
.ar-apx{background:#FDF1DE;color:#7a4a00;border-radius:10px;padding:8px 10px;font-size:13px;margin:6px 0}
.ar-st{display:flex;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid var(--line);min-width:0}.ar-st:last-child{border-bottom:0}
.ar-st .n{flex:none;width:30px;height:30px;border-radius:50%;color:#fff;font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.ar-st .tx{flex:1;min-width:0;display:flex;flex-direction:column}.ar-st .tx b{font-size:14px;color:var(--ink);overflow-wrap:anywhere}.ar-st .tx small{font-size:12px;color:var(--muted)}
.ar-st select{flex:none;width:96px;min-height:40px;margin:0;font-size:13px;padding:4px}
.ar-lk{flex:none;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:#fff;font-size:16px;cursor:pointer}
.tag.ap{align-self:flex-start;background:#FDF1DE;color:#9a5b00;font-size:11px;margin-top:3px}
.ar-pin{color:#fff;border:2px solid #fff;border-radius:50%;width:26px;height:26px;line-height:22px;text-align:center;font:bold 12px sans-serif;box-shadow:0 1px 3px #0006;box-sizing:border-box}
.ar-pin.ap{border:2px dashed #fff;outline:2px dashed #c47f10}
.gm-btns{display:flex;flex-direction:column;gap:6px;margin-top:8px}.gm-btns .btn{margin:0}
.opt-btn{margin-top:8px}
.opt-rt{display:flex;align-items:center;gap:6px;color:var(--navy);margin-bottom:8px}
.opt-ba{display:grid;grid-template-columns:1fr auto 1fr;gap:8px;align-items:stretch}
.opt-ba>div{border-radius:14px;padding:10px;text-align:center;display:flex;flex-direction:column;justify-content:center;min-width:0}
.opt-ba .b{background:#EEF1F5;color:#4a5a6c}.opt-ba .a{background:#E3F4EB;color:#14532d}.opt-ba .ar{background:none;font-size:22px;color:var(--muted);padding:0}
.opt-ba span{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.opt-ba b{font-size:22px}.opt-ba small{font-size:12px}
.opt-save{margin:8px 0;background:var(--green);color:#fff;border-radius:12px;padding:10px;text-align:center;font-size:15px}.opt-save.same{background:#EAF2FA;color:var(--navy)}
.opt-ok{margin:8px 0;background:#E3F4EB;color:#14532d;border-radius:12px;padding:10px;font-weight:600}.opt-ok.undo{background:#EEF1F5;color:var(--navy)}
.opt-list{margin-top:8px;border:1px solid var(--line);border-radius:12px;padding:0 10px;max-height:min(40vh,380px);overflow-y:auto}
.pk-save .btn+.btn{margin-top:6px}
/* ---------- Rotas: barra compacta por rota (recolher/expandir) ---------- */
.rt-hint{margin:14px 16px 4px;color:var(--muted);font-size:13px;font-weight:600}
.rt-card{padding:0!important;overflow:hidden;border-left:5px solid var(--rc,var(--blue))!important}
.rt-bar{display:flex;flex-direction:column;gap:0}
.rt-tog{display:flex;align-items:center;gap:10px;width:100%;min-height:60px;padding:10px 12px;background:#fff;border:0;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.rt-tog .dot{flex:none;width:14px;height:14px;border-radius:50%;margin:0}
.rt-nm{flex:1;min-width:0;display:flex;flex-direction:column}.rt-nm b{font-size:16px;color:var(--navy);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rt-nm small{font-size:12.5px;color:var(--muted);overflow-wrap:anywhere}
.rt-shut{color:var(--red);font-weight:700}
.rt-chev{flex:none;width:30px;height:30px;padding:4px;border-radius:50%;background:#EEF2F7;color:var(--navy);transition:transform .15s;box-sizing:border-box}
.rt-card.open .rt-chev{transform:rotate(180deg);background:var(--navy);color:#fff}
.rt-acts{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:0 12px 10px}
.rt-b{min-height:42px;border-radius:10px;border:1.5px solid var(--line);background:#F5F7FA;color:var(--navy);font:inherit;font-weight:700;font-size:14px;cursor:pointer;padding:0 6px;white-space:nowrap}
.rt-b.go{background:#E3F4EB;border-color:#bfe3cf;color:var(--green)}.rt-b:disabled{opacity:.45;cursor:default}
.rt-body{border-top:1px solid var(--line);padding:6px 12px 12px;background:#fff}.rt-body .btn{margin-top:8px}
/* ---------- Editar rota: topo + seletor de WCs (app33) ---------- */
.rf-top{display:grid;grid-template-columns:1fr 86px;gap:8px;align-items:end}.rf-top input{width:100%;box-sizing:border-box}.rf-cor input{height:46px;padding:4px}
.rf-wds{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.rf-wds label{margin:0;cursor:pointer}.rf-wds input{position:absolute;opacity:0;width:1px;height:1px}
.rf-wds span{display:flex;align-items:center;justify-content:center;min-height:44px;border-radius:10px;border:1.5px solid var(--line);background:#fff;color:var(--navy);font-weight:700;font-size:13px}
.rf-wds input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}.rf-wds input:focus-visible+span{outline:2px solid var(--blue)}
.pk-seg{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;background:#EEF2F7;border-radius:12px;padding:4px;margin-bottom:8px}
.pk-seg button{min-height:44px;border:0;border-radius:9px;background:transparent;color:var(--navy);font:inherit;font-weight:700;font-size:13px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}
.pk-seg button small{font-size:11px;font-weight:600;color:var(--muted)}.pk-seg button.on{background:#fff;box-shadow:var(--sh);color:var(--blue)}
.wpk .pk-tx .tag{margin:3px 0 0!important;align-self:flex-start;max-width:100%;overflow:hidden;text-overflow:ellipsis}.wpk-nr{color:var(--amber)!important;font-weight:700}
/* ---------- atualização automática ---------- */
html,body{overscroll-behavior-y:none}main{overscroll-behavior-y:contain}
.live-toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom));transform:translate(-50%,20px);opacity:0;pointer-events:none;background:var(--green);color:#fff;font-weight:700;font-size:14px;padding:8px 16px;border-radius:20px;box-shadow:0 6px 16px rgba(0,0,0,.2);z-index:1500;transition:.25s}
.live-toast.on{opacity:1;transform:translate(-50%,0)}
.live-bar{position:fixed;left:50%;top:calc(8px + env(safe-area-inset-top));transform:translateX(-50%);z-index:1600;background:var(--navy);color:#fff;border:0;border-radius:22px;min-height:44px;padding:0 18px;font:inherit;font-size:14px;box-shadow:0 6px 18px rgba(0,0,0,.25);cursor:pointer;max-width:calc(100vw - 24px);white-space:nowrap}
.ptr{position:fixed;left:50%;top:calc(64px + env(safe-area-inset-top));width:40px;height:40px;margin-top:-30px;border-radius:50%;background:#fff;color:var(--blue);box-shadow:0 4px 14px rgba(0,0,0,.2);display:flex;align-items:center;justify-content:center;transform:translate(-50%,0);opacity:0;z-index:800;pointer-events:none}
.ptr.ready{background:var(--blue);color:#fff}.ptr.spin svg,.spin svg{animation:lrspin .8s linear infinite}.ptr .ic{width:22px;height:22px}
@keyframes lrspin{to{transform:rotate(360deg)}}
.hd-rf .ic{width:22px;height:22px}
header #syncPill.ok::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11a8 8 0 1 0-2.3 5.7'/%3E%3Cpath d='M20 4v7h-7'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 11a8 8 0 1 0-2.3 5.7'/%3E%3Cpath d='M20 4v7h-7'/%3E%3C/svg%3E")}
header #syncPill.spin::before{animation:lrspin .8s linear infinite}
/* ---------- Quadro do dia limpo (app34) ---------- */
.qd-head{padding:14px!important}
.qd-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.qd-title h3{margin:0 0 2px}.qd-title .small::first-letter{text-transform:uppercase}
.qd-mbtn{flex:none;min-height:44px;padding:0 14px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--navy);font:inherit;font-weight:700;font-size:14px;cursor:pointer;white-space:nowrap}.qd-mbtn.on{background:var(--navy);color:#fff;border-color:var(--navy)}
.qd-chips{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 10px}
.qd-chip{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:0 13px;border-radius:22px;border:1.5px solid var(--line);background:#fff;color:var(--ink);font:inherit;font-size:14px;cursor:pointer;white-space:nowrap;min-width:0}
.qd-chip .qs{display:none}
@media(max-width:600px){.qd-chips{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.qd-chip{padding:0 6px;font-size:13px;gap:5px}.qd-chip .ql{display:none}.qd-chip .qs{display:inline;overflow:hidden;text-overflow:ellipsis}}
.qd-chip i{width:10px;height:10px;border-radius:50%;background:var(--c)}.qd-chip b{font-weight:800}.qd-chip.zero{color:var(--muted)}
.qd-chip.on{background:var(--c,var(--navy));border-color:var(--c,var(--navy));color:#fff}.qd-chip.on i{background:#fff}
.qd-chip[data-st=fechada].on{color:#17283a}
.qd-mapw{position:relative;border-radius:14px;overflow:hidden;border:1px solid var(--line)}
#bmap.qd-map{height:200px;margin:0;border-radius:0;transition:height .25s}#bmap.qd-map.big{height:min(62vh,560px)}
.qd-hint{margin-top:8px}
.qd-cl{background:none!important;border:0!important}.qd-cl div{border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px rgba(21,50,79,.35);border:3px solid #fff;box-sizing:border-box;position:relative}
.qd-cl div b{position:absolute;inset:5px;border-radius:50%;background:#fff;color:var(--navy);font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center}
.qd-cl.on div{border-color:var(--navy)}
.qd-wpin{background:none!important;display:flex!important;align-items:center;gap:4px;padding:0!important}.qd-wpin b{width:28px;height:28px;border-radius:50%;color:#fff;font-size:11px;display:flex;align-items:center;justify-content:center;border:2px solid #fff;box-shadow:0 2px 6px rgba(0,0,0,.3);flex:none}
.qd-wpin span{background:#fff;color:var(--navy);font-weight:700;font-size:12px;padding:2px 7px;border-radius:10px;box-shadow:0 1px 4px rgba(0,0,0,.2)}.qd-wpin.on b{outline:3px solid var(--navy)}
.qd-list{display:flex;flex-direction:column;gap:10px;padding:0 12px 16px}
.qd-w{background:#fff;border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;border:1.5px solid transparent}.qd-w.over{border-color:var(--blue);border-style:dashed}
.qd-w.open{border-color:var(--line)}
.qd-bar{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"av who num" "prog prog prog" "cnt cnt cnt";gap:6px 12px;align-items:center;width:100%;padding:12px 14px;border:0;background:none;text-align:left;font:inherit;color:var(--ink);cursor:pointer}
.qd-av{grid-area:av;width:44px;height:44px;border-radius:50%;color:#fff;font-weight:800;font-size:15px;display:flex;align-items:center;justify-content:center}
.qd-who{grid-area:who;display:flex;flex-direction:column;min-width:0}.qd-who b{font-size:16px;color:var(--navy);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qd-who small{font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.qd-who .qd-pos{font-size:12px}
.qd-num{grid-area:num;display:flex;align-items:center;gap:8px}.qd-num b{font-size:18px;color:var(--navy);font-variant-numeric:tabular-nums}
.qd-chev{width:32px;height:32px;border-radius:50%;background:var(--soft);color:var(--navy);display:flex;align-items:center;justify-content:center;font-size:18px;line-height:1;padding-bottom:6px;box-sizing:border-box;transition:transform .2s}
.qd-w.open .qd-chev{transform:rotate(180deg);background:var(--navy);color:#fff;padding:0 0 6px}
.qd-prog{grid-area:prog;height:8px;border-radius:4px;background:#EEF2F7;overflow:hidden}.qd-prog i{display:block;height:100%;background:var(--green);border-radius:4px}
.qd-cnts{grid-area:cnt;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.qd-cnt{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;font-weight:700;color:var(--ink);background:#F5F7FA;border-radius:10px;padding:2px 8px}.qd-cnt i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.qd-flt{font-size:12px;font-weight:700;color:var(--blue);margin-left:auto}
.qd-un .qd-who b{color:var(--muted)}
.qd-body{border-top:1px solid var(--line);padding:4px 0}
.qd-row{display:flex;align-items:center;gap:8px;min-height:52px;padding:0 6px 0 14px;border-bottom:1px solid #F0F3F7}.qd-row:last-of-type{border-bottom:0}
.qd-row[draggable=true]{cursor:grab}.qd-row:hover{background:#FAFBFD}
.qd-dot{width:10px;height:10px;border-radius:50%;flex:none}
.qd-code{flex:none;font-size:14px;color:var(--navy);white-space:nowrap}
.qd-cli{flex:1;min-width:0;font-size:14px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qd-ics{flex:none;font-size:13px}
.qd-pill{flex:none;font-size:12px;font-weight:700;border-radius:10px;padding:3px 8px;color:var(--c);background:color-mix(in srgb,var(--c) 14%,#fff);white-space:nowrap}
.st-fechada .qd-pill,.qd-sh .qd-pill[style*="B4BCC6"]{color:#5d6773}
.qd-more{flex:none;width:44px;height:44px;border:0;border-radius:12px;background:none;color:var(--navy);font-size:22px;font-weight:800;cursor:pointer;line-height:1}.qd-more:hover,.qd-more:focus-visible{background:var(--soft)}
.qd-row.st-limpo .qd-code,.qd-row.st-fechada .qd-code{opacity:.75}
.qd-empty{padding:14px;color:var(--muted);font-size:14px}
.qd-close{display:block;width:calc(100% - 28px);margin:6px 14px 10px;min-height:44px;border:0;border-radius:12px;background:var(--soft);color:var(--navy);font:inherit;font-weight:700;cursor:pointer}
.qd-sh-h{display:flex;gap:12px;align-items:center}.qd-sh-h h3{margin:0}.qd-sh-h .qd-dot{width:14px;height:14px}
.qd-sh-st{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:10px 0}
.qd-to{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px;margin-bottom:12px}.qd-to .btn{margin:0;min-height:48px;white-space:normal}
.qd-unl{margin:8px 0}
@media(min-width:900px){
 .qd{max-width:1400px;margin:0 auto}
 #bmap.qd-map{height:300px}
 .qd-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));align-items:start;gap:14px;padding:0 16px 20px}
}
@media(max-width:380px){.qd-tm{display:none}.qd-row{gap:6px;padding-left:12px}}
/* ---------- armazém verificado + coordenadas suspeitas ---------- */
.ar-dwarn{border-radius:12px;padding:10px 12px;font-size:14px;line-height:1.35;margin:4px 0 8px}.ar-dwarn.bad{background:#FDECEC;color:#8E2B27;border:1px solid #F4C7C5}.ar-dwarn.fix{background:#E8F5EE;color:#14663F;border:1px solid #BFE3CF}
.ar-dprev{display:grid;grid-template-columns:1fr;gap:8px;margin:8px 0 12px}
.ar-dp{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:14px;min-height:24px}.ar-dp .ok{color:var(--green)}.ar-dp .bad{color:var(--red)}.ar-dp b{font-variant-numeric:tabular-nums;color:var(--navy)}
.ar-dp .fix{background:#E8F5EE;color:#14663F;border-radius:10px;padding:2px 8px;font-size:12px;font-weight:700}
.ar-dm{height:150px;border-radius:12px;overflow:hidden;border:1px solid var(--line)}
.ar-dpin{background:none!important;border:0!important;font-size:26px;line-height:30px;text-align:center;filter:drop-shadow(0 2px 3px rgba(0,0,0,.35))}.ar-dpin.bad{filter:drop-shadow(0 0 4px #D94D48)}
@media(min-width:700px){.ar-dprev{grid-template-columns:1fr 1fr;align-items:start}}
.ar-apx.sus{background:#FDECEC!important;color:#8E2B27!important}.tag.sus{background:#FDECEC!important;color:#8E2B27!important;white-space:normal}
/* ---------- armazém (Definições + marcador) ---------- */
.dep-pin{background:none!important;border:0!important}.dep-pin span{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;background:#fff;border:2.5px solid var(--navy);box-shadow:0 3px 10px rgba(21,50,79,.35);font-size:20px;box-sizing:border-box}
.dep-pin.bad span{border-color:var(--red)}.dep-pin.alt span{border-style:dashed;opacity:.85}
.dep-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:8px 0}.dep-row .btn{margin:0;min-height:44px}
.dep-map{height:220px;border-radius:12px;overflow:hidden;border:1px solid var(--line);margin:4px 0}
.dep-act{margin-top:10px}#depCard.flash{box-shadow:0 0 0 3px var(--blue)}
.dep-ask{display:block}.dep-ask .btn{display:flex;margin:8px 0 0;min-height:44px}
.ar-dok{display:flex;align-items:center;justify-content:space-between;gap:10px;background:#F5F7FA;border-radius:12px;padding:8px 10px 8px 12px;margin:4px 0 8px}
.ar-dok span{display:flex;flex-direction:column;min-width:0}.ar-dok small{color:var(--muted);font-variant-numeric:tabular-nums}.ar-dok .btn{margin:0;min-height:44px;flex:none}
.ar-ovr{margin:4px 0 10px}.ar-ovr summary{cursor:pointer;color:var(--blue);font-weight:700;min-height:44px;display:flex;align-items:center}
/* retenção de documentos */
.doc-legal{background:#FFF4E5;border-radius:10px;padding:8px 10px;margin:8px 0;color:#7A4B00;line-height:1.35}
#docCard .doc-all{display:flex;width:100%;min-height:48px;justify-content:center;margin:12px 0 4px;white-space:normal;text-align:center}
.doc-warn .btn{min-height:44px}
#docCard select{min-height:48px}
#docCard .doc-zip{display:flex;width:100%;min-height:48px;justify-content:center;margin:8px 0 0}
/* v36 — Nova visita */
.nv-types{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;background:#EEF2F7;border-radius:12px;padding:4px;margin:4px 0 10px}
.nv-tp{min-height:48px;border:0;border-radius:10px;background:transparent;font:inherit;font-weight:700;font-size:14px;color:var(--navy);padding:2px 4px;line-height:1.15;cursor:pointer}
.nv-tp.on{background:#fff;color:var(--blue);box-shadow:0 1px 4px rgba(0,0,0,.12)}
@media (max-width:380px){.nv-types{grid-template-columns:repeat(2,minmax(0,1fr))}}
.nv-sq input{min-height:48px;font-size:16px;width:100%;box-sizing:border-box}
.nv-res:empty{display:none}.nv-res{display:flex;flex-direction:column;gap:6px;margin:-2px 0 10px;max-height:min(44vh,380px);overflow-y:auto;overscroll-behavior:contain}
.nv-r{display:flex;gap:10px;align-items:flex-start;text-align:left;width:100%;min-height:56px;padding:9px 12px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font:inherit;cursor:pointer}
.nv-r.off{background:#F6F7F9;border-style:dashed}.nv-ri{font-size:22px;line-height:1.1;flex:none}.nv-rt{min-width:0;display:flex;flex-direction:column;gap:2px}.nv-rt b{font-size:15px;color:var(--ink);overflow-wrap:anywhere}.nv-rt small{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.nv-loc{font-weight:700}.nv-loc.dp{color:#1E7B45!important}.nv-loc.cl{color:var(--blue)!important}.nv-loc.tr{color:#8A5A00!important}.nv-loc.mt{color:var(--red,#C62828)!important}
.nv-why{color:var(--red,#C62828)!important;font-weight:600}
.nv-cli{display:flex;gap:10px;align-items:center;background:var(--soft);border-radius:12px;padding:10px 12px}.nv-cli>div{flex:1;min-width:0;display:flex;flex-direction:column}.nv-cli b{color:var(--navy);font-size:16px;overflow-wrap:anywhere}.nv-cli small{color:var(--muted);overflow-wrap:anywhere}.nv-cli .btn{flex:none;min-height:44px;margin:0;width:auto}
.nv-step{background:#FFF8E6;border-radius:12px;padding:12px;margin:10px 0;color:#6B4E00}
.nv-h{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 6px;color:var(--navy)}.nv-h .pk-all{margin-left:auto}
.nv-cats{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.nv-cat{min-height:44px;padding:0 12px;border-radius:22px;border:1.5px solid var(--line);background:#fff;font:inherit;font-size:14px;color:var(--navy);cursor:pointer}.nv-cat b{margin-left:2px;color:var(--muted)}
.nv-cat.on{background:var(--blue);border-color:var(--blue);color:#fff}.nv-cat.on b{color:#fff}
.nv-auto{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px}.nv-auto>span{color:var(--muted)}.nv-auto b{min-width:28px;text-align:center;font-size:18px}
.nv-q{width:44px;height:44px;border-radius:12px;border:1.5px solid var(--line);background:#fff;font-size:20px;font-weight:700;color:var(--navy);cursor:pointer}
.nv-ab{flex:1 1 200px;min-height:44px;margin:0!important}
.nv-list .pk-obs{grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.nv-short{max-height:min(30vh,280px)}
.nv-ob.off .pk-box{background:#F6F7F9;border-style:dashed;opacity:.85}.nv-ob.off .pk-tick{visibility:hidden}
.nv-ty{display:block;font-weight:500;font-size:12px;color:var(--muted)}
.nv-no,.nv-new{margin-top:8px}.nv-no summary,.nv-new summary{min-height:44px;display:flex;align-items:center;cursor:pointer;color:var(--blue);font-weight:600}
.nv-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.nv-2 .btn{margin:6px 0 0}.nv-2 select,.nv-2 input{width:100%;box-sizing:border-box}
@media (max-width:380px){.nv-2{grid-template-columns:1fr}}
.nv-chips{margin:8px 0}
.nv .pk-save .btn:disabled{opacity:.5}
.nv input:not([type=checkbox]):not([type=radio]),.nv select{min-height:48px;font-size:16px;box-sizing:border-box}
