/* =====================================================================
   CarregaBR · software.css · /software/ (RASCUNHO, modelo de 23/10/2026)
   Software de gestão de eletropostos: o app e o painel com a marca CarregaBR
   para os carregadores CHINT. Base: momento.css (DESIGN-SYSTEM 12) e o molde de
   /carregador-com-midia/ (tela composta por nós, selo de conteúdo ilustrativo).
     .sw-open   abertura: a praça à noite, o app no celular da foto (HTML mapeado no vidro)
     .sw-do     quatro verbos, ilustração de linha 56 px, sem caixas
     .sw-day    momento "Um dia na rede." (MO.film, 12 s): painel, mapa, números, alerta às 15h
     .sw-app-   o app do motorista: três toques trocam a tela do celular
     .sw-who    para quem: quatro linhas grandes com a página de produto certa
     .sw-chint  OCPP 1.6J, conexão por linha CHINT e quem faz o quê
     .sw-end    fechamento: a mesma praça ao amanhecer, o painel em repouso
   Tudo prefixado por .sw. Animação só com transform e opacity. Nenhum texto abaixo de 15 px
   (a tela dentro da foto é imagem, decorativa). Redução de movimento: tudo pronto e parado.
   ===================================================================== */
.sw{
  --sw-ink:#F6F1EA;--sw-ink-2:#E6DED3;--sw-ink-3:#C9C0B4;
  --sw-cu:#D08B55;--sw-cu-2:#E8A87C;--sw-cu-3:#F2C29A;
  --sw-free:#8FD3A6;--sw-warn:#F2B84B;
  --sw-night:#070B18;--sw-night-2:#0C1328;
  --sw-pad:clamp(88px,3rem + 6vw,168px);
  --mo-h:clamp(2.7rem,1.2rem + 4.8vw,6.25rem);--mo-ease:cubic-bezier(.22,.61,.36,1);
  overflow-x:clip;
}
.sw h1,.sw h2{line-height:.98;letter-spacing:-.04em}
.sw h2>.mo-kicker{display:block;margin:0 0 var(--s-5);max-width:none;text-wrap:wrap;line-height:1.3;letter-spacing:.14em}
.sw-kicker{display:block;margin:0 0 var(--s-5);font:600 .9375rem/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sw-cu-3)}
.sw-h{font-size:var(--mo-h);text-wrap:balance}
.sw-nw{white-space:nowrap}
.sw-fine{margin:0;font:500 .9375rem/1.4 var(--mono);letter-spacing:.04em;color:var(--text-dim)}
.sw .btn-primary{min-height:56px;padding-inline:32px;font-size:1.0625rem}
.sw [data-mo-tone="dark"] .btn-primary{background:#F6F1EA;color:#1C1B19}
.sw [data-mo-tone="dark"] .btn-primary:hover{background:#fff;box-shadow:0 14px 40px rgba(232,168,124,.28)}
.sw [data-mo-tone="dark"] .mo-link{color:var(--sw-ink)}
.sw [data-mo-tone="dark"] :focus-visible{outline-color:var(--accent-light)}
.sw-acts{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px}

/* ---------- a tela do app (360 × 780, tema claro da marca) ---------- */
.sw-app{position:absolute;inset:0;display:flex;flex-direction:column;padding:16px 26px 26px;background:linear-gradient(180deg,#FBF8F3 0%,#F2EDE5 100%);color:#24221F;font-family:var(--body);overflow:hidden}
.sw-app p{margin:0}
.sw-app__bar{display:flex;align-items:center;justify-content:space-between;height:38px;font:600 1.0625rem/1 var(--body);color:#24221F}
.sw-app__isl{width:104px;height:30px;border-radius:999px;background:#0A0A0B}
.sw-app__sig{display:flex;align-items:flex-end;gap:3px;height:16px}
.sw-app__sig i{width:4px;border-radius:1px;background:#24221F}
.sw-app__sig i:nth-child(1){height:6px}.sw-app__sig i:nth-child(2){height:9px}.sw-app__sig i:nth-child(3){height:12px}.sw-app__sig i:nth-child(4){height:15px}
.sw-app__mark{margin-top:22px!important;font:700 1.75rem/1 var(--display);letter-spacing:-.035em}
.sw-app__mark b{color:#A65A22}
.sw-app__k{margin-top:10px!important;font:600 1.0625rem/1.3 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#7A4A26}
.sw-app__h{margin-top:30px!important;font:700 2.1rem/1 var(--display);letter-spacing:-.035em}
.sw-ring{position:relative;width:236px;aspect-ratio:1;margin:26px auto 0}
.sw-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
.sw-ring circle{fill:none;stroke-width:13}
.sw-ring__bg{stroke:rgba(36,34,31,.1)}
.sw-ring__fg{stroke:#C27B44;stroke-linecap:round;stroke-dasharray:64 100}
.sw-ring__n{font-variant-numeric:tabular-nums;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:2px;font:700 4.4rem/1 var(--display);letter-spacing:-.05em}
.sw-ring__n small{font-size:.4em;letter-spacing:0;color:#8F5426;margin-top:.5em}
.sw-app__dl{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:26px 0 0}
.sw-app__dl div{padding:14px 16px;border-radius:18px;background:#fff;box-shadow:0 6px 18px -10px rgba(60,40,20,.3)}
.sw-app__dl dt{font:600 1rem/1.2 var(--body);color:#5A554E}
.sw-app__dl dd{margin:6px 0 0;font:700 1.45rem/1 var(--display);letter-spacing:-.02em}
.sw-app__st{display:flex;align-items:center;gap:14px;margin-top:auto;padding:16px 18px;border-radius:20px;background:#24221F;color:#F6F1EA}
.sw-app__st i{flex:none;width:30px;height:44px;border-radius:6px;background:#F3EEE7;position:relative}
.sw-app__st i::after{content:"";position:absolute;left:50%;top:9px;width:13px;height:13px;margin-left:-6.5px;border-radius:50%;background:#0B0D12;box-shadow:0 0 0 2px #E8A87C}
.sw-app__st p{display:grid;gap:4px}
.sw-app__st b{font:700 1.2rem/1.1 var(--display)}
.sw-app__st span{font:500 1rem/1.2 var(--body);color:#D3CCC2}
.sw-app__pay{margin-top:12px!important;display:flex;justify-content:space-between;font:500 1.0625rem/1.2 var(--body);color:#5A554E}
.sw-app__pay b{color:#24221F}

/* mapa do app */
.sw-app--map{padding:0}
.sw-app--map .sw-app__bar{position:relative;z-index:2;padding:16px 26px 0;height:54px}
.sw-mini{position:absolute;inset:0;background:#EDE7DD}
.sw-mini svg{width:100%;height:100%}
.sw-mini__river{fill:none;stroke:#C9D8E3;stroke-width:26;stroke-linecap:round}
.sw-mini__road{fill:none;stroke:#FFFFFF;stroke-width:12;stroke-linecap:round}
.sw-mini__road--thin{stroke-width:6}
.sw-pin path{fill:#24221F}
.sw-pin circle{fill:#8FD3A6}
.sw-pin--busy circle{fill:#E8A87C}
.sw-pin--sel path{fill:#A65A22}
.sw-pin--sel circle:not(.sw-pin__halo){fill:#FFF6EC}
.sw-pin__halo{fill:rgba(194,123,68,.22)!important;transform-box:fill-box;transform-origin:center}
.sw-me{fill:#2F6FD8;stroke:#fff;stroke-width:4}
.sw-sheet{position:absolute;left:14px;right:14px;bottom:14px;z-index:2;display:grid;gap:6px;padding:22px 22px 24px;border-radius:26px;background:#FFFFFF;box-shadow:0 -10px 40px -18px rgba(40,30,20,.45)}
.sw-sheet__k{display:flex;align-items:center;gap:8px;font:600 1rem/1.2 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#2F6E46}
.sw-sheet__k i{width:10px;height:10px;border-radius:50%;background:#3E9A62}
.sw-sheet__t{font:700 1.75rem/1.05 var(--display);letter-spacing:-.03em}
.sw-sheet__s{font:500 1.0625rem/1.3 var(--body);color:#5A554E}
.sw-sheet__d{position:absolute;right:22px;top:22px;font:600 1rem/1.2 var(--mono);color:#5A554E}

/* pagar */
.sw-pay{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:12px}
.sw-pay li{display:flex;align-items:center;gap:14px;min-height:66px;padding:0 20px;border-radius:18px;background:#fff;border:2px solid transparent;box-shadow:0 6px 18px -12px rgba(60,40,20,.35)}
.sw-pay li i{flex:none;width:24px;height:24px;border-radius:50%;border:2px solid #B9AFA3}
.sw-pay li b{font:600 1.25rem/1.2 var(--display);letter-spacing:-.01em}
.sw-pay li.is-sel{border-color:#C27B44}
.sw-pay li.is-sel i{border-color:#C27B44;background:radial-gradient(circle,#C27B44 0 6px,transparent 7px)}
.sw-tar{display:flex;justify-content:space-between;align-items:flex-start;margin-top:auto;padding:20px 20px 22px;border-radius:20px;background:#24221F;color:#F6F1EA}
.sw-tar p:first-child{font:600 1rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#E8A87C}
.sw-tar b{font:700 1.4rem/1.2 var(--display)}
.sw-app--pay .sw-tar{margin-bottom:12px;background:#fff;color:#24221F;box-shadow:0 6px 18px -12px rgba(60,40,20,.35)}
.sw-app--pay .sw-tar p:first-child{color:#7A4A26}
.sw-app--pay .sw-app__st{margin-top:0}

/* ---------- 1 · abertura ---------- */
.sw-open{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:var(--sw-ink);background:var(--sw-night);overflow:hidden;isolation:isolate}
.sw-open__media{position:absolute;inset:0;z-index:-1;overflow:hidden}
.sw-open__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:68% 50%}
.sw-open__media::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
  background:linear-gradient(90deg,rgba(5,8,18,.82) 0%,rgba(5,8,18,.55) 32%,rgba(5,8,18,0) 56%),linear-gradient(0deg,rgba(5,8,18,.6) 0%,rgba(5,8,18,0) 28%)}
.sw-scr{position:absolute;left:0;top:0;z-index:2;width:360px;height:780px;transform-origin:0 0;overflow:hidden;border-radius:38px;pointer-events:none;backface-visibility:hidden;visibility:hidden}
.sw-scr.is-mapped{visibility:visible}
.sw-scr::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;
  background:linear-gradient(118deg,rgba(255,255,255,.18) 0%,rgba(255,255,255,.04) 26%,rgba(255,255,255,0) 40%),radial-gradient(120% 70% at 50% 40%,transparent 60%,rgba(0,0,0,.18) 100%)}

.sw-scr .sw-app__isl{background:#050506}
/* o brilho ocupa a cena inteira e só o gradiente muda de lugar (pintura, sem deslocar layout: CLS 0) */
.sw-open__glow{position:absolute;inset:0;z-index:1;pointer-events:none;mix-blend-mode:screen;opacity:.55;
  background:radial-gradient(var(--grx,15%) var(--gry,27%) at var(--gx,70%) var(--gy,58%),rgba(255,236,214,.34),rgba(255,226,196,.1) 55%,transparent)}
/* filme da abertura: entra por cima da foto (mesmo recorte), sob o degradê do texto; enquanto toca, a tela HTML e o
   brilho da foto saem (o filme já traz a tela do app composta), sem duplicar */
.sw-open__video{position:absolute;inset:0;z-index:2;width:100%;height:100%;object-fit:cover;object-position:68% 50%;opacity:0;transition:opacity 1s var(--mo-ease)}
.sw-open__video.is-playing{opacity:1}
.sw-scr,.sw-open__glow{transition:opacity .8s var(--mo-ease)}
.sw-open.is-film .sw-scr,.sw-open.is-film .sw-open__glow{opacity:0}
.sw-play{position:absolute;z-index:4;width:44px;height:44px;border-radius:50%;border:1px solid rgba(246,241,234,.45);background:rgba(10,14,26,.45);color:#F6F1EA;display:grid;place-items:center;cursor:pointer;opacity:.85;transition:opacity .2s;padding:0}
.sw-play:hover{opacity:1}
.sw-play:focus-visible{outline:2px solid #F6F1EA;outline-offset:3px}
.sw-play[hidden]{display:none}
.sw-play .icon{width:16px;height:16px}
.sw-play .i-play,.sw-play .i-replay{display:none}
.sw-play[data-state="paused"] .i-play,.sw-play[data-state="replay"] .i-replay{display:block}
.sw-play[data-state="paused"] .i-pause,.sw-play[data-state="replay"] .i-pause{display:none}
.sw-open__btn{right:max(20px,calc((100vw - 1180px)/2));bottom:clamp(20px,4vh,40px)}
.sw-open__in{position:relative;z-index:4;padding-block:calc(var(--nav-h) + 40px) clamp(104px,15vh,160px)}
.sw-open h1{font-size:clamp(3.2rem,1.1rem + 5vw,6.75rem);max-width:11.5ch;text-wrap:balance;margin:0}
.sw-open__lead{margin:var(--s-6) 0 var(--s-6);max-width:30ch;font:400 clamp(1.1rem,1rem + .5vw,1.45rem)/1.45 var(--body);color:var(--sw-ink-2)}
.sw-open__fine{position:absolute;z-index:4;left:max(20px,calc((100vw - 1180px)/2));bottom:28px;color:var(--sw-ink-3)}
.js .sw-open__in>*{opacity:0;transform:translateY(18px);transition:opacity 1.1s var(--mo-ease),transform 1.1s var(--mo-ease)}
.js .sw-open__in>h1{opacity:1}
.js .sw-open.is-lit .sw-open__in>*{opacity:1;transform:none}
.js .sw-open.is-lit .sw-open__in>:nth-child(2){transition-delay:.25s}
.js .sw-open.is-lit .sw-open__in>:nth-child(3){transition-delay:.45s}
@media (max-width:760px) and (orientation:portrait){
  .sw-open{min-height:0;justify-content:flex-start}
  .sw-open__media{position:relative;inset:auto;z-index:0;width:100%;aspect-ratio:4/5;margin-top:calc(var(--nav-h) - 8px)}
  .sw-open__media img,.sw-open__video{object-position:50% 50%}
  .sw-open__btn{right:16px;bottom:16px}
  .sw-open__media::after{background:linear-gradient(180deg,rgba(5,8,18,.55) 0%,rgba(5,8,18,0) 20%),linear-gradient(0deg,var(--sw-night) 0%,rgba(7,11,24,0) 22%)}
  .sw-open__in{order:2;padding-block:4px 32px}
  .sw-open h1{font-size:clamp(2.6rem,1rem + 8vw,3.6rem);max-width:none}
  .sw-open__fine{position:static;order:3;padding:0 20px 28px}
}

/* ---------- 2 · o que você faz ---------- */
.sw-do{background:#FFFFFF;padding-block:var(--sw-pad)}
.sw-do__h{max-width:12ch}
.sw-do__list{list-style:none;margin:clamp(48px,6vw,96px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(28px,3.4vw,56px)}
.sw-verb{display:grid;align-content:start;padding-top:var(--s-6);border-top:1px solid var(--line-strong)}
.sw-verb .ill{width:56px;height:56px}
.sw-verb h3{margin:var(--s-5) 0 0;font:700 clamp(2.2rem,1.4rem + 1.9vw,3.4rem)/1 var(--display);letter-spacing:-.045em}
.sw-verb p{margin:var(--s-4) 0 0;font-size:1.0625rem;line-height:1.55;color:var(--text-secondary);max-width:30ch}
.sw-do__fine{margin-top:clamp(40px,5vw,72px)}
@media (max-width:1000px){.sw-do__list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.sw-do__list{grid-template-columns:1fr;gap:36px}}

/* ---------- 3 · momento: um dia na rede ---------- */
.sw-day{position:relative;background:var(--sw-night);color:var(--sw-ink);padding-block:var(--sw-pad) clamp(64px,3rem + 3vw,112px);overflow:hidden;isolation:isolate}
.sw-sky{position:absolute;inset:0 0 auto;height:78%;z-index:-1;pointer-events:none;-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent)}
.sw-sky__l{position:absolute;inset:0;z-index:1;opacity:0}
.sw-sky__l--night{z-index:0}
.sw-sky__l--dawn{background:radial-gradient(80% 60% at 50% 100%,rgba(240,150,96,.75),rgba(240,150,96,0) 72%),linear-gradient(180deg,#121A3A 0%,#33366A 50%,#7A5070 100%)}
.sw-sky__l--day{background:radial-gradient(50% 45% at 78% 6%,rgba(255,240,214,.32),transparent 70%),linear-gradient(180deg,#1A3F70 0%,#2F5F96 55%,#3E72AA 100%)}
.sw-sky__l--dusk{background:radial-gradient(80% 60% at 30% 100%,rgba(246,160,96,.7),rgba(246,160,96,0) 70%),linear-gradient(180deg,#0F1636 0%,#38335E 55%,#7A4B5C 100%)}
.sw-sky__l--night{background:radial-gradient(50% 40% at 50% 0%,rgba(60,80,140,.25),transparent 70%),linear-gradient(180deg,#070B18 0%,#0B1226 100%);opacity:1}
.sw-day__head{display:grid;justify-items:center;text-align:center}
.sw-day__head .mo-h{max-width:14ch}
.sw-day__lead{margin:var(--s-5) 0 0;font:400 clamp(1.1rem,1rem + .45vw,1.35rem)/1.5 var(--body);color:var(--sw-ink-2)}

.sw-panel{position:relative;margin:clamp(40px,5vw,72px) 0 0;border-radius:28px;background:linear-gradient(180deg,rgba(14,20,40,.94),rgba(9,13,28,.97));border:1px solid rgba(246,241,234,.12);box-shadow:0 40px 120px -40px rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.06);overflow:hidden}
.sw-panel__top{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;padding:18px clamp(18px,2.4vw,32px);border-bottom:1px solid rgba(246,241,234,.1)}
.sw-panel__mark{margin:0;display:flex;align-items:baseline;gap:14px;font:700 1.5rem/1 var(--display);letter-spacing:-.035em;color:var(--sw-ink)}
.sw-panel__mark b{color:var(--sw-cu-2)}
.sw-wm{font:inherit;letter-spacing:inherit;color:inherit;text-transform:none}
.sw-panel__mark span:not(.sw-wm){font:600 .9375rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sw-ink-3)}
.sw-clock{margin:0;font:700 clamp(2rem,1.4rem + 1.6vw,3rem)/1 var(--display);letter-spacing:-.03em;color:var(--sw-ink)}
.sw-seal{justify-self:end;margin:0;padding:8px 14px;border:1px solid rgba(232,168,124,.45);border-radius:999px;font:600 .9375rem/1.2 var(--mono);letter-spacing:.04em;color:var(--sw-cu-3);text-align:center}
.sw-panel__body{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:0}
.sw-map{position:relative;padding:clamp(14px,2vw,26px);border-right:1px solid rgba(246,241,234,.1)}
.sw-map__fig{position:relative}
.sw-map__svg{width:100%;height:auto;overflow:visible}
.sw-river{fill:none;stroke:rgba(110,140,200,.14);stroke-width:30;stroke-linecap:round}
.sw-blocks rect{fill:rgba(246,241,234,.03);stroke:rgba(246,241,234,.1);stroke-width:1}
.sw-road{fill:none;stroke:rgba(246,241,234,.2);stroke-width:2.4;stroke-linecap:round}
.sw-road--thin{stroke-width:1.2;stroke:rgba(246,241,234,.14)}
.sw-links path{fill:none;stroke:rgba(232,168,124,.22);stroke-width:1;stroke-dasharray:2 6}
.sw-node__halo{fill:rgba(232,168,124,.18);opacity:0;transform-box:fill-box;transform-origin:center}
.sw-node__ring{fill:#0B1124;stroke:var(--sw-free);stroke-width:2}
.sw-node__st{fill:#F3EEE7}
.sw-node__win{fill:#0B0D12}
.sw-node__alert{fill:var(--sw-warn);opacity:0;transform-box:fill-box;transform-origin:50% 100%}
.sw-node__bang{stroke:#2A1A05;stroke-width:3;stroke-linecap:round;opacity:0}
.sw-node.is-on .sw-node__ring{stroke:var(--sw-cu-2);stroke-width:2.6}
.sw-node.is-on .sw-node__win{fill:var(--sw-cu-2)}
.sw-node.is-on .sw-node__halo{opacity:1;animation:swHalo 1.8s ease-out infinite}
.sw-node.is-alert .sw-node__ring{stroke:var(--sw-warn);stroke-width:2.6}
.sw-node.is-alert .sw-node__alert,.sw-node.is-alert .sw-node__bang{opacity:1}
.sw-node.is-alert .sw-node__alert{animation:swBump .6s var(--mo-ease) both}
.sw-day.is-still .sw-node__halo{animation-play-state:paused}
.sw-day.is-still .sw-node.is-alert .sw-node__alert{animation:none}
@keyframes swHalo{from{transform:scale(.7);opacity:.9}to{transform:scale(1.35);opacity:0}}
@keyframes swBump{from{transform:scale(.4);opacity:0}to{transform:none;opacity:1}}
.sw-map__lbl{list-style:none;margin:0;padding:0;position:absolute;inset:0}
.sw-map__lbl li{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,30px);display:flex;align-items:center;gap:7px;white-space:nowrap;font:500 .9375rem/1.2 var(--body);color:var(--sw-ink-2)}
.sw-map__lbl b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(246,241,234,.12);font:700 .9375rem/1 var(--mono);color:var(--sw-ink)}
.sw-legend{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 22px;font:500 .9375rem/1.3 var(--body);color:var(--sw-ink-3)}
.sw-legend li{display:flex;align-items:center;gap:8px}
.sw-legend i{width:12px;height:12px;border-radius:50%;border:2px solid var(--sw-free)}
.sw-legend i.is-on{border-color:var(--sw-cu-2);background:var(--sw-cu-2)}
.sw-legend i.is-alert{border-color:var(--sw-warn);background:var(--sw-warn);border-radius:2px;transform:rotate(45deg) scale(.85)}

.sw-side{display:grid;align-content:start;gap:clamp(20px,2.4vw,32px);padding:clamp(18px,2.4vw,32px)}
.sw-kpis{margin:0;display:grid;gap:0}
.sw-kpi{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:14px 0;border-bottom:1px solid rgba(246,241,234,.1)}
.sw-kpi:first-child{padding-top:0}
.sw-kpi dt{font:500 1rem/1.3 var(--body);color:var(--sw-ink-3)}
.sw-kpi dd{margin:0;font:700 clamp(2.2rem,1.5rem + 1.6vw,3.2rem)/1 var(--display);letter-spacing:-.04em;color:var(--sw-ink);display:flex;align-items:baseline;gap:8px}
.sw-kpi dd small{font:600 .9375rem/1 var(--mono);letter-spacing:.06em;color:var(--sw-ink-3)}
.sw-chart__t{margin:0 0 10px;font:600 .9375rem/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--sw-cu-3)}
.sw-chart svg{width:100%;height:clamp(96px,9vw,128px);display:block}
.sw-chart__base{stroke:rgba(246,241,234,.2);stroke-width:1;vector-effect:non-scaling-stroke}
.sw-bar{fill:var(--sw-cu-2);transform-box:fill-box;transform-origin:50% 100%}
.sw-bar.is-now{fill:var(--sw-cu-3)}
.sw-chart__x{list-style:none;margin:8px 0 0;padding:0;display:flex;justify-content:space-between;font:500 .9375rem/1 var(--mono);color:var(--sw-ink-3)}

.sw-panel__foot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:16px clamp(18px,2.4vw,32px);border-top:1px solid rgba(246,241,234,.1);background:rgba(0,0,0,.18)}
.sw-feed{list-style:none;margin:0;padding:0;position:relative;flex:1;min-width:0;height:1.6em;font:500 1.0625rem/1.6 var(--body);color:var(--sw-ink-2);overflow:hidden}
.sw-feed li{position:absolute;inset:0;display:flex;gap:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transform:translateY(100%);transition:opacity .5s var(--mo-ease),transform .5s var(--mo-ease)}
.sw-feed li.is-cur{opacity:1;transform:none}
.sw-feed li.is-past{opacity:0;transform:translateY(-100%)}
.sw-feed time{flex:none;font:600 1rem/1.6 var(--mono);color:var(--sw-cu-3)}
.sw-feed li.is-warn{color:#FFE2A8}
.sw-feed li.is-warn time{color:var(--sw-warn)}
.sw-feed li.is-ok time{color:var(--sw-free)}
.sw-done{flex:none;display:flex;align-items:center;gap:10px;margin:0;font:600 1.0625rem/1.3 var(--display);color:var(--sw-ink-3)}
.sw-done .icon{width:22px;height:22px;padding:3px;border-radius:50%;border:1.5px solid currentColor;transition:transform .6s var(--mo-ease)}
.sw-day.is-film .sw-done{opacity:0;transform:translateY(8px);transition:opacity .7s var(--mo-ease),transform .7s var(--mo-ease),color .7s}
.sw-day.is-film.is-done .sw-done{opacity:1;transform:none}
.sw-day.is-done .sw-done{color:var(--sw-cu-3)}
.sw-day.is-done .sw-done .icon{transform:scale(1.12);box-shadow:0 0 0 6px rgba(232,168,124,.14),0 0 24px rgba(232,168,124,.5)}

.sw-day__ctl{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:20px 40px;margin-top:clamp(20px,2.5vw,32px)}
.sw-chap{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.sw-chap button{min-height:44px;padding:0 18px;border-radius:999px;border:1px solid rgba(246,241,234,.28);background:transparent;color:var(--sw-ink-2);font:600 .9375rem/1 var(--mono);letter-spacing:.06em;cursor:pointer;transition:border-color .3s,background-color .3s,color .3s}
.sw-chap button:hover{border-color:rgba(246,241,234,.6)}
.sw-chap button.is-on{border-color:var(--sw-cu-2);background:rgba(232,168,124,.14);color:var(--sw-ink)}
.sw-chap button:focus-visible{outline:2px solid #F6F1EA;outline-offset:3px}
@media (max-width:900px){
  .sw-panel__body{grid-template-columns:1fr}
  .sw-map{border-right:0;border-bottom:1px solid rgba(246,241,234,.1)}
  .sw-kpis{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .sw-kpi{display:grid;gap:6px;padding:0 0 12px;align-content:start}
  .sw-day__ctl{grid-template-columns:1fr}
  .sw-chap{margin:0}
}
@media (max-width:640px){
  .sw-panel{border-radius:22px;margin-inline:-6px}
  .sw-panel__top{grid-template-columns:1fr auto;row-gap:12px}
  .sw-seal{grid-column:1/-1;justify-self:start}
  .sw-panel__mark span:not(.sw-wm){display:none}
  .sw-map__lbl span{display:none}
  .sw-map__lbl li{transform:translate(-50%,-50%) translate(var(--lx,26px),var(--ly,-26px))}
  .sw-map .sw-legend{margin-top:14px}
  .sw-kpis{grid-template-columns:1fr 1fr}
  .sw-kpi:last-child{grid-column:1/-1;display:flex;justify-content:space-between;align-items:baseline;padding-top:4px}
  .sw-panel__foot{flex-direction:column;align-items:flex-start}
  .sw-feed{flex:none;width:100%;height:3.2em;white-space:normal}
  .sw-feed li{white-space:normal;align-items:flex-start}
  .sw-chap button{padding:0 14px}
}
/* rótulos numerados do mapa no celular: os nomes vão numa lista logo abaixo */
.sw-map__key{display:none;list-style:none;margin:14px 0 0;padding:0;grid-template-columns:1fr 1fr;gap:8px 14px;font:500 .9375rem/1.3 var(--body);color:var(--sw-ink-2)}
.sw-map__key li{display:flex;align-items:center;gap:8px;min-width:0}
.sw-map__key b{flex:none;display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:rgba(246,241,234,.12);font:700 .9375rem/1 var(--mono);color:var(--sw-ink)}
@media (max-width:640px){.sw-map__key{display:grid}}

/* ---------- 4 · o app do motorista ---------- */
.sw-app-sec{background:var(--canvas);padding-block:var(--sw-pad)}
.sw-app-sec__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(40px,6vw,112px);align-items:center}
.sw-app-sec__lead{margin:var(--s-6) 0 0;max-width:34ch;font:400 clamp(1.1rem,1rem + .45vw,1.35rem)/1.5 var(--body);color:var(--text-secondary)}
.sw-pick{display:grid;gap:12px;margin-top:var(--s-7)}
.sw-pick button{position:relative;display:grid;gap:4px;justify-items:start;text-align:left;min-height:64px;padding:16px 22px 16px 54px;border:1px solid var(--line-strong);border-radius:18px;background:transparent;color:var(--text-primary);cursor:pointer;transition:border-color .35s,background-color .35s}
.sw-pick button::before{content:"";position:absolute;left:22px;top:22px;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--text-dim);transition:border-color .3s,background-color .3s,box-shadow .3s}
.sw-pick button b{font:600 clamp(1.15rem,1rem + .4vw,1.4rem)/1.2 var(--display);letter-spacing:-.01em}
.sw-pick button span{font:400 .9375rem/1.45 var(--body);color:var(--text-secondary)}
.sw-pick button:hover{border-color:var(--text-primary)}
.sw-pick button[aria-pressed="true"]{border-color:var(--accent);background:#FFFFFF;box-shadow:var(--shadow-1)}
.sw-pick button[aria-pressed="true"]::before{border-color:var(--accent);background:var(--accent);box-shadow:0 0 0 4px var(--accent-muted)}
.sw-pick button:focus-visible{outline:3px solid var(--accent-text);outline-offset:3px}
.sw-fine--app{margin-top:var(--s-6)}
.sw-phone-fig{margin:0;display:grid;justify-items:center}
.sw-phone{--k:1;position:relative;width:calc(384px * var(--k));height:calc(804px * var(--k));border-radius:calc(56px * var(--k));padding:calc(12px * var(--k));background:linear-gradient(145deg,#3A3A3E,#141416 40%,#2A2A2E);box-shadow:0 60px 90px -50px rgba(28,27,25,.55),0 0 0 1px rgba(0,0,0,.4),inset 0 0 0 calc(2px * var(--k)) #4A4A50}
/* no celular pequeno o aparelho encolhe (--k): o texto da tela cresce na mesma proporção, nunca abaixo de 15 px na tela */
.sw-phone{--fmin:calc(15.3px / var(--k))}
.sw-phone .sw-app__bar,.sw-phone .sw-sheet__k,.sw-phone .sw-sheet__s,.sw-phone .sw-sheet__d,.sw-phone .sw-app__k,.sw-phone .sw-tar p:first-child,.sw-phone .sw-app__dl dt,.sw-phone .sw-app__st span,.sw-phone .sw-app__pay{font-size:max(1rem,var(--fmin,0px))}
.sw-phone .sw-app__bar,.sw-phone .sw-app__k,.sw-phone .sw-sheet__s,.sw-phone .sw-app__pay{font-size:max(1.0625rem,var(--fmin,0px))}
.sw-phone__btn{position:absolute;right:calc(-3px * var(--k));top:calc(190px * var(--k));width:calc(4px * var(--k));height:calc(88px * var(--k));border-radius:0 3px 3px 0;background:#2A2A2E}
.sw-phone__scr{position:relative;width:360px;height:780px;border-radius:44px;overflow:hidden;transform-origin:0 0;transform:scale(var(--k));background:#F2EDE5}
.sw-phone .sw-app{opacity:0;transition:opacity .5s var(--mo-ease)}
.sw-phone .sw-app.is-on{opacity:1}
.sw-phone .sw-app.is-on .sw-pin--sel .sw-pin__halo{animation:swPin 2.4s ease-out 2}
@keyframes swPin{from{transform:scale(.5);opacity:1}to{transform:scale(1.4);opacity:0}}
.sw-phone .sw-app--go.is-on .sw-ring__fg{animation:swRing 1.4s var(--mo-ease) both}
@keyframes swRing{from{stroke-dasharray:20 100}to{stroke-dasharray:64 100}}
@media (max-width:900px){
  .sw-app-sec__grid{grid-template-columns:1fr;gap:0}
  /* o seletor fica logo acima do celular: o toque troca a tela à vista */
  .sw-app-sec__text{display:contents}
  .sw-app-sec__text>h2{order:1}.sw-app-sec__lead{order:2}.sw-pick{order:3}.sw-phone-fig{order:4;margin-top:var(--s-6)}.sw-fine--app{order:5}
  .sw-pick{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:var(--s-6)}
  .sw-pick button{justify-items:center;text-align:center;min-height:56px;padding:10px 6px;border-radius:16px;align-content:center}
  .sw-pick button::before{display:none}
  .sw-pick button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .sw-pick button b{font-size:1rem}
  .sw-pick button[aria-pressed="true"]{background:var(--text-primary);border-color:var(--text-primary);color:#F6F1EA}
}
@media (max-width:440px){.sw-phone{--k:.86}}
@media (max-width:360px){.sw-phone{--k:.78}}

/* ---------- 5 · para quem ---------- */
.sw-who{background:#FFFFFF;padding-block:var(--sw-pad);border-top:1px solid var(--line)}
.sw-who__h{max-width:12ch}
.sw-who__list{list-style:none;margin:clamp(48px,6vw,88px) 0 0;padding:0;border-top:1px solid var(--line-strong)}
.sw-who__it{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.3fr) minmax(0,.9fr);gap:12px clamp(24px,4vw,64px);align-items:baseline;padding:clamp(24px,3vw,40px) 0;border-bottom:1px solid var(--line)}
.sw-who__it h3{font:700 clamp(1.8rem,1.2rem + 1.6vw,2.8rem)/1.02 var(--display);letter-spacing:-.04em}
.sw-who__it p{margin:0;font-size:1.0625rem;line-height:1.55;color:var(--text-secondary);max-width:40ch}
.sw-who__it .link-arrow{justify-self:start;font-size:1rem}
.sw-who__links{display:flex;flex-wrap:wrap;gap:0 24px}
@media (max-width:900px){.sw-who__it{grid-template-columns:1fr}}

/* ---------- 6 · feito para os carregadores CHINT ---------- */
.sw-chint{background:var(--canvas);padding-block:var(--sw-pad)}
.sw-chint__h{max-width:14ch}
.sw-path{list-style:none;margin:clamp(48px,6vw,88px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px);position:relative}
.sw-path li{position:relative;display:grid;align-content:start;gap:10px}
.sw-path li:not(:last-child)::after{content:"";position:absolute;left:84px;right:-12px;top:28px;height:0;border-top:1.5px dashed var(--accent);opacity:.55}
.sw-path .ill{width:56px;height:56px}
.sw-path__k{margin:8px 0 0;font:600 .9375rem/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.sw-path__t{margin:0;font:600 clamp(1.25rem,1.05rem + .6vw,1.6rem)/1.25 var(--display);letter-spacing:-.02em;max-width:18ch}
.sw-chint__big{margin:clamp(56px,7vw,112px) 0 clamp(40px,5vw,72px);max-width:22ch;font:700 clamp(2rem,1.3rem + 2.4vw,3.6rem)/1.05 var(--display);letter-spacing:-.04em;text-wrap:balance}
.sw-chint__cu{color:var(--accent)}
.sw-table table{min-width:600px}
.sw-table tbody th{min-width:11.5em}
.sw-table tbody th small,.sw-table td:nth-child(2){white-space:nowrap}
.sw-table thead th{font:600 .9375rem/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-dim)}
.sw-table tbody th{width:auto;font:600 1.0625rem/1.3 var(--display);letter-spacing:-.01em;text-transform:none;color:var(--text-primary)}
.sw-table tbody th small{display:block;margin-top:4px;font:500 .9375rem/1.3 var(--mono);letter-spacing:.02em;color:var(--text-dim)}
.sw-table td{font-size:1.0625rem}
.sw-table th:first-child{background:var(--canvas)}
.sw-src{font-size:.9375rem}
.sw-src a{color:var(--accent-text)}
.sw .spec-table__hint{font-size:.9375rem}
.sw-roles{margin-top:clamp(64px,8vw,120px)}
.sw-roles__h{font:700 clamp(1.8rem,1.3rem + 1.4vw,2.6rem)/1.05 var(--display);letter-spacing:-.04em}
.sw-roles__list{margin:var(--s-6) 0 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(24px,3vw,48px)}
.sw-roles__list div{padding-top:var(--s-5);border-top:1px solid var(--line-strong)}
.sw-roles__list dt{font:600 .9375rem/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-text)}
.sw-roles__list dd{margin:12px 0 0;font-size:1.0625rem;line-height:1.55;color:var(--text-secondary);max-width:34ch}
@media (max-width:900px){
  .sw-path,.sw-roles__list{grid-template-columns:1fr}
  .sw-path li:not(:last-child)::after{left:27px;right:auto;top:64px;bottom:-20px;height:auto;border-top:0;border-left:1.5px dashed var(--accent)}
  .sw-path li{padding-left:76px;min-height:72px}
  .sw-path .ill{position:absolute;left:0;top:0}
  .sw-path__k{margin-top:0}
}

/* ---------- 7 · perguntas ---------- */
.sw-faq{background:#FFFFFF;padding-block:clamp(72px,3rem + 4vw,128px);border-top:1px solid var(--line)}
.sw-faq__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,112px);align-items:start}
.sw-faq__h{font-size:clamp(2.3rem,1.4rem + 2.6vw,3.6rem)}
.sw .faq__item summary{font-size:1.1875rem}
.sw .faq__a p{margin:0;font-size:1.0625rem;line-height:1.6}
@media (max-width:900px){.sw-faq__grid{grid-template-columns:1fr}}

/* ---------- 8 · fechamento ao amanhecer ---------- */
.sw-end{position:relative;min-height:min(100svh,60vw);display:flex;flex-direction:column;justify-content:center;color:var(--sw-ink);background:#0B0E1C;overflow:hidden;isolation:isolate}
.sw-end__media{position:absolute;inset:0;z-index:-1;overflow:hidden}
.sw-end__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:62% 50%}
.sw-end__media::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(90deg,rgba(8,10,22,.84) 0%,rgba(8,10,22,.56) 34%,rgba(8,10,22,0) 58%),linear-gradient(0deg,rgba(8,10,22,.45) 0%,rgba(8,10,22,0) 26%)}
.sw-end__in{position:relative;z-index:4;padding-block:clamp(104px,13vh,150px)}
.sw-end__h{font-size:clamp(2.6rem,1.2rem + 3.6vw,4.75rem)}
.sw-line{display:block}
.sw-end__in h2{max-width:none}
.sw-end__acts{margin-top:var(--s-7)}
.sw-end__wa{color:var(--sw-ink-2)}
.sw-end__wa:hover{color:var(--sw-ink)}
.sw-end__wa u{text-decoration-color:var(--sw-cu-2)}
.sw-end__fine{position:absolute;z-index:4;left:max(20px,calc((100vw - 1180px)/2));bottom:28px;color:var(--sw-ink-3)}
.sw-rest{position:absolute;z-index:2;right:max(20px,calc((100vw - 1180px)/2));bottom:28px;width:min(340px,30vw);margin:0;padding:20px 22px 22px;border-radius:22px;background:rgba(10,14,30,.58);border:1px solid rgba(246,241,234,.16);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 30px 70px -30px rgba(0,0,0,.6)}
.sw-rest p{margin:0}
.sw-rest__top{display:flex;justify-content:space-between;align-items:baseline;font:600 1rem/1 var(--mono);color:var(--sw-ink-2)}
.sw-rest__mark{font:700 1.25rem/1 var(--display);letter-spacing:-.03em;color:var(--sw-ink)}
.sw-rest__mark b{color:var(--sw-cu-2)}
.sw-rest__dots{display:flex;gap:10px;margin-top:18px!important}
.sw-rest__dots i{width:16px;height:16px;border-radius:50%;border:2px solid var(--sw-free);box-shadow:0 0 12px rgba(143,211,166,.45)}
.sw-rest__t{margin-top:14px!important;font:700 1.375rem/1.15 var(--display);letter-spacing:-.025em;color:var(--sw-ink)}
.js .sw-rest{opacity:0;transform:translateY(16px);transition:opacity 1s var(--mo-ease),transform 1s var(--mo-ease)}
.js .sw-end.is-in .sw-rest{opacity:1;transform:none}
.js .sw-rest__dots i{transform:scale(.4);opacity:0;transition:transform .5s var(--mo-ease),opacity .5s}
.js .sw-end.is-in .sw-rest__dots i{transform:none;opacity:1}
.js .sw-end.is-in .sw-rest__dots i:nth-child(2){transition-delay:.12s}.js .sw-end.is-in .sw-rest__dots i:nth-child(3){transition-delay:.24s}
.js .sw-end.is-in .sw-rest__dots i:nth-child(4){transition-delay:.36s}.js .sw-end.is-in .sw-rest__dots i:nth-child(5){transition-delay:.48s}
.js .sw-end.is-in .sw-rest__dots i:nth-child(6){transition-delay:.6s}
@media (max-width:760px) and (orientation:portrait){
  .sw-end{min-height:0;justify-content:flex-start}
  .sw-end__media{position:relative;inset:auto;z-index:0;width:100%;aspect-ratio:4/5}
  .sw-end__media img{object-position:50% 50%}
  .sw-end__media::after{background:linear-gradient(0deg,#0B0E1C 0%,rgba(11,14,28,0) 26%)}
  .sw-rest{left:16px;right:auto;top:16px;bottom:auto;width:min(260px,calc(100% - 32px));padding:16px 18px 18px}
  .sw-rest__t{font-size:1.1875rem}
  .sw-end__in{padding-block:12px 32px}
  .sw-end__fine{position:static;padding:0 20px 28px}
}

/* cabeçalho compacto: sem .js o hambúrguer ainda não existe; o botão já reserva o lugar dele e não pula quando o site.js chega */
@media (max-width:1023px){html:not(.js) .nav__cta-m{margin-right:46px}}
@media (max-width:379px){html:not(.js) .nav__cta-m{margin-right:42px}}

/* nenhum texto abaixo de 15 px */
.sw .spec-table th,.sw .spec-table td{font-size:max(.9375rem,1em)}
.sw .link-wa{font-size:1rem}

@media (prefers-reduced-motion:reduce){
  .sw *,.sw *::before,.sw *::after{animation:none!important;transition:none!important}
  .js .sw-open__in>*,.js .sw-rest,.js .sw-rest__dots i{opacity:1;transform:none}
  .js .sw-open .sw-open__media img{transform:none}
}
