/* Kit de simulações (assets/js/sim-kit.js) */
.sk { display: flex; flex-direction: column; align-items: center; gap: 16px; width: 100%; }
.sk__frame { width: 100%; display: flex; justify-content: center; }
.sk--desktop .sk__frame { display: block; }
.sk-browser {
  width: 100%; border: 1px solid var(--ink-15); border-radius: 14px; overflow: hidden; background: #fff;
  box-shadow: 0 28px 64px -26px rgba(11, 18, 32, 0.5);
}
.sk-screen { position: relative; overflow: hidden; background: #f6f7f9; color: #111827; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; }
.sk-screen--phone { height: 100%; font-size: 13px; }
.sk-scale { position: relative; width: 100%; aspect-ratio: 1100 / 688; overflow: hidden; }
.sk-screen--desktop { position: absolute; top: 0; left: 0; width: 1100px; height: 688px; font-size: 12px; transform: scale(var(--sk-scale, 1)); transform-origin: 0 0; }
.sk-in > * { animation: skIn .35s ease-out both; }
/* totem em pé e TV */
.sk--totem .sk__frame { display: flex; justify-content: center; }
.sk-totem { width: min(100%, 330px); display: flex; flex-direction: column; align-items: center; }
.sk-totem__tela { width: 100%; padding: 12px; border-radius: 26px; background: linear-gradient(160deg, #1f2937, #0b1220); box-shadow: 0 30px 60px -24px rgba(11,18,32,.6), inset 0 0 0 1px rgba(255,255,255,.08); }
.sk-scale--totem { aspect-ratio: 540 / 960; border-radius: 14px; }
.sk-totem__pe { width: 34%; height: 46px; background: linear-gradient(#111827, #1f2937); clip-path: polygon(22% 0, 78% 0, 100% 100%, 0 100%); }
.sk-screen--totem { position: absolute; top: 0; left: 0; width: 540px; height: 960px; font-size: 18px; transform: scale(var(--sk-scale, 1)); transform-origin: 0 0; }
.sk--tv .sk__frame { display: block; }
.sk-tv { width: 100%; padding: 10px; border-radius: 16px; background: #0b1220; box-shadow: 0 30px 60px -24px rgba(11,18,32,.6); }
.sk-scale--tv { aspect-ratio: 1280 / 720; border-radius: 6px; }
.sk-screen--tv { position: absolute; top: 0; left: 0; width: 1280px; height: 720px; font-size: 20px; transform: scale(var(--sk-scale, 1)); transform-origin: 0 0; background: #021f23; color: #fff; }
@keyframes skIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

.sk__controls { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: center; max-width: 100%; }
.sk__btn { width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--ink-15); background: #fff; font-size: 13px; cursor: pointer; flex: 0 0 auto; }
.sk__steps { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; }
.sk__steps button {
  display: inline-flex; align-items: center; gap: 6px; padding: 6px 12px 6px 6px; border-radius: 999px;
  border: 1px solid var(--ink-15); background: #fff; font-size: 12.5px; font-weight: 600; color: var(--ink-70); cursor: pointer;
}
.sk__steps button span { width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: var(--bege); font-size: 11px; }
.sk__steps button[aria-current="step"] { border-color: var(--accent); color: var(--ink); background: var(--accent-tint); }
.sk__steps button[aria-current="step"] span { background: var(--accent); color: #fff; }

/* —— mapa —— */
.sk-map { display: block; width: 100%; height: 100%; }
.sk-map__bg { fill: #eef0e8; }
.sk-map__parque { fill: #d6ead0; }
.sk-map__rio { fill: none; stroke: #bcd8ef; stroke-width: 14; }
.sk-map__rua { fill: none; stroke: #fff; stroke-width: 9; stroke-linecap: round; }
.sk-map__rota { fill: none; stroke: #0f766e; stroke-width: 5; stroke-linecap: round; stroke-linejoin: round; stroke-dasharray: 2 0; }
.sk-pin circle { fill: #dc2626; stroke: #fff; stroke-width: 3; }
.sk-pin--cliente circle { fill: #111827; }
.sk-pin--entregue circle { fill: #16a34a; }
.sk-pin text { font-size: 11px; fill: #fff; }
.sk-pin__tag rect { fill: #fff; stroke: rgba(0,0,0,.12); }
.sk-pin__tag text { font-size: 10.5px; font-weight: 700; fill: #111827; text-anchor: start; }
.sk-moto circle { fill: #0f766e; stroke: #fff; stroke-width: 2.5; }
.sk-moto--verde circle { fill: #16a34a; }
.sk-moto--laranja circle { fill: #ea580c; }
.sk-moto .sk-moto__halo { fill: rgba(15, 118, 110, .22); stroke: none; animation: skHalo 1.6s ease-out infinite; transform-origin: center; transform-box: fill-box; }
.sk-moto--verde .sk-moto__halo { fill: rgba(22, 163, 74, .22); }
.sk-moto--laranja .sk-moto__halo { fill: rgba(234, 88, 12, .22); }
.sk-moto text { font-size: 10px; }
@keyframes skHalo { from { transform: scale(.7); opacity: 1; } to { transform: scale(1.9); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .sk-in > *, .sk-moto .sk-moto__halo { animation: none; }
}

/* —— peças comuns de app —— */
.sk-app { display: flex; flex-direction: column; height: 100%; }
.sk-top { flex: 0 0 auto; padding: 34px 14px 12px; color: #fff; background: #111827; }
.sk-top h4 { margin: 0; font-size: 16px; }
.sk-top p { margin: 2px 0 0; font-size: 11.5px; opacity: .8; }
.sk-body { flex: 1; min-height: 0; overflow: hidden; padding: 12px; display: flex; flex-direction: column; gap: 10px; }
.sk-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 14px; padding: 12px; box-shadow: 0 1px 2px rgba(0,0,0,.04); }
.sk-card h5 { margin: 0 0 4px; font-size: 13.5px; }
.sk-muted { color: #6b7280; font-size: 11.5px; }
.sk-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.sk-chip { display: inline-flex; align-items: center; gap: 4px; padding: 3px 8px; border-radius: 999px; font-size: 10.5px; font-weight: 700; background: #f3f4f6; color: #374151; }
.sk-chip--verde { background: #dcfce7; color: #166534; }
.sk-chip--azul { background: #ccfbf1; color: #024a51; }
.sk-chip--laranja { background: #ffedd5; color: #9a3412; }
.sk-chip--vermelho { background: #fee2e2; color: #991b1b; }
.sk-bt { display: block; width: 100%; border: 0; border-radius: 12px; padding: 11px; font-weight: 700; font-size: 13px; text-align: center; background: #111827; color: #fff; }
.sk-bt--verde { background: #16a34a; }
.sk-bt--azul { background: #0f766e; }
.sk-bt--claro { background: #fff; color: #111827; border: 1px solid #d1d5db; }
.sk-pulse { animation: skPulse 1.2s ease-in-out infinite; }
@keyframes skPulse { 50% { transform: scale(1.03); box-shadow: 0 0 0 6px rgba(22,163,74,.18); } }
.sk-toast { position: absolute; left: 12px; right: 12px; top: 40px; z-index: 5; background: #111827; color: #fff; border-radius: 12px; padding: 10px 12px; font-size: 12px; font-weight: 600; box-shadow: 0 10px 24px -8px rgba(0,0,0,.4); animation: skIn .35s ease-out both; }
.sk__controls { position: relative; z-index: 3; }

/* ===== moldura do painel admin (compartilhada) ===== */
.gp { display: grid; grid-template-columns: 54px 1fr; height: 100%; background: #f8fafc; }
.gp-side { background: #fff; border-right: 1px solid #e5e7eb; display: flex; flex-direction: column; align-items: center; gap: 12px; padding: 12px 0; }
.gp-side img { width: 30px; height: 30px; border-radius: 8px; }
.gp-side i { width: 30px; height: 30px; border-radius: 9px; display: grid; place-items: center; font-style: normal; font-size: 14px; color: #6b7280; }
.gp-side i.on { background: #fef2f2; color: #dc2626; outline: 1px solid #fecaca; }
.gp-main { min-width: 0; display: flex; flex-direction: column; }
.gp-top { height: 44px; flex: 0 0 auto; background: #fff; border-bottom: 1px solid #e5e7eb; display: flex; align-items: center; gap: 10px; padding: 0 16px; font-size: 12px; }
.gp-top b { font-size: 12.5px; }
.gp-top .gp-badge { margin-left: auto; font-size: 10.5px; padding: 3px 9px; border-radius: 999px; background: #f0fdf4; color: #15803d; border: 1px solid #bbf7d0; }
.gp-body { flex: 1; min-height: 0; overflow: hidden; padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.gp-h1 { display: flex; align-items: center; gap: 8px; }
.gp-h1 h3 { margin: 0; font-size: 17px; }
.gp-h1 small { color: #64748b; font-size: 11px; display: block; }
.gp-h1 .r { margin-left: auto; display: flex; gap: 6px; }
.gp-btn { font-size: 11px; font-weight: 600; border: 1px solid #d1d5db; background: #fff; border-radius: 8px; padding: 6px 10px; white-space: nowrap; }
.gp-btn--p { background: #dc2626; border-color: #dc2626; color: #fff; }
.gp-btn--v { background: #16a34a; border-color: #16a34a; color: #fff; }
.gp-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.gp-pills span { font-size: 10.5px; border-radius: 999px; padding: 3px 9px; background: #f1f5f9; }
.gp-pills .g { background: #f0fdf4; color: #15803d; }
.gp-pills .b { background: #f0fdfa; color: #025e67; }
.gp-pills .a { background: #fffbeb; color: #b45309; }
.gp-card { background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; padding: 12px; }
.gp-grid-mapa { flex: 1; min-height: 0; display: grid; grid-template-columns: 1fr 230px; gap: 10px; }
.gp-mapa { border-radius: 12px; overflow: hidden; border: 1px solid #e2e8f0; min-height: 0; }
.gp-lista { background: #fff; border: 1px solid #e5e7eb; border-radius: 12px; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.gp-lista header { padding: 9px 10px; font-size: 10px; letter-spacing: .07em; font-weight: 700; display: flex; justify-content: space-between; border-bottom: 1px solid #f1f5f9; }
.gp-lista .busca { margin: 8px 10px; border: 1px solid #e5e7eb; border-radius: 8px; padding: 6px 8px; font-size: 10.5px; color: #9ca3af; }
.gp-ent { display: flex; align-items: center; gap: 8px; margin: 0 6px 4px; padding: 7px 8px; border-radius: 9px; border: 1px solid transparent; font-size: 11.5px; }
.gp-ent.sel { border-color: #5eead4; background: #f0fdfa; }
.gp-ent i { width: 9px; height: 9px; border-radius: 50%; flex: 0 0 auto; }
.gp-ent small { display: block; font-size: 10px; }
.gp-ent em { margin-left: auto; font-style: normal; font-size: 9.5px; color: #94a3b8; }
.gp-det { margin-top: auto; border-top: 1px solid #e5e7eb; padding: 10px; font-size: 10.5px; }
.gp-det .mini { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin: 7px 0; }
.gp-det .mini span { background: #f8fafc; border-radius: 7px; padding: 5px; text-align: center; }
.gp-det .mini b { display: block; font-size: 13px; }

/* conciliação */
.gp-tots { display: grid; grid-template-columns: repeat(8, 1fr); gap: 8px; }
.gp-tots div small { display: block; font-size: 10px; color: #6b7280; }
.gp-tots div b { font-size: 15px; }
.gp-taxa { display: flex; justify-content: space-between; gap: 10px; align-items: center; background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 12px; padding: 11px 13px; }
.gp-taxa small { font-size: 10.5px; color: #166534; }
.gp-taxa b { display: block; font-size: 22px; color: #166534; }
.gp-taxa .r { text-align: right; font-size: 11px; color: #14532d; line-height: 1.6; }
.gp-tabs { display: flex; gap: 4px; background: #f1f5f9; border-radius: 9px; padding: 3px; width: max-content; }
.gp-tabs span { font-size: 11px; padding: 5px 12px; border-radius: 7px; color: #475569; }
.gp-tabs span.on { background: #fff; color: #111827; font-weight: 700; box-shadow: 0 1px 2px rgba(0,0,0,.08); }
.gp-tab { width: 100%; border-collapse: collapse; font-size: 11.5px; }
.gp-tab th { text-align: left; font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; color: #6b7280; padding: 6px 8px; border-bottom: 1px solid #e5e7eb; }
.gp-tab td { padding: 7px 8px; border-bottom: 1px solid #f1f5f9; }
.gp-tab tr.ok td { background: #f0fdf4; }
.gp-tab .ck { width: 15px; height: 15px; border-radius: 4px; border: 1.5px solid #cbd5e1; display: inline-grid; place-items: center; font-size: 10px; color: #fff; }
.gp-tab tr.ok .ck { background: #16a34a; border-color: #16a34a; }
.gp-tab .mono { font-family: ui-monospace, Menlo, monospace; }
.gp-badge-met { font-size: 9.5px; border: 1px solid #d1d5db; border-radius: 999px; padding: 1px 6px; }
.gp-modal-bg { position: absolute; inset: 0; background: rgba(15,23,42,.45); display: grid; place-items: center; z-index: 4; }
.gp-modal { width: 400px; background: #fff; border-radius: 14px; padding: 16px; box-shadow: 0 30px 60px -20px rgba(0,0,0,.5); font-size: 11.5px; }
.gp-modal h4 { margin: 0 0 10px; font-size: 14.5px; }
.gp-modal .info { background: #f0fdf4; border-radius: 10px; padding: 9px; line-height: 1.55; color: #14532d; }
.gp-modal label { display: block; margin-top: 9px; font-weight: 600; font-size: 11px; }
.gp-modal .inp { margin-top: 4px; border: 1px solid #d1d5db; border-radius: 8px; padding: 6px 8px; color: #111827; }
.gp-modal .acts { display: flex; justify-content: flex-end; gap: 6px; margin-top: 12px; }
.gp-status { font-size: 10.5px; font-weight: 700; color: #fff; border-radius: 999px; padding: 3px 10px; }
.gp-fechado { background: #f0fdf4; border: 1px solid #bbf7d0; border-radius: 12px; padding: 10px 12px; font-size: 11.5px; color: #14532d; display: flex; gap: 14px; align-items: center; }

/* relatório */
.gp-ind { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; }
.gp-ind div { border: 1px solid #e5e7eb; border-radius: 10px; padding: 9px; background: #fff; }
.gp-ind div.p { border-color: rgba(220,38,38,.4); background: rgba(220,38,38,.05); }
.gp-ind small { font-size: 9px; letter-spacing: .06em; color: #6b7280; display: block; }
.gp-ind b { font-size: 17px; display: block; margin: 2px 0; }
.gp-ind div.p b { color: #dc2626; }
.gp-ind span { font-size: 10px; color: #6b7280; }
.gp-barra { height: 7px; border-radius: 4px; background: #e5e7eb; overflow: hidden; }
.gp-barra i { display: block; height: 100%; background: #dc2626; }
.gp-barra i.on { background: #9ca3af; }


.gp-body--flush { padding: 0; gap: 0; }

/* larguras comuns das seções com simulação larga */
.en-sim-wide { max-width: 1100px; margin: 0 auto; }
.en-bullets { margin-top: 28px !important; }
