.opera-assistant-launcher{
  position:fixed;
  right:92px;
  bottom:24px;
  width:58px;
  height:58px;
  border:0;
  border-radius:18px;
  background:#5b3fc4;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  z-index:9998;
  box-shadow:0 16px 36px rgba(15,23,42,.24);
}

.opera-assistant-launcher:hover{
  transform:translateY(-2px);
}

.opera-assistant-float{
  position:fixed;
  right:88px;
  bottom:94px;
  width:min(460px,calc(100vw - 32px));
  max-height:calc(100vh - 120px);
  overflow:auto;
  z-index:9999;
  background:#fff;
  border:1px solid #e2e8f0;
  border-radius:20px;
  box-shadow:0 24px 70px rgba(15,23,42,.28);
  padding:14px;
}

.opera-assistant-float[hidden]{
  display:none !important;
}

.opera-assistant-float-close{
  position:sticky;
  top:0;
  margin-left:auto;
  margin-bottom:8px;
  width:34px;
  height:34px;
  border:1px solid #e2e8f0;
  background:#fff;
  border-radius:10px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}

.opera-assistant-float #operaAssistantPanel{
  margin:0 !important;
  border:0 !important;
  box-shadow:none !important;
  padding:4px !important;
}

@media (max-width:640px){
  .opera-assistant-launcher{
    right:88px;
    bottom:18px;
    width:54px;
    height:54px;
  }

  .opera-assistant-float{
    left:12px;
    right:12px;
    bottom:84px;
    width:auto;
    max-height:calc(100vh - 105px);
  }
}

/* Ajuste de layout da Assistente OPERA */
.opera-assistant-float{
  overflow:hidden;
}

.opera-assistant-float #operaAssistantPanel{
  display:flex;
  flex-direction:column;
  height:min(720px,calc(100vh - 130px));
}

.opera-assistant-float #operaAssistantMessages{
  flex:1;
  min-height:0 !important;
  max-height:none !important;
  overflow-y:auto !important;
}

.opera-assistant-float #operaAssistantPending{
  flex:0 0 auto;
}

.opera-assistant-float #operaAssistantInput{
  min-height:54px;
}

@media (max-width:640px){
  .opera-assistant-float #operaAssistantPanel{
    height:calc(100vh - 125px);
  }
}

/* =========================================================
 * ASSISTENTE OPERA - MOBILE
 * ========================================================= */

@media (max-width: 768px){

  .opera-assistant-launcher{
    right:78px;
    bottom:18px;
    width:54px;
    height:54px;
    border-radius:16px;
    z-index:10020;
  }

  .opera-assistant-float{
    position:fixed;
    inset:0;
    width:100%;
    height:100dvh;
    max-height:none;
    border-radius:0;
    border:0;
    padding:0;
    background:#fff;
    z-index:10030;
    overflow:hidden;
  }

  .opera-assistant-float-close{
    position:absolute;
    top:max(12px, env(safe-area-inset-top));
    right:14px;
    width:44px;
    height:44px;
    border-radius:14px;
    z-index:10;
  }

  .opera-assistant-float #operaAssistantPanel{
    height:100dvh;
    max-height:none;
    padding:
      calc(18px + env(safe-area-inset-top))
      14px
      calc(10px + env(safe-area-inset-bottom))
      !important;
    display:flex;
    flex-direction:column;
  }

  .opera-assistant-float #operaAssistantPanel > .flex:first-child{
    padding-right:52px;
    margin-bottom:14px;
    flex:0 0 auto;
  }

  .opera-assistant-float #operaAssistantPanel h3{
    font-size:20px;
  }

  .opera-assistant-float #operaAssistantPanel p{
    font-size:13px;
    line-height:1.4;
  }

  .opera-assistant-float #operaAssistantMessages{
    flex:1 1 auto;
    min-height:0 !important;
    max-height:none !important;
    overflow-y:auto !important;
    overscroll-behavior:contain;
    -webkit-overflow-scrolling:touch;
    padding:12px !important;
    margin-bottom:10px !important;
  }

  .opera-assistant-float #operaAssistantMessages .max-w-\[82\%\]{
    max-width:92% !important;
  }

  .opera-assistant-float #operaAssistantPending{
    flex:0 0 auto;
    margin-bottom:8px !important;
  }

  .opera-assistant-float #operaAssistantPanel > .flex.gap-2{
    position:relative;
    flex:0 0 auto;
    display:grid;
    grid-template-columns:minmax(0,1fr) 54px 74px;
    gap:8px;
    align-items:stretch;
    background:#fff;
  }

  .opera-assistant-float #operaAssistantInput{
    width:100%;
    min-width:0;
    min-height:54px;
    max-height:100px;
    font-size:16px;
    line-height:1.35;
    padding:12px 14px;
  }

  .opera-assistant-float #operaAssistantVoiceBtn{
    width:54px;
    min-width:54px;
    padding:0 !important;
  }

  .opera-assistant-float #operaAssistantSendBtn{
    width:74px;
    min-width:74px;
    padding:0 10px !important;
    font-size:14px;
  }

  .opera-assistant-float #operaAssistantPanel > .flex.flex-wrap.gap-2.mt-3{
    flex:0 0 auto;
    overflow-x:auto;
    flex-wrap:nowrap !important;
    padding-bottom:2px;
    margin-top:8px !important;
    scrollbar-width:none;
  }

  .opera-assistant-float #operaAssistantPanel > .flex.flex-wrap.gap-2.mt-3::-webkit-scrollbar{
    display:none;
  }

  .opera-assistant-float #operaAssistantPanel > .flex.flex-wrap.gap-2.mt-3 button{
    flex:0 0 auto;
    white-space:nowrap;
    min-height:42px;
  }

  .opera-assistant-float textarea,
  .opera-assistant-float button{
    touch-action:manipulation;
  }
}

/* iPhone pequeno */
@media (max-width: 390px){

  .opera-assistant-float #operaAssistantPanel{
    padding-left:10px !important;
    padding-right:10px !important;
  }

  .opera-assistant-float #operaAssistantPanel > .flex.gap-2{
    grid-template-columns:minmax(0,1fr) 50px 68px;
    gap:6px;
  }

  .opera-assistant-float #operaAssistantVoiceBtn{
    width:50px;
    min-width:50px;
  }

  .opera-assistant-float #operaAssistantSendBtn{
    width:68px;
    min-width:68px;
    font-size:13px;
  }
}

/* Ajuste do botão flutuante da Assistente no mobile */
@media (max-width: 768px){

  .opera-assistant-launcher{
    right:18px !important;
    bottom:92px !important;
    width:56px !important;
    height:56px !important;
    border-radius:18px !important;
    z-index:10020 !important;
  }

}

/* iPhone com safe area */
@supports (padding-bottom: env(safe-area-inset-bottom)){
  @media (max-width: 768px){
    .opera-assistant-launcher{
      bottom:calc(92px + env(safe-area-inset-bottom)) !important;
    }
  }
}

/*
 * ============================================================
 * OPERA - Assistente somente após autenticação
 * ============================================================
 *
 * Por padrão o launcher fica invisível.
 * O JS adiciona .opera-authenticated ao body somente
 * depois que OPERA_AUTH confirma a sessão.
 */
body:not(.opera-authenticated) #operaAssistantLauncher,
body:not(.opera-authenticated) #operaAssistantFloating {
  display: none !important;
}
