ChatBot - Correção de erros frontend

This commit is contained in:
Ricardo Cunha 2025-05-29 13:13:20 +01:00
parent cac71b22b8
commit 38b3d1f089
4 changed files with 609 additions and 1124 deletions

View File

@ -1,536 +0,0 @@
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(https://penpot.techx.pt/internal/gfonts/font/poppins/v23/pxiEyp8kv8JHgFVrJJbecmNE.woff2) format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(https://penpot.techx.pt/internal/gfonts/font/poppins/v23/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(https://penpot.techx.pt/internal/gfonts/font/poppins/v23/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
body, html {
height: 100%;
margin: 0;
padding: 0;
}
body {
min-height: 100vh;
min-width: 100vw;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
}
.main {
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
* {
box-sizing: border-box;
}
.text-node { background-clip: text !important; -webkit-background-clip: text !important; }
.group-96e07eb27483 {
position: relative;
margin: 40px auto;
left: 0;
top: 0;
width: 100%;
min-height: 480px;
max-width: 420px;
min-width: 0;
height: auto;
background: #232329;
border-radius: 12px;
box-shadow: 0 2px 16px rgba(0,0,0,0.12);
display: flex;
flex-direction: column;
justify-content: flex-start;
padding: 24px 16px 80px 16px;
box-sizing: border-box;
}
@media (max-width: 480px) {
.group-96e07eb27483 {
max-width: 100vw;
margin: 0;
border-radius: 0;
min-height: 100vh;
height: 100vh;
padding: 8px 2px 72px 2px;
}
.chatbot-footer {
padding: 8px 2px;
}
}
.chatbot-footer {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
padding: 16px;
background: transparent;
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
}
.chatbot-input {
flex: 1;
padding: 12px 16px;
border-radius: 20px;
border: 1px solid #4567c8;
background: #242431;
color: #fff;
font-family: Poppins;
font-size: 14px;
outline: none;
}
.chatbot-send {
background: #3665e5;
border: none;
border-radius: 50%;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: background 0.2s;
}
.chatbot-send:hover {
background: #274bb5;
}
.group-960966d81066 {
position: absolute;
right: 24px;
bottom: 24px;
}
.majesticon-96090a0d56c6 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.majesticon-96090a0d56c6 {
position: absolute;
left: 6px;
top: 6px;
width: 24px;
height: 24px;
}
.svgg-96090a0ec27b > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.svgg-96090a0ec27b {
position: absolute;
left: 2px;
top: 1px;
width: 20px;
height: 20px;
}
.svgpath-28b572d45adb > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.svgpath-28b572d45adb {
position: absolute;
left: 0px;
top: 0px;
width: 20px;
height: 20px;
}
.basebackg-96090a0e90ae > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.basebackg-96090a0e90ae {
position: absolute;
left: 0px;
top: 0px;
width: 24px;
height: 24px;
border-radius: 0px;
display: none;
}
.ellipse-960912454190 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.ellipse-960912454190 {
position: absolute;
left: 0px;
top: 0px;
width: 36px;
height: 36px;
}
.fluent-add-9606a9926cc1 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(-5.798989873223036px,-5.798989873223377px);
}
.fluent-add-9606a9926cc1 {
position: absolute;
left: 20.8px;
top: 16.8px;
width: 28px;
height: 28px;
}
.svgpath-9606a9926cc3 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(-4.556349186103944px,-4.556349186104285px);
}
.svgpath-9606a9926cc3 {
position: absolute;
left: 3px;
top: 3px;
width: 22px;
height: 22px;
transform: matrix(0.71, -0.71, 0.71, 0.71, -0.00, -0.00);
}
.basebackg-9606a9926cc2 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(-5.798989873223036px,-5.798989873223377px);
}
.basebackg-9606a9926cc2 {
position: absolute;
left: 0px;
top: 0px;
width: 28px;
height: 28px;
transform: matrix(0.71, -0.71, 0.71, 0.71, -0.00, -0.00);
border-radius: 0px;
display: none;
}
.como-posso-96076e6f2b0e {
position: absolute;
left: 40px;
top: 144px;
width: 147px;
height: 17px;
}
.como-posso-96076e6f2b0e .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.como-posso-96076e6f2b0e .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.como-posso-96076e6f2b0e .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.como-posso-96076e6f2b0e .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.ol-ricar-9606a9922bc3 {
position: absolute;
left: 40px;
top: 105px;
width: 84px;
height: 17px;
}
.ol-ricar-9606a9922bc3 .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.ol-ricar-9606a9922bc3 .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.ol-ricar-9606a9922bc3 .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.ol-ricar-9606a9922bc3 .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.escrever-96087303180b {
width: 100%;
min-width: 0;
max-width: 100%;
margin-top: 24px;
box-sizing: border-box;
}
.escrever-m-96087303180c {
width: 109px;
height: 14px;
flex-shrink: 0;
}
.escrever-m-96087303180c .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.escrever-m-96087303180c .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.escrever-m-96087303180c .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.399999976158142;
margin: 0;
text-align: left;
}
.escrever-m-96087303180c .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(250, 250, 250, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 10px;
text-rendering: geometricPrecision;
caret-color: rgba(250, 250, 250, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.group-960a79ab28ed {
position: absolute;
left: 40px;
top: 187px;
width: 178px;
height: 196px;
}
.messsage-960a1c58fff8,
.messsage-9609b70bc8d5,
.messsage-9609aa192b77,
.messsage-96082a7c27ce {
position: relative;
width: auto;
height: auto;
background: #3d4764FF;
border-radius: 20px;
display: flex;
align-items: start;
align-content: stretch;
justify-content: start;
padding: 10px 20px 10px 20px;
z-index: 0;
flex-direction: row;
flex-wrap: nowrap;
}
.ver-relat-960a1c58fff9,
.ver-relat-9609b70bc8d6,
.visualizar-9609aa192b78,
.consultar-96082a7c27cf {
height: 14px;
flex-shrink: 0;
}
.ver-relat-960a1c58fff9 .root-0,
.ver-relat-9609b70bc8d6 .root-0,
.visualizar-9609aa192b78 .root-0,
.consultar-96082a7c27cf .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.ver-relat-960a1c58fff9 .root-0-paragraph-set-0,
.ver-relat-9609b70bc8d6 .root-0-paragraph-set-0,
.visualizar-9609aa192b78 .root-0-paragraph-set-0,
.consultar-96082a7c27cf .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.ver-relat-960a1c58fff9 .root-0-paragraph-set-0-paragraph-0,
.ver-relat-9609b70bc8d6 .root-0-paragraph-set-0-paragraph-0,
.visualizar-9609aa192b78 .root-0-paragraph-set-0-paragraph-0,
.consultar-96082a7c27cf .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.399999976158142;
margin: 0;
text-align: left;
}
.ver-relat-960a1c58fff9 .root-0-paragraph-set-0-paragraph-0-text-0,
.ver-relat-9609b70bc8d6 .root-0-paragraph-set-0-paragraph-0-text-0,
.visualizar-9609aa192b78 .root-0-paragraph-set-0-paragraph-0-text-0,
.consultar-96082a7c27cf .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(250, 250, 250, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 10px;
text-rendering: geometricPrecision;
caret-color: rgba(250, 250, 250, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.vamos-a-is-960a62b1bab0 {
position: absolute;
left: 48.19px;
top: 441px;
width: 101px;
height: 17px;
}
.vamos-a-is-960a62b1bab0 .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.vamos-a-is-960a62b1bab0 .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.vamos-a-is-960a62b1bab0 .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.vamos-a-is-960a62b1bab0 .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.pode-falar-960a50fa2a15 {
position: absolute;
left: 48.19px;
top: 406.83px;
width: 160px;
height: 17px;
}
.pode-falar-960a50fa2a15 .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.pode-falar-960a50fa2a15 .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.pode-falar-960a50fa2a15 .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.pode-falar-960a50fa2a15 .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.rectangle-9606a9926cc4 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.rectangle-9606a9926cc4 {
position: absolute;
left: 0px;
top: 0px;
width: 535px;
height: 588px;
}
.frame {
width: 100%;
min-width: 0;
margin-bottom: 12px;
}
.shape.text {
width: 100%;
}

View File

@ -1,587 +1,7 @@
<style>
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(https://penpot.techx.pt/internal/gfonts/font/poppins/v23/pxiEyp8kv8JHgFVrJJbecmNE.woff2) format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(https://penpot.techx.pt/internal/gfonts/font/poppins/v23/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(https://penpot.techx.pt/internal/gfonts/font/poppins/v23/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
body, html {
height: 100%;
margin: 0;
padding: 0;
}
body {
min-height: 100vh;
min-width: 100vw;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
}
.main {
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
* {
box-sizing: border-box;
}
.text-node { background-clip: text !important; -webkit-background-clip: text !important; }
.group-96e07eb27483 {
position: relative;
margin: 40px auto;
left: 0;
top: 0;
width: 100%;
min-height: 480px;
max-width: 420px;
min-width: 0;
height: auto;
background: #232329;
border-radius: 12px;
box-shadow: 0 2px 16px rgba(0,0,0,0.12);
display: flex;
flex-direction: column;
justify-content: flex-start;
padding: 24px 16px 80px 16px;
box-sizing: border-box;
}
@media (max-width: 480px) {
.group-96e07eb27483 {
max-width: 100vw;
margin: 0;
border-radius: 0;
min-height: 100vh;
height: 100vh;
padding: 8px 2px 72px 2px;
}
.chatbot-footer {
padding: 8px 2px;
}
}
.chatbot-footer {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
padding: 16px;
background: transparent;
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
}
.chatbot-input {
flex: 1;
padding: 12px 16px;
border-radius: 20px;
border: 1px solid #4567c8;
background: #242431;
color: #fff;
font-family: Poppins;
font-size: 14px;
outline: none;
}
.chatbot-send {
background: #3665e5;
border: none;
border-radius: 50%;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: background 0.2s;
}
.chatbot-send:hover {
background: #274bb5;
}
.group-960966d81066 {
position: absolute;
right: 24px;
bottom: 24px;
}
.majesticon-96090a0d56c6 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.majesticon-96090a0d56c6 {
position: absolute;
left: 6px;
top: 6px;
width: 24px;
height: 24px;
}
.svgg-96090a0ec27b > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.svgg-96090a0ec27b {
position: absolute;
left: 2px;
top: 1px;
width: 20px;
height: 20px;
}
.svgpath-28b572d45adb > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.svgpath-28b572d45adb {
position: absolute;
left: 0px;
top: 0px;
width: 20px;
height: 20px;
}
.basebackg-96090a0e90ae > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.basebackg-96090a0e90ae {
position: absolute;
left: 0px;
top: 0px;
width: 24px;
height: 24px;
border-radius: 0px;
display: none;
}
.ellipse-960912454190 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.ellipse-960912454190 {
position: absolute;
left: 0px;
top: 0px;
width: 36px;
height: 36px;
}
.fluent-add-9606a9926cc1 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(-5.798989873223036px,-5.798989873223377px);
}
.fluent-add-9606a9926cc1 {
position: absolute;
left: 20.8px;
top: 16.8px;
width: 28px;
height: 28px;
}
.svgpath-9606a9926cc3 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(-4.556349186103944px,-4.556349186104285px);
}
.svgpath-9606a9926cc3 {
position: absolute;
left: 3px;
top: 3px;
width: 22px;
height: 22px;
transform: matrix(0.71, -0.71, 0.71, 0.71, -0.00, -0.00);
}
.basebackg-9606a9926cc2 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(-5.798989873223036px,-5.798989873223377px);
}
.basebackg-9606a9926cc2 {
position: absolute;
left: 0px;
top: 0px;
width: 28px;
height: 28px;
transform: matrix(0.71, -0.71, 0.71, 0.71, -0.00, -0.00);
border-radius: 0px;
display: none;
}
.como-posso-96076e6f2b0e {
position: absolute;
left: 40px;
top: 144px;
width: 147px;
height: 17px;
}
.como-posso-96076e6f2b0e .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.como-posso-96076e6f2b0e .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.como-posso-96076e6f2b0e .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.como-posso-96076e6f2b0e .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.ol-ricar-9606a9922bc3 {
position: absolute;
left: 40px;
top: 105px;
width: 84px;
height: 17px;
}
.ol-ricar-9606a9922bc3 .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.ol-ricar-9606a9922bc3 .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.ol-ricar-9606a9922bc3 .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.ol-ricar-9606a9922bc3 .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.escrever-96087303180b {
width: 100%;
min-width: 0;
max-width: 100%;
margin-top: 24px;
box-sizing: border-box;
}
.escrever-m-96087303180c {
width: 109px;
height: 14px;
flex-shrink: 0;
}
.escrever-m-96087303180c .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.escrever-m-96087303180c .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.escrever-m-96087303180c .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.399999976158142;
margin: 0;
text-align: left;
}
.escrever-m-96087303180c .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(250, 250, 250, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 10px;
text-rendering: geometricPrecision;
caret-color: rgba(250, 250, 250, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.group-960a79ab28ed {
position: absolute;
left: 40px;
top: 187px;
width: 178px;
height: 196px;
}
.messsage-960a1c58fff8,
.messsage-9609b70bc8d5,
.messsage-9609aa192b77,
.messsage-96082a7c27ce {
position: relative;
width: auto;
height: auto;
background: #3d4764FF;
border-radius: 20px;
display: flex;
align-items: start;
align-content: stretch;
justify-content: start;
padding: 10px 20px 10px 20px;
z-index: 0;
flex-direction: row;
flex-wrap: nowrap;
}
.ver-relat-960a1c58fff9,
.ver-relat-9609b70bc8d6,
.visualizar-9609aa192b78,
.consultar-96082a7c27cf {
height: 14px;
flex-shrink: 0;
}
.ver-relat-960a1c58fff9 .root-0,
.ver-relat-9609b70bc8d6 .root-0,
.visualizar-9609aa192b78 .root-0,
.consultar-96082a7c27cf .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.ver-relat-960a1c58fff9 .root-0-paragraph-set-0,
.ver-relat-9609b70bc8d6 .root-0-paragraph-set-0,
.visualizar-9609aa192b78 .root-0-paragraph-set-0,
.consultar-96082a7c27cf .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.ver-relat-960a1c58fff9 .root-0-paragraph-set-0-paragraph-0,
.ver-relat-9609b70bc8d6 .root-0-paragraph-set-0-paragraph-0,
.visualizar-9609aa192b78 .root-0-paragraph-set-0-paragraph-0,
.consultar-96082a7c27cf .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.399999976158142;
margin: 0;
text-align: left;
}
.ver-relat-960a1c58fff9 .root-0-paragraph-set-0-paragraph-0-text-0,
.ver-relat-9609b70bc8d6 .root-0-paragraph-set-0-paragraph-0-text-0,
.visualizar-9609aa192b78 .root-0-paragraph-set-0-paragraph-0-text-0,
.consultar-96082a7c27cf .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(250, 250, 250, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 10px;
text-rendering: geometricPrecision;
caret-color: rgba(250, 250, 250, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.vamos-a-is-960a62b1bab0 {
position: absolute;
left: 48.19px;
top: 441px;
width: 101px;
height: 17px;
}
.vamos-a-is-960a62b1bab0 .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.vamos-a-is-960a62b1bab0 .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.vamos-a-is-960a62b1bab0 .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.vamos-a-is-960a62b1bab0 .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.pode-falar-960a50fa2a15 {
position: absolute;
left: 48.19px;
top: 406.83px;
width: 160px;
height: 17px;
}
.pode-falar-960a50fa2a15 .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.pode-falar-960a50fa2a15 .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.pode-falar-960a50fa2a15 .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.pode-falar-960a50fa2a15 .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.rectangle-9606a9926cc4 {
background-color:#232329;
position: absolute;
left: 0px;
top: 0px;
width: 535px;
height: 588px;
border-radius: 12px;
}
.frame {
width: 100%;
min-width: 0;
margin-bottom: 12px;
}
.shape.text {
width: 100%;
}
.chat-history {
flex: 1 1 auto;
display: flex;
flex-direction: column-reverse;
gap: 8px;
overflow-y: auto;
padding: 8px 0;
min-height: 0;
}
.chat-history .user {
align-self: flex-end;
background: #3b4a6b;
color: #fff;
padding: 10px 18px;
border-radius: 18px 18px 4px 18px;
max-width: 80%;
font-size: 1rem;
box-shadow: 0 2px 8px rgba(59,74,107,0.08);
}
.chat-history .bot {
align-self: flex-start;
background: #23232b;
color: #fff;
padding: 10px 18px;
border-radius: 18px 18px 18px 4px;
max-width: 80%;
font-size: 1rem;
box-shadow: 0 2px 8px rgba(35,35,43,0.08);
}
</style>
<main class="main"> <main class="main">
<div class="group group-96e07eb27483"> <div class="group group-96e07eb27483">
<div class="shape path rectangle-9606a9926cc4"> <div class="shape path rectangle-9606a9926cc4">
<div class="chat-history" #chatHistoryDiv> <!--
<div *ngFor="let msg of chatHistory" [ngClass]="msg.sender">
<span>{{ msg.text }}</span>
</div>
</div>
<div class="chatbot-footer">
<input class="chatbot-input" type="text" [(ngModel)]="userMessage" placeholder="Digite sua mensagem..." (keyup.enter)="enviarMensagem()" />
<button class="chatbot-send" (click)="enviarMensagem()">
<svg width="20" height="20" fill="#fff" viewBox="0 0 24 24">
<path d="M2 21l21-9-21-9v7l15 2-15 2z"/>
</svg>
</button>
</div>
</div>
<div class="shape text pode-falar-960a50fa2a15"> <div class="shape text pode-falar-960a50fa2a15">
<div class="text-node-html" id="html-text-node-b0f42cb3-61fe-8063-8005-960a50fa2a15" data-x="2070.193747453611" data-y="1161.8282269185227"> <div class="text-node-html" id="html-text-node-b0f42cb3-61fe-8063-8005-960a50fa2a15" data-x="2070.193747453611" data-y="1161.8282269185227">
<div class="root rich-text root-0" style="display:flex;white-space:break-spaces;align-items:flex-start" xmlns="http://www.w3.org/1999/xhtml"> <div class="root rich-text root-0" style="display:flex;white-space:break-spaces;align-items:flex-start" xmlns="http://www.w3.org/1999/xhtml">
@ -699,4 +119,20 @@
</g> </g>
</svg> </svg>
</div> </div>
-->
<div class="chat-history" #chatHistoryDiv>
<div *ngFor="let msg of chatHistory" [ngClass]="msg.sender">
<span>{{ msg.text }}</span>
</div>
</div>
<div class="chatbot-footer">
<input class="chatbot-input" type="text" [(ngModel)]="userMessage" placeholder="Digite sua mensagem..." (keyup.enter)="enviarMensagem()" />
<button class="chatbot-send" (click)="enviarMensagem()">
<svg width="20" height="20" fill="#fff" viewBox="0 0 24 24">
<path d="M2 21l21-9-21-9v7l15 2-15 2z"/>
</svg>
</button>
</div>
</div>
</div> </div>

View File

@ -1,4 +1,4 @@
import { Component } from '@angular/core'; import { Component, AfterViewChecked, ViewChild, ElementRef } from '@angular/core';
import { CommonModule } from '@angular/common'; import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms'; import { FormsModule } from '@angular/forms';
import { ChatService } from './chat.service'; import { ChatService } from './chat.service';
@ -9,15 +9,30 @@ import { ChatService } from './chat.service';
imports: [CommonModule, FormsModule], imports: [CommonModule, FormsModule],
templateUrl: './app.component.html' templateUrl: './app.component.html'
}) })
export class AppComponent { export class AppComponent {
userMessage = ''; userMessage = '';
resposta: string | null = null; resposta: string | null = null;
chatHistory: any[] = []; chatHistory: { text: string, sender: 'user' | 'bot' }[] = [];
constructor(private chatService: ChatService) {} constructor(private chatService: ChatService) {}
@ViewChild('chatHistoryDiv') chatHistoryDiv!: ElementRef;
ngAfterViewChecked() {
this.scrollToBottom();
}
scrollToBottom() {
try {
this.chatHistoryDiv.nativeElement.scrollTop = this.chatHistoryDiv.nativeElement.scrollHeight;
} catch (err) {}
}
enviarMensagem() { enviarMensagem() {
this.chatService.sendMessage(this.userMessage).subscribe((res: any) => { if (!this.userMessage.trim()) return;
this.resposta = res?.reply || 'Sem resposta do servidor'; this.chatHistory.push({ sender: 'user', text: this.userMessage });
}); this.userMessage = '';
} setTimeout(() => {
} this.chatHistory.push({ sender: 'bot', text: 'Resposta do bot!' });
}, 300);
}}

View File

@ -0,0 +1,570 @@
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(https://penpot.techx.pt/internal/gfonts/font/poppins/v23/pxiEyp8kv8JHgFVrJJbecmNE.woff2) format('woff2');
unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(https://penpot.techx.pt/internal/gfonts/font/poppins/v23/pxiEyp8kv8JHgFVrJJnecmNE.woff2) format('woff2');
unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
font-family: 'Poppins';
font-style: normal;
font-weight: 400;
font-display: block;
src: url(https://penpot.techx.pt/internal/gfonts/font/poppins/v23/pxiEyp8kv8JHgFVrJJfecg.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
body, html {
height: 100%;
margin: 0;
padding: 0;
}
body {
min-height: 100vh;
min-width: 100vw;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
}
.main {
width: 100vw;
height: 100vh;
display: flex;
align-items: center;
justify-content: center;
}
* {
box-sizing: border-box;
}
.text-node { background-clip: text !important; -webkit-background-clip: text !important; }
.group-96e07eb27483 {
position: relative;
margin: 40px auto;
left: 0;
top: 0;
width: 100%;
height: 100%;
min-height: 480px;
max-width: 420px;
min-width: 0;
height: auto;
background: #232329;
border-radius: 12px;
box-shadow: 0 2px 16px rgba(0,0,0,0.12);
display: flex;
flex-direction: column;
justify-content: flex-start;
padding: 16px;
box-sizing: border-box;
}
@media (max-width: 480px) {
.group-96e07eb27483 {
max-width: 100vw;
margin: 0;
border-radius: 0;
min-height: 100vh;
height: 100vh;
padding: 8px 2px 72px 2px;
}
.chatbot-footer {
padding: 8px 2px;
}
}
.chatbot-footer {
position: absolute;
left: 0;
bottom: 0;
width: 100%;
padding: 16px;
background: transparent;
display: flex;
align-items: center;
gap: 8px;
box-sizing: border-box;
}
.chatbot-input {
flex: 1;
padding: 12px 16px;
border-radius: 20px;
border: 1px solid #4567c8;
background: #242431;
color: #fff;
font-family: Poppins;
font-size: 14px;
outline: none;
}
.chatbot-send {
background: #3665e5;
border: none;
border-radius: 50%;
width: 40px;
height: 40px;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
transition: background 0.2s;
}
.chatbot-send:hover {
background: #274bb5;
}
.group-960966d81066 {
position: absolute;
right: 24px;
bottom: 24px;
}
.majesticon-96090a0d56c6 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.majesticon-96090a0d56c6 {
position: absolute;
left: 6px;
top: 6px;
width: 24px;
height: 24px;
}
.svgg-96090a0ec27b > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.svgg-96090a0ec27b {
position: absolute;
left: 2px;
top: 1px;
width: 20px;
height: 20px;
}
.svgpath-28b572d45adb > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.svgpath-28b572d45adb {
position: absolute;
left: 0px;
top: 0px;
width: 20px;
height: 20px;
}
.basebackg-96090a0e90ae > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.basebackg-96090a0e90ae {
position: absolute;
left: 0px;
top: 0px;
width: 24px;
height: 24px;
border-radius: 0px;
display: none;
}
.ellipse-960912454190 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(0px,0px);
}
.ellipse-960912454190 {
position: absolute;
left: 0px;
top: 0px;
width: 36px;
height: 36px;
}
.fluent-add-9606a9926cc1 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(-5.798989873223036px,-5.798989873223377px);
}
.fluent-add-9606a9926cc1 {
position: absolute;
left: 20.8px;
top: 16.8px;
width: 28px;
height: 28px;
}
.svgpath-9606a9926cc3 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(-4.556349186103944px,-4.556349186104285px);
}
.svgpath-9606a9926cc3 {
position: absolute;
left: 3px;
top: 3px;
width: 22px;
height: 22px;
transform: matrix(0.71, -0.71, 0.71, 0.71, -0.00, -0.00);
}
.basebackg-9606a9926cc2 > svg {
position: absolute;
top: 0px;
left: 0px;
transform: translate(-5.798989873223036px,-5.798989873223377px);
}
.basebackg-9606a9926cc2 {
position: absolute;
left: 0px;
top: 0px;
width: 28px;
height: 28px;
transform: matrix(0.71, -0.71, 0.71, 0.71, -0.00, -0.00);
border-radius: 0px;
display: none;
}
.como-posso-96076e6f2b0e {
position: absolute;
left: 40px;
top: 144px;
width: 147px;
height: 17px;
}
.como-posso-96076e6f2b0e .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.como-posso-96076e6f2b0e .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.como-posso-96076e6f2b0e .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.como-posso-96076e6f2b0e .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.ol-ricar-9606a9922bc3 {
position: absolute;
left: 40px;
top: 105px;
width: 84px;
height: 17px;
}
.ol-ricar-9606a9922bc3 .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.ol-ricar-9606a9922bc3 .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.ol-ricar-9606a9922bc3 .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.ol-ricar-9606a9922bc3 .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.escrever-96087303180b {
width: 100%;
min-width: 0;
max-width: 100%;
margin-top: 24px;
box-sizing: border-box;
}
.escrever-m-96087303180c {
width: 109px;
height: 14px;
flex-shrink: 0;
}
.escrever-m-96087303180c .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.escrever-m-96087303180c .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.escrever-m-96087303180c .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.399999976158142;
margin: 0;
text-align: left;
}
.escrever-m-96087303180c .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(250, 250, 250, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 10px;
text-rendering: geometricPrecision;
caret-color: rgba(250, 250, 250, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.group-960a79ab28ed {
position: absolute;
left: 40px;
top: 187px;
width: 178px;
height: 196px;
}
.messsage-960a1c58fff8,
.messsage-9609b70bc8d5,
.messsage-9609aa192b77,
.messsage-96082a7c27ce {
position: relative;
width: auto;
height: auto;
background: #3d4764FF;
border-radius: 20px;
display: flex;
align-items: start;
align-content: stretch;
justify-content: start;
padding: 10px 20px 10px 20px;
z-index: 0;
flex-direction: row;
flex-wrap: nowrap;
}
.ver-relat-960a1c58fff9,
.ver-relat-9609b70bc8d6,
.visualizar-9609aa192b78,
.consultar-96082a7c27cf {
height: 14px;
flex-shrink: 0;
}
.ver-relat-960a1c58fff9 .root-0,
.ver-relat-9609b70bc8d6 .root-0,
.visualizar-9609aa192b78 .root-0,
.consultar-96082a7c27cf .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.ver-relat-960a1c58fff9 .root-0-paragraph-set-0,
.ver-relat-9609b70bc8d6 .root-0-paragraph-set-0,
.visualizar-9609aa192b78 .root-0-paragraph-set-0,
.consultar-96082a7c27cf .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.ver-relat-960a1c58fff9 .root-0-paragraph-set-0-paragraph-0,
.ver-relat-9609b70bc8d6 .root-0-paragraph-set-0-paragraph-0,
.visualizar-9609aa192b78 .root-0-paragraph-set-0-paragraph-0,
.consultar-96082a7c27cf .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.399999976158142;
margin: 0;
text-align: left;
}
.ver-relat-960a1c58fff9 .root-0-paragraph-set-0-paragraph-0-text-0,
.ver-relat-9609b70bc8d6 .root-0-paragraph-set-0-paragraph-0-text-0,
.visualizar-9609aa192b78 .root-0-paragraph-set-0-paragraph-0-text-0,
.consultar-96082a7c27cf .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(250, 250, 250, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 10px;
text-rendering: geometricPrecision;
caret-color: rgba(250, 250, 250, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.vamos-a-is-960a62b1bab0 {
position: absolute;
left: 48.19px;
top: 441px;
width: 101px;
height: 17px;
}
.vamos-a-is-960a62b1bab0 .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.vamos-a-is-960a62b1bab0 .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.vamos-a-is-960a62b1bab0 .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.vamos-a-is-960a62b1bab0 .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.pode-falar-960a50fa2a15 {
position: absolute;
left: 48.19px;
top: 406.83px;
width: 160px;
height: 17px;
}
.pode-falar-960a50fa2a15 .root-0 {
display: flex;
white-space: break-spaces;
align-items: flex-start;
}
.pode-falar-960a50fa2a15 .root-0-paragraph-set-0 {
display: inline-flex;
flex-direction: column;
justify-content: inherit;
margin-right: 1px;
vertical-align: top;
}
.pode-falar-960a50fa2a15 .root-0-paragraph-set-0-paragraph-0 {
font-size: 0;
line-height: 1.2;
margin: 0;
text-align: left;
}
.pode-falar-960a50fa2a15 .root-0-paragraph-set-0-paragraph-0-text-0 {
color: rgba(255, 255, 255, 1);
text-transform: none;
line-break: auto;
overflow-wrap: initial;
white-space: pre;
font-size: 14px;
text-rendering: geometricPrecision;
caret-color: rgba(255, 255, 255, 1);
text-decoration: none;
letter-spacing: 0px;
font-family: "Poppins";
font-style: normal;
font-weight: 400;
}
.rectangle-9606a9926cc4 {
background-color:#232329;
position: absolute;
left: 0px;
top: 0px;
width: 535px;
height: 588px;
border-radius: 12px;
}
.frame {
width: 100%;
min-width: 0;
margin-bottom: 12px;
}
.shape.text {
width: 100%;
}
.chat-history {
flex: 1 1 auto;
display: flex;
flex-direction: column;
gap: 16px; /* aumente o gap se quiser mais espaço entre mensagens */
overflow-y: auto;
padding: 24px 24px 0 24px; /* padding lateral e superior */
min-height: 200px;
height: 100%;
max-height: 500px;
justify-content: flex-end;
}
.chat-history::-webkit-scrollbar {
display: none;
}
.chat-history .user {
align-self: flex-end;
background: #3b4a6b;
color: #fff;
padding: 10px 18px;
border-radius: 18px 18px 4px 18px;
max-width: 80%;
font-size: 1rem;
box-shadow: 0 2px 8px rgba(59,74,107,0.08);
}
.chat-history .bot {
align-self: flex-start;
background: #18181e;
color: #fff;
padding: 10px 18px;
border-radius: 18px 18px 18px 4px;
max-width: 80%;
font-size: 1rem;
box-shadow: 0 2px 8px rgba(35,35,43,0.08);
}