/*
 * Laercinho operacional v3 — identidade viva do aplicativo desktop beta.
 *
 * Esta camada entra em ação somente quando o preload identifica o canal beta
 * (ou a prévia local de QA) e o controlador adiciona `gfl-laercinho-v2` ao body.
 */

body.gfl-laercinho-v2 {
  --laercinho-avatar-v2: url("/mascote/laercinho-avatar-v2.webp");
  --laercinho-current-avatar-v3: var(--laercinho-avatar-v2);
  --laercinho-rowing-v2: url("/mascote/laercinho-remando-sprite-v3.webp");
  --laercinho-typing-v2: url("/mascote/laercinho-digitando-sprite-v3.webp");
  --laercinho-green: #087044;
  --laercinho-deep: #063f31;
  --laercinho-soft: #e7f8ee;
}

/* Pré-visualização local, usada apenas no QA visual do desenvolvimento. */
body.gfl-laercinho-qa #appLoader,
body.gfl-laercinho-qa #accessGate {
  display: none !important;
}

body.gfl-laercinho-qa #appShell {
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  filter: none !important;
}

.laercinho-qa-controls {
  position: fixed;
  z-index: 10000;
  left: 50%;
  bottom: 12px;
  display: none;
  align-items: center;
  gap: 6px;
  padding: 7px 8px;
  border: 1px solid rgba(21, 128, 61, .32);
  border-radius: 12px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 14px 38px rgba(15, 23, 42, .2);
  transform: translateX(-50%);
  backdrop-filter: blur(12px);
}

body.gfl-laercinho-qa .laercinho-qa-controls {
  display: flex;
}

.laercinho-qa-controls strong {
  padding: 0 5px;
  color: #075b3b;
  font: 900 11px/1 Inter, sans-serif;
}

.laercinho-qa-controls button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #c8e6d5;
  border-radius: 8px;
  background: #f4fbf7;
  color: #174c38;
  font: 800 11px/1 Inter, sans-serif;
  cursor: pointer;
}

.laercinho-qa-controls button:hover {
  border-color: #16a34a;
  background: #e8f8ee;
}

/* Entrada permanente do chat: o mascote passa a ser o ponto de contato. */
body.gfl-laercinho-v2 #chatLaunch > img {
  display: none !important;
}

body.gfl-laercinho-v2 #chatLaunch {
  right: 14px !important;
  bottom: 14px !important;
  width: 52px !important;
  min-width: 52px !important;
  max-width: 52px !important;
  min-height: 52px !important;
  padding: 7px !important;
  gap: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  overflow: visible !important;
}

body.gfl-laercinho-v2 #chatLaunch > .laercinho-launch-label-v2 {
  position: absolute;
  right: calc(100% + 9px);
  bottom: 50%;
  width: max-content;
  max-width: 190px;
  padding: 7px 10px;
  border: 1px solid rgba(20, 83, 45, .2);
  border-radius: 9px;
  background: rgba(255, 255, 255, .96);
  box-shadow: 0 10px 26px rgba(15, 23, 42, .14);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translate(6px, 50%);
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
  font-size: 11.5px !important;
}

body.gfl-laercinho-v2 #chatLaunch:is(:hover, :focus-visible) > .laercinho-launch-label-v2 {
  opacity: 1;
  visibility: visible;
  transform: translate(0, 50%);
}

.laercinho-launch-face-v2 {
  position: relative;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  display: none;
  overflow: hidden;
  border: 2px solid rgba(255, 255, 255, .92);
  border-radius: 50%;
  background:
    var(--laercinho-current-avatar-v3) 50% 20% / 132% auto no-repeat,
    radial-gradient(circle at 48% 32%, #f0fdf4, #b7e9ca);
  box-shadow:
    0 5px 14px rgba(6, 63, 49, .22),
    0 0 0 2px rgba(21, 128, 61, .1);
}

.laercinho-launch-face-v2::after {
  content: "";
  position: absolute;
  inset: -2px;
  border: 2px solid rgba(34, 197, 94, .5);
  border-radius: inherit;
  opacity: 0;
  transform: scale(.88);
  animation: gflMascotLaunchSignal 4.8s ease-out infinite;
}

body.gfl-laercinho-v2 .laercinho-launch-face-v2 {
  display: block;
  animation: gflMascotBreath 4.8s ease-in-out infinite;
}

/* Rosto reconhecível em cabeçalho, mensagens e operações. */
body.gfl-laercinho-v2 :is(.chat-face, .msg-avatar, .operation-orb) {
  background:
    radial-gradient(circle at 50% 30%, #f0fdf4 0%, #d5f3e0 58%, #bce8ce 100%) !important;
}

body.gfl-laercinho-v2 :is(.chat-face, .msg-avatar, .operation-orb) img[data-laercinho-v2="1"] {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: 50% 25% !important;
  transform: scale(1.18);
  transform-origin: 50% 32%;
}

body.gfl-laercinho-v2 :is(.chat-face, .msg-avatar, .operation-orb) img[data-laercinho-theme]:not([data-laercinho-theme="padrao"]) {
  object-fit: cover !important;
  object-position: 50% 19% !important;
  transform: scale(1.12);
}

body.gfl-laercinho-v2 .chat-face {
  animation: gflMascotBreath 4.8s ease-in-out infinite !important;
}

body.gfl-laercinho-v2 .chat-head:hover .chat-face {
  animation: gflMascotGreeting .86s ease-in-out !important;
}

body.gfl-laercinho-v2 .msg.ai:last-child .msg-avatar {
  animation: gflMascotMessageArrive .42s cubic-bezier(.2, .8, .2, 1) both;
}

/* Remada em seis fases alinhadas, sincronizada com o progresso real do lote. */
.operation-rower-mascot-v2 {
  position: relative;
  z-index: 3;
  width: 100%;
  aspect-ratio: 3 / 2;
  display: none;
  background-image: var(--laercinho-rowing-v2);
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 600% 100%;
  transform-origin: 50% 76%;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-rower picture {
  display: none !important;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-rower-mascot-v2 {
  display: block;
  animation:
    gflMascotRowFrames 1.32s linear infinite,
    gflMascotBoatLift 1.32s ease-in-out infinite;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel[data-import-phase*="preparando"]
  .operation-rower-mascot-v2,
body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel[data-import-phase*="fila"]
  .operation-rower-mascot-v2 {
  animation-duration: 1.32s, 1.32s;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel[data-import-phase*="enviando"]
  .operation-rower-mascot-v2 {
  animation-duration: 1.32s, 1.32s;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel[data-import-phase*="concluido"]
  .operation-rower-mascot-v2,
body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel[data-import-phase*="cancelado"]
  .operation-rower-mascot-v2 {
  animation: none !important;
  background-position: 60% 0;
  transform: translateY(-1px);
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-rower {
  left: clamp(64px, var(--operation-progress), calc(100% - 64px));
  width: clamp(112px, 31%, 120px);
  bottom: 9px;
  filter: drop-shadow(0 7px 7px rgba(2, 54, 64, .28));
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-voyage {
  min-height: 94px;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-rower-wake {
  animation-duration: 1.32s !important;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-oar-splash.is-port {
  animation-duration: 1.32s !important;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-oar-splash.is-starboard {
  animation-duration: 1.32s !important;
  animation-delay: .66s !important;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-oar-splash {
  z-index: 12;
}

/*
 * Dock de importação do beta: acompanha o trabalho no canto inferior sem
 * bloquear a página. O quadro mais alto preserva toda a cabeça do mascote.
 */
body.gfl-laercinho-v2.gfl-import-rowing-v2 .operation-overlay.operation-dock-v2 {
  inset: auto 14px 14px auto !important;
  width: min(380px, calc(100vw - 28px)) !important;
  max-width: calc(100vw - 28px) !important;
  max-height: calc(100dvh - 28px);
  pointer-events: none !important;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-overlay.operation-dock-v2
  .operation-panel.import-voyage-live {
  max-height: calc(100dvh - 28px);
  transform-origin: 100% 100%;
  pointer-events: none !important;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-overlay.operation-dock-v2
  .operation-panel.import-voyage-live
  :is(.operation-dock-toggle-v2, .operation-cancel) {
  pointer-events: auto !important;
}

.operation-dock-toggle-v2 {
  display: none;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-head {
  grid-template-columns: 32px minmax(0, 1fr) auto 26px;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-dock-toggle-v2 {
  width: 26px !important;
  height: 26px !important;
  min-width: 26px !important;
  min-height: 26px !important;
  max-height: 26px !important;
  display: grid;
  place-items: center;
  align-self: center;
  padding: 0;
  border: 1px solid rgba(220, 252, 231, .34);
  border-radius: 8px;
  background: rgba(255, 255, 255, .14);
  color: #f0fdf4;
  font: 900 17px/1 system-ui, sans-serif;
  cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14);
  transition: background .16s ease, transform .16s ease;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-panel.import-voyage-live
  .operation-dock-toggle-v2:hover {
  background: rgba(255, 255, 255, .24);
  transform: translateY(-1px);
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-overlay.operation-dock-v2.is-minimized {
  width: min(330px, calc(100vw - 28px)) !important;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-overlay.operation-dock-v2.is-minimized
  .operation-panel.import-voyage-live
  > :not(.operation-head) {
  display: none !important;
}

body.gfl-laercinho-v2.gfl-import-rowing-v2
  .operation-overlay.operation-dock-v2.is-minimized
  .operation-panel.import-voyage-live
  .operation-head {
  border-radius: 13px;
}

@media (max-width: 720px) {
  body.gfl-laercinho-v2.gfl-import-rowing-v2
    .operation-overlay.operation-dock-v2 {
    inset: auto 10px 10px 10px !important;
    width: auto !important;
    max-width: none !important;
  }

  body.gfl-laercinho-v2.gfl-import-rowing-v2
    .operation-panel.import-voyage-live
    .operation-voyage {
    min-height: 78px;
  }

  body.gfl-laercinho-v2.gfl-import-rowing-v2
    .operation-panel.import-voyage-live
    .operation-rower {
    width: 86px;
    bottom: 8px;
  }
}

/* Digitação: o Laercinho realmente trabalha no computador enquanto responde. */
body.gfl-laercinho-v2 .msg.ai.laercinho-typing-message-v2 {
  width: min(94%, 390px) !important;
}

body.gfl-laercinho-v2 .msg.ai.laercinho-typing-message-v2 .bubble {
  width: 100% !important;
  min-width: 0 !important;
}

body.gfl-laercinho-v2 .ai-loading.laercinho-loading-v2 {
  display: grid;
  grid-template-columns: 60px minmax(0, 1fr);
  grid-template-rows: auto auto;
  column-gap: 8px;
  row-gap: 2px;
  align-items: center;
  min-height: 48px;
  width: 100%;
}

body.gfl-laercinho-v2 .ai-loading.laercinho-loading-v2 > span {
  width: auto;
  height: auto;
  border-radius: 0;
  background: transparent;
  animation: none;
}

body.gfl-laercinho-v2 .laercinho-typing-v2 {
  grid-column: 1;
  grid-row: 1 / span 2;
  width: 58px !important;
  height: 46px !important;
  display: block;
  border: 0 !important;
  border-radius: 0 !important;
  background-color: transparent !important;
  background-image: var(--laercinho-typing-v2) !important;
  background-repeat: no-repeat !important;
  background-position: 0 0;
  background-size: 400% 100% !important;
  box-shadow: none !important;
  animation: gflMascotTypingFrames 1.42s linear infinite !important;
}

body.gfl-laercinho-v2 .ai-loading-copy-v2 {
  grid-column: 2;
  grid-row: 1;
  align-self: end;
  color: #315442;
  font-size: 11.5px;
  font-weight: 800;
  line-height: 1.25;
}

body.gfl-laercinho-v2 .ai-loading-dots-v2 {
  grid-column: 2;
  grid-row: 2;
  align-self: start;
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

body.gfl-laercinho-v2 .ai-loading-dots-v2 > i {
  width: 5px;
  height: 5px;
  display: block;
  border-radius: 50%;
  background: #16a34a;
  animation: gflMascotTypingDot 1s ease-in-out infinite;
}

body.gfl-laercinho-v2 .ai-loading-dots-v2 > i:nth-child(2) {
  animation-delay: .14s;
}

body.gfl-laercinho-v2 .ai-loading-dots-v2 > i:nth-child(3) {
  animation-delay: .28s;
}

/* Companheiro contextual: maior, acionável e ainda sem bloquear a operação. */
.laercinho-companion-v2 {
  position: fixed;
  z-index: 89;
  right: 18px;
  bottom: 70px;
  width: min(420px, calc(100vw - 30px));
  min-height: 158px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 108px;
  align-items: end;
  gap: 6px;
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform: translateY(16px) scale(.97);
}

body.gfl-laercinho-v2 .laercinho-companion-v2.is-visible {
  visibility: visible;
  opacity: 1;
  transform: translateY(0) scale(1);
  transition: opacity .24s ease, transform .34s cubic-bezier(.2, .82, .2, 1);
}

.laercinho-companion-bubble-v2 {
  position: relative;
  align-self: center;
  min-height: 104px;
  padding: 13px 14px 12px;
  border: 1px solid rgba(21, 128, 61, .28);
  border-radius: 16px 16px 5px 16px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.98), rgba(240,253,244,.96));
  box-shadow:
    0 20px 54px rgba(15, 23, 42, .18),
    inset 0 1px 0 rgba(255,255,255,.95);
  color: #243246;
  pointer-events: auto;
  animation: gflMascotBubbleArrive .38s cubic-bezier(.2, .82, .2, 1) both;
}

.laercinho-companion-bubble-v2::after {
  content: "";
  position: absolute;
  right: -8px;
  bottom: 24px;
  width: 15px;
  height: 15px;
  border-right: 1px solid rgba(21, 128, 61, .25);
  border-bottom: 1px solid rgba(21, 128, 61, .25);
  background: #f1fcf5;
  transform: rotate(-45deg);
}

.laercinho-companion-head-v3 {
  min-height: 22px;
  display: grid;
  grid-template-columns: 8px auto minmax(0, 1fr) 24px;
  align-items: center;
  gap: 6px;
  margin-bottom: 5px;
}

.laercinho-companion-pulse-v3 {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #16a34a;
  box-shadow: 0 0 0 4px rgba(34, 197, 94, .12);
  animation: gflMascotManagerPulse 2.4s ease-in-out infinite;
}

.laercinho-companion-head-v3 strong {
  color: #0f5132;
  font-size: 13px;
  font-weight: 900;
}

.laercinho-companion-head-v3 em {
  min-width: 0;
  overflow: hidden;
  color: #5c6b7f;
  font-size: 10px;
  font-style: normal;
  font-weight: 750;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.laercinho-companion-bubble-v2 p {
  margin: 0;
  color: #425168;
  font-size: 12.5px;
  font-weight: 640;
  line-height: 1.43;
}

.laercinho-companion-close-v2 {
  z-index: 2;
  position: static;
  width: 23px;
  height: 23px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #64748b;
  font: 800 15px/1 Inter, sans-serif;
  cursor: pointer;
}

.laercinho-companion-actions-v3 {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
}

.laercinho-companion-actions-v3 button {
  min-height: 30px;
  padding: 0 10px;
  border: 1px solid #c9e5d4;
  border-radius: 9px;
  background: rgba(255, 255, 255, .82);
  color: #28533e;
  font: 800 10.5px/1 Inter, system-ui, sans-serif;
  cursor: pointer;
  transition: transform .16s ease, border-color .16s ease, background .16s ease, box-shadow .16s ease;
}

.laercinho-companion-actions-v3 button[hidden] {
  display: none !important;
}

.laercinho-companion-actions-v3 button:hover {
  border-color: #78c79a;
  background: #fff;
  box-shadow: 0 5px 14px rgba(15, 81, 50, .1);
  transform: translateY(-1px);
}

.laercinho-companion-actions-v3 button:focus-visible,
.laercinho-companion-figure-v2:focus-visible {
  outline: 3px solid rgba(37, 99, 235, .28) !important;
  outline-offset: 2px;
}

.laercinho-companion-actions-v3 .laercinho-companion-primary-v3 {
  border-color: #0d8b4f;
  background: linear-gradient(135deg, #079455, #087044);
  color: #fff;
  box-shadow: 0 5px 13px rgba(8, 112, 68, .18);
}

.laercinho-companion-actions-v3 .laercinho-companion-primary-v3.is-loading {
  opacity: .7;
  cursor: wait;
}

.laercinho-companion-actions-v3 .laercinho-companion-snooze-v3 {
  margin-left: auto;
  border-color: transparent;
  background: transparent;
  color: #64748b;
}

.laercinho-companion-close-v2:hover {
  background: rgba(15, 81, 50, .08);
  color: #0f5132;
}

body.gfl-laercinho-v2 .laercinho-companion-figure-v2 {
  position: relative;
  width: 108px;
  height: 158px;
  min-height: 158px;
  align-self: end;
  display: block;
  overflow: visible !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent 50% 100% / contain no-repeat !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  filter:
    drop-shadow(0 12px 11px rgba(15, 23, 42, .18))
    drop-shadow(0 2px 2px rgba(15, 81, 50, .12));
  pointer-events: auto;
  cursor: pointer;
  animation: gflMascotCoachArrive .52s cubic-bezier(.2, .82, .2, 1) both;
}

body.gfl-laercinho-v2 .laercinho-companion-figure-v2::after {
  display: none !important;
}

body.gfl-laercinho-v2 .laercinho-companion-v2[data-pose="aceno"] .laercinho-companion-figure-v2 {
  background-image: url("/mascote/laercinho-aceno-v3.webp") !important;
}

body.gfl-laercinho-v2 .laercinho-companion-v2[data-pose="analise"] .laercinho-companion-figure-v2 {
  background-image: url("/mascote/laercinho-analise-v3.webp") !important;
}

body.gfl-laercinho-v2 .laercinho-companion-v2[data-pose="atencao"] .laercinho-companion-figure-v2 {
  background-image: url("/mascote/laercinho-atencao-v3.webp") !important;
}

body.gfl-laercinho-v2 .laercinho-companion-v2[data-pose="sucesso"] .laercinho-companion-figure-v2 {
  background-image: url("/mascote/laercinho-sucesso-v3.webp") !important;
}

body.gfl-laercinho-v2 .laercinho-companion-v2:not([data-theme="padrao"]) .laercinho-companion-figure-v2 {
  background-image: var(--laercinho-theme-mascot-v3) !important;
  background-position: 50% 100% !important;
  background-size: contain !important;
}

body.gfl-laercinho-v2 .laercinho-companion-v2.is-visible[data-pose="aceno"] .laercinho-companion-figure-v2 {
  animation: gflMascotCoachArrive .5s cubic-bezier(.2,.82,.2,1) both, gflMascotCoachWave 4.8s 1s ease-in-out infinite;
}

body.gfl-laercinho-v2 .laercinho-companion-v2.is-visible[data-pose="analise"] .laercinho-companion-figure-v2 {
  animation: gflMascotCoachArrive .5s cubic-bezier(.2,.82,.2,1) both, gflMascotCoachRead 5.6s 1s ease-in-out infinite;
}

body.gfl-laercinho-v2 .laercinho-companion-v2.is-visible[data-pose="atencao"] .laercinho-companion-figure-v2 {
  animation: gflMascotCoachArrive .5s cubic-bezier(.2,.82,.2,1) both, gflMascotCoachAttention 2.8s 1s ease-in-out infinite;
}

body.gfl-laercinho-v2 .laercinho-companion-v2.is-visible[data-pose="sucesso"] .laercinho-companion-figure-v2 {
  animation: gflMascotCoachArrive .5s cubic-bezier(.2,.82,.2,1) both, gflMascotCoachCelebrate 4.2s 1s ease-in-out infinite;
}

body.gfl-laercinho-v2 .laercinho-companion-v2:not([data-theme="padrao"]).is-visible .laercinho-companion-figure-v2 {
  animation: gflMascotCoachArrive .5s cubic-bezier(.2,.82,.2,1) both, gflMascotThemeIdle 5.2s 1s ease-in-out infinite;
}

.laercinho-theme-medal-v3 {
  position: absolute;
  right: 4px;
  bottom: 5px;
  width: 16px;
  height: 16px;
  display: none;
  border: 2px solid rgba(255, 255, 255, .9);
  border-radius: 50%;
  background: linear-gradient(145deg, var(--gfl-theme-accent, #16a34a), var(--gfl-theme-accent-2, #0f766e));
  box-shadow: 0 3px 9px rgba(15, 23, 42, .24);
}

.laercinho-companion-v2:not([data-theme="padrao"]) .laercinho-theme-medal-v3 {
  display: block;
}

body.gfl-laercinho-v2 .gfl-theme-celebration-art img[src*="laercinho-mascot-v4"] {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  object-position: 50% 100% !important;
}

body.gfl-laercinho-v2:has(#chatPanel.open) .laercinho-companion-v2,
body.gfl-laercinho-v2:has(.modal.open) .laercinho-companion-v2,
body.gfl-laercinho-v2:has(.operation-overlay.open) .laercinho-companion-v2 {
  visibility: hidden !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

body.gfl-laercinho-v2 .laercinho-companion-v2[data-severity="CRITICA"] .laercinho-companion-bubble-v2,
body.gfl-laercinho-v2 .laercinho-companion-v2[data-severity="ALTA"] .laercinho-companion-bubble-v2 {
  border-color: rgba(220, 38, 38, .32);
  background: linear-gradient(145deg, rgba(255,255,255,.99), rgba(255,247,237,.98));
}

body.gfl-laercinho-v2 .laercinho-companion-v2[data-severity="CRITICA"] .laercinho-companion-pulse-v3,
body.gfl-laercinho-v2 .laercinho-companion-v2[data-severity="ALTA"] .laercinho-companion-pulse-v3 {
  background: #dc2626;
  box-shadow: 0 0 0 4px rgba(220, 38, 38, .11);
}

@keyframes gflMascotRowFrames {
  0%, 16.65% { background-position: 0 0; }
  16.66%, 33.32% { background-position: 20% 0; }
  33.33%, 49.99% { background-position: 40% 0; }
  50%, 66.65% { background-position: 60% 0; }
  66.66%, 83.32% { background-position: 80% 0; }
  83.33%, 100% { background-position: 100% 0; }
}

@keyframes gflMascotTypingFrames {
  0%, 24.99% { background-position: 0 0; }
  25%, 49.99% { background-position: 33.3333% 0; }
  50%, 74.99% { background-position: 66.6667% 0; }
  75%, 100% { background-position: 100% 0; }
}

@keyframes gflMascotBoatLift {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-.7px); }
}

@keyframes gflMascotTypingDot {
  0%, 72%, 100% { opacity: .28; transform: translateY(0); }
  36% { opacity: 1; transform: translateY(-2px); }
}

@keyframes gflMascotBreath {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-1px) scale(1.025); }
}

@keyframes gflMascotGreeting {
  0%, 100% { transform: rotate(0) scale(1); }
  28% { transform: rotate(-4deg) scale(1.045); }
  62% { transform: rotate(3deg) scale(1.045); }
}

@keyframes gflMascotMessageArrive {
  from { opacity: 0; transform: translateY(5px) scale(.88); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes gflMascotCoachArrive {
  from { opacity: 0; transform: translateY(12px) scale(.92); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes gflMascotBubbleArrive {
  from { opacity: 0; transform: translateX(9px) scale(.985); }
  to { opacity: 1; transform: translateX(0) scale(1); }
}

@keyframes gflMascotManagerPulse {
  0%, 100% { transform: scale(.92); opacity: .8; }
  50% { transform: scale(1.08); opacity: 1; }
}

@keyframes gflMascotCoachWave {
  0%, 76%, 100% { transform: translateY(0) rotate(0); }
  82% { transform: translateY(-2px) rotate(-1.5deg); }
  90% { transform: translateY(-1px) rotate(1.2deg); }
}

@keyframes gflMascotCoachRead {
  0%, 100% { transform: translateY(0) rotate(0); }
  48% { transform: translateY(-1.4px) rotate(.6deg); }
  72% { transform: translateY(-.5px) rotate(-.4deg); }
}

@keyframes gflMascotCoachAttention {
  0%, 100% { transform: translateY(0) scale(1); filter: drop-shadow(0 12px 11px rgba(15,23,42,.18)); }
  50% { transform: translateY(-2px) scale(1.015); filter: drop-shadow(0 15px 14px rgba(180,83,9,.22)); }
}

@keyframes gflMascotCoachCelebrate {
  0%, 76%, 100% { transform: translateY(0) scale(1); }
  84% { transform: translateY(-4px) scale(1.015); }
  92% { transform: translateY(-1px) scale(1.008); }
}

@keyframes gflMascotThemeIdle {
  0%, 100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(.45deg); }
}

@keyframes gflMascotLaunchSignal {
  0%, 72% { opacity: 0; transform: scale(.9); }
  80% { opacity: .55; }
  100% { opacity: 0; transform: scale(1.32); }
}

@media (max-width: 760px) {
  .laercinho-companion-v2 {
    right: 10px;
    bottom: 62px;
    width: min(388px, calc(100vw - 20px));
    grid-template-columns: minmax(0, 1fr) 92px;
  }

  body.gfl-laercinho-v2 .laercinho-companion-figure-v2 {
    width: 92px;
    height: 142px;
    min-height: 142px;
  }
}

@media (max-width: 500px) {
  .laercinho-companion-v2 {
    display: none !important;
  }
}

@media (max-height: 650px) and (min-width: 501px) {
  .laercinho-companion-v2 {
    bottom: 48px;
    transform-origin: 100% 100%;
    scale: .88;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.gfl-laercinho-v2 *,
  body.gfl-laercinho-v2 *::before,
  body.gfl-laercinho-v2 *::after {
    scroll-behavior: auto !important;
  }

  body.gfl-laercinho-v2 :is(
    .laercinho-launch-face-v2,
    .chat-face,
    .msg-avatar,
    .operation-rower-mascot-v2,
    .operation-rower-wake,
    .operation-oar-splash,
    .operation-progress,
    .laercinho-typing-v2,
    .ai-loading-dots-v2 > i,
    .laercinho-companion-figure-v2,
    .laercinho-companion-bubble-v2,
    .laercinho-companion-pulse-v3
  ) {
    animation: none !important;
  }

  body.gfl-laercinho-v2 .laercinho-launch-face-v2::after,
  body.gfl-laercinho-v2 .operation-progress::before,
  body.gfl-laercinho-v2 .operation-fill::after {
    animation: none !important;
  }

  body.gfl-laercinho-v2 .operation-rower-mascot-v2 {
    background-position: 60% 0 !important;
  }

  body.gfl-laercinho-v2 .laercinho-typing-v2 {
    background-position: 100% 0 !important;
  }
}
