:root {

  /* MODO DINAMICO */
  --chat--background-header: #000;
  --chat--color-header: #dddddd;

  /* MODO BANGUAT */
  --chat--background-header: #153A55;
  --chat--color-header: #dddddd;

  --chat--color-primary: #8198b0;
  --chat--color-primary-shade-50: #153A55;
  --chat--color-primary-shade-100: #153A55;
  --chat--color-secondary: #a3a3a2;
  --chat--color-white: #ffffff;
  --chat--color-light: #1e1e1e;
  --chat--color-medium: #888;
  --chat--color-dark: #f0f0f0;
  --chat--color-disabled: #777980;
  --chat--color-typing: #404040;

  --chat--body--background: #1e1e1e;

  --chat--message--bot--background: #000;
  --chat--message--bot--color: #dddddd;
  --chat--message--user--background: #004a7c;
  --chat--message--user--color: #dfdfdf;

  --chat--header--background: #153A55;
  --chat--header--color: #ffffff;

  --chat--toggle--background: #8198b0;
  --chat--toggle--hover--background: #153A55;
  --chat--toggle--active--background: #153A55;
  --chat--toggle--color: #ffffff;

  --chat--input--background: #2a2a2a;
  --chat--input--text-color: #ffffff;
  --chat--input--send--button--background: transparent;
  --chat--input--send--button--color: #ffffff;

  --chat--spacing: 0.75rem;
  --chat--border-radius: 0.5rem;
  --chat--transition-duration: 0.15s;

  --chat--window--width: 400px;
  --chat--window--height: 650px;

  --chat--textarea--height: 50px;
  --chat--message--font-size: 0.75rem;
  --chat--message--padding: 0.5rem 0.75rem;
  --chat--color-typing: rgb(182, 182, 182);
}

body:not(.chat-light) .quickchart-frame,
body:not(.chat-light) .MiniMenuGraph,
body:not(.chat-light) .table-menu-btn,
body:not(.chat-light) #reset-chat-button 
{
  filter: invert(1) hue-rotate(180deg);
}

body.chat-light {
  
    /* MODO DINAMICO */
  --chat--background-header: #ffffff;
  --chat--color-header: #000000;

  /* MODO BANGUAT */
  --chat--background-header: #153A55;
  --chat--color-header: #dddddd;

  --chat--color-primary: #153A55;
  --chat--color-primary-shade-50: #0d2a40;
  --chat--color-primary-shade-100: #081b2a;
  --chat--color-white: #ffffff;
  --chat--color-light: #f2f4f8;
  --chat--color-dark: #153A55;
  --chat--body--background:#ebebeb;

  --chat--message--bot--background: #ffffff;
  --chat--message--bot--color: #000000;
  --chat--message--user--background: #153A55;
  --chat--message--user--color: #ffffff;

  --chat--header--background: #153A55;
  --chat--header--color: #ffffff;

  --chat--toggle--background: #153A55;
  --chat--toggle--color: #ffffff;

  background-color: #ffffff;
  color: #000;

  --chat--input--background: #ffffff;
  --chat--input--text-color: #000;
  --chat--input--send--button--background: transparent;
  --chat--input--send--button--color: #000;

  --chat--color-typing: rgb(104, 104, 104);
}

body {
  margin: 0;
  padding: 0;
}


#pc {
    width: 1650px;
    margin: 0 auto;
}

.chat-window,
.chat-layout,
.chat-body,
.chat-message,
.chat-input,
.chat-inputs,
.chat-input textarea {
  background-color: var(--chat--body--background);
  color: var(--chat--color-dark);
}

.chat-heading {
  color: var(--chat--header--color);
}

.chat-message-from-bot {
  background-color: var(--chat--message--bot--background);
  color: var(--chat--message--bot--color);
  padding-left: 50px;
  /* user-select: none; */
}

.chat-message-from-user {
  background-color: var(--chat--message--user--background);
  color: var(--chat--message--user--color);
  padding-right: 50px;
  text-align: right;
  /* user-select: none; */
}

.chat-avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  object-fit: cover;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

.chat-heading {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    font-weight: bold;
    user-select: none;
    color: white;
}

.chat-message {
    position: relative;
    margin-bottom: 10px;
    border-radius: 8px;
    display: flex;
    width: fit-content;
    align-items: center;
}


.chat-message-from-user {
    align-self: flex-end;
    padding-right: 50px;
    text-align: right;
}

.chat-logo {
    height: 40px;
    width: auto;
}

img[src*="quickchart.io"] {
    max-width: 100% !important;
    height: auto !important;
    display: block;
}

.chat-message-from-bot .chat-avatar {
  left: 10px;
}

.chat-message-from-user .chat-avatar {
  right: 10px;
}

h1 {
    font-size: medium !important;
}

/* animación de ventana chatbot y expansión */
.chat-window {
  transition:
    width 0.4s ease,
    height 0.4s ease,
    opacity 0.3s ease,
    transform 0.4s ease !important;
}

.quickchart-frame {
    width: 100%;
    height: 32vh;
    border: none;
    transform-origin: top left;
    transition: transform 0.2s ease;
    /* border: solid 2px purple !important; */
}

.iframe-wrapper {
  position: relative;
  width: 100%;
  height: 300px;
  overflow: hidden;
  border-radius: 0.5rem;
  box-shadow: 0 0 10px rgba(0,0,0,0.15);
  margin-bottom: 1rem;
}

.iframe-controls {
  display: flex;
  gap: 5px;
  justify-content: flex-end;
  margin: 0.5rem 0;
}

.zoom-btn {
  padding: 0.3rem 0.6rem;
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
  border: none;
  background: var(--chat--toggle--background, #153A55);
  color: white;
  border-radius: 0.25rem;
  transition: background 0.2s;
}

.zoom-btn-reset {
  padding: 0.3rem 0.6rem;
  font-size: 1rem;
  font-weight: bold;
  cursor: pointer;
  border: none;
  background: var(--chat--toggle--background, #3473a0);
  color: white;
  border-radius: 0.25rem;
  transition: background 0.2s;
}


.zoom-btn:hover{
  background: var(--chat--toggle--hover--background, #2d5776);
}

.zoom-btn-reset:hover{
  background: var(--chat--toggle--hover--background, #132b3d);
}


 @keyframes pulse {
  0% {
    transform: scale(1);
    box-shadow: 0 0 0 rgba(21, 58, 85, 0.7);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 0 10px rgba(21, 58, 85, 0.4);
  }
  100% {
    transform: scale(1);
    box-shadow: 0 0 0 rgba(21, 58, 85, 0.7);
  }
}






.chat-window-toggle {
  animation: pulse 1s ease-in-out infinite alternate;
}

.chat-window-toggle.no-pulse {
  animation: none !important;
}

body.chat-open .chat-window-toggle {
  animation: none; /* detener animación si está abierto */
}

@keyframes pulse {
  0% { transform: scale(1); }
  100% { transform: scale(1.1); }
}


 .iframe-modal-overlay {
  position: fixed;
  top: 0; left: 0;
  width: 100vw; height: 100vh;
  background: rgba(30, 30, 30, 0.3);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  z-index: 9999;
  display: flex;
  align-items: center;
  justify-content: center;
}

.iframe-modal-content {
  width: 80vw;
  height: 80vh;
  border: none;
  background: transparent !important;
  border-radius: 5px;
  box-shadow: 0 0 20px rgba(0,0,0,0.4);
}

.iframe-modal-close {
  position: absolute;
  top: 20px;
  right: 30px;
  background: rgba(255, 255, 255, 0.2);
  backdrop-filter: blur(5px);
  border: none;
  color: #fff;
  font-size: 24px;
  cursor: pointer;
  padding: 6px 10px;
  border-radius: 6px;
  transition: background 0.2s;
}

.iframe-modal-close:hover {
  background: rgb(23, 23, 23);
}

.expand-iframe-button
{
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 20px;
  height: 20px;
  border-radius: 5px;
  cursor: pointer;
  background: rgb(80, 80, 80, 0.25);
  color: #fff;
  border: none;
}

.expand-iframe-button:hover {
  background: rgb(23, 23, 23);
}

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

.chat-message-markdown:has(table) {
  overflow-x: auto;
  overflow-y: hidden;
  max-width: 100%;
}

.chat-message-markdown .table-wrapper {
  overflow-x: auto;
  max-width: 100%;
}

.chat-message-markdown table {
  overflow-x: auto;
  width: 100%;
  border-collapse: collapse;
  table-layout: auto;
}


.chat-message-markdown th,
.chat-message-markdown td {
  padding: 4px 10px;
  text-align: center;
  border-bottom: 1px solid #ddd;
  white-space: nowrap;
}

thead {
    background-color: #d6ab5d ;
    color: #313131;
}

.chat-message.chat-message-from-bot.chat-avatar-added .chat-message-markdown > p {
  padding-right: 40px !important;
}



/* fix 01072025 */

.chat-message p{
  line-height: var(--chat--message-line-height, 1.4) !important;
}

.chat-message.chat-message-from-bot.chat-avatar-added .chat-message-markdown > p {
    padding-right: 0px !important;
}

.chat-message.chat-message-from-user.chat-avatar-added .chat-message-markdown > p {
    padding-left: 0px !important;
}

.error{
  padding: 15px !important;
  border-radius: 10px !important;
}







.chat-inputs-controls {
  overflow: hidden; /*evita scroll*/
}

#voice-input-button.recording {
  animation: pulse 1s infinite;
  color: orangered !important;
}

@keyframes pulse {
  0% {
    transform: scale(1);
    opacity: 0.8;
  }
  50% {
    transform: scale(1.15);
    opacity: 1;
  }
  100% {
    transform: scale(1);
    opacity: 0.8;
  }
}




.chat-inputs > textarea {
  width: auto !important;
  flex: 1 !important;
  min-width: 0 !important;
  padding-right: 6.5rem !important;
  box-sizing: border-box !important;
}

.chat-inputs {
  display: flex;
  align-items: flex-start;
  gap: 8px;
} 







.SuggestedOption{
  border: solid 1px rgba(56, 56, 56, 0.812);
  border-radius: 20px !important;
  cursor: pointer !important;
  font-size: 14px!important;
  /* color: white; */
  color: var(--chat--color-header);
  /* background:#082a41; */
  background: var(--chat--background-header);
  margin-bottom: 3px;
}

.chat-suggestions .SuggestedOption {
  flex: 0 0 auto;
  padding: 8px 12px !important; 
} 

.chat-suggestions::-webkit-scrollbar {
  height: 4px; 
}

.chat-suggestions::-webkit-scrollbar-track {
  background: transparent;
}

.chat-suggestions::-webkit-scrollbar-thumb {
  background-color: #808080;
  border-radius: 4px;
}

.chat-suggestions::-webkit-scrollbar-thumb:hover {
  /* background-color: rgba(198, 198, 198, 0.6); */
  background-color: #8b8b8b;
  cursor: grab;
}

.chat-body {
  scrollbar-width: thin;              
  scrollbar-color: #808080 transparent;  
}

.chat-body::-webkit-scrollbar {
  height: 4px;
  width: 4px;
}

.chat-body::-webkit-scrollbar-track {
  background: transparent;
}

.chat-body::-webkit-scrollbar-thumb {
  background-color: #888;
  border-radius: 10px;
  border: 2px solid transparent; 
  background-clip: content-box;
}

.chat-body::-webkit-scrollbar-thumb:hover {
  background-color: #8b8b8b;
}

.chat-messages-list{
  margin-top: -5px !important;
}

/* BOTON DE MICROFONO */
#voice-input-button{
  display: none !important;
}

.chat-message-from-bot.error {
  display: flex;
  flex-direction: column;
  align-items: center; 
  text-align: center;
  padding: 10px;
}

.refresh-container {
  display: flex;
  justify-content: center;
  width: 100%;
}

.refresh-btn {
  margin-top: 7px;
  padding: 6px 12px;
  border: none;
  border-radius: 6px;
  background-color: #004a7c;
  color: rgb(235, 235, 235);
  cursor: pointer;
  font-size: 14px;
}

.refresh-btn:hover {
  background-color: #0056b3;
}

.chat-get-started-footer{
  text-align: center !important;
  color: light;
}

.chat-layout .chat-header{
  flex-direction: row !important;
  padding-bottom: 4px !important;
  background-color: var(--chat--background-header);
}

.chat-heading h1{
  color: var(--chat--color-header) !important;
}

/* Mensaje de chat */
.chat-bubble {
  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
  font-weight: 600;
  position: fixed;
  bottom: 25px;
  right: 95px;
  background: #004a7c;
  border: solid 1.5px lightgray;
  color: #fff;
  padding: 12px 16px;
  border-radius: 16px 16px 4px 16px; /* Pico en esquina inferior derecha */
  font-size: 14px;
  white-space: nowrap;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  z-index: 9999;
  opacity: 0;
  transform: translateX(20px) scale(0.9);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  max-width: 250px;
  line-height: 1.4;
}

.chat-bubble::after {
  content: '';
  position: absolute;
  bottom: 8px;
  right: -8px;
  width: 0;
  height: 0;
  border-top: 8px solid transparent;
  border-bottom: 8px solid transparent;
  border-left: 8px solid #00457f;
}

.chat-bubble.show {
  opacity: 1;
  transform: translateX(0) scale(1);
}

.chat-bubble:hover {
  transform: translateX(0) scale(1.02);
  text-shadow: 0 0 8px rgba(255, 255, 255, 0.8);
  box-shadow: 0 6px 20px rgba(0, 69, 127, 0.4);
}
