@import url('https://fonts.googleapis.com/css2?family=Birthstone&family=Dancing+Script:wght@400..700&family=Pacifico&display=swap');

:root {
    --color-green: #2FC8B4;
    --color-green-dark: #389F99;
    --color-green-10: #EBFAF8;
    --color-green-20: #D5F4F0;
    --color-green-30: #C1EFE9;
    --color-green-40: #ACE9E1;
    --color-green-50: #97E4DA;
    --color-green-60: #82DED2;
    --color-green-70: #6ED9CB;
    --color-green-80: #59D3C3;
    --color-green-90: #44CEBC;
    --collapsed-h: 0px; /* altura do conteúdo quando fechado */
    --expanded-h: 400px; /* altura quando expandido (podes ajustar) */
    --max-h: 80vh; /* limite superior */
    --handle-color: #e43030;
    --transition: 300ms cubic-bezier(.22,.9,.3,1);
    --color-blue: #280F4C;
    --color-text: #656464;
}

.birthstone-regular {
    font-family: "Birthstone", cursive;
    font-weight: 400;
    font-style: normal;
}

.dancing-script {
    font-family: "Dancing Script", cursive;
    font-optical-sizing: auto;
    font-weight: 700;
    font-style: normal;
}

.pacifico-regular {
    font-family: "Pacifico", cursive;
    font-weight: 400;
    font-style: normal;
}

a, button {
    -webkit-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}

section#homemap {
    height: 100vh;
    width: 100%;
    position: relative;
    overflow: hidden;
    z-index: 5 !important;
}

#map-container {
    width: 100%;
    height: 100%;
    background-color: #FFFFFF;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    color: var(--color-blue);
}

.leaflet-marker-pane {
    will-change: transform, opacity;
    transition: transform 0.25s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.leaflet-zoom-anim .leaflet-marker-pane {
    transform-origin: 50% 50%;
}

.leaflet-marker-icon,
.leaflet-marker-shadow {
    backface-visibility: hidden;
    transform: translateZ(0);
}

#map-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: auto;
    z-index: 10;
    cursor: pointer;
}

    #map-overlay .background-white {
        width: 100%;
        height: 100%;
        position: relative;
    }

        #map-overlay .background-white img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

/* Blur effect for both map and overlay */
.blurred {
    filter: blur(3px);
    transition: filter 0.3s ease-in-out;
    /*background-color: rgba(255, 255, 255, 0.3);*/
}

/*#map-overlay-round {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    z-index: 11;
}

.map-overlay-round-blur {
    background: transparent;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.6) 0%, rgba(255, 255, 255, 0.0) 50%);
}*/

.map-scroll-hint {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background: rgba(0, 0, 0, 0.6);
    color: white;
    pointer-events: none;
    z-index: 1000;
    opacity: 0;
    transition: opacity 0.3s ease-in-out;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 18px;
    font-weight: 500;
    margin: 0 !important;
    padding: 0 !important;
}

    .map-scroll-hint.show {
        opacity: 1;
    }

.map-scroll-hint-content {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
}

.map-scroll-hint i {
    font-size: 20px;
}

.map-scroll-hint kbd {
    background: rgba(255, 255, 255, 0.2);
    padding: 4px 10px;
    border-radius: 4px;
    font-family: inherit;
    font-weight: 600;
    font-size: 16px;
    border: 1px solid rgba(255, 255, 255, 0.3);
}

@media (max-width: 768px) {
    .map-scroll-hint {
        display: none;
    }
}

/* -------------------- TAB BOX (MULTI-STATE) -------------------- */

#mychat-content {
    width: 100%;
    height: 100vh;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    margin: 0 auto;
    background: transparent;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.5) 0%, rgba(255, 255, 255, 0.5) 20%);
}

#tab-box {
    position: fixed;
    top: auto;
    bottom: 0;
    right: 1%;
    left: unset;
    transform: translate(0, 0);
    width: 90%;
    max-width: 400px;
    z-index: 9999;
    /*transition: all 0.5s ease-in-out, border-radius 0s, position 0s;*/
    padding-bottom: 0;
    border-radius: 20px 20px 0 0;
    background: rgba(255, 255, 255, 0.16);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.5);
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.20), inset 0 1px 0 rgba(255, 255, 255, 0.20);
    transition: box-shadow 0.5s ease;
}

    #tab-box:hover {
        border: 1px solid rgba(255, 255, 255, 0.7);
        box-shadow: 0 22px 100px rgba(0, 0, 0, 0.40), inset 0 2px 0 rgba(255, 255, 255, 0.40);
    }

    #tab-box::before {
        content: "";
        position: absolute;
        inset: 0;
        border-radius: inherit;
        pointer-events: none;
        background: linear-gradient( 135deg, rgba(255,255,255,0.40), rgba(255,255,255,0.10) );
        opacity: 0.8;
        z-index: -1;
    }
/* Fallback para browsers sem backdrop-filter (fica só translúcido) */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    #tab-box {
        background: rgba(255, 255, 255, 0.72);
    }
}

#tab-box.animating {
    position: fixed;
    top: auto;
    bottom: 0;
    right: 1%;
    left: unset;
    transform: translate(0, 0);
    z-index: 9999;
}

#tab-box.anchored {
    position: fixed;
    top: auto;
    bottom: 0;
    right: 1%;
    left: unset;
    transform: translate(0, 0);
    width: 90%;
    max-width: 400px;
    z-index: 9999;
    padding-bottom: 0;
    border-radius: 20px 20px 0 0;
    /*background: rgba(255, 255, 255, 0);
    background-color: rgba(255, 255, 255, 0);
    box-shadow: none;
    backdrop-filter: none;
    border: 1px solid rgba(255, 255, 255, 0);*/
}

    #tab-box.anchored::before {
        /*display: none;*/
    }

#tab-box .tab-content {
    position: relative;
    /*background: rgba(255, 255, 255, 0.4);*/
    padding: 5px 5px 0px 5px;
}

    #tab-box .tab-content:after {
        content: '';
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        background-image: url(/app/assets/img/directoryHouses/mysenior-assistente-ia-back-white.jpg);
        filter: blur(2px);
        border-radius: 15px;
        z-index: -1;
        opacity: 0.4;
    }

#tab-box.anchored .tab-content {
    border-radius: 15px 15px 0 0;
    padding: 5px 5px 0 5px;
}

#tab-box h1 {
    text-align: left;
    font-size: 20px;
    line-height: normal;
    margin: 0;
    padding: 0 5px;
    font-weight: 600;
    text-shadow: 1px 1px 1px rgba(255, 255, 255, 0.5);
}

/*#tab-box.anchored h1,
    #tab-box.anchored h2,
    #tab-box.anchored h3.guide-subtitle {
        display: none;
    }*/

#tab-box .tab-content .tab-box-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    border-radius: 20px 20px 0px 0px;
    background: rgba(255,255,255,0.55);
    -webkit-box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.1);
    box-shadow: 0px 0px 5px 1px rgba(0,0,0,0.1);
}

#tab-box .tab-content:hover .tab-box-content {
    background: rgba(255,255,255,0.9);
}

#tab-box .tab-content .tab-box-content .tabs-header {
    position: absolute;
    top: -36px;
    right: 10px;
    overflow: hidden;
}

    #tab-box .tab-content .tab-box-content .tabs-header .tabs-btns {
        display: flex;
        flex-direction: row;
        align-content: flex-end;
        justify-content: flex-start;
        gap: 0;
        height: 35px;
        display: none;
    }

    #tab-box .tab-content .tab-box-content .tabs-header .btn-map {
        padding: 0;
    }

        #tab-box .tab-content .tab-box-content .tabs-header .btn-map button {
            font-size: 22px;
            color: var(--color-green);
            border-radius: 50px;
            transition: all 0.2s ease-in-out;
            background: rgba(255, 255, 255, 0.85);
            -webkit-backdrop-filter: blur(14px);
            backdrop-filter: blur(14px);
            border: 2px solid rgba(255, 255, 255, 0.5);
            height: 50px;
            width: 50px;
            transition: opacity 0.3s ease, transform 0.3s ease, background 0.2s ease-in-out, border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
            flex: 1 1 auto;
            min-width: 0;
            -webkit-box-shadow: inset 0px -3px 0px 0px rgba(130,222,210,0.6);
            box-shadow: inset 0px -3px 0px 0px rgba(130,222,210,0.6);
        }

            #tab-box .tab-content .tab-box-content .tabs-header .btn-map button:hover {
                background: rgba(255, 255, 255, 0.95);
                color: var(--color-green-dark);
                -webkit-box-shadow: inset 0px -3px 0px 0px rgba(130,222,210,0.85);
                box-shadow: inset 0px -3px 0px 0px rgba(130,222,210,0.85);
            }


/* ==== New Button ==== */
#tab-box .tab-content .tab-box-content .tab-button {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: row;
    border: 0;
    color: var(--color-blue);
    text-align: center;
    font-family: Poppins;
    font-size: 12px;
    font-weight: 500;
    line-height: normal;
    cursor: pointer;
    gap: 0;
    transition: all 0.3s ease;
    border-radius: 0;
    /*background: rgba(255, 255, 255, 0.85);*/
    background: transparent;
    -webkit-box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, 0.1);
    box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, 0.1);
    box-shadow: none;
    white-space: nowrap;
    height: 35px;
    padding: 0 20px;
}

    #tab-box .tab-content .tab-box-content .tab-button span {
        position: relative;
        font-family: "futura-pt", sans-serif;
        background: rgba(255, 255, 255, 0.85);
        height: 35px;
        display: flex;
        align-items: center;
        font-weight: 700 !important;
        text-transform: uppercase;
        letter-spacing: .05em;
        transition: all 0.3s ease;
        overflow: hidden;
        padding: 0 10px;
        border-radius: 15px 15px 0 0;
    }

        #tab-box .tab-content .tab-box-content .tab-button span:before,
        #tab-box .tab-content .tab-box-content .tab-button span:after {
            content: '';
            position: absolute;
            bottom: 5px;
            width: 92%;
            height: 3px;
            background: rgba(47, 200, 180, 0.5);
            left: 0;
            right: 0;
            margin: 0 auto;
            transition: opacity 0.3s ease-out, margin 0.3s ease-out;
            border-radius: 10px;
        }
        /*#tab-box .tab-content .tab-box-content .tab-button:hover::before {
                background: #389F99;
            }*/

        #tab-box .tab-content .tab-box-content .tab-button span:after {
            background: var(--color-green-dark);
            transition: opacity 0.2s ease-out, margin 0.2s ease-out;
            transition: transform 0.2s ease-out;
            transform: scaleX(0);
            transform-origin: center;
        }

        #tab-box .tab-content .tab-box-content .tab-button span:hover::after {
            transition: opacity 0.2s ease-out, margin 0.2s ease-out;
            transition: transform 0.2s ease-out;
            transform: scaleX(1);
            transform-origin: center;
        }
    /*#tab-box .tab-content .tab-box-content .tab-button span::after {
            content: "";
            position: absolute;
            top: 0;
            left: 0;
            width: 30%;
            height: 100%;
            background: #ffffff;
            background: linear-gradient(52deg,rgba(255, 255, 255, 0) 15%, rgba(47, 200, 180, 0.1) 50%, rgba(255, 255, 255, 0) 85%);*/
    /*transform: rotate(30deg);*/
    /*transition: none;
            animation: sheen 7s infinite;
        }

@keyframes sheen {
    0% {
        left: 0%;
        opacity: 0;
    }

    25% {
        opacity: 0;
    }

    50% {
        opacity: 1;
    }

    75% {
        opacity: 0;
    }

    100% {
        left: 100%;
        opacity: 0;
    }
}*/
    #tab-box .tab-content .tab-box-content .tab-button svg.st0 {
        fill: rgba(255, 255, 255, 0.85);
        height: 20px;
    }

    #tab-box .tab-content .tab-box-content .tab-button svg:not(:root) {
        overflow: visible;
        fill: rgba(255, 255, 255, 0.85);
        height: 20px;
    }

    #tab-box .tab-content .tab-box-content .tab-button svg.svg-left:not(:root) {
        left: 0;
        bottom: 0;
        position: absolute;
    }

    #tab-box .tab-content .tab-box-content .tab-button svg.svg-right:not(:root) {
        right: 0;
        bottom: 0;
        position: absolute;
    }

    #tab-box .tab-content .tab-box-content .tab-button:hover {
        background: transparent;
    }

        #tab-box .tab-content .tab-box-content .tab-button:hover span {
            background: rgba(255, 255, 255, 0.95);
            color: var(--color-green-dark);
        }

        #tab-box .tab-content .tab-box-content .tab-button:hover svg.st0,
        #tab-box .tab-content .tab-box-content .tab-button:hover svg:not(:root) {
            fill: rgba(255, 255, 255, 0.95);
        }

    #tab-box .tab-content .tab-box-content .tab-button i {
        font-size: 18px;
        transition: opacity 0.3s ease-out, margin 0.3s ease-out;
        opacity: 1;
        line-height: 1;
    }

/*#tab-box .tab-content .tab-box-content .tab-button:before,
    #tab-box .tab-content .tab-box-content .tab-button:after {
        content: '';
        position: absolute;
        bottom: -6px;
        width: 100%;
        height: 6px;
        background: rgba(47, 200, 180, 0.5);
        left: 0;
        right: 0;
        margin: 0 auto;
        transition: opacity 0.3s ease-out, margin 0.3s ease-out;
        border-radius: 10px 10px 0 0;
    }*/
/*#tab-box .tab-content .tab-box-content .tab-button:hover::before {
                background: #389F99;
            }*/

/*#tab-box .tab-content .tab-box-content .tab-button:after {
        background: var(--color-green-dark);
        transition: opacity 0.2s ease-out, margin 0.2s ease-out;
        transition: transform 0.2s ease-out;
        transform: scaleX(0);
        transform-origin: center;
    }

    #tab-box .tab-content .tab-box-content .tab-button:hover::after {
        transition: opacity 0.2s ease-out, margin 0.2s ease-out;
        transition: transform 0.2s ease-out;
        transform: scaleX(1);
        transform-origin: center;
    }*/

#tab-box.anchored .tab-content .tab-box-content {
    gap: 25px;
}

#tab-box.anchored .tab-box-content {
    border-radius: 15px 15px 0 0;
    padding: 20px 5px 20px 5px;
}

    #tab-box.anchored .tab-box-content .tab-button {
        transition: opacity 0.3s ease-out, margin 0.3s ease-out;
    }

        #tab-box.anchored .tab-box-content .tab-button:before {
            transition: transform 0.3s ease-out;
            transform: scaleX(1);
            transform-origin: center;
        }


#tab-box .tab-content .tab-box-content .tab-button:hover:not(.active) {
    color: var(--color-blue);
    border-width: 0;
}

#tab-box .tab-content .tab-box-content .tab-button.active {
    color: var(--color-blue);
    transition: all 0.3s ease;
}

    #tab-box .tab-content .tab-box-content .tab-button.active span {
        background: rgba(255, 255, 255, 1);
        color: var(--color-green-dark);
    }

    #tab-box .tab-content .tab-box-content .tab-button.active svg.st0,
    #tab-box .tab-content .tab-box-content .tab-button.active svg:not(:root) {
        fill: rgba(255, 255, 255, 1);
    }


    #tab-box .tab-content .tab-box-content .tab-button.active:before {
        background: var(--color-green-dark);
    }

    #tab-box .tab-content .tab-box-content .tab-button.active:after {
        display: none;
    }
/* ==== /New Button ==== */

#tab-box .tab-content .tab-box-content .tabs-content {
    padding: 0;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 0;
}

#tab-box.anchored .tab-content .tab-box-content .tabs-content {
    gap: 0;
}


#tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container {
    padding: 0 0 25px 0;
    width: 97%;
}

#tab-box.anchored .tab-content .tab-box-content .tabs-content .chat-messages-container {
    padding: 0 0 0 0;
}

#tab-box .tab-content .tab-box-content .tab-pane {
    display: none;
    animation: fadeIn 0.4s;
}

    #tab-box .tab-content .tab-box-content .tab-pane.active {
        display: block;
    }
/* Estilos pergunta e resposta */

#tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages {
    display: flex;
    flex-direction: column;
    width: 100%;
    gap: 20px;
    padding: 0 5px 0 0;
    max-height: 210px;
    overflow: auto;
    scrollbar-color: #2FC8B4 #f5f5f5;
    scrollbar-width: thin;
}

#tab-box.anchored .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages {
    padding: 0 5px 25px 0;
}

#tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

#tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages::-webkit-scrollbar-track {
    background: #f5f5f5;
    border-radius: 10px;
}

#tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages::-webkit-scrollbar-thumb {
    background-color: var(--color-green);
    border-radius: 10px;
    border: 2px solid #f5f5f5;
}

#tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.user {
    display: flex;
    justify-content: flex-end;
}

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.user:first-child {
        padding-top: 0;
    }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.user .message-bubble {
        position: relative;
        display: flex;
        padding: 8px 10px;
        justify-content: flex-end;
        align-items: flex-end;
        border-radius: 45px 10px 45px 45px;
        background: var(--color-green);
        color: #FFFFFF;
        font-size: 12px;
        line-height: 1.5em;
        font-weight: 400;
        text-align: right;
        max-width: 100%;
    }

#tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot {
    width: 100%;
    position: relative;
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    flex-direction: row;
    gap: 10px;
    padding-left: 5px;
}

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot.error-message .message-bubble {
        position: relative;
        padding: 12px 16px 12px 40px;
        background: rgba(220, 95, 95, 0.08);
        border-radius: 12px;
        border-left: 3px solid #dc5f5f;
        color: #8b4049;
    }

        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot.error-message .message-bubble::before {
            content: "\f071";
            font-family: "Font Awesome 6 Free";
            font-weight: 900;
            position: absolute;
            left: 8px;
            top: 37%;
            transform: translateY(-50%);
            color: #dc5f5f;
            font-size: 14px;
        }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot:last-child {
        padding-bottom: 0;
    }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-icon {
        width: 24px;
        min-width: 24px;
        height: 21px;
        flex-shrink: 0;
        display: flex;
        justify-content: center;
        align-items: center;
        color: var(--color-green);
        font-size: 1.2em;
        line-height: 21px;
        box-sizing: border-box;
        overflow: hidden;
    }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .hint-text {
        color: #9ca3af;
        font-weight: 400;
        font-size: 14px;
        line-height: 21px;
        height: 21px;
        display: flex;
        align-items: center;
        background: linear-gradient(90deg, #9ca3af 50%, #d1d5db 80%, #9ca3af 100%);
        background-size: 200% 100%;
        background-clip: text;
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        animation: shimmer 2s linear infinite;
    }

@keyframes shimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

#tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-icon i.loading-heart {
    animation: heartbeat 1.2s infinite ease-in-out;
    display: inline-block;
    color: var(--color-green);
    font-size: 1.2em;
}


@keyframes heartbeat {
    0% {
        transform: scale(0.9);
    }

    25% {
        transform: scale(1.1);
    }

    50% {
        transform: scale(0.95);
    }

    75% {
        transform: scale(1.05);
    }

    100% {
        transform: scale(0.9);
    }
}


#tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble {
    font-size: 12px;
    line-height: 1.4em;
    color: var(--color-blue);
    font-weight: 400;
    display: block;
    min-height: 21px;
    flex: 1;
}

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble p {
        margin: 0 0 10px 0;
    }

        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble p:last-child {
            margin-bottom: 0;
        }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble ol,
    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble ul {
        margin: 0 0 10px 0;
        padding-left: 25px;
        display: block;
    }

        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble ol:last-child,
        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble ul:last-child {
            margin-bottom: 0;
        }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble li {
        display: list-item;
        margin-bottom: 5px;
    }

        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble li:last-child {
            margin-bottom: 0;
        }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble a {
        color: var(--color-green);
        text-decoration: underline;
    }

        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble a:hover {
            color: #229b8b;
        }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble strong {
        font-weight: 600;
    }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble em {
        font-style: italic;
    }

/* Teste mudança placeholder ================================== */
/* ======================= Anima input text GPT */
@property --glow-deg {
    syntax: "<angle>";
    inherits: true;
    initial-value: 0deg;
}

.input-with-button {
    position: relative;
    width: 97%;
    height: 40px;
    border-radius: 40px;
    isolation: isolate;
    --surface: #dddddd;
    --border-width: 3px;
    --glow-size: 3px;
    --idle-border: 1;
    --idle-glow: 1;
    --focus-border: 1;
    --focus-glow: 0.5;
    --c1: #22C7B8; /* verde aqua moderno */
    --c2: #1F8CFF; /* azul tech elétrico */
    --c3: #2B2F9E; /* índigo frio profundo */
    --c4: #5EEAD4; /* ciano claro luminoso */
    --c5: #D9F331; /* amarelo */
    animation: glow 5s linear infinite;
}

#chat-input {
    width: 100%;
    height: 100%;
    border-radius: 40px;
    background: var(--surface);
    border: 1px solid #dddddd;
    padding: 2px 100px 4px 15px;
    outline: none;
    position: relative;
    z-index: 2;
}

.input-with-button::before {
    content: "";
    position: absolute;
    inset: -2px;
    border-radius: inherit;
    pointer-events: none;
    z-index: 1;
    border: var(--border-width) solid transparent;
    background: linear-gradient(var(--surface), var(--surface)) padding-box, conic-gradient( from var(--glow-deg), var(--c1), var(--c2), var(--c3), var(--c4), var(--c5), var(--c1) ) border-box;
    opacity: var(--idle-border);
}

.input-with-button::after {
    content: "";
    position: absolute;
    inset: -3px;
    border-radius: inherit;
    pointer-events: none;
    z-index: 0;
    background: conic-gradient( from var(--glow-deg), var(--c1), var(--c2), var(--c3), var(--c4), var(--c5), var(--c1) );
    filter: blur(var(--glow-size));
    opacity: 1;
}
/* quando clicas/escreves: fica mais discreto */
.input-with-button:focus-within::before {
    opacity: var(--focus-border);
}

.input-with-button:focus-within::after {
    opacity: var(--focus-glow);
}
/* roda só o ângulo do gradiente */
@keyframes glow {
    to {
        --glow-deg: 360deg;
    }
}
/* acessibilidade */
@media (prefers-reduced-motion: reduce) {
    .input-with-button {
        animation: none;
    }
}
/* /Anima input text GPT ======================= */
/*.tabs-content input[type="text"].animate-attention {
    animation: pulse-shadow 1.5s infinite ease-in-out;
}

    @keyframes pulse-shadow {
    0% {
        box-shadow: 0 0 0 0 var(--color-green-40);
    }

    50% {
        box-shadow: 0 0 0 3px var(--color-green-80);
    }

    100% {
        box-shadow: 0 0 0 0 var(--color-green-40);
    }
}

*/

.tabs-content input[type="text"] {
    width: 100%;
    height: 55px;
    padding: 10px 40px 12px 15px;
    border: 1px solid #dddddd;
    border-radius: 40px;
    font-size: 14px;
    margin-top: 0;
    background: #dddddd;
    color: var(--color-blue);
    outline: none;
    transition: box-shadow 0.3s ease-in-out, border-color 0.3s ease-in-out;
    box-shadow: none;
}
    /*    .tabs-content input[type="text"]:focus {
        box-shadow: 0 0 0 1px var(--color-green-70);
        border-color: var(--color-green);
        animation: none;
    }

    .tabs-content input[type="text"].glowing:focus {
        outline: none;
        border-color: var(--color-green);
        box-shadow: 0 0 10px 3px var(--color-green-70);
        animation: none;
    }*/

    .tabs-content input[type="text"]::placeholder {
        color: var(--color-blue);
        opacity: 0.7;
    }

    .tabs-content input[type="text"]::-webkit-input-placeholder {
        color: var(--color-blue);
    }

    .tabs-content input[type="text"]::-moz-placeholder {
        color: var(--color-blue);
        opacity: 0.7;
    }

    .tabs-content input[type="text"]:-ms-input-placeholder {
        color: var(--color-blue);
    }

.search-button {
    position: absolute;
    right: 5px;
    top: 5px;
    height: 30px;
    width: auto;
    padding: 0 12px;
    background: var(--color-green);
    color: #ffffff;
    border: 0px solid var(--color-green-dark);
    border-radius: 25px;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    /*transition: background-color 0.2s, opacity 0.2s;*/
    transition: all 0.3s ease;
    z-index: 3;
}

    .search-button i {
        font-size: 12px;
        top: -1px;
        position: relative;
        transition: all 0.3s ease;
    }

    .search-button:hover {
        background: var(--color-green-dark);
        border: 0px solid var(--color-green-dark);
        color: #ffffff;
    }

        .search-button:hover i {
            top: -4px;
        }

    .search-button:disabled {
        opacity: 0.5;
        cursor: not-allowed;
        background: var(--color-green);
    }

        .search-button:disabled:hover {
            background: var(--color-green);
        }

    .search-button .default-icon {
        display: block;
    }

    .search-button.loading .default-icon {
        display: block;
    }

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}


.institution-cards-container {
    width: 100%;
    margin-bottom: 0;
}

.institution-cards-scroll {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 10px 3px;
    scroll-behavior: smooth;
    scrollbar-color: #2FC8B4 #f5f5f5;
    scrollbar-width: thin;
}

    .institution-cards-scroll::-webkit-scrollbar {
        width: 8px;
        height: 8px;
    }

    .institution-cards-scroll::-webkit-scrollbar-track {
        background: #f5f5f5;
        border-radius: 10px;
    }

    .institution-cards-scroll::-webkit-scrollbar-thumb {
        background-color: var(--color-green);
        border-radius: 10px;
        border: 2px solid #f5f5f5;
    }

.institution-card {
    cursor: pointer;
    width: 215px;
    min-width: 215px;
    max-width: 215px;
    display: flex;
    padding: 5px 7px 7px 7px;
    flex-direction: column;
    justify-content: space-between;
    align-items: flex-start;
    border-radius: 15px;
    border: 1px solid var(--color-green-60);
    border-width: 1px 1px 3px 1px;
    background: var(--color-green-20);
    -webkit-transition: all 0.2s ease-in-out;
    -o-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
    -webkit-box-shadow: inset 0px -3px 0px 0px rgba(130,222,210,0.4);
    box-shadow: inset 0px -3px 0px 0px rgba(130,222,210,0.4);
}

    .institution-card:hover {
        border: 1px solid var(--color-green-80);
        border-width: 1px 1px 3px 1px;
        background: var(--color-green-30);
        -webkit-box-shadow: inset 0px -5px 0px 0px rgba(130,222,210,0.8);
        box-shadow: inset 0px -5px 0px 0px rgba(130,222,210,0.8);
    }

    .institution-card.selected {
        background: var(--color-green-20);
        outline: 2px solid var(--color-green);
        outline-offset: -1px;
        box-shadow: 0 2px 8px rgba(47, 200, 180, 0.3);
    }



    .institution-card .card-header {
        height: 32px;
        margin-bottom: 7px;
    }

        .institution-card .card-header h3.card-title {
            color: var(--color-blue);
            font-size: 13px;
            line-height: 16px !important;
            font-style: normal;
            font-weight: 600;
            line-height: normal;
            margin: 0;
            overflow: hidden;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            -webkit-box-orient: vertical;
            text-overflow: ellipsis;
        }

    .institution-card .card-location {
        color: var(--color-blue);
        font-size: 12px;
        font-style: normal;
        font-weight: 400;
        line-height: normal;
        margin-bottom: 0;
        display: none;
    }

    .institution-card .card-footer {
        width: 100%;
        display: flex;
        flex-direction: row;
        justify-content: space-between;
        align-items: center;
    }

        .institution-card .card-footer .card-icons {
            display: flex;
            gap: 10px;
            margin: 0 0;
            display: none;
        }

            .institution-card .card-footer .card-icons i {
                font-size: 16px;
                color: var(--color-green);
            }

        .institution-card .card-footer .card-contact-btn {
            display: flex;
            padding: 1px 7px;
            align-items: center;
            gap: 3px;
            border-radius: 20px;
            border: 1px solid #FFFFFF;
            background: var(--color-green-60);
            box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.25);
            color: var(--color-blue);
            font-size: 12px;
            height: 26px;
            font-weight: 500;
        }

            .institution-card .card-footer .card-contact-btn:hover {
                background: var(--color-green-90);
                -webkit-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.6);
                -moz-box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.6);
                box-shadow: 0px 2px 5px 0px rgba(0,0,0,0.6);
            }

            .institution-card .card-footer .card-contact-btn i {
                font-size: 12px;
                color: var(--color-blue);
            }

.url-card {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 280px;
    border-radius: 8px;
    padding: 15px;
    text-decoration: none;
    background: #f5f5f5;
    border: 1px solid #ddd;
    min-height: 100px;
}

.url-card-content {
    text-align: center;
}

.url-card-label {
    display: block;
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 5px;
}

.chat-autocomplete-dropdown-container {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    margin-top: 5px;
    z-index: 10000;
}

    .chat-autocomplete-dropdown-container .chat-autocomplete-box {
        background: rgba(255, 255, 255, 0.4);
        padding: 5px;
        border-radius: 25px;
    }

.chat-autocomplete-dropdown {
    width: 100%;
    max-height: 250px;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    overflow-y: auto;
    scrollbar-color: #2fc8b4 rgba(255, 255, 255, 0);
    scrollbar-width: thin;
    list-style: none;
    margin: 0;
    padding: 8px;
    border-radius: 20px;
    background: rgba(255, 255, 255, 0.95);
    -webkit-box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, 0.1);
    box-shadow: 0px 0px 5px 1px rgba(0, 0, 0, 0.1);
    border: 5px solid rgba(255, 255, 255, 0.5);
}

    .chat-autocomplete-dropdown .dropdown-header {
        color: var(--color-text);
        font-size: 13px;
        font-weight: 600;
        padding: 8px 20px 4px;
        list-style: none;
    }

        .chat-autocomplete-dropdown .dropdown-header:not(:first-child) {
            margin-top: 12px;
        }

    .chat-autocomplete-dropdown li {
        list-style: none;
        width: 100%;
    }

        .chat-autocomplete-dropdown li a {
            display: block;
            padding: 5px 20px;
            color: var(--color-blue);
            font-size: 16px;
            text-decoration: none;
            cursor: pointer;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            transition: background-color 0.2s ease;
            width: 100%;
            position: relative;
            border-radius: 10px;
        }

            .chat-autocomplete-dropdown li a:hover {
                background-color: var(--color-green-20);
            }

            .chat-autocomplete-dropdown li a strong {
                color: var(--color-green);
                font-weight: 600;
            }
/* ====================
    HANDLE - Recolhe - Expande 
================== */

.drag-bar {
    height: 22px;
    width: 45px;
    cursor: grab;
    display: flex;
    justify-content: center;
    align-items: center;
    position: absolute;
    top: -22px;
    left: 15px;
    margin: 0 auto;
    border-radius: 15px 15px 0 0;
    transition: all 0.2s ease-in-out;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    background: rgba(255, 255, 255, 0.6);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border: 1px solid rgba(255, 255, 255, 0.5);
    border-width: 1px 1px 0 1px;
    box-shadow: 0 18px 50px rgba(0, 0, 0, 0.20), inset 0 1px 0 rgba(255, 255, 255, 0.20);
}

#tab-box.anchored .drag-bar {
    display: flex;
    background: rgba(255, 255, 255, 0.85);
    transition: all 0.2s ease-in-out;
}

    #tab-box .drag-bar:hover,
    #tab-box.anchored .drag-bar:hover {
        background: rgba(255, 255, 255, 0.95);
    }

.drag-bar span {
    position: absolute;
    width: 11px;
    height: 4px;
    background: var(--color-green);
    transition: transform 0.15s ease;
    transform-origin: center;
    border-radius: 10px;
}

.drag-bar:hover span {
    background: var(--color-green-dark);
}
/* Estado normal */
.drag-bar span:first-child {
    transform: translateX(-3px) rotate(0deg);
}

.drag-bar span:last-child {
    transform: translateX(3px) rotate(0deg);
}
/* Estado seta para cima (expandir) */
.drag-bar.animate-up span:first-child {
    transform: translateX(-3px) rotate(-45deg);
}

.drag-bar.animate-up span:last-child {
    transform: translateX(3px) rotate(45deg);
}
/* Estado seta para baixo (recolher) */
.drag-bar.animate-down span:first-child {
    transform: translateX(-3px) rotate(45deg);
}

.drag-bar.animate-down span:last-child {
    transform: translateX(3px) rotate(-45deg);
}
/* Container animado */
.chat-messages-container {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.4s cubic-bezier(0.25, 1.25, 0.5, 1);
}

    .chat-messages-container.expanded {
        max-height: 300px; /* Ajuste conforme necessário */
    }
/* ===================================
    Frase "Escreva aqui para conversar com o assistente MySenior"
==================================== */

#tab-box .help-text {
    display: flex;
    position: absolute;
    top: 10px;
    display: none;
}

    #tab-box .help-text p {
        margin: 3px 0 0 15px;
        font-size: 1em;
        opacity: 1;
        color: var(--color-green-dark);
    }

        #tab-box .help-text p span {
            font-weight: 600;
            font-style: italic;
        }

#tab-box.anchored .help-text {
    display: none;
}
/* ===================================
    Frase dos termos no mapa 
==================================== */

#tab-box .map-terms-small,
#tab-box.anchored .map-terms-small {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 5px;
    position: absolute;
    bottom: 0;
    right: 0;
    left: 0;
    margin: 0 auto;
    font-size: 12px;
    line-height: 1.4em;
    z-index: 1;
    text-align: center;
    color: #a3a3a3;
}

    #tab-box .map-terms-small a,
    #tab-box.anchored .map-terms-small a {
        color: #a3a3a3;
    }

        #tab-box .map-terms-small a:hover,
        #tab-box.anchored .map-terms-small a:hover {
            color: #389F99;
        }
/* ===================================
    Responsive
==================================== */
@media (max-width: 1024px) {

}

@media (max-width: 997px) {

}

@media (max-width: 991px) {

}

@media (max-width: 768px) {
    #navbar_top {
        transition: all .3s ease;
    }

        #navbar_top.input-focused-header {
            background: rgba(255,255,255,.15);
            box-shadow: 0 10px 30px rgba(0,0,0,.12);
            backdrop-filter: blur(10px);
        }

    #tab-box {
        width: 98%;
        max-width: 100%;
        padding: 0;
        border-radius: 25px 25px 0 0;
    }

        #tab-box h1 {
            font-size: 24px;
            line-height: 28px;
            width: 85%;
            text-align: center;
            margin: 6px auto 6px;
            overflow: hidden;
            transition: max-height .3s ease, margin .3s ease, padding .3s ease, opacity .2s ease, transform .3s ease;
            max-height: 50px;
        }

        #tab-box.input-focused h1 {
            max-height: 0;
            height: 0;
            line-height: 0;
            margin: 0;
            padding: 0;
            opacity: 0;
            transform: translateY(0px);
        }

        #tab-box.anchored {
            width: 98%;
            max-width: 98%;
        }

        #tab-box.input-focused {
            position: fixed;
            top: 75px;
            left: 50%;
            transform: translate(-50%, 0);
            padding-top: 0;
        }

        #tab-box .tab-content .tab-box-content .tabs-header {
            left: 25px;
            right: unset;
        }

            #tab-box .tab-content .tab-box-content .tabs-header .btn-map button {
                padding: 2px 8px 2px;
            }
        /* chat-messages */
        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container {
            padding: 0 0 15px 0;
        }

            #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages {
                gap: 20px;
                padding: 0 3px 5px 0;
            }

                #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message .message-bubble {
                    font-size: 14px;
                    line-height: 1.4em;
                }

                #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot {
                    gap: 10px;
                    padding-left: 0;
                }

        #tab-box .map-terms-small a {
            font-size: 0.9em;
            line-height: 1em;
        }

    .drag-bar {
        right: 35px;
        left: unset;
    }

    .message-action-btn {
        padding: 6px 8px;
    }
}

@media (max-width: 680px) {

    #tab-box .tab-content .tab-box-content .tabs-header {
        gap: 0;
    }

    #tab-box .tab-content .tab-box-content .tab-button:before,
    #tab-box .tab-content .tab-box-content .tab-button:after,
    #tab-box .tab-content .tab-box-content .tab-button.active:before {
        width: 100%;
    }

    .tabs-content input[type="text"] {
        width: 100%;
    }

    .search-button {
        padding: 0 10px;
        font-size: 14px;
        gap: 4px;
    }
    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container {
        width: 98%;
    }

    #tab-box .tab-content .tab-box-content .tabs-header {
        top: -30px;
        left: 10px;
    }
    #tab-box .tab-content .tab-box-content .tabs-header .btn-map button {
        font-size: 20px;
        border: 1px solid rgba(255, 255, 255, 0.5);
        height: 45px;
        width: 45px;
    }
}

@media (min-width: 601px) {
    #tab-box .map-terms-small a span.show-text {
        display: none;
        line-height: 1em;
        width: min-content;
    }
}

@media (max-width: 600px) {
    #tab-box .map-terms-small a {
        gap: 3px;
    }

    #tab-box.anchored .input-with-button {
        margin-bottom: 0;
    }

    #tab-box.anchored .map-terms-small {
        bottom: 3px;
        padding-left: 10px;
    }

    #tab-box .map-terms-small a span.hide-text {
        display: none;
    }
}

@media (max-width: 580px) {
    #tab-box .tab-content .tab-box-content {
    }

        #tab-box .tab-content .tab-box-content .tabs-header {
            justify-content: space-between;
            gap: unset;
        }

            #tab-box .tab-content .tab-box-content .tabs-header .tabs-btns {
                gap: 14px;
            }

        #tab-box .tab-content .tab-box-content .tab-button:before,
        #tab-box .tab-content .tab-box-content .tab-button:after,
        #tab-box .tab-content .tab-box-content .tab-button.active:before {
            width: 100%;
            height: 3px;
        }

        #tab-box .tab-content .tab-box-content .tabs-header .btn-map {
            padding: 0;
        }

            #tab-box .tab-content .tab-box-content .tabs-header .btn-map button {
                font-size: 18px;
                padding: 2px 8px 0px;
            }
        /* chat-messages */

        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.user:first-child {
            padding-top: 0;
        }

        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot:last-child {
            padding-bottom: 0;
        }


    #chat-input {
        padding: 2px 50px 2px 5px;
    }

    .search-button {
        height: 30px;
        width: 30px;
    }

        .search-button span {
            display: none;
        }

        .search-button i {
            top: 0;
        }
        .search-button:hover i {
            top: -2px;
        }

    #tab-box .tab-content .tab-box-content .tab-button {
        padding: 8px 0px 0;
        font-size: 13px;
        line-height: 15px;
    }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container {
        padding: 0 0 15px 0;
    }

    #tab-box .help-text p {
        margin: 3px 0 0 10px;
    }

    /* === HANDLE - Recolhe - Expande === */
    .drag-bar {
        width: 45px;
        height: 18px;
        top: -13px;
        /*            right: 0;
            left: 0;*/
        margin: 0 auto;
        border-radius: 15px 15px 0 0;
        background: rgba(255, 255, 255, 0.8);
    }

        .drag-bar:after {
            content: '';
            position: absolute;
            right: -20px;
            width: 20px;
            height: 20px;
            top: 5px;
            background-image: url("/app/assets/img/directoryHouses/handle-right.svg");
            background-size: contain;
            background-repeat: no-repeat;
            fill: rgba(255, 255, 255, 0.6);
        }

        .drag-bar:before {
            content: '';
            position: absolute;
            left: -20px;
            width: 20px;
            height: 20px;
            top: 5px;
            background-image: url("/app/assets/img/directoryHouses/handle-left.svg");
            background-size: contain;
            background-repeat: no-repeat;
            fill: rgba(255, 255, 255, 0.6);
        }

        .drag-bar span {
            width: 10px;
            height: 3px;
        }
            /* Estado normal */
            .drag-bar span:first-child {
                transform: translateX(-3px) rotate(0deg);
            }

            .drag-bar span:last-child {
                transform: translateX(3px) rotate(0deg);
            }
        /* Estado seta para cima (expandir) */
        .drag-bar.animate-up span:first-child {
            transform: translateX(-3px) rotate(-45deg);
        }

        .drag-bar.animate-up span:last-child {
            transform: translateX(3px) rotate(45deg);
        }
        /* Estado seta para baixo (recolher) */
        .drag-bar.animate-down span:first-child {
            transform: translateX(-3px) rotate(45deg);
        }

        .drag-bar.animate-down span:last-child {
            transform: translateX(3px) rotate(-45deg);
        }
}


@media (max-width: 490px) {

    #tab-box .tab-content .tab-box-content .tabs-header .tabs-btns {
        gap: 14px;
        width: 100%;
        justify-content: space-around;
    }

    #tab-box .tab-content .tab-box-content .tabs-header {
        left: 15px;
        right: unset;
    }

    #tab-box .tab-content .tab-box-content .tab-button svg:not(:root),
    #tab-box .tab-content .tab-box-content .tab-button svg.svg-right:not(:root),
    #tab-box .tab-content .tab-box-content .tab-button span {
        height: 34px;
    }

    #tab-box .tab-content .tab-box-content .tab-button svg.svg-right:not(:root) {
        right: 1px;
        position: relative;
    }

    #tab-box .help-text p {
        margin: 0 0 0 8px;
    }
}

@media (max-width: 480px) {

    #tab-box h1 {
        font-size: 16px;
        line-height: 19px;
        width: 95%;
    }

    #tab-box h2 {
        font-size: 16px;
        line-height: 21px;
        margin: 0 0 10px 0;
    }

    #tab-box h3.guide-subtitle {
        font-size: 1.1em;
        line-height: 1.5em;
    }
    /*Bottom - anchored */

    #tab-box .tab-content .tab-box-content .tab-button {
        padding: 10px 0px 0;
        font-size: 12px;
    }

        #tab-box .tab-content .tab-box-content .tab-button:before,
        #tab-box .tab-content .tab-box-content .tab-button:after,
        #tab-box .tab-content .tab-box-content .tab-button.active:before {
            width: 100%;
            height: 3px;
        }

    /* chat-messages */

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages {
        padding: 0px 3px 6px 0;
        max-height: 180px;
    }

        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot {
            gap: 7px;
        }

            #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-icon {
                padding: 1px 0px 0 3px;
            }

            #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.bot .message-bubble,
            #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages .chat-message.user .message-bubble {
                font-size: 12px;
                line-height: 1.3em;
            }

    #tab-box.anchored .input-with-button {
        margin-bottom: 0;
    }

    .tabs-content input[type="text"] {
        height: 40px;
        font-size: 14px;
        padding: 4px 40px 6px 8px;
    }

    .search-button {
        height: 32px;
        width: 32px;
        font-size: 21px;
        right: 3px;
        top: 4px;
    }
}

@media (max-width: 450px) {
    #tab-box.input-focused {
        top: 55px;
    }

    .institution-card .card-header h3.card-title {
        font-size: 12px;
    }

    .institution-card .card-footer .card-contact-btn {
        height: 24px;
    }

    #tab-box .tab-content .tab-box-content .tab-button {
        padding: 8px 0px 0;
        font-size: 11px;
        line-height: 14px;
    }

    #tab-box .tab-content .tab-box-content .tabs-header .tabs-btns {
        gap: 12px;
        align-items: center;
    }

    #tab-box .tab-content .tab-box-content .tabs-header .btn-map button {
        font-size: 18px;
        padding: 2px 4px 0px;
    }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container {
        padding: 0 0 10px 0;
    }
    .input-with-button {
        position: relative;
        width: 97%;
        height: 34px;
    }
    #chat-input {
        padding: 2px 35px 2px 5px;
    }
    .search-button {
        height: 28px;
        width: 28px;
        font-size: 21px;
        right: 3px;
        top: 3px;
    }
    .tabs-content input[type="text"] {
        font-size: 12px;
    }
    #tab-box.anchored .tab-box-content {
        border-radius: 15px 15px 0 0;
        padding: 20px 5px 15px 5px;
    }
}

@media (max-width: 390px) {

    #tab-box .tab-content .tab-box-content .tabs-header .tabs-btns {
        gap: 8px;
        align-items: center;
    }

    #tab-box .tab-content .tab-box-content .tab-button:before,
    #tab-box .tab-content .tab-box-content .tab-button:after,
    #tab-box .tab-content .tab-box-content .tab-button.active:before {
        width: 90%;
    }

    #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container {
        padding: 0 0 12px 0;
    }

        #tab-box .tab-content .tab-box-content .tabs-content .chat-messages-container .chat-messages {
            max-height: 210px;
            padding: 0;
        }

    #tab-box .tab-content .tab-box-content .tabs-header .btn-map button {
        font-size: 16px;
        padding: 1px 3px 0px;
    }

    #tab-box .tab-content .tab-box-content .tabs-content {
        gap: 0;
    }

    /*        .tabs-content input[type="text"] {
            height: 36px;
            font-size: 12px;
            padding: 2px 35px 4px 6px;
        }

        .search-button {
            height: 28px;
            width: 28px;
            font-size: 16px;
            right: 3px;
            top: 4px;
        }*/

    .institution-card .card-footer .card-contact-btn {
        gap: 4px;
        padding: 0px 4px;
        border: 2px solid #ffffff;
        font-size: 10px;
    }

    #tab-box .help-text p {
        font-size: 0.85em;
    }

}

@media (max-width: 320px) {
    #tab-box .tab-content .tab-box-content .tab-button {
        padding: 6px 0px 0;
        font-size: 9px;
        line-height: 14px;
    }

    #tab-box .tab-content .tab-box-content .tabs-header {
        top: -30px;
    }

        #tab-box .tab-content .tab-box-content .tabs-header .tabs-btns {
            height: 30px;
        }

    #tab-box .tab-content .tab-box-content .tab-button svg:not(:root),
    #tab-box .tab-content .tab-box-content .tab-button svg.svg-right:not(:root),
    #tab-box .tab-content .tab-box-content .tab-button span {
        height: 30px;
    }

    #tab-box .tab-content .tab-box-content .tab-button svg.svg-right:not(:root) {
        right: 1px;
        position: relative;
    }
}

/* Message action buttons (inline chat actions) */

.message-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.message-action-btn {
    position: relative;
    overflow: hidden;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    padding: 7px 8px;
    border-radius: 20px;
    border: 1px solid var(--color-green-60);
    border-width: 1px 1px 3px 1px;
    background: var(--color-green-20);
    color: var(--color-blue);
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    text-align: left;
    transition: opacity 0.3s ease, transform 0.3s ease, background 0.2s ease-in-out, border-color 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
    flex: 1 1 auto;
    min-width: 0;
    -webkit-box-shadow: inset 0px -3px 0px 0px rgba(130,222,210,0.4);
    box-shadow: inset 0px -3px 0px 0px rgba(130,222,210,0.4);
}

    .message-action-btn.revealing {
        opacity: 0;
        transform: translateY(6px);
    }

    .message-action-btn:hover {
        border-color: var(--color-green-80);
        background: var(--color-green-30);
        -webkit-box-shadow: inset 0px -5px 0px 0px rgba(130,222,210,0.8);
        box-shadow: inset 0px -5px 0px 0px rgba(130,222,210,0.8);
    }

    .message-action-btn.selected {
        background: var(--color-green-40);
        border-color: var(--color-green);
        box-shadow: 0 2px 8px rgba(47, 200, 180, 0.3);
    }

    .message-action-btn.disabled {
        cursor: default;
        opacity: 0.55;
    }

        .message-action-btn.disabled:not(.selected) {
            background: var(--color-green-10);
            border-color: var(--color-green-40);
        }

        .message-action-btn.disabled:hover {
            background: var(--color-green-10);
            border-color: var(--color-green-40);
        }

    .message-action-btn.selected.disabled {
        opacity: 1;
    }

        .message-action-btn.selected.disabled:hover {
            background: var(--color-green-40);
            border-color: var(--color-green);
        }

@media (max-width: 480px) {
    .message-actions {
        flex-direction: column;
    }

    .message-action-btn {
        flex: none;
        width: 100%;
    }
}
