::-webkit-scrollbar-track {
    background-color: #fff;
    border: none;
}

::-webkit-scrollbar {
    width: 12px;
    max-width: 12px;
    max-height: 10px;
    background-color: #fff;
    border: none;
}

::-webkit-scrollbar-thumb {
    background-color: #c1c1c1;
}

::-webkit-scrollbar-thumb:hover {
    background-color: #9c9c9c;
}

/* Espelho Firefox dos estilos de scroll: o Gecko ignora ::-webkit-scrollbar, então usa as
   propriedades padrão. O @supports isola do Chrome, que a partir do 121 descarta a
   customização -webkit- de quem tem scrollbar-color/scrollbar-width. */
@supports (-moz-appearance: none) {
    :root {
        scrollbar-color: #c1c1c1 #fff;
    }
}

#box_login_content {
    border-radius: 15px;
    border: none;
    box-shadow: rgba(149, 157, 165, 0.3) 0px 8px 24px;

}

#box_login {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 360px;
    border-radius: 15px;
    border: none;
}

.upper {
    text-transform: uppercase;
}

.bold {
    font-weight: bold !important;
}

.blue {
    color: #146fd7;
}

.sb {
    margin-bottom: 20px;
}

.bg-grey .ui-g {
    background: #f5f5f5 !important;
}

.columnData {
    width: 140px;
}

body .ui-paginator {
    border: none;
}

body .ui-toolbar {
    padding: 0 !important;
}

thead#listaFiltrosCrrg_head > tr > th, tbody#listaFiltrosCrrg_data > tr > td {
    border: none !important;
}

.ui-but {
    padding: 10px;
    margin-top: 10px;
}

.vp-diagram-toolbar-body label span {
    height: 45px !important;
}

.ui-datalist-item .ui-datalist-content {
    border: medium none !important;
    text-align: left;
    width: 95%;
}

.ui-datalist-item .ui-datalist-content .ui-datalist-item {
    background: transparent none repeat scroll 0 0 !important;
    border-bottom: 1px solid #d2d2d2;
    display: flex;
    width: 100%;
}

.ui-datalist-item .ui-datalist-content .listLabel {
    font-size: 13px;
    color: #146fd7;
    display: inline-block;
    float: left;
    width: 160px;
    min-width: 160px;
}

.layout-wrapper .topbar-items > li.profile-item a .topbar-item-name {
    font-size: 16px;
    margin-right: 15px;
    padding-top: 3px;
    margin-top: 0;
    text-transform: uppercase;
}

/* effect-shine */
.layout-wrapper .topbar-items > li.profile-item a .topbar-item-name:hover {
    -webkit-mask-image: linear-gradient(-75deg, rgba(0, 0, 0, .8) 30%, #000 50%, rgba(0, 0, 0, .8) 70%);
    -webkit-mask-size: 200%;
    animation: shine 2s infinite;
}

@-webkit-keyframes shine {
    from {
        -webkit-mask-position: 150%;
    }

    to {
        -webkit-mask-position: -50%;
    }
}

.boxSidebar {
    overflow: hidden;
}

.profile-item {
    padding-left: 5px;
}

.layout-wrapper .layout-main, #conteudo, #painelPrincipal {
    height: 100%;
}

#paniel_listagem, #paniel_listagem_content, #paniel_edicao, #paniel_edicao_content, #panelEdicao_content, #panelWizard, #panelWizard_content {
    background: transparent none repeat scroll 0 0 !important;
    border: medium none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#outputStepN table {
    width: 100%;
    margin-bottom: 10px;
}

/*#j_idt37 {
    overflow: hidden;
}*/

.line {
    border-bottom: 1px solid #d2d2d2;
    margin: 9px 0;
    padding-bottom: 0;
}

.sidebar {
    background-color: #ffffff;
    border-left: 1px solid #cccccc;
    float: right;
    height: 100%;
    margin-right: -500px;
    margin-top: 0;
    overflow-y: scroll;
    padding: 0 10px;
    position: fixed;
    right: 0;
    top: 0;
    transition: all 0.5s ease 0s;
    width: 450px;
    z-index: 1;
    margin-top: 40px;
    -webkit-transition: margin-right 0.5s;
    transition: margin-right 0.5s ease-in-out;
    box-shadow: rgb(0 0 0 / 24%) 0px 2px 20px 0px;
}

.sidebar .filter {
    padding-bottom: 100px;
}

/*.sidebar a:hover {
    color: #f1f1f1;
}*/
.sidebar .closebtn {
    color: #000;
    line-height: 90px;
    font-size: 17px;
    margin-left: 260px;
}

.closebtn:hover {
    color: red;
    background-color: #f5f5f5;
}

.closeCss {
    padding: 5px;
    border-radius: 50%;
}

.sidebar .colLabel {
    width: 100%;
    display: block;
}

.sidebar .colValue {
    width: 100%;
    display: block;
}


.openbtn {
    cursor: pointer;
    margin-top: -10px;
}

#navBotom {
    margin: 5px 0px 15px 0px;
}

i.mn {
    transition: transform 200ms ease-in-out;
}

i.mn:hover {
    transform: scale(1.2);
    cursor: pointer;
}

i.mn:after {
    display: block;
    content: "";
    border-bottom: solid 3px #fff;
    transform: scaleX(0);
    transition: transform 200ms ease-in-out;
    padding-bottom: 5px;
}

i.mn:hover:after {
    transform: scaleX(1);
}

a.ptHvr:hover {
    cursor: pointer;
}

.align-top td {
    vertical-align: top;
}

.ui-selectcheckboxmenu-multiple .ui-selectcheckboxmenu-trigger .ui-icon {
    top: 0 !important;
}

.ui-datalist-data {
    padding: 0;
    list-style: none;
    margin-bottom: 10px !important;
}

.itemList {
    padding: 4px;
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
    border-radius: 5px;
}

.itemList:hover {
    transform: scale(1.003);
    transition-timing-function: ease-in-out;
    outline: 1px solid #eef2f6;
    box-shadow: rgba(0, 0, 0, 0.05) 0px 10px 20px, rgba(0, 0, 0, 0.10) 0px 6px 6px;
}

.ui-datalist-item .ui-datalist-content .listExtra {
    word-break: break-word;
    text-align: justify
}

.itemList .status {
    border-radius: 30px;
    display: block;
    float: left;
    height: 22px;
    margin-bottom: 7px;
    margin-right: 5px;
    margin-top: 9px;
    width: 22px;
    margin-right: 10px;
}

.itemList .title {
    margin-top: 8px;
    font-size: 18px;
    display: block;
}

.itemList .resp {
    color: #999 !important;
    display: block;
    font-style: italic;
    margin-left: 2em;
}

.itemList .dataM {
    color: #ff0000;
    font-size: 14px;
    display: block;
}

.itemList .data {
    color: #999;
    display: block;
}

.itemList .view {
    border-radius: 4px;
    color: #337ab7;
    float: right;
    font-size: 14px;
    padding: 10px;
    text-align: center;
    display: inline-block;
}

.itemList .view span {
    font-size: 20px;
}

.itemList .ui-icon {
    font-size: 23px;
    width: 26px;
}

.person h3 {
    border-bottom: 1px solid #d2d2d2;
    color: #146fd7;
    font-size: 16px;
    font-weight: bold;
    margin-bottom: 15px;
    padding-bottom: 5px;
    text-transform: uppercase;
}

body .ui-datalist .ui-paginator {
    border: none !important;
    padding: 0 15px;
}

.ui-widget-content .gridFormLabel, .gridFormLabel {
    color: #999;
    vertical-align: central;
    width: 200px;
}


.ui-widget-content .gridFormValue1 {
    min-width: 200px;
    padding-left: 0;
}

.left {
    float: left;
}

.right {
    float: right;
}

.marginTop {
    margin-top: 20px;
}

body .ui-fieldset .ui-fieldset-legend {
    border: medium none !important;
    margin-left: 0 !important;
    width: 100%;
}

fieldset {
    border: none !important;

}

.buttonsPanel {
    margin: 20px 0 20px 0;
}

.buttonsPanel td {
    display: inline-block !important;
}

.layout-wrapper .layout-footer {
    background: #fff none repeat scroll 0 0;
    position: fixed;
    width: 100%;
    bottom: 0;
}

#painelPrincipal {
    margin-bottom: 60px !important;
}

.person #conteudoPub {
    background: #f2f2f2 none repeat scroll 0 0;
    border-radius: 5px;
    box-shadow: 2px 2px 2px #3333 inset;
    margin: 20px !important;
    max-height: 250px !important;
    padding: 20px !important;
    width: 800px;
    display: block;
    overflow-y: scroll;
}

.person #obsPub {
    background: #f2f2f2 none repeat scroll 0 0;
    border-radius: 5px;
    box-shadow: 2px 2px 2px #3333 inset;
    margin: 20px !important;
    max-height: 250px !important;
    padding: 20px !important;
    width: 800px;
    display: block;
    overflow-y: scroll;
}

.person table, .person .ui-datatable-tablewrapper, #hist, #vars {
    max-width: none !important;
    width: 100% !important;
    margin-bottom: 5px;
}

.person table tr {
    width: 100%;
}

.person table td {
    display: table-cell;
}

#painelPrincipal .ui-panel .ui-panel-titlebar .ui-panel-title {
    font-size: 30px;
}

#painelPrincipal .ui-panel .ui-widget-header .ui-panel-title {
    font-size: 30px;
}


body .ui-fileupload .ui-fileupload-content {
    padding: 0 !important;
}

body .ui-paginator .ui-paginator-first.ui-state-disabled, body .ui-paginator .ui-paginator-prev.ui-state-disabled, body .ui-paginator .ui-paginator-next.ui-state-disabled, body .ui-paginator .ui-paginator-last.ui-state-disabled {
    background-color: #fff !important;
}

#listaTarefas_list .ui-datalist-item:nth-child(2n+1) {
    background: #fff none repeat scroll 0 0;
}

body .ui-paginator .ui-paginator-next, body .ui-paginator .ui-paginator-last, body .ui-paginator .ui-paginator-first, body .ui-paginator .ui-paginator-prev, body .ui-paginator .ui-paginator-prev + .ui-paginator-current {
    border: 0 !important;
    align-content: center !important;
}

#main {
    float: right;
    transition: margin 0.5s ease 0s;
}

#navBotom br {
    display: none;
}

#navBotom .ui-button {
    margin-bottom: 3px;
}

#outputStepZ table {
    width: 100%;
}

span.descricao {
    display: block;
    font-size: 12px;
    margin-bottom: 20px;
    margin-top: -10px;
    text-align: justify;
}

.ask {
    color: #666;
    font-size: 22px !important;
    margin-bottom: 0px;
    margin-top: -20px;
}

.opcao {
    background-image: url("../img/conditional-normal.png");
    background-repeat: no-repeat;
    display: block;
    font-size: 16px !important;
    line-height: 1.3;
    margin-bottom: 20px;
    padding-left: 28px;
}

.opcao:hover {
    background-image: url("../img/conditional-active.png");
    background-repeat: no-repeat;
    display: block;
    font-size: 16px !important;
    line-height: 1.3;
    padding-left: 28px;
}

.opcao:active {
    background-image: url("../img/conditional-active.png");
    background-repeat: no-repeat;
    display: block;
    font-size: 16px !important;
    line-height: 1.3;
    padding-left: 28px;
}


.btCinza {
    background: #666666 !important;
}

.CodeMirror {
    border: 1px solid #eee;
    height: auto;
}

#outputStepA table {
    width: 100%;
}

.divIndexIa, .divIndexIa2 {
    min-height: 91vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 7px;
    background-color: #fff;
}

.divIndexIaAnalisarDocs {
    min-height: 91vh;
    width: 100%;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    border-radius: 7px;
    background-color: #fff;
}

.divIndexIaHome {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: 50px;
    border-radius: 7px;
    background-color: #fff;
}

.cardsAbaixoCriar {
    background: transparent;
    padding: 10px;
    border-radius: 8px;
    text-align: center;
    width: 50rem;
    max-height: 0;
    opacity: 0;
    overflow: hidden;
    transition: max-height 0.5s ease, opacity 0.5s ease;
    margin-top: 1rem;
    pointer-events: none;
}

.cardsAbaixoCriar.show {
    max-height: fit-content;
    overflow: visible;
    opacity: 1;
    pointer-events: auto;
}

.divIndexIaAnalisarDocs{
    padding: 20px 10px 10px 10px!important;
}

.divIndexIa, .divIndexIa2 {
    padding: 70px 10px 10px 10px!important;
}

/* On smaller screens, where height is less than 450px, change the style of the sidenav (less padding and a smaller font size) */
@media screen and (max-height: 450px) {

    .sidebar {
        padding-top: 15px;
    }

    .sidebar a {
        font-size: 18px;
    }


}


/* responsive */
@media (max-width: 450px) {

    .ui-selectcheckboxmenu-panel .ui-selectcheckboxmenu-header .ui-selectcheckboxmenu-filter-container .ui-inputfield,
    .ui-selectcheckboxmenu-panel .ui-selectcheckboxmenu-header .ui-selectcheckboxmenu-filter-container .ui-icon,
    .ui-selectonemenu-panel .ui-selectonemenu-filter-container .ui-selectonemenu-filter,
    .ui-selectonemenu-panel .ui-selectonemenu-filter-container .ui-icon {
        display: none;
    }

    .sidebar .ui-selectcheckboxmenu-multiple {
        padding: 2px !important;
    }

    .ui-dialog {
        min-width: 95vw !important;
        max-width: 99vw !important;
    }

    #navBotom {
        margin-bottom: 15px;
        display: grid;
        width: 100%;
    }

    #navBotom .ui-button {
        display: block;
        width: 100%;
    }

    #menu a {
        font-size: 10px;
    }

    #painelPrincipal .ui-panel .ui-panel-titlebar .ui-panel-title {
        font-size: 18px;
    }

    .sidebar {
        width: 370px;
        max-width: 99vw;
    }

    .fixedButtons {
        width: 360px !important;
    }

    .sidebar .colLabel {
        display: block;
        font-size: 12px;
        width: 100px;
    }

    .sidebar .closebtn {
        margin-left: 170px;
    }

    body .ui-datalist {
        min-width: 300px !important;
    }

    .ui-datalist-item .ui-datalist-content {
        border: medium none !important;
        text-align: left;
        width: 100%;
    }

    /* .itemList .data, .itemList .dataM {
     }
    */
    .x-hidden {
        display: none;
    }

    .btnGpt {
        display: none;
    }

    .ui-widget-content .gridFormLabel, .gridFormLabel, .person table td {
        display: block;
        width: 100%;
    }


    .ui-widget-content .gridFormValue1, .ui-widget-content .gridFormValue {
        margin-bottom: 10px;
        display: block;

    }

    .ui-selectonemenu {
        min-width: 80vw !important;
        max-width: 81vw;
    }

    .ui-selectonemenu-label {
        max-width: 70vw;
    }

    .person #conteudoPub {
        width: 310px !important;
    }

    #descricaoPrazo {
        display: inline-block;
        width: 90%;
    }

    #docsLancamentoPrazo {
        display: block;
        width: 90%;
    }

    #nomeLancArq {
        display: block;
        width: 90%;
    }

    #buttonsPanel {
        margin: 20px 0;
    }

    body .ui-datalist {
        min-width: 0 !important;
    }

    #buttonsPanel td button {
        width: 100%;
        text-align: center;
    }

    #hist table td, #vars table td {
        display: table-cell;
    }

    body .ui-datatable .ui-datatable-data > tr td {
        text-align: left !important;
    }

    .ui-datatable-reflow .ui-datatable-data td[role="gridcell"] .ui-column-title {
        display: none;
        min-width: 0 !important;
        padding: 0 !important;
    }

    body .ui-inputfield {
        min-width: 80vw !important;
        max-width: 81vw !important;
    }

    .ui-inputfield {
        min-width: 80vw !important;
        max-width: 81vw !important;
    }

    .ui-selectcheckboxmenu {
        min-width: 80vw !important;
        max-width: 81vw !important;
    }

    #titlebarTarefasResponsivo {
        display: grid;
        justify-content: center;
    }

    #listaTarefas .ui-datalist-item {
        margin-bottom: 5px;
        display: grid;
    }

    #listaTarefas .ui-datalist-item .listLabel {
        width: 100%;
    }

    .selectColumnsData {
        display: grid
    }

    .datainput1 {
        display: grid;
    }

    .datainput2 {
        display: grid;
    }

    .dataTextoMeio {
        display: block;
    }

    .fixedButtons {
        max-width: 95vw;
    }

    .divIndexIa, .divIndexIa2, .divIndexIaAnalisarDocs {
        padding: 70px !important;
        height: auto !important;
    }

    .cardsAbaixoCriar {
        margin-top: 0;
        width: 20rem;
    }

    .promptWrapperCriarComIA {
        width: 20rem !important;
    }

    .stepTitleIa {
        top: 38px !important;
        font-size: 0.85rem !important;
    }
}

.ui-datalist-content .ui-widget-content {
    margin-bottom: 10px;
}

.panel-header .ui-panel-title {
    color: #146fd7;
    font-size: 18px !important;
}

body .ui-widget-content {
    border: none;
}

.ui-selectmanycheckbox label {
    display: inline;
}

.ui-datalist-item {
    margin-bottom: 10px;
}

#listaTarefas .ui-datalist-item {
    margin-bottom: 3px;
}

.layout-wrapper .topbar .topbar-right #menu-button {
    width: 30px !important;
    height: 30px !important;
    left: 15px !important;
    background-color: transparent !important;
}

.layout-wrapper.menu-layout-slim .layout-menu-container .layout-menu > li > ul, .layout-wrapper .layout-menu .layout-menu-tooltip {
    left: 50px !important;
}

.layout-wrapper.menu-layout-slim .layout-menu-container .layout-menu > li > ul {
    min-width: 230px !important;
}

#logo {
    margin-left: 45px !important;
    margin-top: 2px !important;
}

.fa-angle-left:before {
    content: "\f0c9" !important;
}

.layout-wrapper .topbar .topbar-right #menu-button i {
    margin: 9px;
    font-size: 16px !important;
}

.calcBtn {
    background-color: #595959 !important;
}

.layout-wrapper .topbar .topbar-left {
    -moz-box-shadow: 0 0 10px 0 rgba(0, 0, 0, 0.25) !important;
}

.layout-wrapper .topbar .topbar-left {
    webkit-box-shadow: none !important;
    moz-box-shadow: none !important;
    box-shadow: none !important;
}

.ui-datalist-content {
    background-color: transparent !important;
}

body .ui-inplace .ui-inplace-display {
    padding-left: 0 !important;
}

.ui-selectcheckboxmenu-multiple-container:empty:after {
    padding: 6px 12px;
}

.ui-fileupload-buttonbar {
    padding: 0 !important;
    width: 195px;
}

.li-btn-pesquisa > button:focus {
    outline: -webkit-focus-ring-color auto 1px;
}

.ui-datalist .ui-datalist-empty-message {
    padding: 0 !important;
}

.layout-menu-container {
    top: 45px !important;
}

.layout-wrapper .topbar .topbar-right {
    padding: 5px 5px 0 0 !important;
    height: 45px !important;
}

.layout-wrapper .topbar .topbar-left {
    padding: 2px 0 2px 5px !important;
    height: 45px !important;
}

.topbar-left {
    width: auto;
}

.topbar-icon {
    margin: 3px 2px 0 0;
}

#conteudo {
    margin-top: -5px;
}

.layout-wrapper .topbar {
    height: 45px !important;
}

.buttonsPanelRight {
    text-align: right;
}

.div-abrir-pesquisa {
    float: right;
    display: flex;
    margin: 4px;
    background-color: #ececec !important;
    color: #337ab7 !important;
}

.layout-wrapper .layout-main {
    padding: 53px 5px 5px !important;
}

.fixedButtons {
    position: fixed;
    width: 420px;
    bottom: 0;
    background-color: white;
    padding-top: 10px;
    padding-bottom: 10px;
}

.ui-fileupload-files {
    margin: 0px 0 !important;
}

div .noborder > div > table > thead > tr > th, div .noborder > div > table > tbody > tr > td {
    border: none !important;
}

.panel-tarefas {
    background-color: #fff !important;
    border: none !important;
    box-shadow: none !important;
}

.layout-wrapper .layout-menu-container > .nano > .nano-content > ul:last-child {
    margin-top: 6px !important;
}

.perfil-user-class {
    margin-left: 10px;
}

body .ui-paginator .ui-paginator-pages .ui-paginator-page {
    border: none !important;
}

body .ui-paginator .ui-paginator-pages .ui-paginator-page:hover {
    border-radius: 50%;
}

body .ui-paginator .ui-paginator-pages .ui-paginator-page.ui-state-active {
    background-color: #ffffff;
    color: #337ab7;
    outline: 1px solid #ddd;
    outline-offset: -3px;
    border-radius: 50%;
    font-weight: bold;
}

.ui-paginator-first:hover {
    border-radius: 50% !important;
}

.ui-paginator-prev:hover {
    border-radius: 50% !important;
}

.ui-paginator-next:hover {
    border-radius: 50% !important;
}

.ui-paginator-last:hover {
    border-radius: 50% !important;
}

body .ui-widget-header {
    font-weight: normal;
}


.ui-paginator .ui-paginator-current, .ui-paginator .ui-paginator-rpp-options {
    color: #9c9c9c;

}

.ui-paginator-rpp-options {
    border-radius: 15px !important;
}

.var-class > div > div > ul.ui-datalist-data li:nth-child(even) {
    background-color: transparent !important;
}

.var-class > div > div > ul.ui-datalist-data li:nth-child(odd) {
    background-color: transparent !important;
}

.ui-datalist-item .ui-datalist-content .ui-datalist-item {
    border-bottom: none;
}

.div-abrir-pesquisa {
    margin-top: -2px;
    border-left: 1px solid #fff;
    margin-left: 15px;
}

#listaFiltrosPesquisa {
    display: block;
    width: 100%;
    margin-top: -20px;
}

body #listaFiltrosPesquisa.ui-carousel .ui-carousel-header {
    border: none;
    background-color: transparent;
    padding: 0px;

}

.body #listaFiltrosPesquisa .ui-carousel .ui-carousel-header .ui-carousel-header-title {
    display: none;

}

body #listaFiltrosPesquisa.ui-carousel .ui-carousel-header select {
    color: #999;
    border-color: #999;
}

.subTitle {
    color: #999999;
}

.li-pesquisa {
    margin-top: -2px;
    background-color: #c1c1c129;
    color: white;
    text-decoration: none;
    border-radius: 60px;
    height: 30px;
    display: inline-flex !important;
    margin-right: 14px;
    align-items: center;
    overflow: hidden;
    width: auto;
    max-width: 30px;
    -webkit-transition: max-width 0.5s;
    transition: max-width 0.3s ease-in-out;
}

.opcaoDocumento {
    background-color: #c1c1c129;
    color: white;
    text-decoration: none;
    border-radius: 60px;
    height: 32px;
    padding: 3px;
    display: inline-flex !important;
    align-items: center;
    -webkit-transition: max-width 0.5s;
    transition: max-width 0.3s ease-in-out;
}

.li-pesquisa:hover, .opcaoDocumento:hover {
    max-width: 300px;
    background-color: #c1c1c166;
    color: #fff;
}

.li-pesquisa:focus {
    max-width: 300px;
    background-color: #c1c1c166;
    font-weight: bold;
}

.icon-pesquisa {
    font-size: 16px;
    margin-right: 5px;
    padding: 0px 8px;
    display: flex;
    align-items: center;
}

.iconsDocumento {
    font-size: 20px;
    margin-right: 5px;
    padding: 0px 8px;
    display: flex;
    align-items: center;
}

.text-pesquisa, .text-opcaoDocumento {
    white-space: nowrap;
    padding-right: 15px;
}

.text-pesquisa:active {
    color: transparent;
}

.iconeAvatar {
    background-color: #c1c1c129;
    color: #fff;
}


.iconeAvatar:hover {
    background-color: #c1c1c166;
}

.li-btn-agenda-tarefas > i, .li-btn-documento > i, .pi.pi-cog.mn {
    font-size: 20px;
    padding: 4px 14px 0px 14px;
    color: white;
}

.topbar-icons-resp > i {
    font-size: 15px;
    padding: 5px 10px 0px 10px;
    color: white;
}

.pi.pi-cog.mn {
    padding: 0px
}

#liConfig {
    padding: 4px !important;
    border-left: none !important;
}

#liConfig a {
    padding-right: 5px;
}

#topbarResponsivo {
    display: none;
    float: right;
    width: 140px;
    margin: 5px;
}

#topbarResponsivo a {
    cursor: pointer;
}

#menuLayoutId_0 {
    background-color: #146fd7
}

#menuLayoutId_1 {
    background-color: #0A616F
}

#menuLayoutId_2 {
    background-color: #470EA2
}

#menuLayoutId_3 {
    background-color: #391F68
}

#menuLayoutId_4 {
    background-color: #136E52
}

#menuLayoutId_5 {
    background-color: #771340
}

#menuLayoutId_6 {
    background-color: #407916
}

#menuLayoutId_7 {
    background-color: #1F8E38
}

#menuLayoutId_8 {
    background-color: #7A5E06
}

#menuLayoutId_9 {
    background-color: #593E22
}

#menuLayoutId_10 {
    background-color: #904100
}

#menuLayoutId_11 {
    background-color: #341A64
}

#menuLayoutId_12 {
    background-color: #14569D
}

#menuLayoutId_13 {
    background-color: #2E8942
}

#menuLayoutId_14 {
    background-color: #343A40
}

#menuLayoutId_15 {
    background-image: linear-gradient(to right, #a83279, #f38e00)
}

#menuLayoutId_16 {
    background-image: linear-gradient(to right, #5f2c82, #0DA9A4)
}

#menuLayoutId_17 {
    background-image: linear-gradient(to right, #521c52, #c6426e)
}

#menuLayoutId_18 {
    background-image: linear-gradient(to right, #2c0747, #6441a5)
}

#menuLayoutId_19 {
    background-image: linear-gradient(to right, #2b32b2, #1488cc)
}

#menuLayoutId_20 {
    background-image: linear-gradient(to right, #ee8a21, #f2c94c)
}

#menuLayoutId_21 {
    background-image: linear-gradient(to right, #4DB865, #80D293)
}

#menuLayoutId_22 {
    background-image: linear-gradient(to right, #1e3c72, #2a5298)
}

#menuLayoutId_23 {
    background-image: linear-gradient(to right, #cb2d3e, #ef473a)
}

#menuLayoutId_24 {
    background-image: linear-gradient(to right, #834d9b, #d04ed6)
}

#menuLayoutId_items li {
    color: #fff;
}

#menuLayoutId_items li.ui-selectonemenu-item.ui-selectonemenu-list-item.ui-corner-all.ui-state-highlight {
    border: 2px solid #fff;
    font-weight: bold;
}

.fc-event-title {
    color: #292B2C !important;
    font-weight: normal !important;
    font-size: 15px;
    line-height: 15px;
}

.fc-event-time {
    color: #292B2C !important;
}

.fc-daygrid-day-events {
    cursor: pointer;
}

.fc .fc-button-primary {
    background-color: #e3e3e3;
    border: none;
}

.fc .fc-button-primary:click {
    background-color: #e3e3e3;
    border: none;
}

.fc .fc-button-primary {
    background-color: white !important;
    border: none;
}

.fc .fc-button-primary:hover {
    color: #292B2C !important;
    background-color: #e3e3e3 !important;
    border: none;
}

.fc-event {
    background-color: white !important;
    color: #e3e3e3 !important;
    border: none;
}

.fc .fc-button-group {
    width: 150px !important;
}

.fc .fc-next-button {
    font-size: 22px;
    font-family: Consolas;
}

.fc .fc-prev-button {
    font-size: 22px;
    font-family: Consolas;
}

.fc .fc-button {
    padding: 0 0 0 0;
    color: #292B2C;
}

.fc .fc-today-button {
    padding: 0.4em 0.65em;
    color: #292B2C !important;
}

.fc .fc-button-primary:focus {
    box-shadow: 0 0 0 0 !important;
}

.fc .fc-dayGridMonth-button {
    padding: 0.4em 0.65em;
    color: #292B2C !important;
}

.fc .fc-timeGridWeek-button {
    padding: 0.4em 0.65em;
    color: #292B2C !important;
}

.fc .fc-timeGridDay-button {
    padding: 0.4em 0.65em;
    color: #292B2C !important;
}

.fc .fc-button-active {
    background-color: #337ab7 !important;
    color: white !important;
}

.fc-v-event .fc-event-main-frame {
    font-size: 15px;
    background-color: #337ab7;
    color: white;
    padding: 2px 2px 2px 2px !important;
    border-radius: 5px;
}

#schedule .fc-v-event .fc-event-main-frame:hover {
    background: linear-gradient(#3e81ba, #146fd7) !important;
}

.fc-timegrid-event .fc-event-time {
    color: white !important;
}

#schedule .fc-v-event .fc-event-title {
    color: white !important;
}

.fc-timegrid-event-condensed .fc-event-title {
    color: white !important;
}

.fc-timegrid-event .fc-event-main {
    cursor: pointer;
}

#splitVisualizacao_button, #splitVisualizacao_menuButton {
    color: #292B2C !important;
    background-color: white !important;
    border-radius: 5px !important;
}

body .ui-panel .ui-panel-titlebar {
    border: none;
    border-bottom: 1px solid #e9e9e9;
    box-shadow: rgb(0 0 0 / 45%) 0px 10px 15px -20px;
}

.pesquisaH2 {
    color: black;
    font-size: 22px !important;
    border: none !important;
    box-shadow: none !important;
}

#mySidebar div table tbody tr td div ul li {
    float: none;
}

#mySidebar .ui-selectcheckboxmenu-token {
    white-space: normal;
}

#schedule {
    border-radius: 5px;
}

#schedule .fc-header-toolbar {

}

#schedule ::-webkit-scrollbar {
    display: none;
}

#schedule .fc-button-group {
    margin-right: 0.5vw;
}

#schedule .fc-scrollgrid-section-header > td {
    border: none;
}

#schedule .fc-scrollgrid-section-body > td {
    border: none;
}

#schedule .fc-col-header-cell {
    border: none;
    padding: 1em;
    border-radius: 5px;
}

#schedule .fc-timegrid-axis {
    border: none;
}

#schedule .fc-timegrid-slot {
    height: 2em;
}

#schedule .fc-scrollgrid-liquid {
    border: none;
}

#schedule button.fc-button.fc-button-primary {
    background-color: #f5f5f5 !important;
}

#schedule .fc-scrollgrid-section-header th {
    border: none !important;
}

#schedule button.fc-button.fc-button-primary:hover {
    background-color: #ffffff !important;
}

#schedule button.fc-button.fc-button-primary.fc-button-active {
    background-color: #ffffff !important;
    color: black !important;
    font-weight: bold;
}

#schedule .fc-daygrid-day-frame:hover {
    outline: 2px solid #e2eefa;
    outline-offset: -1px;
}

#schedule .fc-timegrid-slot:hover {
    outline: 2px solid #e2eefa;
    outline-offset: -1px;
}

#schedule .fc-day-today {
    background-color: #f5f5f5 !important;
}

#schedule .fc-day-today .fc-daygrid-day-number {
    color: #ffffff;
    font-weight: bold;
    background-color: #146fd7 !important;
    border-bottom-left-radius: 50px 30px;
}

#schedule .fc-daygrid-event-harness:hover {
    border: 1px solid #146fd7;
    border-width: 0 0 0 3px;
    font-weight: bold;
}

#schedule .fc-timegrid-event-harness:hover {
    border-radius: 5px;
    font-weight: bold;
}


.ui-fileupload-buttonbar {
    border: none !important;
    background: none !important;
}

body .ui-splitbutton.ui-buttonset .ui-button {
    border-top-right-radius: 0px !important;
    border-bottom-right-radius: 0px !important;
}

body .ui-linkbutton {
    border-radius: 15px !important;
}

body .ui-buttonset .ui-button:first-child {
    border-top-right-radius: 0px !important;
    border-bottom-right-radius: 0px !important;
    border-top-left-radius: 15px !important;
    border-bottom-left-radius: 15px !important;
}

body .ui-buttonset .ui-button:last-child {
    border-top-right-radius: 15px !important;
    border-bottom-right-radius: 15px !important;
    border-top-left-radius: 0px !important;
    border-bottom-left-radius: 0px !important;
}

button.ui-button {
    border-radius: 15px !important;
}

body .ui-fileupload .ui-fileupload-buttonbar .ui-button {
    border-radius: 15px !important;
}

.ui-dialog {
    border-radius: 15px !important;
}

.ui-dialog .ui-dialog-titlebar {
    background: #fff;
    color: #146fd7;
}

.btnFiltroPesquisa {
    width: -webkit-fill-available;
    max-height: 2.2em !important;
    margin: 0 5px 0 5px;
    background: #eef2f6 !important;
    color: #777 !important;
    overflow: hidden;
}

.btnFiltroPesquisa:hover {
    background: #337ab7 !important;
    color: white !important;
}

.btnFiltroPesquisa .ui-button-text {
    overflow-wrap: anywhere;
}

.filtrosCarousel {
    width: 400px !important;
}

.olStsTask {
    border: 1px solid #ddd;
    padding: 5px;
    border-radius: 15px;
    box-shadow: rgba(0, 0, 0, 0.15) 0px 2px 2px 0px;
}

.liStsTask {
    display: inline;
    margin: 0 2px;
    text-shadow: 1px 1px 1px #ddd
}

.ui-paginator .ui-paginator-prev:before {
    content: "\203A" !important;
    font-size: 15px !important;
}

.ui-paginator .ui-paginator-next:before {
    content: "\203A" !important;
    font-size: 15px !important;
}

.ui-paginator .ui-paginator-first:before {
    content: "\00ab" !important;
    font-size: 15px !important;
}

.ui-paginator .ui-paginator-last:before {
    content: "\00bb" !important;
    font-size: 15px !important;
}

body .ui-paginator .ui-paginator-first.ui-state-disabled, body .ui-paginator .ui-paginator-last.ui-state-disabled, body .ui-paginator .ui-paginator-prev.ui-state-disabled, body .ui-paginator .ui-paginator-next.ui-state-disabled {
    color: #999;
}

.pi:before {
    font-size: initial;
}

body .ui-button-icon-only .ui-icon {
    min-width: 20px;
}

.ui-button-icon-only .ui-icon {
    margin-left: -10px;
}

.ui-carousel-prev.ui-link, .ui-carousel-next.ui-link {
    background-color: transparent;
    color: #337ab7;
}

#tbl th {
    border-left: none;
    border-right: none;
    border-bottom: none;
    color: #666;
    text-shadow: 0px 0px 1px #ffffff;
}

#tbl tr td {
    border-left: none;
    border-right: none;
    border-color: #eef2f6;
}

#tbl .ui-datatable-header {
    background: #eef2f6;
    border: 1px solid #f5f5f5;
    border-radius: 5px;
}

.login-style {
    color: #999;
    padding: .5em;
}

.guest-sign-in {
    color: #999;
    text-align: center;
}

/*Animate Core*/

.ring {
    position: absolute;
    z-index: 999;
    display: flex;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80px;
    height: 80px;
    background-color: f5f5f5;
    backdrop-filter: blur(20px);
    background-repeat: no-repeat;
    background-position: 50% 50%;
    border: 1px solid #f5f5f5;
    border-radius: 50%;
    box-shadow: 0 0 10px rgba(0, 0, 0, .2);

}

.bg-core {
    background-image: url('/img/logo_core_load.png');
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 80px;
    height: 80px;
    background-size: 70px;
    background-repeat: no-repeat;
    background-position: 50% 50%;
    border-radius: 50%;
    animation: animateA 4s ease-in-out infinite;
}

@keyframes animateA {
    0% {
        opacity: 1
    }
    50% {
        opacity: 0.3;
    }
    100% {
        opacity: 1
    }
}

.ring:before {
    content: '';
    position: absolute;
    z-index: 10;
    top: -3px;
    left: -3px;
    width: 100%;
    height: 100%;
    border: 3px solid transparent;
    border-top: 3px solid #2182f9;
    border-right: 3px solid #2182f9;
    border-radius: 50%;
    animation: animateC 1s linear infinite;
}


@keyframes animateC {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.loader {
    top: 50%;
    left: 50%;
    width: 100px;
    height: 100px;
    width: 100%;
}

.loader:after {
    content: "";
    position: absolute;
    border-radius: 50%;
    animation: pulsOut 4s ease-in-out infinite;
    filter: drop-shadow(0 0 1rem rgba(255, 255, 255, 0.75));
}

.loader:after {
    width: calc(100%);
    padding-bottom: calc(100%);
    box-shadow: 0 0 0 0 #fff;
}


@keyframes pulsOut {
    0% {
        box-shadow: 0 0 0 0 #2182f9;
        opacity: 0;
    }
    50% {
        box-shadow: 0 0 10px 0.5rem #2182f9;
        opacity: 0.4;
    }

    100% {
        box-shadow: 0 0 0 0 #2182f9;
        opacity: 0;
    }

}

/*Animate Core FIM*/

.inputMenuSidebar {
    width: 100%;
}

.sidebar .ui-selectcheckboxmenu-multiple {
    padding: 4px;
}

/*toggleswitch*/

.switch {
    margin-right: 2em;
    height: 24px !important;
}

body .ui-toggleswitch {
    position: relative;
    display: inline-block;
    width: 3rem;
    height: 1.75rem
}

body .ui-toggleswitch .ui-toggleswitch-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: #dee2e6;
    transition: background-color .2s, color .2s, border-color .2s, box-shadow .2s, opacity .2s;
    border: solid transparent;
    border-width: 2px;
    border-radius: 30px
}

body .ui-toggleswitch .ui-toggleswitch-slider.ui-state-error {
    border-color: #f44336
}

body .ui-toggleswitch .ui-toggleswitch-slider:before, body .ui-toggleswitch .ui-toggleswitch-handler {
    position: absolute;
    top: 50%;
    background: #fff;
    color: #495057;
    width: 1.25rem;
    height: 1.25rem;
    left: calc(.25rem - 2px);
    margin-top: -0.625rem;
    border-radius: 50%;
    transition: all .2s;
    font-size: .625rem;
    line-height: 1.25rem
}

body .ui-toggleswitch .ui-toggleswitch-handler span {
    font-size: .625rem;
    line-height: 1.25rem
}

body .ui-toggleswitch.ui-toggleswitch-checked .ui-toggleswitch-slider:before, body .ui-toggleswitch.ui-toggleswitch-checked .ui-toggleswitch-handler {
    color: #495057;
    transform: translateX(1.25rem)
}

body .ui-toggleswitch.ui-toggleswitch-focus .ui-toggleswitch-slider {
    outline: 0 none;
    outline-offset: 0;
    box-shadow: 0 0 0 .2rem #a6d5fa
}

body .ui-toggleswitch.ui-toggleswitch-checked .ui-toggleswitch-slider {
    background: #337ab7
}

body .ui-toggleswitch.ui-toggleswitch-checked .ui-toggleswitch-slider:before, body .ui-toggleswitch.ui-toggleswitch-checked .ui-toggleswitch-slider .ui-toggleswitch-handler {
    background: #fff
}

/*toggleswitch FIM*/

.ui-state-loading.ui-button-text-only .ui-icon-loading {
    font-size: initial;
}


#mensagemChat {
    margin-left: 0px;
    border-radius: 10px;
    font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
    border: 2px solid #d3d3d3;
    padding: 10px;
    padding-right: 45px;
    width: 760px;
    resize: none;
    box-shadow: 0 4px 6px 0 rgba(0, 0, 0, 0.15);
}

.fieldSetBorder {
    border: 1px solid #dee2e6 !important;
    background: #fff;
    color: #495057;
    padding: 1rem !important;
    border-radius: 4px !important;
    width: 100%;
    margin: 10px 0px;
    box-shadow: rgba(0, 0, 0, 0.15) 1.95px 1.95px 2.6px;
}

.fieldSetBorder > .ui-fieldset-legend {
    border: 1px solid #dee2e6 !important;
    background: #f8f9fa;
    color: #495057;
    padding: 1rem !important;
    font-weight: 700;
    border-radius: 4px !important;
}

.pickListStyle {
    border: 1px solid #ddd;
    border-radius: 15px;
    padding: 5px;
    box-shadow: rgba(0, 0, 0, 0.10) 1.95px 1.95px 2.6px;
}

.ui-picklist .ui-picklist-list {
    width: 220px;
}

#formRelatorio > fieldset > legend {
    border: 1px solid #ddd !important;
    border-radius: 5px !important;
}

body .ui-growl .ui-growl-item-container.ui-growl-info {
    background: #b3e5fc;
    border: 1px solid #03a9f4;
    color: #01579b;
    border-width: 0 0 0 6px;
}

body .ui-growl .ui-growl-title {
    word-break: break-word;
}

body .ui-growl .ui-growl-item-container.ui-growl-warn {
    background: #ffecb3;
    border: 1px solid #ffc107;
    color: #7f6003;
    border-width: 0 0 0 6px;
}

body .ui-growl .ui-growl-item-container.ui-growl-error, body .ui-growl .ui-growl-item-container.ui-growl-fatal {
    background: #ffcdd2;
    border: 1px solid #ef5350;
    color: #b71c1c;
    border-width: 0 0 0 6px;
}

body .ui-growl .ui-growl-item-container.ui-growl-error .ui-growl-image {
    color: #b71c1c !important;
}

/*p:editor*/
.ui-texteditor .ui-editor-toolbar {
    background: #f8f9fa;
    border-top-right-radius: 4px;
    border-top-left-radius: 4px;
}

.ui-texteditor .ui-editor-toolbar.ql-snow {
    border: 1px solid #dee2e6;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-stroke {
    stroke: #6c757d;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-fill {
    fill: #6c757d;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker .ql-picker-label {
    border: 0 none;
    color: #6c757d;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover {
    color: #495057;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-stroke {
    stroke: #495057
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker .ql-picker-label:hover .ql-fill {
    fill: #495057;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label {
    color: #495057;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-stroke {
    stroke: #495057;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-label .ql-fill {
    fill: #495057;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options {
    background: #fff;
    border: 0 none;
    box-shadow: 0 2px 4px -1px rgba(0, 0, 0, .2), 0 4px 5px 0 rgba(0, 0, 0, .14), 0 1px 10px 0 rgba(0, 0, 0, .12);
    border-radius: 4px;
    padding: .5rem 0;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item {
    color: #495057;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker.ql-expanded .ql-picker-options .ql-picker-item:hover {
    color: #495057;
    background: #e9ecef;
}

.ui-texteditor .ui-editor-toolbar.ql-snow .ql-picker.ql-expanded:not(.ql-icon-picker) .ql-picker-item {
    padding: .5rem 1rem;
}

.ui-texteditor .ql-container {
    border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px;
}

.ui-texteditor .ql-container.ql-snow {
    border: 1px solid #dee2e6;
}

.ui-texteditor .ql-container .ql-editor {
    background: #fff;
    color: #495057;
    border-bottom-right-radius: 4px;
    border-bottom-left-radius: 4px;
}

.ui-texteditor .ql-snow.ql-toolbar button:hover, .ui-texteditor .ql-snow.ql-toolbar button:focus {
    color: #495057;
}

.ui-texteditor .ql-snow.ql-toolbar button:hover .ql-stroke, .ui-texteditor .ql-snow.ql-toolbar button:focus .ql-stroke {
    stroke: #495057;
}

.ui-texteditor .ql-snow.ql-toolbar button:hover .ql-fill, .ui-texteditor .ql-snow.ql-toolbar button:focus .ql-fill {
    fill: #495057;
}

.ui-texteditor .ql-snow.ql-toolbar button.ql-active, .ui-texteditor .ql-snow.ql-toolbar .ql-picker-label.ql-active, .ui-texteditor .ql-snow.ql-toolbar .ql-picker-item.ql-selected {
    color: #2196f3;
}

.ui-texteditor .ql-snow.ql-toolbar button.ql-active .ql-stroke, .ui-texteditor .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-stroke, .ui-texteditor .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-stroke {
    stroke: #2196f3;
}

.ui-texteditor .ql-snow.ql-toolbar button.ql-active .ql-fill, .ui-texteditor .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-fill, .ui-texteditor .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-fill {
    fill: #2196f3;
}

.ui-texteditor .ql-snow.ql-toolbar button.ql-active .ql-picker-label, .ui-texteditor .ql-snow.ql-toolbar .ql-picker-label.ql-active .ql-picker-label, .ui-texteditor .ql-snow.ql-toolbar .ql-picker-item.ql-selected .ql-picker-label {
    color: #2196f3;
}

.ui-texteditor.ui-state-error .ui-editor-toolbar.ql-snow, .ui-texteditor.ui-state-error .ql-container.ql-snow {
    border-color: #f44336;
}

/*p:editor FIM*/

.imgChat {
    transition: .2s ease-in-out 0s;
    box-shadow: #999 0px 0px 10px 0px
}

.imgChat:hover {
    transform: scale(1.15);
    box-shadow: #146fd7 0px 0px 10px 0px
}

body .ui-overlaypanel .ui-overlaypanel-close {
    background-color: #ffffff;
    color: #999;
    border: 1px solid #999;
}

body .ui-overlaypanel .ui-overlaypanel-close:hover {
    background-color: #ffffff;
    color: red;
}

.panelChatGpt {
    max-width: 100%;
    height: 60vh;
    overflow-y: auto;
}

.btnGpt .chat-balao-oi {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    white-space: nowrap;
    background: #ffffff;
    color: #333;
    border: 1px solid #cccccc;
    border-radius: 12px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16);
    padding: 12px 16px;
    font-size: 14px;
    line-height: 1.5;
    opacity: 0;
    visibility: hidden;
    transition: opacity .3s, visibility .3s;
    z-index: 887;
}
.btnGpt .chat-balao-oi.visivel,
.btnGpt:hover .chat-balao-oi {
    opacity: 1;
    visibility: visible;
}
.btnGpt .chat-balao-oi::before {
    content: "";
    position: absolute;
    top: 100%;
    right: 10px;
    border: 8px solid transparent;
    border-top-color: #cccccc;
}
.btnGpt .chat-balao-oi::after {
    content: "";
    position: absolute;
    top: 100%;
    right: 11px;
    border: 7px solid transparent;
    border-top-color: #ffffff;
}

.trashFiltCustom:hover {
    color: red;
}

#tbl_data > tr > td > a.title:hover {
    border: 1px solid #ddd;
    border-radius: 15px;
    padding: 5px;
    transform: scale(1.5);
}

.ui-state-default .ui-sortable-column .ui-filter-column .ui-state-focus .ui-state-active,
body .ui-datatable thead th.ui-state-active.ui-state-focus,
body .ui-datatable thead th.ui-state-active {
    background-color: #dddddd;
    color: #000;
    border-color: #dddddd;
}

.ui-state-default .ui-sortable-column .ui-filter-column .ui-state-focus .ui-state-active,
body .ui-datatable thead th.ui-state-active.ui-state-focus,
body .ui-datatable thead th.ui-state-active {
    background-color: #dddddd;
    color: #000;
    border-color: #dddddd;
}

.nomeDocumentoDialogIA {
    color: #337ab7 !important;
    word-break: break-word !important;
    display: flex !important;
}

.nomeDocumentoDialogIA i {
    margin-right: 5px !important;
    font-size: 15pt !important;
}

#uploadDialog .ui-fileupload-buttonbar {
    width: 100% !important;
    text-align: center;
}

#uploadDialog .ui-fileupload-filename {
    word-break: normal !important;
}

.imgChatTexto {
    transition: .2s ease-in-out 0s;
}

#promptIDTexto, #promptIDEmail {
    width: 20rem;
    padding: 10px;
    padding-right: 40px;
    border-radius: 15px;
}

#promptIDTextoSelected {
    width: 20rem;
    padding: 10px;
    padding-right: 40px;
}

.divPromptIDTexto {
    text-align: right;
    position: absolute;
    right: 1.5rem;
    margin-top: 2.5px;
    color: #ddd;
}

.pi-sendBtn {
    height: 32px;
    border-radius: 50%;
    background: #fff !important;
    color: #999 !important;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 12px
}

.pi-sendBtn:active, .pi-sendBtn:hover {
    color: #337ab7 !important;
    background: #ececec !important;
}

.pi-sendBtn-chat {
    height: 42px;
    border-radius: var(--chat-radius, 12px);
    background: var(--chat-accent, #337ab7) !important;
    color: var(--chat-btn-color, #fff) !important;
    border: none !important;
    box-shadow: none;
    transition: background .16s, transform .16s;
}

.pi-sendBtn-chat:active, .pi-sendBtn-chat:hover {
    color: var(--chat-btn-color, #fff) !important;
    background: var(--chat-accent-hover, #2c5e8a) !important;
}

.btnOpcaoIATexto {
    background: transparent !important;
    color: #212529 !important;
    padding: 5px;
    width: 100%;
    display: inline-flex;
    margin-top: 3px;
}

.btnOpcaoIATexto:hover {
    background: #ececec !important;
}

.btnOpcaoIAExpressao {
    background: transparent !important;
    color: #212529 !important;
    padding: 5px;
    width: 100%;
    display: inline-flex;
    margin-top: 3px;
}

.btnOpcaoIAExpressao:hover {
    background: #ececec !important;
}

.btnLoadCheckIA {
    background: transparent !important;
    color: #212529 !important;
    z-index: 2;
}

.btnLoadCheckIA .active {
    /* Define the styles for the active button */
    background-color: #f0f0f0;
    color: #333;
}

.btnLoadCheckIA:hover {
    background: #ececec !important;
}

.animated-border, .animated-border2 {
    position: relative;
    display: inline-block;
    text-align: center;
    color: #333;
    background: #fff;
    border-radius: 14px;
    z-index: 0;
}

.animated-border:before, .animated-border2:before {
    content: '';
    position: absolute;
    top: -4px;
    left: -4px;
    right: -4px;
    bottom: -4px;
    border-radius: 20px;
    background: linear-gradient(45deg, blue, cyan, purple, blue);
    background-size: 200% 200%;
    z-index: -1;
    animation: animate-border 5s linear infinite;
}

.animated-border:after, .animated-border2:after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border: 2px solid transparent;
    border-radius: 18px;
    background: #fff;
    z-index: 1;
}

@keyframes animate-border {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

@keyframes animate-border2 {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}


.animated-border:hover:after {
    background: transparent !important;
}

.animated-border:hover .imgChatTexto {
    filter: contrast(2.0) brightness(2);
    transform: scale(1.10);
}

.textoUtilizarIA {
    margin: 5px;
    position: relative;
    display: inline-block;
    font-weight: bold;
}

.animated-border:hover .textoUtilizarIA, .animated-border:hover .textoUtilizarIAIndex {
    color: #fff;
}

.speech-bubble, .speech-bubble-processamente {
    display: none;
    position: absolute;
    background: #ececec;
    border-radius: 0.4em;
    padding: 10px;
    color: #212529;
    width: max-content;
    text-align: left;
    font-family: Arial, sans-serif;
    bottom: 3rem;
    z-index: 1;

}

.speech-bubble-index {
    display: none;
    position: absolute;
    background: #f5f5f5;
    border-radius: 0.4em;
    right: 0rem;
    padding: 10px;
    color: #212529;
    width: max-content;
    text-align: left;
    font-family: Arial, sans-serif;
    bottom: 3rem;
    z-index: 1;
}

.animated-border:hover .speech-bubble, .animated-border:hover .speech-bubble-index, .ui-button:hover .speech-bubble-processamente {
    display: inline-block;
}

.speech-bubble::after, .speech-bubble-processamente::after {
    content: '';
    position: absolute;
    bottom: -25px;
    left: 3rem;
    border-width: 15px;
    border-style: solid;
    border-color: #ececec transparent transparent transparent;
}

.speech-bubble-index::after {
    content: '';
    position: absolute;
    bottom: -25px;
    right: 3rem;
    border-width: 15px;
    border-style: solid;
    border-color: #f5f5f5 transparent transparent transparent;
}

.textoLoadIA,
.textoLoadSimpleIA {
    font-size: 14px;
    animation: animate-text 5s linear infinite;
}

.textoLoadIA {
    font-weight: bold;
    background: linear-gradient(45deg, blue, #02cbcb, purple, blue);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.textoLoadSimpleIA {
    font-weight: 600;
    background: linear-gradient(
            90deg,
            #2a2a2a 0%,
            #9a9a9a 50%,
            #2a2a2a 100%
    );
    background-size: 400% 100%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.imgChatTextoPopUp {
    filter: contrast(1.5) brightness(1.2);
}

@keyframes animate-text {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.animated-border-tittle {
    display: flex;
    margin: 5px;
    margin-bottom: 15px;
    font-size: 14px;
    font-weight: bold;
    background: linear-gradient(45deg, #337ab7, #33a3b7, #7733b7, #337ab7);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: animate-text 20s linear infinite;
    position: relative;
}

.animated-border-tittle::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 100%;
    height: 2px;
    background: linear-gradient(45deg, blue, #02cbcb, purple, blue);
    background-size: 200% 200%;
    animation: animate-border-tittle 15s linear infinite;
}


#chatUploadDialog_title, #viewUploadDialog_title {
    background: linear-gradient(45deg, #2634f5, #753ef8, #00a2ff, #4d72e0);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: animate-text 5slinear infinite;
}

.border-tittle {
    display: flex;
    margin: 5px;
    margin-bottom: 15px;
    font-size: 14px;
    font-weight: bold;
    background: #337ab7;
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    position: relative;
}

.border-tittle::after {
    content: '';
    position: absolute;
    bottom: -3px;
    left: 0;
    width: 100%;
    height: 2px;
    background: #337ab7;
    background-size: 200% 200%;
}

@keyframes animate-text-tittle {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

@keyframes animate-border-tittle {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.loaderIA {
    margin-left: 5px;
    display: inline-flex;
    width: 17px;
    aspect-ratio: 4;
    --_g: no-repeat radial-gradient(circle closest-side, #d4d4d4 90%, transparent);
    background: var(--_g) 0% 50%,
    var(--_g) 50% 50%,
    var(--_g) 100% 50%;
    background-size: calc(100% / 3) 100%;
    animation: l7 1s infinite linear;
}

.loaderIANeweDoc {
    justify-self: center;
    margin-left: 5px;
    display: inline-flex;
    width: 50px;
    aspect-ratio: 4;
    --_g: no-repeat radial-gradient(circle closest-side, #fff 80%, transparent);
    background: var(--_g) 0% 50%, var(--_g) 50% 50%, var(--_g) 100% 50%;
    background-size: calc(100% / 3) 100%;
    animation: l7 1s infinite linear;
}

@keyframes l7 {
    33% {
        background-size: calc(100% / 3) 0%, calc(100% / 3) 100%, calc(100% / 3) 100%
    }
    50% {
        background-size: calc(100% / 3) 100%, calc(100% / 3) 0%, calc(100% / 3) 100%
    }
    66% {
        background-size: calc(100% / 3) 100%, calc(100% / 3) 100%, calc(100% / 3) 0%
    }
}

#promptIDExpressao, #promptIDExpressaoCondicao, #promptIDExpressaoCondicaoEditar, #promptIDExpressaoVariavelEditar, #promptIDExpressaoVariavel {
    width: 20rem;
    padding: 10px;
    padding-right: 50px;
}

#promptIDTextoCriar {
    width: 30rem;
    padding: 10px;
    padding-right: 40px;
}

.divPromptIDExpressao {
    text-align: right;
    position: absolute;
    top: 1.8rem;
    right: 1.5rem;
    margin-top: 2.5px;
    color: #ddd;
}

.divPromptIDExpressaoEditar {
    text-align: right;
    position: absolute;
    right: 1.5rem;
    margin-top: 2.5px;
    color: #ddd;
}

.divPromptIDTextoCriar {
    text-align: right;
    position: absolute;
    top: 5rem;
    right: 1.5rem;
    margin-top: 2.5px;
    color: #ddd;
}

.divEnvioEmail {
    text-align: right;
    position: absolute;
    right: 1.5rem;
    margin-top: 2.5px;
    color: #ddd;
}

.betaIA {
    display: inline-block;
    padding: 5px 5px;
    background-color: #7df995;
    border: 1px solid #9bf917;
    border-radius: 12px;
    font-family: Arial, sans-serif;
    font-size: 11px;
    color: #1c862e;
    text-transform: uppercase;
    letter-spacing: 1px;
    position: absolute;
    right: 0px;
    bottom: 0px;
    margin: 3px;
    z-index: 2;
}

.betaIA span {
    font-weight: bold;
}

.promptIndexIa {
    justify-self: center;
    border-radius: 17px !important;
    height: 35px;
    width: 15rem;
    padding: 10px !important;
    padding-right: 35px !important;
}

.publiDateCalendar.ui-calendar {
    width: 7rem;
    max-width: 100%;
    display: block;
    margin: 0 auto;
}

.publiDateCalendar.ui-calendar .publiDateCalendarInput,
.publiDateCalendar.ui-calendar input.publiDateCalendarInput,
.publiDateCalendar.ui-calendar .ui-inputfield.publiDateCalendarInput {
    width: 100%;
    height: 35px;
    padding-right: 12px !important;
    border-radius: 17px !important;
    text-align: center;
    box-sizing: border-box;
}

.promptAreaCriarComIA {
    width: 50rem;
    max-width: 100%;
    margin: 0 auto;
}

.promptAreaCriarComIA .promptWrapperCriarComIA,
.promptAreaCriarComIA .barraOpcoesPromptContainer {
    width: 100% !important;
}

.promptWrapperCriarComIA {
    position: relative;
    z-index: 2;
    display: flex;
    justify-content: center;
    width: 50rem;
    max-width: 100%;
    box-sizing: border-box;
    height: 14.75rem;
    border-radius: 17px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow: 0 -10px 24px -16px rgba(31, 55, 82, 0.26), -10px 0 24px -18px rgba(31, 55, 82, 0.18), 10px 0 24px -18px rgba(31, 55, 82, 0.18) !important;
    overflow: hidden;
    border: 1px solid #c6d6e4;
    padding: 9px;
    transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

.promptWrapperCriarComIA:focus-within {
    border-color: #337ab7;
    box-shadow: 0 0 5px rgba(51, 122, 183, 0.4), 0 -10px 24px -16px rgba(31, 55, 82, 0.26), -10px 0 24px -18px rgba(31, 55, 82, 0.18), 10px 0 24px -18px rgba(31, 55, 82, 0.18) !important;
}

.barraOpcoesPromptContainer {
    position: relative;
    z-index: 1;
    width: 50rem;
    margin: -9px auto 0;
}

.barraOpcoesPrompt {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 4px;
    width: 100%;
    box-sizing: border-box;
    padding: 16px 7px 7px;
    border-radius: 0 0 15px 15px;
    border: 1px solid #cccccc;
    border-top: none;
    background: transparent;
    box-shadow: none !important;
    overflow: hidden;
    white-space: nowrap;
    --barra-opcao-text-color: #667789;
    color: var(--barra-opcao-text-color);
}

.barraOpcaoBotao,
.barraOpcaoNivel {
    text-decoration: none !important;
}

.barraOpcaoBotao {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid #d6dbe3;
    border-radius: 10px;
    background: #ffffff;
    color: var(--barra-opcao-text-color);
    font-family: Tahoma, "Trebuchet MS", Verdana, sans-serif;
    font-size: 0.88rem;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.barraOpcaoBotaoSwitch {
    justify-content: flex-start;
    gap: 8px;
    cursor: pointer;
    user-select: none;
}

.barraOpcaoBotaoSwitch .ui-toggleswitch {
    flex-shrink: 0;
    width: 2.45rem;
    height: 1.4rem;
    cursor: pointer;
}

.barraOpcaoBotaoSwitch .ui-toggleswitch .ui-toggleswitch-slider {
    border-width: 1px;
}

.barraOpcaoBotaoSwitch .ui-toggleswitch .ui-toggleswitch-slider:before,
.barraOpcaoBotaoSwitch .ui-toggleswitch .ui-toggleswitch-handler {
    width: 0.95rem;
    height: 0.95rem;
    left: calc(0.28rem - 1px);
    margin-top: -0.475rem;
    line-height: 0.95rem;
}

.barraOpcaoBotaoSwitch .ui-toggleswitch .ui-toggleswitch-handler span {
    font-size: 0.55rem;
    line-height: 0.95rem;
}

.barraOpcaoBotaoSwitch .ui-toggleswitch.ui-toggleswitch-checked .ui-toggleswitch-slider:before,
.barraOpcaoBotaoSwitch .ui-toggleswitch.ui-toggleswitch-checked .ui-toggleswitch-handler {
    transform: translateX(0.95rem);
}

.barraOpcaoBotaoSwitch .barraOpcaoSwitchTexto {
    color: inherit;
    cursor: pointer !important;
}

.barraOpcaoBotaoSwitch .ui-toggleswitch.ui-toggleswitch-focus .ui-toggleswitch-slider {
    box-shadow: 0 0 0 0.18rem rgba(124, 196, 147, 0.28);
}

.barraOpcaoBotaoSwitch .ui-toggleswitch.ui-toggleswitch-checked .ui-toggleswitch-slider,
.barraOpcaoBotaoSwitch.is-selected .ui-toggleswitch .ui-toggleswitch-slider {
    background: #7cc493;
}

.barraOpcaoBotao span,
.barraOpcaoExtensaoTitulo span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.barraOpcaoBotao .pi,
.barraOpcaoNivel .pi {
    font-size: 0.85rem;
}

.barraOpcoesPrompt .selectTemplateBarraOpcao.ui-selectonemenu {
    width: 10.5rem !important;
    min-width: 10.5rem !important;
    max-width: 10.5rem !important;
    padding-right: 0 !important;
}

.barraOpcoesPrompt .selectTemplateBarraOpcao .ui-selectonemenu-label {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    height: 36px;
    min-height: 36px;
    display: block !important;
    box-sizing: border-box;
    padding: 0 30px 0 10px !important;
    font-size: 0.84rem;
    line-height: 36px;
    border-radius: 10px !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    color: var(--barra-opcao-text-color);
}

.barraOpcoesPrompt .selectTemplateBarraOpcao .ui-selectonemenu-trigger {
    left: auto !important;
    right: 0 !important;
    width: 26px !important;
    min-height: 36px;
    border-radius: 0 10px 10px 0 !important;
}

.barraOpcaoIconSelected {
    display: none;
}

.barraOpcaoBotao:hover,
.barraOpcaoBotao:focus {
    background: #f8fbff;
    border-color: #b7d4ef;
    color: var(--barra-opcao-text-color);
}

.barraOpcaoBotao.is-selected {
    background: #e9f8ef;
    border-color: #7cc493;
    color: var(--barra-opcao-text-color);
}

.barraOpcaoExtensao {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    min-height: 32px;
    padding: 4px 6px 4px 8px;
    border: 1px solid #d6dbe3;
    border-radius: 10px;
    background: #ffffff;
    color: var(--barra-opcao-text-color);
}

.barraOpcaoExtensaoTitulo {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    font-family: Tahoma, "Trebuchet MS", Verdana, sans-serif;
    font-size: 0.74rem;
    font-weight: 400;
    letter-spacing: -0.01em;
    line-height: 1;
    color: inherit;
}

.barraOpcaoExtensaoNiveis {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.barraOpcaoNivel {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    border: 1px solid #d6dbe3;
    background: #f8fafc;
    color: var(--barra-opcao-text-color);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.barraOpcaoNivel:hover,
.barraOpcaoNivel:focus {
    background: #f2f8ff;
    border-color: #b7d4ef;
    color: var(--barra-opcao-text-color);
}

.barraOpcaoNivel.is-selected {
    background: #e9f8ef;
    border-color: #7cc493;
    color: var(--barra-opcao-text-color);
}

.barraOpcaoBotao.is-selected .barraOpcaoIconDefault,
.barraOpcaoNivel.is-selected .barraOpcaoIconDefault {
    display: none;
}

.barraOpcaoBotao.is-selected .barraOpcaoIconSelected,
.barraOpcaoNivel.is-selected .barraOpcaoIconSelected {
    display: inline-flex;
}

@media (max-width: 768px) {
    .promptAreaCriarComIA {
        width: 20rem !important;
    }

    .barraOpcoesPromptContainer {
        width: 20rem !important;
    }

    .barraOpcoesPrompt {
        gap: 3px;
        padding: 16px 5px 5px;
    }

    .barraOpcaoBotao {
        gap: 4px;
        min-height: 28px;
        padding: 4px 5px;
        font-size: 0.59rem;
    }

    .barraOpcaoBotaoSwitch {
        gap: 5px;
    }

    .barraOpcaoExtensao {
        gap: 4px;
        min-height: 28px;
        padding: 4px 5px 4px 6px;
    }

    .barraOpcaoExtensaoTitulo {
        font-size: 0.59rem;
    }

    .barraOpcaoNivel {
        width: 20px;
        height: 20px;
        border-radius: 6px;
    }

    .barraOpcaoBotao .pi,
    .barraOpcaoNivel .pi {
        font-size: 0.66rem;
    }

    .barraOpcoesPrompt .selectTemplateBarraOpcao.ui-selectonemenu {
        width: 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }

    .modelosSalvosConteudo .linhaHeaderSugestoes {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 0.6rem !important;
        width: 100% !important;
    }

    .modelosSalvosConteudo .linhaHeaderSugestoes .filtrosSugestoes {
        order: 1 !important;
        width: 100% !important;
        justify-content: center !important;
    }

    .modelosSalvosConteudo .buscaSugestoesWrapper {
        order: 2 !important;
        width: 100% !important;
        margin-top: 0 !important;
    }

    .modelosSalvosConteudo .linhaHeaderSugestoes .btnCriarNovoTipoIaHeader {
        order: 3 !important;
        align-self: center !important;
    }

    .modelosSalvosConteudo .inputBuscaSugestao {
        width: 100% !important;
    }
}


.scrollAreaCriarComIA {
    width: 100%;
    height: 78%;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 16px 16px 16px 4px;
    box-sizing: border-box;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.25) transparent;
}

.promptIndexCriarComIA {
    width: 100%;
    height: 100%;
    font-size: 1.06rem;
    line-height: 1.72;
    color: #203142;
    border: none !important;
    outline: none !important;
    resize: none !important;
    background: transparent !important;
    box-sizing: border-box !important;
    box-shadow: none !important;
    border: 0 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
}

.promptIndexCriarComIA::placeholder {
    color: #90a0af;
}

.promptIndexCriarComIA:focus,
.promptIndexCriarComIA:focus-visible,
.promptIndexCriarComIA:active,
.promptIndexCriarComIA:hover {
    border: none !important;
    outline: none !important;
    box-shadow: none !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
}

.iconIATextCriarComIA {
    position: absolute !important;
    bottom: 10px;
    z-index: 3;
}

.modelosSalvosConteudo .linhaHeaderSugestoes {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    width: 100%;
    margin-bottom: 0.9rem;
}

.modelosSalvosConteudo .filtrosSugestoes {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    flex: 0 0 auto;
    min-width: fit-content;
}

.modelosSalvosConteudo .filtroSugestaoSwitch {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding-left: 6px;
    min-height: 38px;
}

.modelosSalvosConteudo .filtrosSugestoes .ui-toggleswitch {
    margin-left: 2px;
}

.modelosSalvosConteudo .filtroSugestaoTextoToggle {
    font-weight: 400;
    cursor: pointer;
    user-select: none;
    color: #4f6477;
    white-space: nowrap;
}

.modelosSalvosConteudo .buscaSugestoesWrapper {
    position: relative !important;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.modelosSalvosConteudo .inputBuscaSugestao {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 40px;
    padding-left: 36px !important;
    border-radius: 20px !important;
    font-size: 0.95rem !important;
}

.modelosSalvosConteudo .iconeBuscaSugestao {
    position: absolute;
    left: 14px;
    color: #8aa0b2;
    font-size: 1rem;
    pointer-events: none;
}

.modelosSalvosConteudo .btnCriarNovoTipoIaHeader {
    flex: 0 0 auto;
    justify-self: auto;
    min-height: 40px;
    background: transparent !important;
    border: 1px dashed #bbb !important;
    color: #555 !important;
    border-radius: 20px !important;
    font-size: 0.92rem !important;
    padding: 7px 12px !important;
    line-height: 1.2;
    box-shadow: none !important;
    white-space: nowrap;
}

.modelosSalvosConteudo .btnCriarNovoTipoIaHeader:hover {
    background: #f5f5f5 !important;
    border-color: #337ab7 !important;
    color: #337ab7 !important;
}

.selectCampoCriarIa .ui-selectonemenu-trigger,
.selectTipoDocumentoUpload .ui-selectonemenu-trigger,
.dialogCriarNovoTipoTabsDialog .selectTemplateTipoPersonalizado .ui-selectonemenu-trigger {
    right: auto !important;
    left: 0 !important;
    border-radius: 17px !important;
}

.selectCampoCriarIa.ui-selectonemenu,
.selectTipoDocumentoUpload.ui-selectonemenu,
.dialogCriarNovoTipoTabsDialog .selectTemplateTipoPersonalizado.ui-selectonemenu {
    padding-right: 0 !important;
    width: auto !important;
    min-width: fit-content !important;
    max-width: 100%;
}

.selectTipoDocumentoUpload.ui-selectonemenu {
    height: 36px;
    border-radius: 40px !important;
    overflow: hidden;
}

.selectCampoCriarIa .ui-selectonemenu-label,
.selectTipoDocumentoUpload .ui-selectonemenu-label,
.dialogCriarNovoTipoTabsDialog .selectTemplateTipoPersonalizado .ui-selectonemenu-label {
    width: auto !important;
    min-width: 0 !important;
    text-align: left !important;
    border-radius: 40px !important;
    white-space: nowrap;
}

.selectCampoCriarIa .ui-selectonemenu-label,
.selectTipoDocumentoUpload .ui-selectonemenu-label {
    min-height: 40px;
    display: inline-flex;
    align-items: center;
}

.selectCampoCriarIa .ui-selectonemenu-trigger,
.selectTipoDocumentoUpload .ui-selectonemenu-trigger {
    min-height: 40px;
}

.selectTipoDocumentoUpload .ui-selectonemenu-label {
    height: 36px;
    min-height: 36px;
    box-sizing: border-box;
}

.selectTipoDocumentoUpload .ui-selectonemenu-trigger {
    height: 36px;
    min-height: 36px;
    box-sizing: border-box;
    border-top-left-radius: 40px !important;
    border-bottom-left-radius: 40px !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}

.selectCampoCriarIa .ui-selectonemenu-label {
    padding: 9px 25px !important;
}

.dialogCriarNovoTipoTabsDialog .selectTemplateTipoPersonalizado .ui-selectonemenu-label {
    padding: 5px 25px !important;
}

.tooltipOverlayCriarIa .ui-overlaypanel-content {
    max-width: 280px;
    white-space: normal;
    word-wrap: break-word;
    background: #ffffff;
    color: #333;
    border: 1px solid #cccccc;
    border-radius: 12px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16);
    padding: 12px 16px;
    font-size: 14px;
    line-height: 1.5;
}

.painelDocsCriarIa .documentTypeFieldCriarComIA {
    display: grid;
    gap: 0.35rem;
    min-width: 0;
}

.painelDocsCriarIa .documentTypeFieldLabelCriarComIA {
    font-size: 0.76rem;
    line-height: 1.2;
    color: #708295;
    letter-spacing: 0.01em;
}

.painelDocsCriarIa .documentTypeFieldRequiredCriarComIA {
    color: #d9534f;
    font-weight: 700;
}

.painelDocsCriarIa .documentTypeSelectPendingCriarComIA.ui-selectonemenu {
    border-color: #e5b0ab !important;
    box-shadow: 0 0 0 3px rgba(217, 83, 79, 0.08);
}

.painelDocsCriarIa .documentOptionsCriarComIA {
    display: flex;
    flex-shrink: 0;
    gap: 6px;
}

.selectTipoDocumentoUpload .ui-selectonemenu-label {
    font-size: 12px;
    padding: 5px 25px !important;
}

.upload-documentos-criar-ia .upload-busy-icon,
.upload-documentos-criar-ia .upload-status-busy {
    display: none !important;
}

/* Confirmar com upload em curso mandaria o pedido sem o anexo. */
body.upload-criacao-busy .dialogCriarIaBotoes .btnIaConfirmar {
    pointer-events: none;
    opacity: .5;
}

body.upload-criacao-busy .upload-documentos-criar-ia {
    border-color: #337ab7;
    background-color: #eef4f8;
    pointer-events: none;
    cursor: default;
}

.upload-documentos-criar-ia .icon-container::before {
    content: "";
    position: absolute;
    inset: 0;
    border: 3px dashed #d7e1e9;
    border-radius: 50%;
}

body.upload-criacao-busy .upload-documentos-criar-ia .icon-container::before {
    border-color: #337ab766;
}

body.upload-criacao-busy .upload-documentos-criar-ia .upload-idle-icon,
body.upload-criacao-busy .upload-documentos-criar-ia .upload-status-idle {
    display: none !important;
}

body.upload-criacao-busy .upload-documentos-criar-ia .upload-busy-icon,
body.upload-criacao-busy .upload-documentos-criar-ia .upload-status-busy {
    display: block !important;
}

.upload-documentos-criar-ia.ui-fileupload,
.upload-documentos-criar-ia .ui-fileupload-content {
    background: transparent !important;
}

.upload-documentos-criar-ia .ui-fileupload-files {
    display: none;
}

.upload-container-step.upload-documentos-criar-ia {
    width: 100%;
    flex: 0 0 auto;
    display: grid;
    justify-content: center;
    text-align: center;
    gap: 8px;
    padding: 14px 16px;
    min-height: 8.75rem;
    border: 1px dashed #cdd8e2;
    border-radius: 14px;
    background: #f7fafc;
    box-shadow: none !important;
    box-sizing: border-box;
    justify-items: center;
}

.upload-container-step.upload-documentos-criar-ia:hover {
    background: #f6f9fc;
    border-color: #b8c9d8;
    color: inherit;
}

.upload-documentos-criar-ia .icon-container {
    width: 3.15rem;
    height: 3.15rem;
    min-width: 3.15rem;
    padding: 0;
    box-sizing: border-box;
}

.upload-documentos-criar-ia .icon-container i {
    font-size: 1.15rem;
    line-height: 1;
}

.upload-documentos-criar-ia .upload-status-title {
    display: block;
    margin: 0;
    font-size: 0.9rem;
    line-height: 1.32;
    color: #667789;
}

.upload-documentos-criar-ia .upload-status-subtitle-row {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 4px;
    flex-wrap: nowrap !important;
    white-space: nowrap;
    font-size: 0.9rem;
    line-height: 1.4;
    color: #667789;
}

.upload-documentos-criar-ia .upload-status-subtitle-row .upload-status-subtitle {
    display: inline-flex !important;
    align-items: center;
    margin: 0 !important;
    line-height: inherit;
    white-space: nowrap;
}

.upload-documentos-criar-ia .ui-fileupload-buttonbar {
    width: auto;
    min-width: 0;
    display: flex;
    justify-content: center;
    padding: 0;
    margin: 0;
    background: transparent;
    border: none;
}

.upload-documentos-criar-ia .upload-subtitle-action.ui-fileupload {
    display: inline-flex !important;
    align-items: center;
    vertical-align: baseline;
    width: auto !important;
    min-width: 0 !important;
    font: inherit;
    line-height: inherit;
    margin: 0 !important;
}

/* O buttonbar do tema traz padding/borda próprios e o input file invisível é mais alto que o
   botão: no Firefox o texto do link acompanha o topo do input e sobe em relação ao "ou escolha". */
.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-buttonbar {
    display: inline-flex;
    align-items: center;
    padding: 0;
    margin: 0;
    border: none;
    background: transparent;
    line-height: inherit;
}

.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-buttonbar .ui-button input[type="file"] {
    height: 100%;
}

.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-content {
    display: none;
}

.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-buttonbar .ui-button {
    color: #4e7fab;
    background: transparent;
    border: none;
    box-shadow: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0;
    line-height: inherit;
    padding: 0;
    margin: 0;
    min-height: auto;
    font-size: inherit;
    font-family: inherit;
    font-weight: 400;
}

.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-buttonbar .ui-button .ui-button-icon-left {
    display: none;
}

.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-buttonbar .ui-button .ui-button-text {
    padding: 0;
    line-height: inherit;
    display: inline-flex;
    align-items: center;
    font-size: inherit;
    font-family: inherit;
    font-weight: inherit;
    color: #4e7fab;
}

.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-buttonbar .ui-button:hover,
.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-buttonbar .ui-button:focus {
    color: #337ab7;
    text-decoration: underline;
}

.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-buttonbar .ui-button:hover .ui-button-text,
.upload-documentos-criar-ia .upload-subtitle-action .ui-fileupload-buttonbar .ui-button:focus .ui-button-text {
    color: #337ab7;
}

.upload-documentos-criar-ia .ui-fileupload-buttonbar .ui-button,
.upload-documentos-criar-ia .ui-fileupload-buttonbar .ui-button .ui-button-text {
    font-size: 0.9rem;
    line-height: 1.4;
    font-family: inherit;
}

body.upload-criacao-busy .upload-documentos-criar-ia .ui-fileupload-buttonbar {
    display: none;
}

/* Botão Analisar documentos só aparece quando todos os uploads (inclusive
   a conversão de vídeo no servidor) terminaram */
body.upload-criacao-busy .wrapperBtnAnalisarDocs {
    display: none !important;
}

.tesesAddIa{
    width: 100%;
}

.divTesesAddIa {
    display: flow;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    padding: 25px;
    margin: 10px auto 0;
    border-radius: 10px;
    border: 1px solid #ddd;
}

.imgIndexIAPrompt {
    width: 5rem;
    justify-self: center;
}

.tituloIndexIAPrompt {
    justify-self: center;
    font-size: 22pt;
    font-weight: bold;
    font-family: serif, Arial;
}

.subtituloIndexIAPrompt {
    justify-self: center;
    font-size: 20pt;
    font-weight: bold;
    font-family: serif, Arial;
}

body .ui-dialog.dialogCriarIa {
    min-width: 450px !important;
    max-width: 60vw !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
}

.dialogCriarIa .ui-dialog-content {
    background: linear-gradient(180deg, #f8fbff 0%, #ffffff 100%) !important;
    border: none !important;
    display: flex;
    justify-content: center;
    padding: 2rem !important;
}

.conteudoCentralizadoDialog {
    display: grid;
    justify-self: center;
    width: 600px;
}

.tituloAnimadoDialog {
    display: grid;
    justify-content: center;
    text-align: center;
    margin-bottom: 1.5rem;
    width: 100%;
}

.tituloAnimadoDialog span {
    display: inline-block;
    font-size: 1.05rem;
    color: #333;
    font-weight: 500;
    white-space: normal;
    overflow-wrap: break-word;
    max-width: 90%;
}

.dialogCriarIaBotoes {
    display: flex;
    justify-content: flex-end;
    gap: 1rem;
}

.dialogCriarIaBotoesEsquerda,
.dialogCriarIaBotoesDireita {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.dialogCriarIaBotoesDireita {
    margin-left: auto;
}


.selectCheckboxMenuClean.ui-selectcheckboxmenu {
    border-radius: 40px !important;
    position: relative;
}

.selectCheckboxMenuClean .ui-selectcheckboxmenu-trigger {
    left: 4px !important;
    right: auto !important;
    border-radius: 50% !important;
}

.selectCheckboxMenuClean .ui-selectcheckboxmenu-multiple-container {
    border-radius: 40px !important;
    padding-left: 20px !important;
    padding-right: 12px !important;
    align-items: center;
}

.selectCheckboxMenuClean .ui-selectcheckboxmenu-token {
    margin-left: 4px;
    margin-right: 0;
    border-radius: 20px;
}

.btnIaCancelar {
    background: transparent !important;
    color: #666 !important;
    border: 1px solid #ccc !important;
    border-radius: 20px !important;
    padding: 8px !important;
    transition: all 0.3s ease;
}

.btnIaCancelar:hover {
    background: #f1f1f1 !important;
}

.btnIaConfirmar {
    background: #337ab7 !important;
    border-radius: 20px !important;
    color: #fff !important;
    border: none !important;
    padding: 8px !important;
    transition: background 0.3s ease;
}

.btnIaConfirmar:hover {
    background: #286fa0 !important;
}

.ui-tooltip.tooltipCriarIa .ui-tooltip-text {
    max-width: 340px;
    white-space: normal;
    word-wrap: break-word;
    background: #ffffff;
    color: #333;
    border: 1px solid #cccccc;
    border-radius: 12px;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.16);
    padding: 12px 16px;
    font-size: 14px;
    line-height: 1.5;
}

/* Descrição do modelo: o conteúdo vem do editor, com estilo inline próprio. */
.ui-tooltip.tooltipDescricaoModelo .ui-tooltip-text {
    max-width: clamp(320px, 72vw, 620px);
    max-height: 60vh;
    overflow-y: auto;
}

.ui-tooltip.tooltipDescricaoModelo .ui-tooltip-text * {
    font-size: inherit !important;
    max-width: 100%;
}

.ui-tooltip.tooltipDescricaoModelo .ui-tooltip-text p {
    margin: 0;
}

.ui-tooltip.tooltipDescricaoModelo .ui-tooltip-text p + p {
    margin-top: 8px;
}

.ui-tooltip.tooltipDescricaoModelo .ui-tooltip-text ul,
.ui-tooltip.tooltipDescricaoModelo .ui-tooltip-text ol {
    margin: 0;
    padding-left: 18px;
}

/* Quebra de página do editor não tem sentido aqui e renderiza como faixa vazia. */
.ui-tooltip.tooltipDescricaoModelo .ui-tooltip-text div[style*="page-break"] {
    display: none;
}

.ui-tooltip.tooltipDocumentosCriarIa .ui-tooltip-text {
    max-width: clamp(320px, 72vw, 620px);
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.45;
}

.label-required::after {
    content: " *";
    color: #d9534f;
    font-weight: bold;
    margin-left: 2px;
}

.textoIndexIAPrompt {
    justify-self: center;
    font-size: 12pt;
    margin-top: 20px;
    margin-bottom: 8px;
    font-weight: 550;
}

.textoIndexIAPromptTeamplate {
    font-weight: bold;
    font-size: 10pt;

}

.btnIndexCriarIA {
    background: #fff;
    width: max-content;
    border-radius: 15px;
    justify-self: center;
    position: relative;
    z-index: 1;
    border: 3px solid #1872ca;
    color: #104b84;
    font-weight: bold;
}

.btnIndexCriarIA:hover {
    background: #13356e;
    border: 3px solid #76a9db;
    color: #76a9db !important;
}

.textoIndexCriarIA {
    margin-left: 3px;
    top: -3px;
    position: relative;
}

.btnIndexCriarIA:hover .textoIndexCriarIA {
    color: #76a9db !important;
}

.divPromptIDDocument {
    justify-self: center;
    position: relative;
    padding-right: 40px !important;
    top: 36px;
    z-index: 11;
    width: fit-content;
    left: 285px;
}

.divPromptIDDocumentStep {
    justify-self: center;
    position: relative;
    padding-right: 40px !important;
    top: 3px;
    z-index: 11;
    width: fit-content;
    right: 38px;
    float: inline-end;
}

.btnSendIAInput {
    box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 12px;
}

.btnAdicionarTeses, .btnPromptEspecifico {
    color: #292B2C !important;
    background: #efefef !important;
    width: 100%;
    width: fit-content !important;
    justify-self: center;
}

.btnAdicionarTeses:hover, .btnPromptEspecifico:hover {
    color: #337ab7 !important;
    box-shadow: #e3e3e3 3px 3px 6px 0px inset, rgb(230 230 230 / 50%) -3px -3px 6px 1px inset;

}

.excluirTese, .excluirPromptEspecifico, .excluirDoc {
    color: #999;
    font-size: 12pt;
}

.excluirTese:hover, .excluirPromptEspecifico:hover, .excluirDoc:hover {
    color: #d84c4c;
}
.betaIANewDoc,
.betaIANewModelo {
    display: inline-block;
    padding: 5px 5px;
    font-weight: bold;
    background-color: #7df995;
    border: 1px solid #9bf917;
    border-radius: 12px;
    font-family: Arial, sans-serif;
    font-size: 11px;
    color: #1c862e;
    text-transform: uppercase;
    letter-spacing: 1px;
    position: absolute;
    right: 20px;
    top: 60px;
    margin: 3px;
    z-index: 2;
}


.stepTitleIa {
    position: absolute;
    top: 8px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 0.9rem;
    font-weight: 600;
    color: #848485;
    letter-spacing: 0.4px;
    background: transparent;
    padding: 5px 14px;
    border: none;
    z-index: 1;
    pointer-events: none;
    text-align: center;
}

.btn-gerar-ia, .btn-gerar-ia-send {
    height: 35px;
    width: 35px;
    z-index: 2;
    border-radius: 50%;
    background-color: #337ab7;
    display: flex;
    justify-content: center;
    align-items: center;
    color: #fff;
    transition: background-color 0.3s ease;
}

.btn-gerar-ia {
    background-color: #848485;
}

.pi-voltarStep {
    height: 32px;
    border-radius: 50%;
    background-color: #337ab7 !important;
    color: #fff !important;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 12px
}

.btn-gerar-ia-send:hover, .pi-voltarStep:hover, .btn-gerar-ia-send .ui-button:hover {
    background-color: #66afe9 !important;
}

.btn-gerar-ia-send i, .pi-voltarStep i {
    font-size: 18px;
    color: #fff;
}

.btn-gerar-ia:hover, .btn-gerar-ia .ui-button:hover {
    background-color: #9e9ea0 !important;
}

#listaPrompt_content {
    background-color: transparent;
}

#listaPrompt_content {
    background-color: transparent;
}

.iconPrompt {
    color: #7d98f9;
    margin-bottom: 8px;
}

.document-grid-item2 {
    margin-bottom: 10px;
    padding: 10px;
    background-color: #fff;
    border-radius: 10px;
    max-height: 100px;
    height: 100px;
    border: 1px solid #7d98f9;
    overflow: hidden;
    text-align: left;
    color: #292B2C;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.document-grid-item-prompt, .document-grid-item-sugestoes {
    margin-bottom: 5px;
    padding: 10px;
    background-color: #fff;
    border-radius: 10px;
    border: 1px solid #cccccc;
    overflow: hidden;
    text-align: left;
    color: #292B2C;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.document-grid-item-sugestoes {
    max-height: 140px;
    height: 140px;
}

.document-grid-item-prompt:hover, .document-grid-item-sugestoes:hover {
    background-color: #337ab79e;
    border-color: #337ab79e;
    color: #fff;
    transform: scale(1.04);
    box-shadow: 0 6px 15px rgba(0, 0, 0, 0.25);
}

.cardDescricao {
    font-size: small;
    color: #999;
    overflow-wrap: break-word;
    word-break: break-word;
    white-space: normal;
}

.document-grid-item-prompt:hover .cardDescricao, .document-grid-item-sugestoes:hover .cardDescricao {
    color: #fff;
}

.document-grid-item2:hover {
    background-color: #eee;
}

#btnSendIA:disabled {
    background: #ddd !important;
    color: #fff !important;
}

@keyframes gradient {
    0% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
    100% {
        background-position: 0% 50%;
    }
}

.table-teses.ui-datatable thead,
.fake-datatable thead {
    display: none !important;
}
.table-teses .ui-datatable-data,
.fake-datatable .ui-datatable-data {
    display: grid !important;
    gap: 5px !important;
    width: 100% !important;
}

.table-teses .ui-datatable-data > tr.ui-expanded-row-content {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.table-teses .ui-expanded-row-content > td,
.table-teses .ui-expanded-row-content > td > div {
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.table-teses .ui-expanded-row-content textarea {
    display: block;
}

.cardIA{
    padding: 20px !important;
    border-radius: 10px !important;
    display: grid;
}


#cardsContainer {
    display: flex;
    gap: 20px;
    justify-content: center;
}

.cardHome1, .cardHome2, .cardHome3 {
    flex: 1;
    background: #f9f9f9;
    border: 1px solid #ddd;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #000;
    cursor: pointer;
    text-align: center;
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.cardHome1 {
    margin-top: 0px;
    transform: rotate(-3deg);
}

.cardHome3 {
    margin-top: 0px;
    transform: rotate(3deg);
}

.cardHome2:hover {
    transform: scale(1.02) translateY(-0.3rem);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
    background: #fff;
}

.cardHome2:hover .divCorHomeCards {
    background: #fff;
}

.cardHome1:hover, .cardHome3:hover {
    transform: scale(1.1) rotate(0);
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2);
}

.btnHome {
    background: #f5f5f5;
    border: none;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15rem;
}

.cardHome1 {
    margin-top: 15px;
    height: 260px;

}

.cardHome2 {
    height: 280px;
}

.cardHome3 {
    margin-top: 15px;
    height: 260px;
}

.cardsContainer {
    display: flex;
    gap: 10px;
    justify-content: center;
}

.cardsAbaixoHome {
    position: relative;
    flex: 1;
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
    text-align: center;
}

.cardsAbaixoHome2 {
    width: 30%;
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.05);
    text-align: center;
}

#listaDocumentos_content, #listaChat_content, #listaPrompt_content, #listaDocumentosUpload_content {
    background-color: transparent;
}

#listaDocumentosPainelAnalise_content {
    background-color: transparent;
}

#listaSugestoes_content {
    background-color: transparent;
}

#listaDocumentos_paginator_bottom {
    border-radius: 10px;
}

.document-grid-item {
    margin-bottom: 10px;
    padding: 10px;
    background-color: #eef2f6;
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    max-height: 240px;
    height: 240px;
}

.document-grid-item:hover {

    background-color: #eee;
}

.document-grid-item-top {
    background: #f5f5f5;
    border-radius: 5px;
    width: 100%;
    height: 8rem;
}

.document-grid-item-top-file {
    display: grid;
    background-color: #fff;
    width: 60%;
    justify-content: center;
    padding: 10px;
    margin: auto;
    height: 100%;
    color: #999;
    text-align: center;
    position: relative;
    align-self: flex-start;
    font-size: 10px;
    overflow: hidden;
}

.document-grid-item-top-doc {
    display: grid;
    text-align: left;
    position: absolute;
    padding: 10px;
}

.document-grid-item-content {
    padding: 10px;
    display: grid;
    justify-content: space-between;
    align-items: center;
    padding-top: 10px;
    margin-top: 10px;
    text-align: left;
}

.document-info {
    display: grid;
    color: #999;
}

.document-version {
    text-align: right;
    margin-left: 10px;
    flex-shrink: 0;
    background: #8dadfe;
    padding: 4px;
    color: #FFF;
    border-radius: 5px;
}

.iconDoc {
    padding: 1px;
    margin-right: 5px;
}

.qtdpasta {
    color: #999;
    position: absolute;
    background: #eeeeee;
    padding: 2px;
    border-radius: 50%;
    font-weight: bold;
    margin-top: -10px;
    margin-left: -10px;
    border: 1px solid #f5f5f5;
    width: 25px;
    visibility: hidden;
}

@keyframes slideInLeft {
    from {
        transform: translateX(-100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}


.slideInLeft {
    animation-name: slideInLeft;
}

@keyframes slideInTop {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}


.slideInTop {
    animation-name: slideInTop;
}

@keyframes slideInBot {
    from {
        transform: translateY(100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}


.slideInBot {
    animation-name: slideInBot;
}

@keyframes slideInRight {
    from {
        transform: translateX(100%);
        opacity: 0;
    }
    to {
        transform: translateX(0);
        opacity: 1;
    }
}


.slideInRight {
    animation-name: slideInRight;
}

@keyframes slideInScale {
    from {
        transform: scale(0);
        opacity: 0;
    }
    to {
        transform: scale(1);
        opacity: 1;
    }
}

.slideInScale {
    animation-name: slideInScale;
}

@keyframes slideOutLeft {
    from {
        transform: translateX(0);
        opacity: 1;
    }
    to {
        transform: translateX(-100%);
        opacity: 0;
    }
}

.slideOutLeft {
    animation-name: slideOutLeft;
}

.slideMensagemIA.slideInRight {
    animation-name: slideInRight;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.slideMensagemIA.slideOutLeft {
    animation-name: slideOutLeft;
    animation-duration: 0.5s;
    animation-fill-mode: forwards;
}

.animated {
    animation-duration: 0.5s !important;
    animation-fill-mode: both;
}

.labelGPTchatAnalise {
    display: block;
    word-break: break-word;
    width: 100%;
    padding: 0;
    line-height: 1.66;
    tab-size: 4;
    background: transparent;
    box-shadow: none;
    border-radius: 0;
    margin-top: 16px;
}

.redee-ia-chat-panel .labelGPTchatAnaliseUsuario {
    display: flex !important;
    width: fit-content !important;
    max-width: 76% !important;
    margin-left: auto !important;
    padding: 9px 13px;
    background: var(--chat-user-bg, #eef5fc);
    border: none;
    border-radius: 14px 14px 4px 14px;
    box-shadow: none;
    color: #2f3a45;
    font-size: calc(var(--chat-fs, 16px) * 0.8);
    line-height: 1.30;
}

.upload-container {
    padding: 16px;
    height: fit-content;
    width: 100%;
    display: grid;
    justify-content: center;
    text-align: center;
    background: rgba(0, 0, 0, 0.2);
    border: 1px dashed #f5f5f5;
    border-radius: 10px;
    color: #fff;
}


.upload-container2 {
    padding: 20px;
    height: fit-content;
    width: 100%;
    display: grid;
    justify-content: center;
    text-align: center;
    background: #fff;
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
    border-radius: 10px;
    border: 1px dashed #7d98f9;
    color: #292B2C;
}

.upload-container2:hover {
    background-color: #eee;
}

.upload-container-step {
    padding: 16px;
    height: fit-content;
    width: 100%;
    display: grid;
    justify-content: center;
    text-align: center;
    border: 1px dashed #000;
    border-radius: 10px;
    flex: 0 0 70%;
}

.upload-container-step2 {
    height: fit-content;
    width: 100%;
    display: grid;
    justify-content: center;
    text-align: center;
    background: rgba(0, 0, 0, 0.2);
    border-radius: 10px;
    height: auto;
}

.upload-wrapper-step {
    align-items: stretch;
    gap: 5px;
}

body #formUploadRedator #customDropZone2 .upload-status-title,
body #formUploadRedator #customDropZone2 .upload-status-subtitle {
    display: block;
    margin: 0;
    line-height: 1.32;
}

body #formUploadRedator #customDropZone2 .upload-status-subtitle {
    margin-top: -0.45rem;
}

.upload-container:hover,.upload-container-step:hover,.upload-container-step2:hover {
    background-color: #337ab79e;
    border-color: #337ab79e;
    color: #fff;
}

.icon-container {
    width: 3.05rem;
    border-radius: 50%;
    padding: 1rem;
    display: grid;
    place-items: center;
    justify-self: center;
    position: relative;
}

.icon-container::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 3px dashed #00000033;
    border-radius: 50%;
    box-sizing: border-box;
    transition: all 0.3s;
}

.document-grid-item-documento, .document-grid-item-documento-criar-ia, .document-grid-item-chat {
    display: inline-flex;
    padding: 11px;
    overflow: hidden;
    background: #fff;
    text-align: left;
    color: #292B2C;
    max-height: 140px;
    width: 100%;
    font-size: small;
    background-color: #fff;
    border-radius: 10px;
    border: 1px solid #cccccc;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    word-wrap: break-word;
    overflow-wrap: break-word;
}

.documentLinhaCriarComIA {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    flex-wrap: nowrap;
}

.documentInfoCriarComIA {
    display: flex;
    align-items: flex-start;
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.documentInfoCriarComIA a {
    display: inline-block;
    max-width: 100%;
    white-space: normal;
    overflow-wrap: break-word;
    word-break: break-word;
    margin-right: 5px;
    min-width: 0;
    max-height: 45px;
    overflow-y: auto;
    scrollbar-color: rgba(0, 0, 0, 0.25) transparent;
    scrollbar-width: thin;
}

.documentInfoCriarComIA a::-webkit-scrollbar {
    width: 8px;
}

.documentInfoCriarComIA a::-webkit-scrollbar-track {
    background: transparent;
}

.documentInfoCriarComIA a::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.25);
    border-radius: 10px;
}

.documentInfoCriarComIA a::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.4);
}

.painelDocsCriarIa .datagrid-docs .ui-datagrid-content {
    background: transparent !important;
    border: none !important;
    padding: 4px 2px 4px 2px;
    max-height: 520px;
    overflow-y: auto;
}

.painelDocsCriarIa .datagrid-docs .ui-grid-row {
    display: flex;
    flex-wrap: wrap;
    margin: 0 -8px;
}

.painelDocsCriarIa .datagrid-docs .ui-datagrid-column {
    width: 50%;
    padding: 0 8px 16px !important;
    margin-bottom: 0;
    box-sizing: border-box;
}

.painelDocsCriarIa .datagrid-docs .document-grid-item-documento-criar-ia {
    display: flex;
    width: 100%;
    min-height: 188px;
    max-height: none;
    padding: 15px 16px 14px;
    border: 1px solid #d6dce2;
    border-radius: 12px;
    background: #ffffff;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.08);
}

.painelDocsCriarIa .datagrid-docs .documentLinhaCriarComIA {
    align-items: stretch;
    flex-direction: column;
    gap: 12px;
}

.painelDocsCriarIa .datagrid-docs .documentInfoCriarComIA {
    align-items: flex-start;
    gap: 10px;
}

.painelDocsCriarIa .datagrid-docs .documentTituloCriarComIA {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    flex: 1 1 auto;
    min-width: 0;
    padding-right: 6px;
}

.painelDocsCriarIa .datagrid-docs .documentTituloCriarComIA .iconDocumento {
    flex: 0 0 auto;
    margin-right: 0;
    font-size: 1.35rem;
    line-height: 1.1;
}

.painelDocsCriarIa .datagrid-docs .documentTituloCriarComIA .iconDocumentoPdf {
    color: #cf4c43;
}

.painelDocsCriarIa .datagrid-docs .documentTituloCriarComIA .iconDocumentoDocx {
    color: #2b579a;
}

.painelDocsCriarIa .datagrid-docs .documentTituloCriarComIA .iconDocumentoImagem {
    color: #3a8f5c;
}

.painelDocsCriarIa .datagrid-docs .documentTituloCriarComIA .iconDocumentoAudio {
    color: #7e57c2;
}

.painelDocsCriarIa .datagrid-docs .documentTituloCriarComIA .iconDocumentoVideo {
    color: #d97706;
}

.painelDocsCriarIa .datagrid-docs .documentTituloLinkCriarComIA {
    flex: 1 1 auto;
    min-width: 0;
}

.painelDocsCriarIa .datagrid-docs .documentTituloLinkCriarComIA a {
    display: -webkit-box;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    white-space: normal;
    word-break: break-word;
    max-height: calc(1.35em * 2);
    font-size: 13px;
    font-weight: 600;
    line-height: 1.35;
    color: #337ab7;
    text-decoration: none;
}

.painelDocsCriarIa .datagrid-docs .documentTituloLinkCriarComIA a:hover {
    color: #337ab7;
}

.painelDocsCriarIa .datagrid-docs .documentDeleteCriarComIA {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    margin-left: auto;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    width: 28px;
    height: 28px;
    padding: 0;
    border-radius: 50%;
}

.painelDocsCriarIa .datagrid-docs .documentDeleteCriarComIA:hover {
    background: #f5f5f5 !important;
}

.painelDocsCriarIa .datagrid-docs .documentDeleteCriarComIA .excluirDoc {
    margin: 0;
    color: #8e8e8e;
    font-size: 1rem;
}

.painelDocsCriarIa .datagrid-docs .documentDeleteCriarComIA:hover .excluirDoc {
    color: #c4543d;
}

.painelDocsCriarIa .datagrid-docs .documentOptionsCriarComIA {
    width: 100%;
    margin-top: auto;
    padding-top: 12px;
    border-top: 1px solid #eceff2;
    gap: 10px;
    justify-content: flex-start;
    align-items: flex-end;
    flex-wrap: nowrap;
}

.painelDocsCriarIa .datagrid-docs .documentTypeFieldCriarComIA {
    flex: 0 1 auto;
}

.painelDocsCriarIa .datagrid-docs .documentTypeFieldCriarComIA .ui-selectonemenu {
    width: auto !important;
    min-width: fit-content !important;
    max-width: 100%;
}

.painelDocsCriarIa .datagrid-docs .documentOptionsCriarComIA > span {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    flex-wrap: nowrap;
    margin-left: auto;
}

@media (max-width: 1280px) {
    .painelDocsCriarIa .datagrid-docs .ui-datagrid-column {
        width: 50%;
    }
}

@media (max-width: 767px) {
    .painelDocsCriarIa .datagrid-docs .ui-datagrid-content {
        max-height: none;
        overflow: visible;
        padding-right: 0;
    }

    .painelDocsCriarIa .datagrid-docs .ui-datagrid-column {
        width: 100%;
    }

    .painelDocsCriarIa .datagrid-docs .documentOptionsCriarComIA {
        flex-wrap: wrap;
    }

    .painelDocsCriarIa .datagrid-docs .documentTypeFieldCriarComIA .ui-selectonemenu {
        width: auto !important;
        min-width: fit-content !important;
    }

    .painelDocsCriarIa .datagrid-docs .documentOptionsCriarComIA > span {
        width: 100%;
        justify-content: flex-end;
        margin-left: 0;
    }
}

.novo-item-chat{
    display: inline-flex;
    padding: 5px;
    border-radius: 10px;
    background: #fff !important;
    text-align: left;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    border: 1px dashed #000 !important;
    max-height: 140px;
    width: 100%;
    color: #000 !important;
    font-size: small;
}

.excluirChatIcon {
    background: transparent !important;
    position: absolute;
    right: 8px;
}

.excluirChatIcon:hover {
    color: red;
}

/* Âncora da lixeira do histórico do Assistente: o absolute (right: 8px) precisa de um
   ancestral posicionado, senão vaza para o canto da tela. */
.assistente-historico .ui-datagrid-column {
    position: relative;
}

.assistente-historico .excluirChatIcon {
    top: 8px;
}

.document-grid-item-documento:hover, .document-grid-item-chat:hover, .novo-item-chat:hover {
    background-color: #337ab79e !important;
    border-color: #337ab79e !important;
    color: #fff !important;
}

@keyframes rotate-border {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

.upload-container:hover .icon-container::before {
    animation: rotate-border 5s linear infinite;
}

.iconDocumento, .iconChatAssitente {
    margin-right: 5px;
}

#idScrollDoc::-webkit-scrollbar {
    display: none !important;
}

@supports (-moz-appearance: none) {
    #idScrollDoc {
        scrollbar-width: none;
    }
}

.chat-container {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.chat-scroll {
    flex: 1;
    min-height: 0;
    transition: flex-grow .45s ease;
}

/* Novo chat (opt-in centralizarVazio): saudação e input ficam no centro; no 1º envio o scroll cresce animado. */
.redee-ia-chat-panel.chat-vazio .chat-scroll {
    flex: 0 1 auto;
}
.redee-ia-chat-panel.chat-vazio .panelChatGpt {
    padding: 0;
}

/* Conversa que o bucket não entregou: a camada ocupa a área da conversa e tira o campo de envio. */
.redee-ia-chat-panel:has(.chat-indisponivel) .chat-scroll {
    flex: 1 1 auto !important;
    position: relative;
}
.redee-ia-chat-panel:has(.chat-indisponivel) .chat-input-container,
.redee-ia-chat-panel:has(.chat-indisponivel) .chat-perguntas-dock,
.redee-ia-chat-panel:has(.chat-indisponivel) .chat-saudacao-tela {
    display: none !important;
}
.redee-ia-chat-panel .chat-indisponivel {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px;
    text-align: center;
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(4px);
}
.redee-ia-chat-panel .chat-indisponivel-msg {
    font-size: 11pt;
    color: #444;
}

/* Chat (r:chatIa): o dataList do historico nao deve herdar o min-width global de .ui-datalist,
   senao os baloes nao encolhem no resize do painel. */
.redee-ia-chat-panel .ui-datalist {
    min-width: 0 !important;
}

.redee-ia-chat-panel .ui-datalist-item {
    list-style: none;
}

/* Tools (r:chatIa): etapas ("pesquisando...") + fontes consultadas. */
.redee-ia-chat-panel .chat-tool-box {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.redee-ia-chat-panel .chat-tool-box:empty,
.redee-ia-chat-panel .chat-perguntas-box:empty {
    display: none;
}
.redee-ia-chat-panel tr:has(> td > .chat-tool-box:empty),
.redee-ia-chat-panel tr:has(> td > .chat-perguntas-box:empty) {
    display: none;
}
.redee-ia-chat-panel .chat-tool-atividade-box {
    margin-bottom: 14px;
}
/* Etapas das ferramentas: rastro discreto, cor uniforme; só o ícone muda. */
.redee-ia-chat-panel .chat-tool-atividade {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 2px 0;
    font-size: calc(var(--chat-fs, 16px) * 0.78);
    color: #6b7c8c;
}
.redee-ia-chat-panel .chat-tool-ic {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
}
.redee-ia-chat-panel .chat-tool-check {
    color: #6b7c8c;
    font-size: calc(var(--chat-fs, 16px) * 0.69);
}
.redee-ia-chat-panel .chat-tool-spin {
    width: 12px;
    height: 12px;
    border: 2px solid #d9e1ea;
    border-top-color: #6b7c8c;
    border-radius: 50%;
    display: inline-block;
    animation: rotate-border 0.8s linear infinite;
}
/* Fontes consultadas: lista empilhada com filete no topo. */
.redee-ia-chat-panel .chat-tool-fontes-box {
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #d9e3ec;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
}
.redee-ia-chat-panel .chat-tool-fontes-titulo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    cursor: pointer;
    list-style: none;
    font-size: calc(var(--chat-fs, 16px) * 0.69);
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: #6b7c8c;
    margin-bottom: 6px;
}
.redee-ia-chat-panel .chat-tool-fontes-titulo::-webkit-details-marker {
    display: none;
}
.redee-ia-chat-panel .chat-tool-fontes-titulo::marker {
    content: "";
}
/* Chip "Ver" no titulo: mesmo padrão das fontes de jurisprudência (sem herdar o uppercase do eyebrow). */
.redee-ia-chat-panel .chat-tool-fontes-titulo .fonte-ver {
    text-transform: none;
    letter-spacing: normal;
    font-weight: 400;
}
.redee-ia-chat-panel .chat-tool-fontes-titulo:hover {
    color: #2f7d6a;
}
.redee-ia-chat-panel .chat-tool-fontes-titulo:hover .fonte-ver,
.redee-ia-chat-panel .fonte-sum .fonte-ver:hover {
    background: #f2f5f9;
    border-color: #d9e3ec;
    color: #2f7d6a;
}
.redee-ia-chat-panel .chat-tool-fontes-box[open] > .chat-tool-fontes-titulo .fonte-ver svg {
    transform: rotate(180deg);
}

.chat-input-container {
    display: flex;
    align-items: center;
    gap: 8px;

}

.chat-input-container .pi-sendBtn {
    margin-left: 10px;
}

.divCorHomeCards {
    background: #f5f5f5;
    display: grid;
    justify-content: center;
}

.divTextoAbaixoCard {
    margin: 10px;
    font-size: small;
    color: #999;
    width: 80%;
    display: inline-block;
}

.upload-limits-bar{
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
    margin-top: 6px;
    margin-bottom: 6px;
}
.upload-limits-chip{
    display: inline-block;
    padding: 4px 12px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.05);
    color: #4a4a4a;
    font-size: 10pt;
    cursor: help;
    transition: background 0.15s ease;
}
.upload-limits-chip:hover{
    background: rgba(0, 0, 0, 0.09);
}

.divDocEmpty{
    justify-self: center;
    /* O Firefox ignora justify-self fora de grid/flex: o margin auto garante o centro nos dois. */
    margin-left: auto;
    margin-right: auto;
    padding: 10px;
    border-radius: 10px;
    width: fit-content;
    height: fit-content;
    justify-content: center;
    font-size: 11pt;
    text-align: center;
}

.downloadDocumentoRedator {
    margin-left: 5px;
}

.downloadDocumentoRedator:hover {
    color: #589cd7 !important;
}


#growlMessagePnlPrincipal {
    height: 28px;
    width: 350px;
}

#growlMessagePnlPrincipal > div {
    margin: 0;
    line-height: 10px;
}

#growlMessagePnlPrincipal > div > span {
    font-size: 20px !important;
}

#toggleSwitchTimer .ui-toggleswitch-slider .ui-toggleswitch-handler span {
    font-size: 16px;
    line-height: 16px;
}

.tooltipTimerKanban > div.ui-tooltip-text.ui-shadow.ui-corner-all, .tooltipPosProcessamento > div.ui-tooltip-text.ui-shadow.ui-corner-all {
    background-color: #f5f5f5;
    color: #60626b;
    border: 1px solid #a2a5b3;
    padding: 10px;
    border-radius: 15px;
    margin: 10px;
}

.tooltipTimerKanban > .ui-tooltip-arrow {
    left: 69%;
}

body .ui-badge.ui-badge-success {
    background: #689f38;
    color: #fff
}

body .ui-badge.ui-badge-info {
    background: #0288d1;
    color: #fff
}

body .ui-badge.ui-badge-warning {
    background: #fbc02d;
    color: #212529
}

body .ui-badge.ui-badge-danger {
    background: #d32f2f;
    color: #fff
}

#overlayPanelNotificacoes {
    top: 50px !important;
    right: 10% !important;
}

.liNotificacoesNaoLida {
    min-width: 200px !important;
    margin: 10px;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 10px;
    background-color: #f9f9f9;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.liNotificacoesLida {
    min-width: 200px !important;
    margin: 10px;
    border: 1px solid #ddd;
    border-radius: 8px;
    padding: 1px 10px 10px 10px;
    background-color: #e9e9e9;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

#overlayPanelNotificacoes > .ui-overlaypanel-content {
    padding: 5px;
    margin: 0;
}

#pnlNaoLidasNotificacoes, #pnlLidasNotificacoes {
    padding: 2px;
}

#tabViewNotificacoes > ul > li.ui-tabs-header {
    width: 49.3%;
}

#tabViewNotificacoes > ul > li.ui-tabs-header > a {
    width: 100%;
    text-align: center;
}

#tabViewNotificacoes .ui-scrollpanel-native::-webkit-scrollbar {
    width: 12px;
}

#tabViewNotificacoes .ui-scrollpanel-native::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 10px
}

#tabViewNotificacoes .ui-scrollpanel-native::-webkit-scrollbar-thumb {
    background-color: #888;
    border-radius: 10px;
    border: 3px solid #f1f1f1;
}

#tabViewNotificacoes .ui-scrollpanel-native::-webkit-scrollbar-thumb:hover {
    background-color: #555;
}

#tabViewNotificacoes .ui-scrollpanel-native::-webkit-scrollbar-button {
    background-color: #f1f1f1;
    height: 14px;
    width: 14px;
    padding: 5px;
}

#tabViewNotificacoes .ui-scrollpanel-native::-webkit-scrollbar-button:single-button:vertical:decrement {
    background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTExLjI5IDMuNzFMMy43MSAxMS4yOWExIDEgMCAwIDAgMS40MSAxLjQxbDYuNTgtNi41OGEuNS41IDAgMCAxIC43MSAwbDYuNTggNi41OGExIDEgMCAxIDAgMS40MS0xLjQxbC03LjU4LTcuNTlhMSAxIDAgMCAwLTEuNDEgMGwtNy41OCA3LjU5eiIvPjwvc3ZnPg==');
    background-size: 10px;
    background-repeat: no-repeat;
    background-position: center;
    font-size: 20px;
}

#tabViewNotificacoes .ui-scrollpanel-native::-webkit-scrollbar-button:single-button:vertical:increment {
    background: url('data:image/svg+xml;base64,PHN2ZyBmaWxsPSIjMDAwMDAwIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCI+PHBhdGggZD0iTTEyLjk5IDIwLjI5bDcuNTgtNy41OGExIDEgMCAwIDAgLTEuNDEtMS40MWwtNi41OCA2LjU4YS41LjUgMCAwIDEtLjcxIDBsLTYuNTgtNi41OGExIDEgMCAwIDAgLTEuNDEgMS40MWw3LjU4IDcuNThhMSAxIDAgMCAwIDEuNDEgMHoiLz48L3N2Zz4=');
    background-size: 10px;
    background-repeat: no-repeat;
    background-position: center;
}

#modelosTop10 thead {
    display: none;
}


#modelosTop10 .ui-datagrid-header {
    display: none !important;
}

#listaModelos .ui-datatable-header {
    display: none !important;
}

#listaModelos tbody td {
    border: none !important;
    padding: 10px;
}

body #listaModelos .ui-datatable-data > tr {
    border-color: #dddddd;
    border: 1px solid #ddd;
    padding: 5px;
}

body #listaModelos .ui-datatable-data > tr:hover {
    background-color: #eef2f6;
}

.indexNomeDocumento:hover {
    color: #6095fb;
}

.indexNomeDocumento {
    font-size: 11pt;
}

.cardHora {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 10px 15px;
    border: 1px solid #ddd;
    border-radius: 8px;
    background-color: #ffffff;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    max-width: 200px;
}

.cardHora-title {
    font-size: 18px;
    color: #333;
    margin-bottom: 10px;
}

.cardHora-text {
    font-size: 16px;
    color: #337ab7;
}

/* Optional hover effect for the card */
.cardHora:hover {
    box-shadow: 0 6px 10px rgba(0, 0, 0, 0.15);
    border-color: #337ab7;
}

.btnConfigPesquisa {
    color: #337ab7;
    margin: auto;
}

.btnConfigPesquisa:hover {
    color: #2695ef;
}

#userCheck .ui-selectcheckboxmenu-token {
    width: -webkit-fill-available !important;
}

.btnUserAcoes {
    background: #f5f5f5 !important;
    padding: 7px;
    display: inline-grid;
    border-radius: 50% !important;
}

.btnUserAcoes:hover {
    background: #ddd !important;
}

.textAcaoExtrasDialog {
    margin-top: 10px;
}

.linkUdemyText {
    font-size: 14px;
    background: linear-gradient(45deg, #2634f5, #753ef8, #00a2ff, #4d72e0);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: animate-text 5s linear infinite;
}

.btnLlmTextIA {
    font-size: 14px;
    background: linear-gradient(45deg, #2634f5, #753ef8, #00a2ff, #4d72e0);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: animate-text 5s linear infinite;
}

.linkUdemy, .linkUdemy2 {
    position: absolute;
    text-decoration: none;
    color: #007bff;
    font-size: 14px;
    display: flex;
    align-items: center;
    gap: 5px;
    background: #FFF;
    padding: 5px;
    border-radius: 5px;
    z-index: 2;
    transition: background-color 0.3s ease;
}

.linkUdemy:hover, .linkUdemy2:hover {
    background-color: #eee;
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}

.linkUdemy i, .linkUdemy2 i {
    font-size: 18px;
}

.linkUdemy {
    top: 10px;
    right: 25px;
}

#slctValueVar_panel {
    max-width: 300px;
}

.linkUdemy2 {
    top: 4rem;
    right: 25px;
}

.linkNovoModelo {
    padding: 10px;
    display: flex;
    width: fit-content;
    margin: auto;
    color: #337ab7;
    background: #fff;
    border-radius: 5px;
    transition: background 1.5s ease;
    transition: color 0.5s ease;
    border: 1px solid #337ab7
}

.linkNovoModelo:hover {
    background: #449bd3;
    color: #fff;
}

.divPromptEspecifico {
    display: flow;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    padding: 25px;
    border-radius: 10px;
    width: max-content;
    border: 1px solid #ddd;
    width: 600px;
}

#tblPromptEspecificoCond_head, #tblPromptEspecificoVar_head {

}

.borderTabelaPrompt {
    border-left: 1px solid #ddd;
    border-right: 1px solid #ddd;
}

#tblPromptEspecificoCond_data, #tblPromptEspecificoVar_data {
    display: contents;
    width: 100%;
}

.textoUtilizarIAIndex {
    margin: 5px 5px 2px 5px;
    position: relative;
    display: inline-block;
    font-weight: bold;
}

.toolbarIndexEdit {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background-color: #ffffffc4;
    color: white;
    padding: 10px 40px 10px 20px;
    display: ruby;
    backdrop-filter: blur(3px);
    box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
    z-index: 100;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.imgIndexDoc {
    width: 60px;
    height: 60px;
    padding: 0px 5px 1px 0px;
}

.btnAnaliseIAIndexText {
    font-size: 15px;
    background: linear-gradient(45deg, #2634f5, #753ef8, #00a2ff, #4d72e0);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: animate-text 5s linear infinite;
}

.btnAnaliseIAIndex {
    background: transparent !important;
    color: #212529 !important;
    width: max-content;
    height: max-content;
    display: flow;
    margin-top: 3px;
    border-radius: 10px;
    padding: 7px;
    z-index: 1 !important;
}

.btnAnaliseIAIndex:hover {
    background: #fff !important;
    outline: 1px solid #ececec
}

.LLMefeitoBrilhoIA {
    position: relative;
    overflow: hidden;
    border-radius: 10px;
    padding: 6px;
    box-shadow: 0 0 6px 4px rgb(0 0 0 / 5%);
    display: flex;
    align-items: center;
    background-color: #f5f5f5;
}

.LLMefeitoBrilhoIA::before {
    content: "";
    position: absolute;
    top: 0;
    left: -150%;
    width: 150%;
    height: 100%;
    background: linear-gradient(120deg, rgba(255, 255, 255, 0) 30%, rgba(255, 255, 255, 0.6) 50%, rgba(255, 255, 255, 0) 70%);
    animation: brilhoInfinito 3s infinite linear;
}

@keyframes brilhoInfinito {
    from {
        left: -150%;
    }
    to {
        left: 150%;
    }
}

.btnVisualizarIA {
    padding: 6px;
}

.btnVisualizarIA:hover {
    color: #3e98e7;
}

.redee-ia-chat-panel .divBtnExtraChatAnalise {
    width: fit-content;
    display: flex;
    gap: 6px;
    align-items: center;
    margin-top: 6px;
    opacity: 0;
    transition: opacity .16s;
}
/* Ações do turno da IA aparecem no hover; focus-within cobre teclado e o pós-clique. */
.redee-ia-chat-panel .labelGPTchatAnalise:hover .divBtnExtraChatAnalise,
.redee-ia-chat-panel .divBtnExtraChatAnalise:focus-within {
    opacity: 1;
}

.redee-ia-chat-panel .divBtnExtraChatAnalise .btnExtraChatAnalise {
    width: 32px !important;
    height: 32px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 1px solid #e6ecf3 !important;
    border-radius: 8px !important;
    color: #4d5b68 !important;
    box-shadow: none !important;
    transition: background .16s, border-color .16s;
}

.redee-ia-chat-panel .divBtnExtraChatAnalise .btnExtraChatAnalise:hover {
    background: #f2f5f9 !important;
    border-color: #d9e3ec !important;
}

.redee-ia-chat-panel .btnExtraChatAnalise .chat-ic-copy,
.redee-ia-chat-panel .btnExtraChatAnalise .chat-ic-add {
    display: inline-block;
    width: 15px;
    height: 15px;
    background: no-repeat center / 15px 15px;
}
.redee-ia-chat-panel .btnExtraChatAnalise .chat-ic-copy {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%234d5b68%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Crect%20x%3D%279%27%20y%3D%279%27%20width%3D%2711%27%20height%3D%2711%27%20rx%3D%272%27/%3E%3Cpath%20d%3D%27M5%2015V5a2%202%200%200%201%202-2h10%27/%3E%3C/svg%3E");
}
.redee-ia-chat-panel .btnExtraChatAnalise .chat-ic-add {
    background-image: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27%234d5b68%27%20stroke-width%3D%272%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%205v14M5%2012h14%27/%3E%3C/svg%3E");
}
.redee-ia-chat-panel .btnExtraChatAnalise .fa-check {
    text-align: center;
    line-height: 15px;
    font-size: calc(var(--chat-fs, 16px) * 0.81);
    color: #4d5b68;
}

.btnObrigatorio {
    margin: auto;
    display: flex;
    margin-left: 5px;
    border-radius: 5px;
    padding: 5px;
    color: #ff5454de;
    background: #ff000014;
}

.btnObrigatorio:hover {
    color: red !important;
}

.documentos-list-obrigatorio {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.documento-grid-obrigatorio {
    display: flex;
    gap: 1rem;
    padding: 10px;
    align-items: center;
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
    border-radius: 15px;
}

.documento-grid-obrigatorio:hover {
    background: #f5f5f5;
}

.documento-nome {
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.doc-container-upload {
    padding: 10px;
    display: flex;
    align-items: center;
    border-radius: 10px;
    box-shadow: rgba(99, 99, 99, 0.2) 0px 2px 8px 0px;
}

.typeIndexLlm {
    color: #999;
    font-size: 14px;
}

.limiteDocsLlm {
    color: #999;
    font-size: 13px;
}

.typeIndexLlm-container {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dicaBtnIA {
    font-size: 18px;
    background: linear-gradient(45deg, #2634f5, #753ef8, #00a2ff, #4d72e0);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: animate-text 3s linear infinite;
}

.dicaSidebarDoc {
    box-shadow: rgba(60, 64, 67, 0.3) 0px 1px 2px 0px, rgba(60, 64, 67, 0.15) 0px 1px 3px 1px;
    padding: 10px;
    border-radius: 10px;
    background-color: #f5f5f5;
    text-align: justify
}

.btnPrompts {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    margin-top: 2rem;
    color: #000;
    font-size: 1rem;
    line-height: 1.45;
    text-decoration: none;
    cursor: pointer;
}

.btnPrompts span {
    line-height: 1.45;
}

.btnPrompts .pi {
    font-size: 1rem;
}

.btnPrompts:hover {
    color: #666;
}

.revisarIA {
    font-size: 12pt;
    text-align: justify;
    background: linear-gradient(45deg, #2634f5, #753ef8, #00a2ff, #4d72e0);
    background-size: 200% 200%;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: animate-text 7s linear infinite;
}

.btnBuscarTextos {
    padding: 5px;
    border-radius: 5px;
    color: #292b2c !important;
    background: #f5f5f5;
    align-items: center;
    display: flex;
    gap: 5px;
    width: fit-content;
}

.btnBuscarTextos:hover {
    background: #dcdcdc;
}

.slide-mensagem-ia-wrapper {
    position: relative;
    width: 100%;
    overflow: hidden;
    min-height: 25px;
}

.slideMensagemIA {
    display: inline-block;
    white-space: nowrap;
}

.textoSlideMensagensIA {
    font-size: 14px;
    color: #777;
}

@keyframes panelShow {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes panelHide {
    from {
        opacity: 1;
        transform: translateY(0);
    }
    to {
        opacity: 0;
        transform: translateY(20px);
    }
}

.btnBuscarTextos {
    padding: 5px;
    border-radius: 5px;
    color: #292b2c !important;
    background: #f5f5f5;
    align-items: center;
    display: flex;
    gap: 5px;
    width: fit-content;
}

.btnBuscarTextos:hover {
    background: #dcdcdc;
}

.btnExcluirAnaliseDoc {
    height: 30px;
    width: 30px;
    right: 5px;
    background: transparent !important;
    color: #292B2C !important;
    display: flex;
    align-self: center;
    position: absolute;
    z-index: 2
}

.btnExcluirAnaliseDoc:hover {
    color: #99d6ff !important;
}

/* Âncora do botão absoluto da lixeira: sem ela, o right ancora na página, não no cartão. */
#idDivSideBar .document-grid-item-documento {
    position: relative;
}

.toggle-circle {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 1px solid #cfcfcf;
    background: #fff;
    color: #6b7280;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    cursor: pointer;
    transition: all .15s ease;
}

.toggle-circle:hover {
    background: #f0f9ff;
    border-color: #93c5fd;
}

.toggle-circle.selected {
    background: #337ab7;
    border-color: #16a34a;
    color: #fff;
}

.toggle-circle:active {
    transform: scale(.95);
}

/* Comportamento de adesão (opt-in) para alternâncias binárias (marcar/desmarcar) usadas nos diálogos de IA do redator. */
.toggle-circle.toggle-circle-binary:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(0, 0, 0, 0.12);
}

.toggle-circle.toggle-circle-binary .icon-check {
    display: none;
}

.toggle-circle.toggle-circle-binary .icon-times {
    display: inline-block;
}

.toggle-circle.toggle-circle-binary.selected .icon-check {
    display: inline-block;
}

.toggle-circle.toggle-circle-binary.selected .icon-times {
    display: none;
}

.toggle-circle.toggle-circle-binary.ui-state-disabled,
.toggle-circle.toggle-circle-binary.ui-disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

.no-scroll-edit {
    overflow-y: hidden !important;
}

.toolbarIndex {
    justify-content: center;
    display: flex;
    gap: 8px;
    align-items: center;
    padding: 12px 0;
}

.editor-layout {
    display: flex;
    flex-direction: row;
    gap: 0;
    height: calc(100vh - 190px);
    align-items: stretch;
    box-sizing: border-box;
    padding: 10px 0 0 0;
    border-top: 1px solid #eee;
    overflow: hidden;
    max-width: 100%;
}

.editor-layout .coluna {
    display: flex;
    flex-direction: column;
    height: 100%;
    overflow: hidden;
    flex-shrink: 0;
    min-width: 220px;
    box-sizing: border-box;
    position: relative;
}

.editor-layout .coluna .ia-resize-indicator {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.92);
    z-index: 100;
    pointer-events: none;
    overflow: hidden;
}

.editor-layout .coluna .ia-resize-indicator .pi {
    font-size: 2rem;
    color: #337ab7;
}

.editor-layout .coluna .ia-resize-indicator--right .pi {
    animation: iaResizeArrowRight 0.7s ease-in-out infinite;
}

.editor-layout .coluna .ia-resize-indicator--left .pi {
    animation: iaResizeArrowLeft 0.7s ease-in-out infinite;
}

@keyframes iaResizeArrowRight {
    0%, 100% {
        transform: translateX(-6px);
        opacity: 0.6;
    }
    50% {
        transform: translateX(8px);
        opacity: 1;
    }
}

@keyframes iaResizeArrowLeft {
    0%, 100% {
        transform: translateX(6px);
        opacity: 0.6;
    }
    50% {
        transform: translateX(-8px);
        opacity: 1;
    }
}

.editor-layout .coluna-tools {
    flex: 0 0 476px;
}

.editor-layout .coluna-editor {
    flex: 1 1 auto;
    min-width: 420px;
    overflow: hidden;
    position: relative;
}

/* Barra do rodapé do editor: decide de uma vez o que ainda está pendente. As ações de um trecho
   só ficam na caixa do botão direito, que também abre com o cursor sobre o trecho. */
.editor-ia-mestra {
    position: absolute;
    bottom: 18px;
    transform: translateX(-50%);
    z-index: 6;
    display: flex;
    align-items: center;
    gap: 8px;
    background: #fff;
    border: 1px solid #cfd8ff;
    border-radius: 999px;
    padding: 7px 12px;
    box-shadow: 0 4px 18px rgba(0, 0, 0, 0.18);
    font-size: 12px;
    white-space: nowrap;
}

.editor-ia-mestra-txt { color: #3d4350; font-weight: 600; }

.editor-ia-sep { width: 1px; height: 16px; background: #e3e6ee; }

.editor-ia-nav { display: inline-flex; align-items: center; gap: 2px; }

.editor-ia-nav .editor-ia-ic { width: 22px; height: 22px; border-color: transparent; }

.editor-ia-nav .editor-ia-ic svg { width: 13px; height: 13px; }

.editor-ia-pos {
    color: #6b7280;
    font-variant-numeric: tabular-nums;
    min-width: 24px;
    text-align: center;
}

.editor-ia-seg {
    display: inline-flex;
    background: #eff1f7;
    border-radius: 999px;
    padding: 2px;
    gap: 2px;
}

.editor-ia-seg button {
    border: 0;
    background: transparent;
    font: inherit;
    font-size: 12px;
    color: #6b7280;
    padding: 3px 11px;
    border-radius: 999px;
    cursor: pointer;
}

.editor-ia-seg button[aria-pressed="true"] {
    background: #fff;
    color: #4a63c8;
    font-weight: 700;
    box-shadow: 0 1px 3px rgba(28, 31, 38, 0.18);
}

.editor-ia-ic {
    width: 26px;
    height: 26px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid #dfe3ec;
    background: #fff;
    color: #5b6270;
    cursor: pointer;
}

.editor-ia-ic svg { width: 14px; height: 14px; display: block; }

.editor-ia-ic:hover { border-color: #879ffd; color: #4a63c8; background: #f5f7ff; }

.editor-ia-ic.ok { background: #879ffd; border-color: #879ffd; color: #fff; }

.editor-ia-ic.ok:hover { background: #6f8bf7; border-color: #6f8bf7; color: #fff; }

.editor-ia-seg button:focus-visible,
.editor-ia-ic:focus-visible { outline: 2px solid #4a63c8; outline-offset: 2px; }

.editor-ia-rotulos {
    display: none;
}

/* Balão das ações do trecho, junto do texto marcado com o mouse. */
.editor-ia-balao {
    position: fixed;
    /* Acima do editor e abaixo dos diálogos, que o PrimeFaces empilha a partir de 1000. */
    z-index: 900;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    background: #fff;
    border: 1px solid #cfd8ff;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.16);
    padding: 4px;
    min-width: 170px;
}

.editor-ia-balao .editor-ia-balao-item {
    display: flex;
    align-items: center;
    gap: 8px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #3d4350;
    font-size: 12.5px;
    line-height: 1.4;
    text-align: left;
    white-space: nowrap;
    padding: 7px 10px;
    cursor: pointer;
}

.editor-ia-balao .editor-ia-balao-item:hover {
    background: #f5f7ff;
    color: #4a63c8;
}

.editor-ia-balao .editor-ia-balao-rot {
    flex: 1 1 auto;
}

.editor-ia-balao .editor-ia-balao-tecla {
    flex: 0 0 auto;
    padding-left: 18px;
    color: #98a0ae;
    font-size: 11.5px;
}

.editor-ia-balao .editor-ia-balao-ic {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: 15px;
}

/* Caixa do botão direito do editor com a IA: moldura no padrão dos painéis do chat. O conteúdo vive
   num iframe e é estilizado pela folha que o script injeta lá dentro. */
body .cke_menu_panel.ia-menu {
    border: none;
    border-radius: 12px;
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.16);
    overflow: hidden;
}

/* Página ou imagem do documento no painel do editor, montada como markup ao lado do texto. */
.contextoAnaliseImagem {
    display: block;
    margin-bottom: 0.75rem;
}

/* Wrapper do painel de documentos do editor: alvo de update sem virar caixa no layout de colunas. */
.editor-layout-docs-wrap {
    display: contents;
}

.editor-layout .coluna-docs {
    flex: 0 0 340px;
}

.editor-layout .resizer {
    width: 10px;
    cursor: col-resize;
    position: relative;
    background-color: transparent;
    flex: 0 0 10px;
    touch-action: none;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s;
    z-index: 5;
    user-select: none;
    -webkit-user-select: none;
}

.editor-layout .resizer::before {
    content: "";
    width: 2px;
    height: 30px;
    background-color: #d0d0d0;
    border-radius: 2px;
    transition: all 0.2s;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.1);
}

.editor-layout .resizer::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
}

.editor-layout .resizer:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

.editor-layout .resizer:hover::before {
    background-color: #007ad9;
    height: 100%;
    width: 2px;
}

body.ia-resizing {
    cursor: col-resize !important;
    user-select: none !important;
}

body.ia-resizing * {
    user-select: none !important;
}

.editor-layout .panelChatGpt,
.editor-layout #idScrollDocsAnaliseIA,
.editor-layout .ia-layout-scrollable {
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
    min-width: 0;
    min-height: 0;
}

.editor-layout .panelChatGpt {
    height: 100%;
    max-height: none;
}

.editor-layout #idScrollDocsAnaliseIA {
    height: 100%;
    position: relative;
}

.editor-layout #idScrollDocsAnaliseIA #idDataDocsAnaliseIA,
.editor-layout #idScrollDocsAnaliseIA #idDataDocsAnaliseIA .ui-datalist-data,
.editor-layout #idScrollDocsAnaliseIA #idDataDocsAnaliseIA .ui-datalist-item,
.editor-layout #idScrollDocsAnaliseIA #idDataDocsAnaliseIA .ui-datalist-item .ui-datalist-content {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
}

.editor-layout #idScrollDocsAnaliseIA #idDataDocsAnaliseIA .ui-datalist-item .ui-datalist-content {
    overflow-wrap: anywhere;
    word-break: break-word;
}

.editor-layout #idScrollDocsAnaliseIA img {
    max-width: 100%;
    height: auto;
}

.editor-layout #idScrollDocsAnaliseIA table {
    max-width: 100%;
}

.editor-layout #idScrollDocsAnaliseIA pre {
    white-space: pre-wrap;
    word-break: break-word;
}

.editor-layout #idScrollDocsAnaliseIA::-webkit-scrollbar,
.editor-layout .ia-layout-scrollable::-webkit-scrollbar {
    width: 8px;
    max-width: 8px;
}

.editor-layout #idScrollDocsAnaliseIA::-webkit-scrollbar-thumb,
.editor-layout .ia-layout-scrollable::-webkit-scrollbar-thumb {
    background-color: #c1c1c1;
    border-radius: 10px;
}

.editor-layout #idScrollDocsAnaliseIA::-webkit-scrollbar-track,
.editor-layout .ia-layout-scrollable::-webkit-scrollbar-track {
    background-color: #fff;
    border: none;
}

@supports (-moz-appearance: none) {
    .editor-layout #idScrollDocsAnaliseIA,
    .editor-layout .ia-layout-scrollable {
        scrollbar-width: thin;
        scrollbar-color: #c1c1c1 #fff;
    }
}

.editor-layout .ck,
.editor-layout #contentEditorEdit,
.editor-layout .editor-container {
    height: 100%;
    box-sizing: border-box;
}

.editor-layout .coluna-docs.minimized,
.editor-layout .coluna-tools.minimized {
    flex-basis: 0 !important;
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

.editor-layout .coluna-docs.minimized #idScrollDocsAnaliseIA,
.editor-layout .coluna-tools.minimized .ia-layout-scrollable,
.editor-layout .coluna-docs.minimized .ia-layout-scrollable {
    display: none;
}

.editor-layout .resizer.resizer-hidden {
    display: none !important;
}

.editor-layout .resizer.resizer-collapsed {
    background-color: transparent;
}

.editor-layout .resizer.resizer-collapsed::before {
    height: 30px;
    background-color: #d0d0d0;
}

.editor-layout .resizer.resizer-collapsed:hover::before {
    background-color: #007ad9;
    height: 100%;
    width: 2px;
}

.editor-layout .btn-toggle-tools,
.editor-layout .btn-toggle-docs {
    flex: 0 0 24px;
    width: 24px;
    min-width: 24px;
    max-width: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    background: #fdfdfd;
    user-select: none;
    transition: all 0.3s ease;
    border-radius: 4px;
    margin: 0 2px;
    height: 50px;
    align-self: center;
    border: 1px solid #e0e0e0;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    z-index: 10;
}

.editor-layout .btn-toggle-tools:hover,
.editor-layout .btn-toggle-docs:hover {
    background: #f0f0f0;
    border-color: #ccc;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
}

.editor-layout .btn-toggle-tools i,
.editor-layout .btn-toggle-docs i {
    font-size: 14px;
    color: #888;
    transition: all 0.3s ease;
}

.editor-layout .btn-toggle-tools:hover i,
.editor-layout .btn-toggle-docs:hover i {
    color: #007ad9;
    transform: scale(1.1);
}

.editor-layout .btn-toggle-tools.minimized-btn,
.editor-layout .btn-toggle-docs.minimized-btn {
    background: #f9f9f9;
    border-color: #d1d1d1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.editor-layout-chat-documento {
    width: 100%;
    height: 91vh;
    min-height: 91vh;
    padding: 0;
    border-top: none;
    background: #eef2f6;
    border-radius: 12px;
}

.editor-layout-chat-documento .coluna {
    padding: 0;
}

.editor-layout-chat-documento .coluna-tools {
    flex-basis: 280px;
}

.editor-layout-chat-documento .coluna-editor {
    min-width: 360px;
}

.editor-layout-chat-documento .coluna-docs {
    flex-basis: 360px;
}

.chat-input-wrap {
    position: relative;
}

.chat-input-wrap .btn-send-chat {
    position: absolute;
    right: 8px;
    bottom: 8px;
    z-index: 1300;
}

.redee-ia-panel {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border: 1px solid #dfe5ec;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
}

.redee-ia-panel__header {
    display: grid;
    gap: 6px;
    padding: 16px 18px 14px;
    border-bottom: 1px solid #edf1f5;
    background: #fff;
}

.redee-ia-panel__header--chat {
    padding-bottom: 16px;
}

.redee-ia-panel__header--side {
    padding-bottom: 12px;
}

.redee-ia-panel__header-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.redee-ia-panel__eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #7a8797;
}

.redee-ia-panel__title {
    font-size: 16px;
    font-weight: 600;
    color: #243447;
    word-break: break-word;
}

.redee-ia-panel__subtitle {
    font-size: 12px;
    color: #7a8797;
    line-height: 1.5;
}

.redee-ia-panel__body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.redee-ia-panel__step-title {
    position: static;
    top: auto;
    left: auto;
    transform: none;
    margin: 0 auto;
    width: fit-content;
    padding: 0;
}

.redee-ia-back-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    min-width: 32px;
    border-radius: 50%;
    color: #6b7785 !important;
    text-decoration: none !important;
    border: 1px solid #dfe5ec;
    transition: all 0.2s ease;
}

.redee-ia-back-link:hover {
    color: #337ab7 !important;
    border-color: #bcd5f1;
    background: #f5f9ff;
}

.redee-ia-analysis-list {
    padding: 14px;
    display: grid;
    gap: 10px;
}

.redee-ia-analysis-item {
    align-items: flex-start;
    gap: 10px;
    min-height: 0;
    padding: 12px;
}

.redee-ia-analysis-item__main {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
    color: inherit !important;
    text-decoration: none !important;
}

.redee-ia-analysis-item__content {
    display: grid;
    gap: 4px;
    min-width: 0;
    flex: 1 1 auto;
}

.redee-ia-analysis-item__name {
    font-weight: 600;
    color: #263547;
    word-break: break-word;
}

.redee-ia-analysis-item__meta {
    font-size: 12px;
    color: #7a8797;
}

.redee-ia-analysis-item--selected {
    background-color: #eef6ff !important;
    border-color: #b9d5ff !important;
    box-shadow: 0 0 0 1px rgba(51, 122, 183, 0.18), 0 8px 18px rgba(20, 111, 215, 0.12);
}

.redee-ia-analysis-item--selected .redee-ia-analysis-item__name {
    color: #1e5e98;
}

.redee-ia-analysis-item__delete {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    min-width: 30px;
    border-radius: 50%;
    color: #8b95a2 !important;
    text-decoration: none !important;
    transition: all 0.2s ease;
}

.redee-ia-analysis-item__delete:hover {
    background: #f5f7fa;
    color: #c4543d !important;
}

.editor-layout-chat-documento .coluna-tools {
    flex: 0 0 280px;
}

.document-grid-item-documento.analiseDocItemSelected {
    background-color: #eef6ff !important;
    border-color: #b9d5ff !important;
    box-shadow: 0 0 0 1px rgba(51, 122, 183, 0.18), 0 8px 18px rgba(20, 111, 215, 0.12);
}

#idScrollDocPainelAnalise::-webkit-scrollbar {
    display: none !important;
}

@supports (-moz-appearance: none) {
    #idScrollDocPainelAnalise {
        scrollbar-width: none;
    }
}

.redee-ia-history-datagrid .ui-datagrid-content {
    background: transparent !important;
    border: none !important;
    padding: 14px 14px 4px;
}

.redee-ia-history-datagrid .ui-grid-row {
    margin: 0;
}

.redee-ia-history-datagrid .ui-datagrid-column {
    width: 100%;
    padding: 0 0 10px !important;
}

.redee-ia-history-datagrid .document-grid-item-documento {
    align-items: stretch;
    max-height: none;
}

.redee-ia-history-datagrid .document-grid-item-documento:hover {
    background-color: #f7faff !important;
    border-color: #d3e2f2 !important;
    color: #292B2C !important;
}

.redee-ia-history-datagrid .document-grid-item-documento.analiseDocItemSelected:hover {
    background-color: #eef6ff !important;
    border-color: #b9d5ff !important;
    color: #292B2C !important;
}

.redee-ia-analysis-card {
    position: relative;
    display: block;
    padding: 12px 14px;
}

.redee-ia-analysis-card__link {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-width: 0;
    padding-right: 40px;
    color: inherit !important;
    text-decoration: none !important;
}

.redee-ia-analysis-card__name {
    display: block !important;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    line-height: 1.35;
    padding-right: 0 !important;
}

.redee-ia-analysis-card .document-grid-icon2 {
    flex: 0 0 auto;
}

.redee-ia-analysis-card__delete {
    position: absolute !important;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

.redee-ia-analysis-card:hover .redee-ia-analysis-card__delete,
.redee-ia-analysis-card:focus-within .redee-ia-analysis-card__delete {
    opacity: 1;
    pointer-events: auto;
}

.redee-ia-history-datagrid .btnExcluirAnaliseDoc {
    display: flex !important;
}

.redee-ia-chat-panel {
    position: relative;
    container-type: inline-size;
    --chat-input-pb: 10px;
    background: var(--chat-bg, #ffffff);
    justify-content: center;
}

/* Uma família só para o chat inteiro: conversa, campo e controles. O tema declara a família em
   "body .ui-widget", que alcança quase todo componente do PrimeFaces, então os seletores daqui
   precisam ser mais fortes do que aquele. Os ícones ficam de fora: a fonte deles é o glifo. */
body .redee-ia-chat-panel,
body .redee-ia-chat-panel .ui-widget,
body .redee-ia-chat-panel .ui-inputfield,
body .redee-ia-chat-panel .ui-button,
body .redee-ia-chat-panel input,
body .redee-ia-chat-panel textarea {
    font-family: Helvetica, Arial, sans-serif;
}

/* Padding no elemento que rola (não no wrapper): scrollbar rente à borda e na altura toda, como no mockup. */
.redee-ia-chat-panel .panelChatGpt {
    padding: 26px 24px 8px;
    border: none;
    background: transparent;
    scrollbar-gutter: stable both-edges;
}
/* O tema avalon pinta .ui-widget-content (miolo do dataList) de branco com borda. */
.redee-ia-chat-panel .panelChatGpt .ui-widget-content {
    background: transparent;
    border: none;
}

/* Corpo do chat proporcional à largura do painel: quanto mais espaço, maior a leitura.
   A variável nasce nos filhos porque cqw consulta o container ancestral, nunca o próprio. */
.redee-ia-chat-panel .chat-scroll,
.redee-ia-chat-panel .chat-saudacao-tela,
.redee-ia-chat-panel .chat-perguntas-dock,
.redee-ia-chat-panel .chat-doc-painel,
.redee-ia-chat-panel .chat-input-container {
    --chat-fs: clamp(16px, 1.8cqw, 20px);
}

/* Input em coluna: a caixa e a barra de opções, ambas no eixo da conversa. O gap tem que ser
   zero: qualquer folga aqui desfaz a sobreposição que enfia a barra atrás da caixa. */
.redee-ia-chat-panel .chat-input-container {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 0 0 auto;
    gap: 0;
    padding: 0 16px var(--chat-input-pb, 14px);
}

/* Anexos do chat: wrapper sempre renderizado (alvo de update) sem box próprio. */
.redee-ia-chat-panel .chat-anexos-wrap {
    display: contents;
}

/* A faixa ancora as setas, que ficam fora do elemento que rola. */
.redee-ia-chat-panel .chat-anexos-faixa {
    position: relative;
    display: flex;
    min-width: 0;
}

/* O centro vem medido do card, e não da faixa: a barra de rolagem entra na altura dela e desceria
   as setas. Sem a medida (faixa vazia), o meio da faixa serve. */
.redee-ia-chat-panel .chat-anexos-nav {
    position: absolute;
    top: var(--faixa-centro, 50%);
    transform: translateY(-50%);
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #dbe3ee;
    border-radius: 50%;
    background: rgba(255, 255, 255, .94);
    color: #667789;
    cursor: pointer;
    opacity: 0;
    visibility: hidden;
    transition: opacity .16s, visibility .16s, background .16s, border-color .16s;
    box-shadow: 0 1px 5px rgba(20, 35, 50, .14);
}

.redee-ia-chat-panel .chat-anexos-nav.show {
    opacity: 1;
    visibility: visible;
}

.redee-ia-chat-panel .chat-anexos-nav:hover {
    background: #ffffff;
    border-color: #b7d4ef;
    color: #337ab7;
}

.redee-ia-chat-panel .chat-anexos-nav svg {
    display: block;
    width: calc(var(--chat-fs, 16px) * 1.6);
    height: calc(var(--chat-fs, 16px) * 1.6);
}

.redee-ia-chat-panel .chat-anexos-nav-esq svg {
    transform: scaleX(-1);
}

.redee-ia-chat-panel .chat-anexos-nav-esq {
    left: 2px;
}

.redee-ia-chat-panel .chat-anexos-nav-dir {
    right: 2px;
}

.redee-ia-chat-panel .chat-anexos {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: nowrap;
    min-width: 0;
    gap: 6px;
    overflow-x: auto;
    padding-bottom: 3px;
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
}

/* O hover é o da faixa inteira: as setas ficam por cima da área que rola, mas são irmãs dela, e
   com o cursor numa delas a barra sumiria justo enquanto o usuário rola. */
.redee-ia-chat-panel .chat-anexos-faixa:hover .chat-anexos {
    scrollbar-color: #cbd5e1 transparent;
}

.redee-ia-chat-panel .chat-anexos::-webkit-scrollbar {
    height: 6px;
}

.redee-ia-chat-panel .chat-anexos::-webkit-scrollbar-thumb {
    background: transparent;
    border-radius: 999px;
}

.redee-ia-chat-panel .chat-anexos-faixa:hover .chat-anexos::-webkit-scrollbar-thumb {
    background: #cbd5e1;
}

/* Pill que agrupa os toggles de extração do anexo. */
.redee-ia-chat-panel .chat-anexo-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 5px;
    border: 1px solid #dbe3ee;
    border-radius: 999px;
    background: #fff;
}

.redee-ia-chat-panel .chat-anexo-chip .ui-state-disabled.toggle-circle {
    opacity: .45;
    cursor: not-allowed;
}

/* Toggles de extração dentro do card: o rótulo do OCR é texto, então vem menor que o glifo. */
.redee-ia-chat-panel .chat-anexo-chip .toggle-circle {
    width: 36px;
    height: 36px;
    font-size: 11px;
    font-weight: 700;
    flex: 0 0 auto;
}

.redee-ia-chat-panel .chat-anexo-chip .toggle-circle .fa {
    font-size: 16px;
}

/* O anexo pendente é o mesmo card que ele vira na conversa depois de enviado; aqui ele ainda
   carrega as opções de extração, e o cartão inteiro não é clicável. As duas classes no seletor
   desempatam com a regra do card, que vem depois neste arquivo. */
.redee-ia-chat-panel .chat-msg-card.chat-anexo-chip {
    flex: 0 0 auto;
    cursor: default;
}

.redee-ia-chat-panel .chat-msg-card.chat-anexo-chip:hover {
    border-color: #e2e8f0;
    box-shadow: none;
}

.redee-ia-chat-panel .chat-anexo-acoes {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 4px;
}

/* Nome curto no pendente: o card ainda carrega as opções de extração, e o nome inteiro as empurraria
   para fora. As duas classes desempatam com a regra do card, que vem depois neste arquivo. */
.redee-ia-chat-panel .chat-msg-card.chat-anexo-chip .chat-anexo-nome {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.redee-ia-chat-panel .chat-anexo-remover {
    display: inline-flex;
    color: #94a3b8;
}

.redee-ia-chat-panel .chat-anexo-remover:hover {
    color: #dc2626;
}

/* Durante o streaming da resposta: trava anexar, toggles de extração e remover, para não mexer
   nos documentos no meio do envio (um anexo no meio entraria no turno errado). */
.redee-ia-chat-panel.chat-ia-streaming .chat-btn-anexar,
.redee-ia-chat-panel.chat-ia-streaming .chat-anexo-chip .toggle-circle,
.redee-ia-chat-panel.chat-ia-streaming .chat-anexo-remover {
    pointer-events: none;
    opacity: .5;
}

/* O p:fileUpload fica só pelo input de arquivo: quem aparece na barra é a pílula de Anexar,
   que abre esse input. */
.redee-ia-chat-panel .chat-anexo-upload {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
    background: transparent !important;
    border: none !important;
    box-shadow: none;
}

.redee-ia-chat-panel .chat-anexo-upload .ui-fileupload-content {
    display: none;
}

.redee-ia-chat-panel .chat-anexo-upload .ui-fileupload-buttonbar {
    width: auto;
    background: transparent;
    border: none;
    padding: 0;
}

.redee-ia-chat-panel .chat-counter-row .barraOpcaoBotao {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    min-height: 36px;
    margin: 0;
    padding: 7px 10px !important;
    border: 1px solid transparent !important;
    border-radius: 10px !important;
    background: transparent !important;
    color: var(--barra-opcao-text-color) !important;
    /* Ações do input na fonte da interface, como os painéis do chat; a serifada é da conversa. */
    font-family: inherit;
    font-size: 0.8rem;
    box-shadow: none;
    text-decoration: none !important;
}

.redee-ia-chat-panel .chat-counter-row .barraOpcaoBotao:hover {
    background: #eef3f8 !important;
    border-color: transparent !important;
}

/* Selecionado (pasta escolhida): mesmo verde do Criar com IA, com a força que a regra branca
   acima exige. */
.redee-ia-chat-panel .chat-counter-row .barraOpcaoBotao.is-selected {
    background: #e9f8ef !important;
    border-color: #7cc493 !important;
}

.redee-ia-chat-panel .chat-counter-row .barraOpcaoBotao .fa,
.redee-ia-chat-panel .chat-counter-row .barraOpcaoBotao .pi {
    font-size: 0.85rem;
}

/* Overlay do arrastar-e-soltar: aparece via classe no painel durante o drag de arquivos;
   pointer-events none para não interceptar o drop, que é do widget de upload. */
.redee-ia-chat-panel .chat-drop-overlay {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 30;
    background: rgba(249, 251, 253, .88);
    pointer-events: none;
}

.redee-ia-chat-panel.chat-drop-ativo .chat-drop-overlay {
    display: flex;
    align-items: center;
    justify-content: center;
}

.redee-ia-chat-panel .chat-drop-box {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 18px 26px;
    border: 2px dashed #337ab7;
    border-radius: 14px;
    background: #ffffff;
    color: #337ab7;
    font-size: 15px;
    font-weight: 600;
    box-shadow: 0 8px 28px rgba(20, 35, 50, .12);
}

.redee-ia-chat-panel .chat-drop-box .fa {
    font-size: 18px;
}

/* Linha de baixo da caixa: ações à esquerda, contador e enviar à direita. */
.redee-ia-chat-panel .chat-counter-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 2px 2px 0 4px;
    --barra-opcao-text-color: #667789;
}

.redee-ia-chat-panel .chat-counter-row .chat-input-counter {
    margin-left: auto;
}

.redee-ia-chat-panel .chat-docs-link-wrap {
    display: contents;
}

/* Estado da conversa, não ação: fundo tonal para não disputar com os botões brancos ao lado. */
.redee-ia-chat-panel .chat-docs-link {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    cursor: pointer;
    font-family: inherit;
    font-size: 0.8rem;
    line-height: 1;
    color: #667789;
    transition: background .16s, border-color .16s;
}

.redee-ia-chat-panel .chat-docs-link:hover {
    background: #eef3f8;
    border-color: transparent;
}

.redee-ia-chat-panel .chat-docs-link .fa {
    font-size: 0.85rem;
}

/* Cards read-only dos anexos na bolha do usuário (registro do turno; clique abre o diálogo). */
.redee-ia-chat-panel .chat-msg-anexos {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 8px;
}

.redee-ia-chat-panel .chat-msg-card {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 6px 10px;
    background: #ffffff;
    border: 1px solid #e2e8f0;
    border-radius: 10px;
    cursor: pointer;
    text-align: left;
    transition: border-color .16s, box-shadow .16s;
}

.redee-ia-chat-panel .chat-msg-card:hover {
    border-color: #93c5fd;
    box-shadow: 0 1px 6px rgba(51, 122, 183, .14);
}

/* Ícones de tipo de documento (glifo solto colorido, sem caixa). */
.chat-doc-ic {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: calc(var(--chat-fs, 16px) * 1.13);
    line-height: 1.1;
    color: #3a8f5c;
}

/* Glifo e cor por tipo de anexo, num lugar só. O padrão acima é o de imagem, então tipo
   desconhecido continua exibindo o ícone de imagem. --fa-style 400 pede a variante de contorno. */
.chat-doc-ic::before { content: "\f1c5"; }

.chat-doc-ic-pdf { color: #cf4c43; --fa-style: 400; }
.chat-doc-ic-pdf::before { content: "\f1c1"; }

.chat-doc-ic-docx { color: #2b579a; --fa-style: 400; }
.chat-doc-ic-docx::before { content: "\f1c2"; }


.chat-doc-ic-img { color: #3a8f5c; }

.chat-doc-ic-audio { color: #7e57c2; --fa-style: 400; }
.chat-doc-ic-audio::before { content: "\f1c7"; }

.chat-doc-ic-video { color: #d97706; --fa-style: 400; }
.chat-doc-ic-video::before { content: "\f1c8"; }

.chat-doc-ic-txt { color: #4d5b68; --fa-style: 400; }
.chat-doc-ic-txt::before { content: "\f15c"; }

.chat-doc-ic-mais { color: #4d5b68; --fa-style: 400; }
.chat-doc-ic-mais::before { content: "\f022"; }

.redee-ia-chat-panel .chat-msg-card-tx {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.redee-ia-chat-panel .chat-msg-card-nome {
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: calc(var(--chat-fs, 16px) * 0.81);
    color: #334155;
}

.redee-ia-chat-panel .chat-msg-card-meta {
    font-size: calc(var(--chat-fs, 16px) * 0.69);
    color: #8a99a8;
    white-space: nowrap;
}

/* Formulário de perguntas do agente (ask_user): uma pergunta por vez. O formulário ativo é
   ancorado no dock, acima do input de prompt; os de turnos antigos ficam no histórico, inertes. */
.redee-ia-chat-panel .chat-perguntas-dock {
    padding: 0 16px;
}

.redee-ia-chat-panel .chat-perguntas-dock:empty,
.redee-ia-chat-panel .chat-perguntas:empty,
.redee-ia-chat-panel .chat-perguntas-dock-oculto {
    display: none;
}

/* O formulário abre por cima da conversa, como a leitura dos anexos: o dock não tem altura, e o
   formulário cresce para cima a partir do campo, sem encolher o chat. */
.redee-ia-chat-panel .chat-perguntas-dock { position: relative; height: 0; z-index: 6; }
.redee-ia-chat-panel .chat-perguntas-dock > .chat-perguntas { position: absolute; left: 16px; right: 16px; bottom: 0; width: auto; }
.redee-ia-chat-panel .chat-perguntas-dock .chat-perguntas {
    margin-bottom: 10px;
    box-shadow: 0 6px 18px rgba(42, 63, 84, .08);
}

.redee-ia-chat-panel .chat-perguntas {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin: 10px auto 0;
    padding: 16px 18px 14px;
    background: #fff;
    border: 1px solid #d9e3ec;
    border-radius: 10px;
    max-width: 560px;
    width: 100%;
}

.redee-ia-chat-panel .chat-perguntas-topo {
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Trilho de progresso: um segmento por pergunta. */
.redee-ia-chat-panel .chat-perguntas-trilho {
    display: flex;
    gap: 5px;
    flex: 1;
}

.redee-ia-chat-panel .chat-seg {
    height: 6px;
    flex: 1;
    border: none;
    border-radius: 3px;
    padding: 0;
    background: #e6ecf3;
    cursor: pointer;
    transition: background .15s;
}

.redee-ia-chat-panel .chat-seg-respondida {
    background: #337ab7;
}

.redee-ia-chat-panel .chat-seg-pulada {
    background: repeating-linear-gradient(135deg, #c9d6e2 0 3px, #eef3f8 3px 6px);
}

.redee-ia-chat-panel .chat-seg-atual {
    background: #8fb8dd;
}

.redee-ia-chat-panel .chat-seg:focus {
    outline: none;
}

.redee-ia-chat-panel .chat-seg:focus-visible {
    outline: 2px solid #2b6a9e;
    outline-offset: 2px;
}

.redee-ia-chat-panel .chat-perguntas-contador {
    font-size: calc(var(--chat-fs, 16px) * 0.75);
    color: #4d5b68;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* Navegação do trilho: .chat-btn quadrado e sem borda. */
.redee-ia-chat-panel .chat-btn.chat-perguntas-nav {
    width: 26px;
    height: 26px;
    padding: 0;
    justify-content: center;
    border: none;
    border-radius: 7px;
    font-size: calc(var(--chat-fs, 16px) * 0.81);
}

.redee-ia-chat-panel .chat-btn.chat-perguntas-nav:disabled {
    opacity: .3;
    cursor: default;
    background: transparent;
}

.redee-ia-chat-panel .chat-etapa {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

/* Corpo rolável da etapa: altura máxima única em todas as perguntas e na revisão, para o
   cartão não mudar de tamanho entre os passos; título e rodapé ficam fora do scroll. */
.redee-ia-chat-panel .chat-etapa-corpo {
    max-height: 320px;
    overflow-y: auto;
    padding-right: 4px;
}

@media (prefers-reduced-motion: no-preference) {
    .redee-ia-chat-panel .chat-etapa-entrando {
        animation: chatEtapaEntrar .18s ease;
    }

    @keyframes chatEtapaEntrar {
        from { opacity: 0; transform: translateX(8px); }
        to { opacity: 1; transform: none; }
    }
}

/* A mesma serifa da voz do bot, sem tocar a regra do .chat-bot-message: ela é hook de
   customização por cliente (ver coder.xhtml) e a especificidade tem de ficar como está. */
.redee-ia-chat-panel .chat-pergunta-titulo {
    font-family: inherit;
    font-size: var(--chat-fs, 16px);
    font-weight: normal;
    line-height: 1.5;
    color: #2a3f54;
    margin: 0;
}

.redee-ia-chat-panel .chat-pergunta-obrig {
    color: #d9534f;
    margin-left: 3px;
}

.redee-ia-chat-panel .chat-pergunta-ajuda {
    font-size: calc(var(--chat-fs, 16px) * 0.8);
    color: #8a97a3;
    line-height: 1.5;
    margin: -6px 0 0;
}

.redee-ia-chat-panel .chat-opcoes {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.redee-ia-chat-panel .chat-opcao {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 10px 12px;
    background: #fff;
    border: 1px solid #d9e3ec;
    border-radius: 10px;
    cursor: pointer;
    text-align: left;
    /* A regra da família do chat não alcança button, e sem isto a opção sai na fonte do sistema. */
    font-family: inherit;
    font-size: calc(var(--chat-fs, 16px) * 0.8);
    color: #333;
    transition: border-color .15s, box-shadow .15s, background .15s;
}

.redee-ia-chat-panel .chat-opcao-marcada {
    border-color: #337ab7;
    background: #f4f8fc;
}

.redee-ia-chat-panel .chat-opcao-tecla {
    width: 22px;
    height: 22px;
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #eef3f8;
    border-radius: 6px;
    font-size: calc(var(--chat-fs, 16px) * 0.75);
    font-weight: 600;
    color: #4d5b68;
}

.redee-ia-chat-panel .chat-opcao-marcada .chat-opcao-tecla {
    background: #337ab7;
    color: #fff;
}

.redee-ia-chat-panel .chat-opcao-vai {
    margin-left: auto;
    color: #337ab7;
    font-size: var(--chat-fs, 16px);
    opacity: 0;
    transition: opacity .15s;
}

.redee-ia-chat-panel .chat-opcao-marcada .chat-opcao-vai,
.redee-ia-chat-panel .chat-opcao:hover .chat-opcao-vai {
    opacity: 1;
}

.redee-ia-chat-panel .chat-opcao-outra {
    display: none;
}

.redee-ia-chat-panel .chat-opcao-outra-aberta {
    display: block;
}

.redee-ia-chat-panel .chat-pergunta-campo {
    width: 100%;
    box-sizing: border-box;
    padding: 11px 13px;
    font-family: inherit;
    font-size: calc(var(--chat-fs, 16px) * 0.8);
    color: #333;
    background: #f9fbfd;
    border: 1px solid var(--chat-border, #d9e3ec);
    border-radius: var(--chat-radius, 12px);
    resize: vertical;
    max-height: 300px;
}

.redee-ia-chat-panel .chat-pergunta-campo:focus {
    outline: none;
    border-color: #337ab7;
    box-shadow: 0 0 0 3px rgba(51, 122, 183, .12);
}

.redee-ia-chat-panel .chat-perguntas-acoes {
    display: flex;
    align-items: center;
    gap: 12px;
}

.redee-ia-chat-panel .chat-perguntas-aviso {
    font-size: calc(var(--chat-fs, 16px) * 0.75);
    color: #d9534f;
    flex: 1;
    text-align: right;
}

/* Botão primário do stepper: repete .chat-btn no seletor para vencer o padrão de botão
   (que vem depois no arquivo) e segue as variáveis de tema do chat. */
.redee-ia-chat-panel .chat-btn.chat-perguntas-enviar {
    color: var(--chat-btn-color, #fff);
    background: var(--chat-accent, #337ab7);
    border-color: var(--chat-accent, #337ab7);
    border-radius: var(--chat-radius, 12px);
    font-weight: 600;
    transition: background .16s;
}

.redee-ia-chat-panel .chat-btn.chat-perguntas-enviar:hover {
    background: var(--chat-accent-hover, #2c5e8a);
    border-color: var(--chat-accent-hover, #2c5e8a);
}

/* Par pergunta/resposta: o mesmo componente na revisão do stepper e no balão do usuário
   (a cor da resposta herda do contexto: cartão branco ou balão cinza). */
.redee-ia-chat-panel .chat-par {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.redee-ia-chat-panel .chat-par-q {
    font-size: inherit;
    color: #8a97a3;
    line-height: 1.4;
}

.redee-ia-chat-panel .chat-par-r {
    font-size: inherit;
    color: inherit;
    line-height: 1.5;
    white-space: pre-line;
}

.redee-ia-chat-panel .chat-par-r-vazia {
    color: #a5b1bc;
    font-style: italic;
}

/* Revisão antes do envio: cada par vira um botão que volta à pergunta. */
.redee-ia-chat-panel .chat-revisao {
    display: flex;
    flex-direction: column;
    gap: 4px;
    color: #333;
}

.redee-ia-chat-panel .chat-rev-item {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: none;
    cursor: pointer;
    text-align: left;
    /* A regra da família do chat não alcança button, e os pares de dentro herdam daqui. */
    font-family: inherit;
    font-size: calc(var(--chat-fs, 16px) * 0.8);
}

.redee-ia-chat-panel .chat-rev-item:hover {
    border-color: #d9e3ec;
    background: #f9fbfd;
}

/* Pares no balão do usuário (envio do formulário) */
.redee-ia-chat-panel .chat-resp-pares {
    display: flex;
    flex-direction: column;
    gap: 9px;
    color: #4d5b68;
}

/* Indicador do modelo ativo na conversa (linha do contador do input) */
.redee-ia-chat-panel .chat-modelo-wrap {
    display: contents;
}

.redee-ia-chat-panel .chat-modelo-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid #cfe0f1;
    border-radius: 10px;
    background: #eef5fc;
    color: #337ab7;
    font-family: inherit;
    font-size: 0.8rem;
    line-height: 1;
    max-width: 320px;
    min-width: 0;
    /* Base zero: a quebra de linha é decidida pela largura de entrada de cada item, e com a do texto
       o chip mandava o botão de enviar para baixo antes de encolher. */
    flex: 1 1 0;
}

/* Chats com o botão de jurisprudência: linha única, só o chip do modelo encolhe, os demais itens têm o tamanho do próprio texto. */
/* A linha das ações quebra quando não cabe: proibir a quebra as fazia sair da caixa do input no
   chat estreitado pelo painel de anexos, e o wrap só age quando falta largura mesmo. */

.redee-ia-chat-panel .chat-modelo-chip-ico {
    flex: 0 0 auto;
    color: #6b7c8c;
}

.redee-ia-chat-panel .chat-modelo-chip-nome {
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.redee-ia-chat-panel .chat-modelo-chip-remover {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    margin-left: 4px;
    border-radius: 6px;
    color: #7d97ad;
    cursor: pointer;
}

.redee-ia-chat-panel .chat-modelo-chip-remover:hover {
    color: #a94442;
    background: #dde9f5;
}

.redee-ia-chat-panel .chat-juris-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: #6b7c8c;
    font-size: 0.8rem;
    line-height: 1;
    white-space: nowrap;
    text-decoration: none;
}

.redee-ia-chat-panel .chat-juris-chip:hover {
    text-decoration: none;
    background: #eef3f8;
}

.redee-ia-chat-panel .chat-juris-chip-ativo {
    color: #337ab7;
}

/* Diálogo "Documentos da conversa" (vive no body via appendTo, por isso o escopo
   é a classe do próprio dialog). */
body .chat-docs-dialog.ui-dialog {
    border-radius: 16px;
    overflow: hidden;
}

body .chat-docs-dialog .ui-dialog-content {
    padding: 12px 16px 16px;
    /* Mesmos limites da conversa; a régua do meio é a da janela, que é o que dimensiona o
       diálogo (25vw a 50vw), porque daqui o cqw não alcança o painel. */
    --chat-fs: clamp(16px, 1.2vw, 20px);
}

/* Scrollbars do diálogo no tom do chat: trilho transparente, polegar que "flutua". */
body .chat-docs-dialog .ui-dialog-content::-webkit-scrollbar,
body .chat-docs-dialog .ui-scrollpanel-native::-webkit-scrollbar {
    width: 12px;
    height: 12px;
    max-width: none;
    max-height: none;
    background: transparent;
    border: none;
}

body .chat-docs-dialog .ui-dialog-content::-webkit-scrollbar-thumb,
body .chat-docs-dialog .ui-scrollpanel-native::-webkit-scrollbar-thumb {
    background-color: #cdd9e4;
    border: 2px solid #ffffff;
    border-radius: 12px;
    min-height: 40px;
}

body .chat-docs-dialog .ui-dialog-content::-webkit-scrollbar-thumb:hover,
body .chat-docs-dialog .ui-scrollpanel-native::-webkit-scrollbar-thumb:hover {
    background-color: #b3c4d4;
}

body .chat-docs-dialog .ui-dialog-content::-webkit-scrollbar-track,
body .chat-docs-dialog .ui-scrollpanel-native::-webkit-scrollbar-track {
    background: transparent;
    border: none;
}

/* Botão "Remover" discreto, no tom de alerta padrão dos diálogos de IA. */
body .chat-docs-dialog .btnIaRemover {
    margin-left: auto;
    background: transparent !important;
    color: #a94442 !important;
    border: 1px solid #e4b9b8 !important;
    border-radius: 20px !important;
    padding: 8px !important;
    font-size: calc(var(--chat-fs, 16px) * 0.81);
    box-shadow: none !important;
    transition: all 0.3s ease;
}

body .chat-docs-dialog .btnIaRemover:hover {
    background: #fff5f5 !important;
    border-color: #d9a0a0 !important;
}

/* Caixa única do input: chips, campo, contador e enviar dentro de uma moldura só. Sem z-index
   próprio: dentro de um overlay modal, a trava de foco do PrimeFaces compara o z-index calculado
   do alvo com o da máscara e cancela o clique e as teclas quando o do alvo é menor. */
.redee-ia-chat-panel .chat-input-caixa {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 100%;
    max-width: 760px;
    min-width: 0;
    box-sizing: border-box;
    padding: 9px 9px 7px;
    border: 1px solid #c6d6e4;
    border-radius: 17px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow: 0 -10px 24px -16px rgba(31, 55, 82, .05), -10px 0 24px -18px rgba(31, 55, 82, .18), 10px 0 24px -18px rgba(31, 55, 82, .18);
    transition: border-color .3s ease, box-shadow .3s ease;
}

.redee-ia-chat-panel .chat-input-caixa:focus-within {
    border-color: #337ab7;
    box-shadow: 0 0 5px rgba(51, 122, 183, .4);
}

/* O campo não tem moldura própria: quem desenha a borda é a caixa em volta. */
.redee-ia-chat-panel textarea.promptIndexIa,
.redee-ia-chat-panel .promptIndexIa {
    width: 100% !important;
    min-height: 44px;
    height: 44px;
    max-height: none;
    overflow-y: hidden;
    resize: none;
    padding: 8px 6px !important;
    box-sizing: border-box;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent;
    box-shadow: none !important;
    font-family: inherit;
    font-size: calc(var(--chat-fs, 16px) * 0.8);
    line-height: 1.45;
    color: #333333;
    transition: height .18s ease;
}
/* Variante chat-prompt-3linhas: o prompt nasce e permanece com 3 linhas (85px = base 44 + 2 linhas
   de 20.3, a mesma conta do resize); o resize lê o min-height como base e não empilha as 2 extras. */
.redee-ia-chat-panel.chat-prompt-3linhas .promptIndexIa {
    min-height: 85px;
    height: 85px;
}

/* A moldura azul do foco é da caixa, não do campo. */
.redee-ia-chat-panel .promptIndexIa:focus,
.redee-ia-chat-panel .promptIndexIa.ui-state-focus {
    border: 0 !important;
    box-shadow: none !important;
    outline: none;
}
.redee-ia-chat-panel .promptIndexIa::-webkit-scrollbar {
    width: 12px;
    max-width: none;
    max-height: none;
    background: transparent;
    border: none;
}
.redee-ia-chat-panel .promptIndexIa::-webkit-scrollbar-thumb {
    background: #cdd9e4;
    border-radius: 12px;
    border: 2px solid #f9fbfd;
}
.redee-ia-chat-panel .promptIndexIa::-webkit-scrollbar-thumb:hover {
    background: #b3c4d4;
}
.redee-ia-chat-panel .promptIndexIa::-webkit-scrollbar-track {
    background: transparent;
}

.redee-ia-chat-panel .pi-sendBtn-chat {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 35px;
    min-width: 35px;
    height: 35px;
    padding: 0;
    border-radius: 50% !important;
}
.redee-ia-chat-panel .pi-sendBtn-chat.chat-send-busy {
    background: #7ba7cd !important;
    cursor: default;
}
.redee-ia-chat-panel .pi-sendBtn-chat.chat-send-busy .chat-ic-send {
    background-image: none;
    width: 18px;
    height: 18px;
    min-width: 18px;
    flex: 0 0 auto;
    margin: -9px 0 0 -9px;
    border: 2px solid rgba(255, 255, 255, .4);
    border-top-color: #ffffff;
    border-radius: 50%;
    box-sizing: border-box;
    animation: rotate-border .7s linear infinite;
}
/* Repetir a cor vence o !important do hover, que senão escureceria o botão apagado. */
.redee-ia-chat-panel .pi-sendBtn-chat:disabled:not(.chat-send-busy) {
    background: var(--chat-accent, #337ab7) !important;
    opacity: .45;
    cursor: default;
}
.redee-ia-chat-panel .pi-sendBtn-chat .chat-ic-send {
    display: inline-block;
    width: 18px;
    height: 18px;
    background: url("data:image/svg+xml,%3Csvg%20xmlns%3D%27http%3A//www.w3.org/2000/svg%27%20viewBox%3D%270%200%2024%2024%27%20fill%3D%27none%27%20stroke%3D%27white%27%20stroke-width%3D%272.2%27%20stroke-linecap%3D%27round%27%20stroke-linejoin%3D%27round%27%3E%3Cpath%20d%3D%27M12%2019V5M6%2011l6-6%206%206%27/%3E%3C/svg%3E") center / 18px 18px no-repeat;
}

/* Aviso sob o input, na fonte da interface. Só depois do primeiro turno: no chat em branco
   ele competiria com a saudação, e ainda não há resposta para conferir. */
.redee-ia-chat-panel .chat-aviso-ia {
    margin-top: 4px;
    font-family: inherit;
    font-size: 12px;
    line-height: 1.2;
    color: #8a99a8;
    text-align: center;
}

.redee-ia-chat-panel.chat-vazio .chat-aviso-ia {
    display: none;
}

/* Contador na mesma linha das ações do input: mesma fonte e mesmo tamanho das pílulas. */
.chat-input-counter {
    align-self: center;
    padding-right: 4px;
    font-family: inherit;
    font-size: 0.8rem;
    line-height: 1;
    color: #6b7c8c;
}

.chat-input-counter.is-near-limit {
    color: #a96911;
}

.chat-input-counter.is-limit-reached {
    color: #c4543d;
}

/* ===== Chat r:chatIa ===== */
/* Turno da IA: prosa em serifa, sem balão, sem nome por mensagem. O seletor longo vence o font-family "body .ui-widget" do tema avalon. */
.redee-ia-chat-panel .chat-bot-message,
.redee-ia-chat-panel .labelGPTchatAnalise .chat-bot-message {
    display: block;
    /* A serifada do navegador vale só aqui: é o que separa a fala da IA do resto do painel. */
    font-family: serif;
    font-size: calc(var(--chat-fs, 16px) * 0.94);
    line-height: 1.66;
    color: #1f2328;
}
.redee-ia-chat-panel .chat-bot-message strong {
    font-weight: 700;
    color: #243648;
}
.redee-ia-chat-panel .chat-bot-message p {
    margin: 0 0 12px;
}
.redee-ia-chat-panel .chat-bot-message p:last-child {
    margin-bottom: 0;
}

/* Padrão de botão reutilizável (citações, ações, copiar-fonte, ir-pro-fim). */
.redee-ia-chat-panel .chat-btn,
.chat-widget-header .chat-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    background: transparent;
    border: 1px solid #e6ecf3;
    border-radius: 8px;
    color: #4d5b68;
    font-size: 12.5px;
    cursor: pointer;
    transition: background .16s, border-color .16s, color .16s;
}
.redee-ia-chat-panel .chat-btn:hover,
.chat-widget-header .chat-btn:hover {
    background: #f2f5f9;
    border-color: #d9e3ec;
}

/* Citações (só Editar/Analisar): chips no padrão de botão. */
.redee-ia-chat-panel .chat-citacoes {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    margin-top: 14px;
}
.redee-ia-chat-panel .btn-paragrafo {
    width: fit-content;
    text-decoration: none;
}
.redee-ia-chat-panel .chat-cit-fonte {
    color: #6b7c8c;
}

/* Fontes: item de uma linha (índice fraco + título truncado). */
.redee-ia-chat-panel .fonte-item {
    display: flex;
    gap: 9px;
    align-items: baseline;
    width: fit-content;
    max-width: 100%;
    padding: 4px 0;
    text-decoration: none;
    color: #4d5b68;
    font-size: calc(var(--chat-fs, 16px) * 0.8);
}
.redee-ia-chat-panel .fonte-t a {
    color: inherit;
    text-decoration: none;
}
.redee-ia-chat-panel .fonte-t a:hover {
    color: #337ab7;
    text-decoration: underline;
}
.redee-ia-chat-panel .fonte-item::before {
    content: "\2022";
    flex: 0 0 auto;
    color: #6b7c8c;
    font-size: calc(var(--chat-fs, 16px) * 0.81);
    line-height: 1;
}
.redee-ia-chat-panel .fonte-t {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
/* Fonte com texto (jurisprudência/DJEN/busca): <details> nativo que só o "Ver" abre. */
.redee-ia-chat-panel .fonte-sum {
    cursor: default;
    list-style: none;
}
.redee-ia-chat-panel .fonte-sum::-webkit-details-marker {
    display: none;
}
.redee-ia-chat-panel .fonte-sum::marker {
    content: "";
}
.redee-ia-chat-panel .fonte-ver {
    cursor: pointer;
    flex: 0 0 auto;
    margin-left: 4px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 8px;
    border: 1px solid #e6ecf3;
    border-radius: 8px;
    color: #4d5b68;
    font-size: calc(var(--chat-fs, 16px) * 0.69);
    transition: background .16s, border-color .16s, color .16s;
}
.redee-ia-chat-panel .fonte-ver svg {
    width: 10px;
    height: 10px;
    transition: transform .2s;
}
.redee-ia-chat-panel .fonte-exp[open] .fonte-ver svg {
    transform: rotate(180deg);
}
.redee-ia-chat-panel .fonte-detalhe {
    margin: 2px 0 8px 22px;
    padding: 10px 12px;
    background: #ffffff;
    border: 1px solid #d9e3ec;
    border-radius: 8px;
}
.redee-ia-chat-panel .fonte-sub {
    margin: 0 0 8px;
    font-size: calc(var(--chat-fs, 16px) * 0.78);
    line-height: 1.5;
    color: #4d5b68;
}
.redee-ia-chat-panel .btn-copiar-fonte {
    padding: 5px 10px;
    font-size: calc(var(--chat-fs, 16px) * 0.75);
}

/* Botão "ir para o fim": flutua centralizado acima do input. */
.redee-ia-chat-panel .chat-scroll-down {
    position: absolute;
    left: 50%;
    top: -12px;
    transform: translate(-50%, -100%);
    white-space: nowrap;
    border-radius: 8px;
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(36, 54, 72, .10);
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s, visibility .18s, background .16s, border-color .16s;
}
.redee-ia-chat-panel .chat-scroll-down.show {
    opacity: 1;
    visibility: visible;
}
.redee-ia-chat-panel .chat-scroll-down:hover {
    background: #f2f5f9;
    border-color: #d9e3ec;
}
.redee-ia-chat-panel .chat-scroll-down svg {
    width: 14px;
    height: 14px;
}

/* Indicador "pensando" enquanto a resposta nao comeca a chegar. */
.redee-ia-chat-panel .chat-pensando {
    display: flex;
    align-items: center;
    gap: 9px;
    color: #4d5b68;
    font-size: calc(var(--chat-fs, 16px) * 0.81);
    font-family: inherit;
}

.redee-ia-chat-panel .chat-erro-stream {
    color: #b3261e;
    font-size: calc(var(--chat-fs, 16px) * 0.78);
    margin: 6px 0 0;
}
.redee-ia-chat-panel .chat-pensando-spin {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    border-radius: 50%;
    border: 2px solid #cdd9e4;
    border-top-color: #337ab7;
    display: inline-block;
    animation: rotate-border .7s linear infinite;
}

/* Tela cheia: conversa e input numa coluna central (estilo Claude). So limita a
   largura quando o painel e largo; nao afeta os chats em coluna estreita (Editar). */
.redee-ia-chat-panel .chat-scroll .ui-datalist-data {
    max-width: 760px;
    margin-left: auto;
    margin-right: auto;
}
/* Saudação de tela (chat novo): heading central que some na 1ª mensagem. O overflow é a garantia
   de que o texto não vaza quando a coluna da conversa encolhe: a caixa acompanha a coluna, e o
   título ficava até 275px à esquerda dela. */
.redee-ia-chat-panel .chat-saudacao-tela {
    display: none;
    text-align: center;
    padding: 8px 16px 30px;
    overflow: hidden;
}
.redee-ia-chat-panel.chat-vazio .chat-saudacao-tela {
    display: flex;
    align-items: center;
    justify-content: center;
}
.redee-ia-chat-panel .chat-saudacao-tela .tituloIndexIAPrompt {
    font-size: calc(var(--chat-fs, 16px) * 1.25);
    text-align: left;
}

/* A medida da logo é em em, e o font-size da imagem existe só para isso: assim ela acompanha
   o tamanho da saudação em cada tela, inclusive onde a tela sobrescreve esse tamanho. */
.redee-ia-chat-panel .chat-saudacao-logo {
    flex: none;
    align-self: center;
    font-size: calc(var(--chat-fs, 16px) * 1.25);
    width: 1.15em;
    height: auto;
    margin-right: .35em;
}

/* No widget a faixa espera a barra abrir: as animações correm no instante em que o painel nasce,
   e aí elas já teriam acabado quando alguém visse. */
.ui-sidebar .redee-ia-chat-panel .chat-saudacao-tela {
    visibility: hidden;
}

.ui-sidebar .redee-ia-chat-panel .chat-saudacao-tela.chat-saudacao-animar {
    visibility: visible;
}

.redee-ia-chat-panel .chat-saudacao-animar .chat-saudacao-logo {
    animation: 1s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards chatLogoPop;
}

/* A saudação sai de junto da logo, como o nome no topo: a digitação entrega as letras e o
   deslocamento entrega o movimento. */
.redee-ia-chat-panel .chat-saudacao-animar .chat-saudacao-titulo {
    animation: .8s ease-out forwards chatSaudacaoEntra;
}

@keyframes chatSaudacaoEntra {
    0% {
        opacity: 0;
        transform: translateX(-.6em);
    }

    100% {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Gêmeo do keyframe da logo do topo, que vive no estilo daquela página e não alcança aqui. */
@keyframes chatLogoPop {
    0% {
        opacity: 0;
        transform: scale(0) rotate(-180deg);
    }

    100% {
        opacity: 1;
        transform: scale(1) rotate(0deg);
    }
}


/* Scrollbar do chat no tom do mockup (trilho transparente, polegar que "flutua"), na grossura
   das demais telas do produto. */
.redee-ia-chat-panel .chat-etapa-corpo::-webkit-scrollbar,
.redee-ia-chat-panel .chat-doc-painel-corpo::-webkit-scrollbar,
.redee-ia-chat-panel .chat-anexos-bloco-lista::-webkit-scrollbar,
.redee-ia-chat-panel .panelChatGpt::-webkit-scrollbar {
    width: 12px;
    max-width: none;
    max-height: none;
    background: transparent;
    border: none;
}
.redee-ia-chat-panel .chat-etapa-corpo::-webkit-scrollbar-thumb,
.redee-ia-chat-panel .chat-doc-painel-corpo::-webkit-scrollbar-thumb,
.redee-ia-chat-panel .chat-anexos-bloco-lista::-webkit-scrollbar-thumb,
.redee-ia-chat-panel .panelChatGpt::-webkit-scrollbar-thumb {
    background-color: #cdd9e4;
    border: 2px solid #ffffff;
    border-radius: 12px;
    min-height: 40px;
}
.redee-ia-chat-panel .chat-etapa-corpo::-webkit-scrollbar-thumb:hover,
.redee-ia-chat-panel .chat-doc-painel-corpo::-webkit-scrollbar-thumb:hover,
.redee-ia-chat-panel .chat-anexos-bloco-lista::-webkit-scrollbar-thumb:hover,
.redee-ia-chat-panel .panelChatGpt::-webkit-scrollbar-thumb:hover {
    background-color: #b3c4d4;
}
.redee-ia-chat-panel .chat-etapa-corpo::-webkit-scrollbar-track,
.redee-ia-chat-panel .chat-doc-painel-corpo::-webkit-scrollbar-track,
.redee-ia-chat-panel .chat-anexos-bloco-lista::-webkit-scrollbar-track,
.redee-ia-chat-panel .panelChatGpt::-webkit-scrollbar-track {
    background: transparent;
}

/* No Gecko a largura só tem dois degraus, e o fino fica mais estreito que os 12px acima: sem
   declarar a largura, o scroll do chat sai na mesma grossura do resto do sistema, só com a cor
   própria. */
@supports (-moz-appearance: none) {
    .redee-ia-chat-panel .chat-etapa-corpo,
    .redee-ia-chat-panel .chat-doc-painel-corpo,
    .redee-ia-chat-panel .chat-anexos-bloco-lista,
    .redee-ia-chat-panel .panelChatGpt,
    .redee-ia-chat-panel .promptIndexIa,
    body .chat-docs-dialog .ui-dialog-content,
    body .chat-docs-dialog .ui-scrollpanel-native {
        scrollbar-color: #cdd9e4 transparent;
    }
}

.contextoAnaliseLista {
    padding: 16px;
}

.contextoAnaliseLista .jurisDialogResultadoLista {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
    min-width: 0;
}

.contextoAnaliseLista .contextoAnaliseResultadoLinhaContainer {
    position: relative;
}

.contextoAnaliseLista .jurisDialogResultadoLinha {
    border: 1px solid #d9e3ec;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 2px 8px rgba(15, 23, 42, 0.04);
    overflow: hidden;
}

.contextoAnaliseLista .contextoAnaliseResultadoLinhaContainer:has(.ui-chkbox-box.ui-state-active) .jurisDialogResultadoLinha,
.contextoAnaliseLista .contextoAnaliseResultadoLinhaContainer:has(input[type="checkbox"]:checked) .jurisDialogResultadoLinha {
    border-color: #337ab7;
    box-shadow: 0 0 0 3px rgba(51, 122, 183, 0.12);
}

.contextoAnaliseLista .jurisDialogResultadoLinhaResumo {
    list-style: none;
    cursor: pointer;
    padding: 14px 16px;
}

.contextoAnaliseLista .jurisDialogResultadoLinhaResumo::-webkit-details-marker {
    display: none;
}

.contextoAnaliseLista .contextoAnaliseResultadoLinhaContainer--selecionavel .jurisDialogResultadoLinhaResumo {
    padding-left: 48px;
}

.contextoAnaliseLista .contextoAnaliseSelecao {
    position: absolute;
    left: 16px;
    top: 15px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.contextoAnaliseLista .contextoAnaliseSelecao .ui-selectbooleancheckbox,
.contextoAnaliseLista .contextoAnaliseSelecao .ui-chkbox {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 0;
}

.contextoAnaliseLista .contextoAnaliseSelecao--locked {
    pointer-events: none;
}

.contextoAnaliseLista .contextoAnaliseSelecao .ui-chkbox-box {
    width: 18px !important;
    height: 18px !important;
    border-radius: 6px;
}

.contextoAnaliseLista .jurisDialogResultadoLinhaPrincipal {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.contextoAnaliseLista .jurisDialogResultadoLinhaIdentificacao {
    min-width: 152px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: #2f4f6e;
    font-weight: 600;
}

.contextoAnaliseLista .jurisDialogResultadoLinhaIdentificacao .pi {
    font-size: 1rem;
}

.contextoAnaliseLista .jurisDialogResultadoLinhaIdentificacao.contextoAnaliseLinhaTitulo {
    flex: 1;
    min-width: 0;
}

.contextoAnaliseLinhaTituloTexto {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contextoAnaliseLista .jurisDialogResultadoLinhaPreview {
    flex: 1;
    min-width: 0;
    color: #4d5b68;
    font-size: 0.92rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contextoAnaliseLista .jurisDialogResultadoLinhaAcoesResumo {
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    gap: 10px;
    margin-left: auto;
    white-space: nowrap;
}

.contextoAnaliseLista .jurisDialogResultadoLinhaAcao {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #337ab7;
    font-weight: 600;
    white-space: nowrap;
}

.contextoAnaliseLista .jurisDialogResultadoLinhaAcao .pi {
    transition: transform 0.2s ease;
}

.contextoAnaliseLista .jurisDialogResultadoLinha[open] .jurisDialogResultadoLinhaAcao .pi {
    transform: rotate(180deg);
}

.contextoAnaliseLista .jurisDialogResultadoDetalhes {
    display: grid;
    gap: 14px;
    padding: 0 16px 16px;
}

.contextoAnaliseMetaList {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.contextoAnaliseMetaBadge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.contextoAnaliseMetaBadge.contexto {
    background: #edf8f1;
    color: #2f6f4f;
}

.contextoAnaliseMetaBadge.principal {
    background: #eef2f7;
    color: #425466;
}

.contextoAnaliseMetaBadge.modelo {
    background: #eef4ff;
    color: #315f9d;
}

.contextoAnaliseMetaText {
    color: #4d5b68;
    font-size: 0.92rem;
}

.contextoAnaliseLista .jurisDialogResultadoTexto {
    color: #4d5b68;
    word-break: break-word;
    white-space: pre-wrap;
    text-align: justify;
    line-height: 1.65;
    padding-top: 12px;
    border-top: 1px solid #eef3f8;
}

.contextoAnaliseResultadoTexto {
    overflow: hidden;
}

.contextoAnaliseResultadoTexto .doc-viewer {
    max-width: 100%;
    overflow-x: auto;
}

.contextoAnaliseResultadoTexto img {
    max-width: 100%;
    height: auto;
}

.contextoAnaliseResultadoTexto iframe,
.contextoAnaliseResultadoTexto object,
.contextoAnaliseResultadoTexto embed {
    width: 100%;
    min-height: 560px;
    border: 0;
}

.redee-ia-context-list {
    padding: 16px;
    display: grid;
    gap: 16px;
}

.redee-ia-context-card {
    border: 1px solid #e6ebf1;
    border-radius: 12px;
    background: #f9fbfd;
    overflow: hidden;
}

.redee-ia-context-card__header {
    display: grid;
    gap: 8px;
    padding: 14px 16px;
    background: #fff;
    border-bottom: 1px solid #e6ebf1;
}

.redee-ia-context-card__badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: fit-content;
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.redee-ia-context-card__badge.contexto {
    background: #edf8f1;
    color: #2f6f4f;
}

.redee-ia-context-card__badge.modelo {
    background: #eef4ff;
    color: #315f9d;
}

.redee-ia-context-card__title {
    font-size: 15px;
    font-weight: 600;
    color: #25313f;
    word-break: break-word;
}

.redee-ia-context-card__meta {
    font-size: 12px;
    color: #7a8797;
    word-break: break-word;
}

.redee-ia-context-card__body {
    padding: 14px 16px 16px;
    background: #fff;
    overflow: hidden;
}

.redee-ia-context-card__body .doc-viewer {
    max-width: 100%;
    overflow-x: auto;
}

.redee-ia-context-card__body img {
    max-width: 100%;
    height: auto;
}

.redee-ia-context-empty {
    display: grid;
    place-items: center;
    gap: 10px;
    min-height: 220px;
    padding: 24px 18px;
    text-align: center;
    color: #8894a3;
}

.redee-ia-context-empty i {
    font-size: 26px;
    color: #c4ccd6;
}

@media (max-width: 1100px) {
    .editor-layout {
        height: auto;
        min-height: calc(100vh - 220px);
    }

    #colunaTools,
    .editor-layout .coluna-tools,
    .editor-layout .coluna-docs,
    .editor-layout .btn-toggle-tools,
    .editor-layout .btn-toggle-docs,
    .editor-layout .resizer {
        display: none !important;
    }

    #colunaEditor,
    .editor-layout .coluna-editor {
        min-width: 0;
        width: 100%;
    }

    .editor-layout-chat-documento {
        height: auto;
        min-height: calc(100vh - 220px);
    }

    .contextoAnaliseLista .jurisDialogResultadoLinhaPrincipal {
        flex-wrap: wrap;
        align-items: flex-start;
    }

    .contextoAnaliseLista .jurisDialogResultadoLinhaIdentificacao {
        min-width: 0;
    }

    .contextoAnaliseLista .jurisDialogResultadoLinhaAcoesResumo {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }
}

.doc-paragraph {
    margin: 0;
    padding: 2px 0;
    line-height: 1.5;
}

.highlight-doc {
    background-color: #ffeb3b;
    transition: background-color 0.5s ease-out;
}

.cited-doc {
    position: relative;
    background: #ddf2ff;
    padding: 10px;
    border-radius: 12px;
    box-shadow: rgba(99, 99, 99, 0.1) 0px 5px 8px 1px;
    overflow: hidden;
}


.cited-doc::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 2px;
    border-radius: inherit;

    background: linear-gradient(
            45deg,
            #2634f5,
            #753ef8,
            #00a2ff,
            #4d72e0
    );
    background-size: 200% 200%;

    -webkit-mask: linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: animate-border 5s linear infinite;
}

@keyframes animate-border {
    0% {
        background-position: 0% 50%;
    }
    100% {
        background-position: 200% 50%;
    }
}

.refIA {
    padding: 3px;
    background: #00000014;
    border-radius: 5px;
    cursor: pointer;
}

.mode-toggle-group {
    padding: 0.3rem 0.35rem;
    background-color: #f8fafc;
    display: flex;
    align-items: center;
    gap: 0.35rem;
    border-radius: 8px;
    margin-bottom: 5px;
    border: 1px solid #eef2f7;
}

.toggle-button {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    padding: 0.3rem 0.45rem;
    border: 1px solid #e5e9f0;
    border-radius: 0.45rem;
    background-color: #f9fafb;
    font-size: 0.7rem;
    font-weight: 500;
    color: #7a8699;
    transition: color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
    background-color 0.2s cubic-bezier(0.4, 0, 0.2, 1),
    border-color 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    text-decoration: none !important;
    cursor: pointer;
    width: auto;
    box-shadow: none;
}

.toggle-button:hover {
    border-color: #b6c3d0;
    background-color: #f2f6fa;
    color: #4f6f8a;
}

.toggle-button.selected {
    border-color: #9fb3c7;
    background-color: #edf3f9;
    color: #35618a;
    font-weight: 600;
    box-shadow: none;
}

.toggle-button i {
    font-size: 0.8rem;
    opacity: 0.6;
}

.toggle-button.selected i {
    opacity: 0.85;
}

.toggle-button span {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 120px;
}

@media (max-width: 600px) {
    .toggle-button span {
        display: none;
    }

    .toggle-button {
        padding: 0.5rem;
    }
}

.status-badge {
    display: inline-flex;
    align-items: center;
    padding: 6px 15px;
    border-radius: 50px;
    font-weight: 600;
    font-size: 13px;
    text-decoration: none !important;
    transition: all 0.3s ease;
    border: 1px solid transparent;
    cursor: pointer;
    margin-right: 8px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.status-badge i {
    margin-right: 8px;
    font-size: 14px;
}

.status-badge:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.badge-solicitar {
    background-color: #f8f9fa;
    color: #6c757d;
    border-color: #dee2e6;
}

.badge-solicitar:hover {
    background-color: #e9ecef;
    color: #495057;
    border-color: #adb5bd;
}

/* CTA de contratacao do Protocolo Eletronico.
   Classe propria, e NAO um ajuste em .badge-solicitar: aquela e compartilhada
   com "Solicitar Revisao" (redator/index.xhtml) e com o selo inerte de quem nao
   e administrador. Deixar as tres chamativas anularia o destaque que este botao
   precisa ter - e o unico dos tres que abre uma contratacao.
   Azul do sistema (#337ab7, a mesma base do wizard), so mais saturado. */
.badge-contratar {
    background: linear-gradient(135deg, #3d94dd 0%, #2a6ba3 100%);
    color: #ffffff !important;
    border-color: #26608f;
    font-weight: 700;
    box-shadow: 0 3px 10px rgba(51, 122, 183, 0.40);
    animation: pulsoContratar 2.4s ease-in-out infinite;
}

.badge-contratar i {
    color: #ffffff;
}

.badge-contratar:hover {
    background: linear-gradient(135deg, #4aa3ee 0%, #2f78b5 100%);
    color: #ffffff !important;
    border-color: #2a6ba3;
    box-shadow: 0 6px 18px rgba(51, 122, 183, 0.50);
    /* Sob o cursor o pulso para: a atencao ja foi capturada e o movimento
       continuado atrapalha a leitura do tooltip. */
    animation: none;
}

@keyframes pulsoContratar {
    0%, 100% { box-shadow: 0 3px 10px rgba(51, 122, 183, 0.40); }
    50%      { box-shadow: 0 3px 20px rgba(51, 122, 183, 0.75); }
}

/* Quem configurou "reduzir movimento" no sistema operacional recebe o botao
   destacado, mas sem o pulso. */
@media (prefers-reduced-motion: reduce) {
    .badge-contratar {
        animation: none;
    }
}

.badge-aguardando {
    background-color: #fff7e6;
    color: #d46b08;
    border-color: #ffd591;
    cursor: default !important;
}

.badge-aguardando:hover {
    transform: none;
}

.badge-acao {
    background-color: #e6f7ff;
    color: #007bff;
    border-color: #91d5ff;
}

.badge-acao:hover {
    background-color: #007bff;
    color: #fff;
    border-color: #0056b3;
}

.badge-erro {
    background-color: #fff1f0;
    color: #cf1322;
    border-color: #ffa39e;
}

.badge-erro:hover {
    background-color: #ff4d4f;
    color: #fff;
    border-color: #d9363e;
}

.badge-sucesso {
    background-color: #f6ffed;
    color: #389e0d;
    border-color: #b7eb8f;
    cursor: default;
}

.badge-sucesso.clickable:hover {
    background-color: #52c41a;
    color: #fff;
    cursor: pointer;
}

.pi-btn-success {
    width: 100%;
    border-radius: 50%;
    background: #fff !important;
    color: #28a745 !important;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 12px;
    border: none !important;
    transition: transform 0.2s;
}

.pi-btn-success:hover {
    transform: scale(1.03);
}

.pi-btn-danger {
    width: 100%;
    border-radius: 50%;
    background: #fff !important;
    color: #d9534f !important;
    box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 12px;
    border: none !important;
    transition: transform 0.2s;
}

.pi-btn-danger:hover {
    transform: scale(1.03);
}

#comboRevisoresEdicao_label {
    background: transparent !important;
}

.badge-aguardando-listagem {
    background-color: #fff7e6;
    color: #d46b08;
    border-color: #ffd591;
}

.badge-erro-listagem {
    background-color: #fff1f0;
    color: #cf1322;
    border-color: #ffa39e;
}

.badge-sucesso-listagem {
    background-color: #f6ffed;
    color: #389e0d;
    border-color: #b7eb8f;
}

.badge-neutro-listagem {
    background-color: #f8f9fa;
    color: #6c757d;
    border-color: #dee2e6;
}

/* Pill de status na listagem de documentos (texto + icone) */
.status-pill-listagem {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 2px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.5;
    border: 1px solid transparent;
    white-space: nowrap;
    text-decoration: none !important;
    cursor: default;
}

.status-pill-listagem i {
    margin: 0 !important;
    font-size: 11px;
    line-height: 1;
}

/* Coluna "Nome" da lista de modelos: nunca colapsar/sumir em telas estreitas */
.modelo-col-nome,
.documento-col-nome {
    min-width: 220px !important;
    text-align: left !important;
    white-space: normal;
}





.modelo-checagem-layout {
    display: flex;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 16px;
    width: 100%;
}

.modelo-checagem-layout-left {
    flex: 0 0 auto;
}

.modelo-checagem-layout-right {
    flex: 1 1 700px;
    max-width: 920px;
    min-width: 360px;
    margin-left: 8px;
}

.modelo-checagem-mural {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
}

.modelo-checagem-card {
    border: 1px solid #d7e3f0;
    border-radius: 8px;
    background: #ffffff;
    padding: 10px;
    min-height: 185px;
    box-shadow: 0 1px 2px rgba(15, 76, 129, 0.08);
}

.modelo-checagem-card-info {
    border-color: #d7e3f0;
    background: linear-gradient(180deg, #ffffff 0%, #f3f8ff 100%);
}

.modelo-checagem-card-alerta {
    border-color: #f5c2c7;
    background: #fff1f2;
}

.modelo-checagem-card-warning {
    border-color: #cbd5e1;
    background: #f8fafc;
}

.modelo-checagem-card-sucesso {
    border-color: #b7eb8f;
    background: #f6ffed;
}

.modelo-checagem-titulo {
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    color: #0f4c81;
    margin-bottom: 8px;
    font-size: 12px;
}

.modelo-checagem-titulo .pi {
    font-size: 14px;
}

.modelo-checagem-card-alerta .modelo-checagem-titulo,
.modelo-checagem-card-alerta .modelo-checagem-titulo .pi {
    color: #b42318;
}

.modelo-checagem-card-warning .modelo-checagem-titulo,
.modelo-checagem-card-warning .modelo-checagem-titulo .pi {
    color: #334155;
}

.modelo-checagem-card-sucesso .modelo-checagem-titulo,
.modelo-checagem-card-sucesso .modelo-checagem-titulo .pi {
    color: #237804;
}

.modelo-checagem-texto {
    line-height: 1.4;
    font-size: 12px;
    color: #334155;
}

.modelo-checagem-resumo {
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #dbe7f3;
    display: grid;
    gap: 6px;
}

.modelo-checagem-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: #334155;
}

.modelo-checagem-item > span:last-child {
    font-weight: 700;
    color: #0f4c81;
}

.modelo-checagem-estrutura {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid #dbe7f3;
}

.modelo-checagem-subtitulo {
    font-size: 11px;
    font-weight: 700;
    color: #0f4c81;
    margin-bottom: 6px;
}

.modelo-checagem-checklist {
    display: grid;
    gap: 4px;
    margin-top: 2px;
}

.modelo-checagem-checklist-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    line-height: 1.3;
}

.modelo-checagem-checklist-texto {
    color: #334155;
}

.modelo-checagem-icone-ok {
    color: #237804;
}

.modelo-checagem-icone-falha {
    color: #b42318;
}

.modelo-checagem-aviso-ia {
    margin-top: 6px;
    padding: 8px;
    border: 1px solid #f7d58d;
    border-radius: 8px;
    background: #fff9eb;
    color: #8a6116;
    line-height: 1.35;
    font-size: 11px;
}

.modelo-checagem-botao-retry {
    margin-top: 10px !important;
}

@media (max-width: 1240px) {
    .modelo-checagem-layout {
        flex-wrap: wrap;
    }

    .modelo-checagem-layout-right {
        flex-basis: 100%;
        max-width: 100%;
        min-width: 0;
        margin-left: 0;
    }

    .modelo-checagem-mural {
        grid-template-columns: 1fr;
    }

    .modelo-checagem-card {
        min-height: auto;
    }
}

@media (max-width: 768px) {
    body .ui-dialog.dialogCriarIa {
        min-width: 90vw !important;
        width: 90vw !important;
        max-width: 90vw !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        top: 20px !important;
        border-radius: 16px !important;
    }

    .dialogCriarIa .ui-dialog-content {
        padding: 1rem !important;
        display: block !important;
    }

    .conteudoCentralizadoDialog {
        width: 100% !important;
        max-width: 100% !important;
    }

    .tituloAnimadoDialog span {
        max-width: 100% !important;
        font-size: 1rem !important;
    }

    .dialogCriarIaBotoes {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
        margin-top: 20px !important;
    }

    .dialogCriarIaBotoesEsquerda,
    .dialogCriarIaBotoesDireita {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .dialogCriarIaBotoesDireita {
        margin-left: 0 !important;
    }

    .dialogCriarIaBotoes .ui-button {
        width: 100% !important;
        justify-content: center !important;
    }
}

.bundle-import-btn.ui-button {
    background: linear-gradient(135deg, #0f766e 0%, #14b8a6 100%);
    border: 1px solid #0f766e;
    color: #fff;
    font-weight: 600;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(15, 118, 110, 0.25);
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.bundle-import-btn.ui-button:hover {
    filter: brightness(1.03);
    transform: translateY(-1px);
    box-shadow: 0 8px 14px rgba(15, 118, 110, 0.30);
}

.bundle-header-btn.ui-button {
    width: 30px;
    height: 30px;
}


.bundle-export-btn.ui-button {
    background: linear-gradient(135deg, #0f4c81 0%, #2473c7 100%);
    border: 1px solid #0f4c81;
    color: #fff;
    border-radius: 8px;
    width: 30px;
    height: 30px;
    box-shadow: 0 3px 8px rgba(15, 76, 129, 0.25);
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.bundle-export-btn.ui-button:hover {
    filter: brightness(1.05);
    transform: translateY(-1px);
    box-shadow: 0 7px 12px rgba(15, 76, 129, 0.30);
}

.bundle-delete-btn.ui-button {
    background: #f5f5f5;
    border: 1px solid #d9d9d9;
    color: #6b7280;
    border-radius: 8px;
    width: 30px;
    height: 30px;
    box-shadow: 0 3px 8px rgba(0, 0, 0, 0.12);
    transition: transform 0.15s ease, box-shadow 0.15s ease, filter 0.15s ease;
}

.bundle-delete-btn.ui-button:hover {
    background: #ececec;
    border-color: #cfcfcf;
    color: #4b5563;
    filter: brightness(1.02);
    transform: translateY(-1px);
    box-shadow: 0 7px 12px rgba(0, 0, 0, 0.16);
}

.bundle-import-summary {
    border: 1px solid #dbe7f3;
    border-radius: 10px;
    background: linear-gradient(180deg, #fff 0%, #f3f8ff 100%);
    padding: 12px;
    margin-bottom: 10px;
}

.bundle-import-summary-title {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 700;
    color: #0f4c81;
    margin-bottom: 10px;
}

.bundle-import-summary-title .pi {
    color: #16a34a;
}

.bundle-import-summary-cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.bundle-import-card {
    border: 1px solid #d7e3f0;
    border-radius: 8px;
    background: #ffffff;
    padding: 8px 10px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    box-shadow: 0 1px 3px rgba(15, 76, 129, 0.08);
}

.bundle-import-card .left {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #334155;
    font-weight: 600;
    font-size: 12px;
}

.bundle-import-card .left .pi {
    color: #16a34a;
    font-size: 14px;
}

.bundle-import-card .value {
    color: #0f4c81;
    font-weight: 800;
    font-size: 12px;
}

.bundle-import-card-highlight {
    grid-column: 1 / -1;
    background: #fff;
    border-color: #bfd6ee;
}

.bundle-import-card-highlight .left .pi {
    color: #0f4c81;
}

.bundle-import-root-name {
    max-width: 390px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 820px) {
    .bundle-import-summary-cards {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 560px) {
    .bundle-import-summary-cards {
        grid-template-columns: 1fr;
    }
}

.bundle-import-upload .ui-fileupload-buttonbar {
    border: 1px dashed #cbd5e1;
    border-radius: 10px;
    background: #f8fafc;
}

.bundle-import-upload .ui-fileupload-buttonbar .ui-button {
    border-radius: 8px;
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #0f4c81;
    font-weight: 600;
}

.bundle-import-upload .ui-fileupload-buttonbar .ui-button:hover {
    background: #eef6ff;
    border-color: #2473c7;
}

.bundle-import-upload .ui-fileupload-content {
    border: none;
    background: transparent;
}

.modelo-nome-wrapper {
    position: relative;
    display: inline-block;
    max-width: 100%;
}

.modelo-nome-link {
    font-weight: bold;
    display: inline-block;
    max-width: 100%;
}

.badge-modelo-novo {
    position: absolute;
    top: -10px;
    right: -30px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px;
    border-radius: 999px;
    border: 1px solid #8fd6a1;
    background: linear-gradient(180deg, #ecfbef 0%, #c9f2d4 100%);
    color: #1f7a3f;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .04em;
    line-height: 1;
    box-shadow: 0 2px 5px rgba(31, 122, 63, 0.18);
    text-transform: uppercase;
    pointer-events: none;
}

/* Data panel collapsible (compartilhado entre Redator: panelDados e qualificacao) */
.container-data-panel {
    display: flex;
    justify-content: center;
    width: 100%;
}

.ui-panel.data-panel-parent {
    width: 100%;
    min-width: 50rem;
    max-width: 50rem;
}

.ui-panel.data-panel {
    background-color: #ffffff;
    border: 1px solid #cccccc;
    border-radius: 10px;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    margin-top: 5px;
    overflow: hidden;
}

.ui-panel.data-panel > .ui-panel-titlebar {
    background-color: #ffffff;
    color: #292B2C;
    border: none;
    border-radius: 10px;
    padding: 0.75rem 1rem;
    cursor: pointer;
    white-space: nowrap;
    text-align: center;
}

.ui-panel.data-panel > .ui-panel-titlebar:hover {
    box-shadow: inset 2px 2px 5px rgba(0, 0, 0, 0.08),
                inset -2px -2px 5px rgba(255, 255, 255, 0.8);
}

.ui-panel.data-panel > .ui-panel-titlebar .ui-panel-titlebar-icon {
    color: #6c757d;
}

.ui-panel.data-panel > .ui-panel-titlebar .ui-panel-titlebar-icon:hover {
    color: #292B2C;
}

.ui-panel.data-panel > .ui-panel-content {
    padding: 1rem;
}


/* Botão da toolbar fixa de ações (Gerar documento, Analisar documentos) */
.toolbarIndexEdit .ui-button.btnGerarDocumento {
    background: #337ab7 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 20px !important;
    box-shadow: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    font-size: 0.95rem;
    padding: 11px 20px !important;
}

.toolbarIndexEdit .ui-button.btnGerarDocumento .ui-button-text {
    width: auto !important;
    padding: 0 !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.96rem;
    line-height: 1.2;
}

.toolbarIndexEdit .ui-button.btnGerarDocumento:hover,
.toolbarIndexEdit .ui-button.btnGerarDocumento.ui-state-hover {
    background: #66afe9 !important;
}

.tagContextoReduzido {
    display: inline-block;
    margin-top: 4px;
    padding: 2px 8px;
    border-radius: 999px;
    background: #fff3cd;
    color: #8a5a00;
    font-size: 11px;
    font-weight: 600;
}

/* Chat IA na sidebar lateral: o painel colapsa sem altura do pai; cadeia flex resolve */
#idSideBarGpt,
#idSideBarGpt .ui-sidebar-content {
    background: #ffffff;
}
/* Header do widget: botoes no padrao do chat */
.chat-widget-header {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-bottom: 10px;
}
.chat-widget-header .chat-btn {
    text-decoration: none;
}
.chat-widget-header .chat-btn .pi {
    font-size: 13px;
}
.chat-widget-header .chat-btn-ico {
    width: 28px;
    height: 28px;
    padding: 0;
    justify-content: center;
    box-sizing: border-box;
}
.chat-widget-header .ui-selectbooleanbutton.ui-button {
    margin-left: auto;
    width: 28px !important;
    height: 28px;
    min-width: 0;
    padding: 0;
    background: transparent !important;
    border: 1px solid #e6ecf3 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.chat-widget-header .ui-selectbooleanbutton.ui-button:hover {
    background: #f2f5f9 !important;
    border-color: #d9e3ec !important;
}
.chat-widget-header .ui-selectbooleanbutton.ui-button .ui-button-text {
    display: none;
}
.chat-widget-header .ui-selectbooleanbutton.ui-button .ui-icon {
    position: static;
    width: auto;
    height: auto;
    margin: 0;
    text-indent: 0;
    background-image: none;
    font-size: 13px;
    color: #4d5b68;
    line-height: 1;
}
.sidebarGPT #formGpt {
    display: flex;
    flex-direction: column;
    min-height: 0;
}
.sidebarGPT #formGpt > .redee-ia-chat-panel {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}
.sidebarGPT #formGpt > .redee-ia-chat-panel > .chat-scroll {
    flex: 1 1 auto;
    min-height: 0;
}
.sidebarGPT #formGpt > .redee-ia-chat-panel.chat-vazio > .chat-scroll {
    flex: 0 1 auto;
}

.sidebarGPT .divBtnExtraChatAnalise .btnExtraChatAnalise {
    width: 28px;
    min-width: 28px;
    height: 28px;
    padding: 0;
    flex: 0 0 auto;
    font-size: 14px;
}


/* ---- Conferir formatacao dos textos do modelo ---- */
.modelo-checagem-icone-warning {
    color: #b45309;
}

.modelo-formatacao-resumo {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 12px;
    border: 1px solid #d7e3f0;
    border-radius: 8px;
    padding: 8px 10px;
}

.modelo-formatacao-resumo-ok {
    border-color: #b7eb8f;
    background: #f6ffed;
    color: #237804;
}

.modelo-formatacao-resumo-alerta {
    border-color: #f5c2c7;
    background: #fff1f2;
    color: #b42318;
}

.modelo-formatacao-referencia {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 8px 0 4px 0;
    font-size: 11px;
    color: #475569;
}

.modelo-formatacao-chip {
    display: inline-block;
    border: 1px solid #d7e3f0;
    border-radius: 999px;
    background: #f3f8ff;
    padding: 1px 8px;
    color: #0f4c81;
    white-space: nowrap;
}

.modelo-formatacao-tag {
    display: inline-block;
    border-radius: 4px;
    padding: 1px 6px;
    margin: 2px 4px 2px 0;
    font-size: 11px;
    line-height: 18px;
    white-space: nowrap;
    cursor: help;
}

.modelo-formatacao-tag-alta {
    background: #fff1f2;
    border: 1px solid #f5c2c7;
    color: #b42318;
}

.modelo-formatacao-tag-media {
    background: #fffbeb;
    border: 1px solid #fde68a;
    color: #b45309;
}

.modelo-formatacao-tag-baixa {
    background: #f8fafc;
    border: 1px solid #cbd5e1;
    color: #475569;
}

.modelo-formatacao-swatch {
    display: inline-block;
    width: 12px;
    height: 12px;
    border: 1px solid #94a3b8;
    border-radius: 3px;
    vertical-align: middle;
    margin: 0 4px;
}

.modelo-formatacao-swatch-hex {
    font-size: 10px;
    color: #64748b;
    margin-left: 2px;
}

.btn-pill-verde,
.btn-pill-azul,
.btn-pill-vermelho {
    border-radius: 999px !important;
    border: none !important;
    color: #fff !important;
    padding: 8px 18px !important;
    font-size: 13px !important;
    line-height: 1.2 !important;
    height: auto !important;
    min-height: 0 !important;
    font-weight: 600 !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.08) !important;
    transition: filter .12s ease-in-out !important;
}

.btn-pill-verde        { background: #21C56A !important; }
.btn-pill-azul         { background: #5FA5E3 !important; }
.btn-pill-vermelho     { background: #E53E3E !important; }

.btn-pill-verde:hover,
.btn-pill-azul:hover,
.btn-pill-vermelho:hover { filter: brightness(1.08); }

.btn-pill-verde .ui-button-text,
.btn-pill-azul .ui-button-text,
.btn-pill-vermelho .ui-button-text {
    padding: 0 !important;
}

.btn-pill-verde,
.btn-pill-azul,
.btn-pill-vermelho {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
}

.btn-pill-verde .ui-button-icon-left,
.btn-pill-azul .ui-button-icon-left,
.btn-pill-vermelho .ui-button-icon-left {
    position: static !important;
    margin: 0 !important;
    font-size: 11px !important;
    line-height: 1 !important;
}

/* Botao Conferir formatacao com icone destacado */
.btn-conferir-formatacao {
    background: linear-gradient(135deg, #0b7fd1 0%, #005b9e 100%) !important;
    border: none !important;
    color: #fff !important;
    box-shadow: 0 2px 4px rgba(0,91,158,.24) !important;
    font-weight: 600 !important;
}

.btn-conferir-formatacao .ui-button-icon-left {
    margin-right: 6px !important;
}

/* Zebra na tabela do dialog Conferir formatacao */
.tabela-formatacao-zebrada tbody tr:nth-child(even) > td {
    background: #f8fafc !important;
}
.tabela-formatacao-zebrada tbody tr:hover > td {
    background: #eef4fb !important;
}

/* Barra de acoes acima da tabela do dialog */
.modelo-formatacao-acoes-topo {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin: 6px 0 10px 0;
    align-items: flex-end;
}

.modelo-formatacao-atualizar-wrap {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
}

.modelo-formatacao-atualizar-hint {
    font-size: 11px;
    color: #64748b;
    font-style: italic;
    max-width: 260px;
    text-align: right;
}

/* Botao Marcar/Cancelar excecao na tela individual do texto (padrao da barra) */
.btn-excecao-marcar,
.btn-excecao-cancelar {
    color: #fff !important;
    border: none !important;
    padding: 10px 18px !important;
    font-size: 14px !important;
    font-weight: 600 !important;
    border-radius: 6px !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
}
.btn-excecao-marcar { background: #21C56A !important; }
.btn-excecao-cancelar { background: #E53E3E !important; }
.btn-excecao-marcar:hover,
.btn-excecao-cancelar:hover { filter: brightness(1.08); }
.btn-excecao-marcar .ui-button-icon-left,
.btn-excecao-cancelar .ui-button-icon-left {
    position: static !important;
    margin: 0 !important;
    font-size: 12px !important;
    line-height: 1 !important;
}
.btn-excecao-marcar .ui-button-text,
.btn-excecao-cancelar .ui-button-text {
    padding: 0 !important;
}


/* ---- Design 1: Compacto ---- */
.btn-check-round {
    background: #21C56A !important;
    color: #fff !important;
    border: none !important;
    border-radius: 50% !important;
    width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.1) !important;
}
.btn-check-round:hover { filter: brightness(1.08); }
.btn-check-round .ui-button-icon-left {
    position: static !important;
    margin: 0 !important;
    font-size: 13px !important;
}
.btn-check-round .ui-button-text { display: none !important; }

.btn-check-round-vermelho {
    background: #E53E3E !important;
    color: #fff !important;
    border: none !important;
    border-radius: 50% !important;
    width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.1) !important;
}
.btn-check-round-vermelho:hover { filter: brightness(1.08); }
.btn-check-round-vermelho .ui-button-icon-left {
    position: static !important;
    margin: 0 !important;
    font-size: 13px !important;
}
.btn-check-round-vermelho .ui-button-text { display: none !important; }

.btn-check-round-azul {
    background: #5FA5E3 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 50% !important;
    width: 34px !important;
    height: 34px !important;
    padding: 0 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 1px 3px rgba(0,0,0,.1) !important;
    margin-right: 4px !important;
}
.btn-check-round-azul:hover { filter: brightness(1.08); }
.btn-check-round-azul .ui-button-icon-left {
    position: static !important;
    margin: 0 !important;
    font-size: 13px !important;
}
.btn-check-round-azul .ui-button-text { display: none !important; }

.modelo-formatacao-swatch-mini {
    margin-left: 3px;
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 2px;
    border: 1px solid rgba(0,0,0,.15);
    vertical-align: middle;
}

.severidade-icone {
    font-size: 15px;
    display: inline-block;
    line-height: 1;
}
.severidade-alta { color: #E53E3E; }
.severidade-media { color: #f59e0b; }

/* Chip compacto sobrescreve tag padrao para caber mais na linha */
.modelo-formatacao-tag {
    padding: 2px 8px !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
    margin: 1px 3px 1px 0 !important;
    display: inline-block;
    border-radius: 6px;
}
.modelo-formatacao-icone-alta {
    color: #b42318;
}

.modelo-formatacao-icone-baixa {
    color: #475569;
}

.modelo-formatacao-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #0f4c81;
    text-decoration: none;
}

.modelo-formatacao-link:hover {
    text-decoration: underline;
}

.modelo-formatacao-detalhe {
    padding: 6px 4px;
}

.modelo-formatacao-detalhe-item {
    margin-bottom: 10px;
}

.modelo-formatacao-detalhe-titulo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.modelo-formatacao-detalhe-contagem {
    font-size: 11px;
    color: #94a3b8;
}

.modelo-formatacao-trecho {
    border-left: 3px solid #cbd5e1;
    background: #f8fafc;
    padding: 4px 10px;
    margin: 3px 0 3px 12px;
    font-size: 12px;
    color: #334155;
    white-space: pre-wrap;
    word-break: break-word;
}

.modelo-formatacao-trecho-vazio {
    margin-left: 12px;
    font-size: 11px;
    color: #94a3b8;
}

/* Barra de botoes da tela de texto: alinhada a esquerda, quebrando linha */
.barra-botoes-texto {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: center;
    gap: 6px;
    margin: 4px 0 8px 0;
}

.barra-botoes-texto .ui-button {
    margin: 0;
}

.olStsTask .linkCorVenc {
    cursor: pointer;
    color: inherit;
    text-decoration: none;
}

.olStsTask .linkCorVenc:hover {
    opacity: 0.7;
}

.olStsTask .linkCorVenc.corVencAtiva {
    background: rgba(51, 122, 183, 0.12);
    border: 1px solid #337ab7;
    border-radius: 12px;
    padding: 0 4px;
}

.olStsTask.comCorAtiva .linkCorVenc:not(.corVencAtiva):not(.linkLimparCor) {
    opacity: 0.45;
}

.olStsTask.comCorAtiva .linkCorVenc:not(.corVencAtiva):not(.linkLimparCor):hover {
    opacity: 0.7;
}

.olStsTask .linkLimparCor {
    color: #337ab7;
    margin-left: 2px;
}

/* Item de menu com rótulo longo: sem flex o span (inline-block) desce inteiro para baixo do ícone. */
.layout-wrapper .layout-menu li a.menuItemQuebraLinha {
    display: flex;
    align-items: center;
}

.layout-wrapper .layout-menu li a.menuItemQuebraLinha > span:first-of-type {
    flex: 1 1 auto;
    min-width: 0;
}


/* Painel do documento ao lado da conversa (chats com o atributo painelDocumento). */
.redee-ia-chat-panel.chat-com-painel > .chat-doc-resizer,
.redee-ia-chat-panel.chat-com-painel > .chat-doc-painel {
    display: none;
}

/* Aberto: grid com a conversa na primeira coluna e o documento na terceira; filhos sem
   célula própria (growl, dialogs) caem em linha implícita de altura zero. */
.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    grid-template-rows: minmax(0, 1fr) auto auto;
}

.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto > * {
    grid-column: 1;
    min-width: 0;
}

.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto > .chat-scroll {
    grid-row: 1;
}

/* Sem linha explícita a saudação cai numa linha implícita, abaixo do input. */
.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto > .chat-saudacao-tela {
    grid-row: 1;
}

.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto > .chat-perguntas-dock {
    grid-row: 2;
}

.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto > .chat-input-container {
    grid-row: 3;
}

.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto > .chat-doc-resizer {
    display: flex;
    grid-column: 2;
    grid-row: 1 / -1;
}

.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto > .chat-doc-painel {
    display: grid;
    grid-column: 3;
    grid-row: 1 / -1;
    /* O recuo de baixo do input é do input, não do painel: descontado, as duas bordas de baixo
       terminam na mesma linha. */
    margin-bottom: var(--chat-input-pb, 14px);
}

.redee-ia-chat-panel > .chat-doc-resizer,
.chat-doc-painel.chat-comparando > .chat-comparar-divisor {
    width: 10px;
    cursor: col-resize;
    position: relative;
    background-color: transparent;
    touch-action: none;
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s;
    z-index: 5;
    user-select: none;
    -webkit-user-select: none;
}

.redee-ia-chat-panel > .chat-doc-resizer::before,
.chat-doc-painel.chat-comparando > .chat-comparar-divisor::before {
    content: "";
    width: 2px;
    height: 30px;
    background-color: #d0d0d0;
    border-radius: 2px;
    transition: all 0.2s;
    box-shadow: 0 0 2px rgba(0, 0, 0, 0.1);
}

.redee-ia-chat-panel > .chat-doc-resizer:hover,
.chat-doc-painel.chat-comparando > .chat-comparar-divisor:hover {
    background-color: rgba(0, 0, 0, 0.03);
}

.redee-ia-chat-panel > .chat-doc-resizer:hover::before,
.chat-doc-painel.chat-comparando > .chat-comparar-divisor:hover::before {
    background-color: #007ad9;
    height: 100%;
}

/* O painel é um grid de uma linha: o conteúdo (documento, anexos ou os dois comparando) na primeira
   coluna e o trilho de 49px na última, para nada acima do conteúdo gastar altura. */
.redee-ia-chat-panel > .chat-doc-painel {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 49px;
    grid-template-rows: minmax(0, 1fr);
    min-height: 0;
    background: #fff;
    border: 1px solid #e6ecf3;
    border-radius: 12px;
    overflow: hidden;
}
.chat-doc-painel > :not(.chat-doc-trilho) { grid-column: 1; grid-row: 1; min-height: 0; }

.chat-doc-painel > .chat-doc-trilho {
    grid-column: 2;
    grid-row: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    min-height: 0;
    padding: 7px 0;
    background: #fff;
    border-left: 1px solid #e6ecf3;
    box-sizing: border-box;
}

.chat-doc-painel-titulo {
    font-weight: 600;
    font-size: calc(var(--chat-fs, 16px) * 0.8);
    color: #4d5b68;
}

.chat-doc-painel-acoes {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    padding-top: 7px;
    border-top: 1px solid #e6ecf3;
}

.redee-ia-chat-panel .chat-doc-painel-acoes .chat-btn {
    width: 35px;
    height: 35px;
    padding: 0;
    justify-content: center;
    box-sizing: border-box;
}

.redee-ia-chat-panel .chat-doc-painel-acoes .chat-btn .fa {
    font-size: calc(var(--chat-fs, 16px) * 0.81);
}

/* Área do documento: caixa de referência das setas, que não podem rolar junto com o texto. */
.redee-ia-chat-panel .chat-doc-painel-area {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* Setas de navegação do documento, na aparência do "ir para o final" da conversa. */
.redee-ia-chat-panel .chat-doc-nav {
    position: absolute;
    right: 22px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid #e6ecf3;
    border-radius: 8px;
    background: #ffffff;
    color: #4d5b68;
    cursor: pointer;
    box-shadow: 0 2px 8px rgba(36, 54, 72, .10);
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s, visibility .18s, background .16s;
}

.redee-ia-chat-panel .chat-doc-nav.show {
    opacity: 1;
    visibility: visible;
}

.redee-ia-chat-panel .chat-doc-nav:hover {
    background: #f2f5f9;
    border-color: #d9e3ec;
}

.redee-ia-chat-panel .chat-doc-nav .fa {
    font-size: 16px;
}

.redee-ia-chat-panel .chat-doc-nav-topo {
    top: 14px;
}

.chat-doc-escrevendo-selo {
    position: absolute;
    top: 6px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 4;
    display: none;
    align-items: center;
    gap: 8px;
    padding: 8px 12px;
    border: 1px solid #bcd7f5;
    border-radius: 10px;
    background: #eaf4ff;
    color: #1f4b7a;
    font-weight: 600;
    font-size: var(--chat-fs, 16px);
    box-shadow: 0 8px 18px rgba(0, 0, 0, .12);
    pointer-events: none;
}

.chat-doc-escrevendo-selo i {
    color: #337ab7;
    font-size: 16px;
    line-height: 1;
}

.chat-doc-painel-area.chat-doc-escrevendo .chat-doc-escrevendo-selo {
    display: inline-flex;
}


.redee-ia-chat-panel .chat-doc-nav-fim {
    bottom: 14px;
}

.chat-doc-painel-corpo {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    /* A folga de baixo é o espaço do Salvar flutuante: sem ela o botão cobre o fim do documento. */
    padding: 14px 18px 62px;
}

/* A folha guarda o tamanho de A4 e o script a escala para o espaço do painel; o recuo do corpo
   é a margem mínima que ela nunca perde. */
.chat-doc-painel-corpo .chat-doc-render {
    width: 210mm;
    max-width: none;
    margin: 0 auto;
    transform-origin: top center;
}

/* Aba Documento com um editor dentro (o do Editar, ou a prévia só de leitura durante a redação): o
   CKEditor ocupa a aba inteira e a altura vem do painel, não de um cálculo. */
.chat-doc-painel-editor,
.chat-doc-painel-corpo.chat-doc-previa {
    position: relative;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
.chat-doc-painel-corpo.chat-doc-previa {
    padding: 0;
    overflow: hidden;
}
/* O envelope segue no DOM como fonte do espelho, mas quem aparece é o editor. */
.chat-doc-previa > .chat-doc-render {
    display: none;
}
/* O div raiz do componente do editor fica entre o .ck e o .cke: fora da cadeia, o CKEditor
   ficaria na altura do próprio conteúdo. */
.chat-doc-painel-editor .ck,
.chat-doc-painel-editor .ck > div,
.chat-doc-painel-editor .cke,
.chat-doc-painel-editor .cke_inner,
.chat-doc-previa .cke,
.chat-doc-previa .cke_inner {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
}
.chat-doc-painel-editor .cke,
.chat-doc-previa .cke {
    border: none;
}
.chat-doc-painel-editor .cke_contents,
.chat-doc-previa .cke_contents {
    flex: 1 1 auto;
    height: auto !important;
    min-height: 0;
}

/* ===== Editar: documento e anexos lado a lado no painel ===== */
/* A largura do anexo é um teto, não um valor fixo: quando a janela encolhe, o grid devolve o
   espaço ao editor até o piso dele, em vez de transbordar. Os dois pisos são de leitura (os mesmos
   do arrasto): o do anexo não pode vir do conteúdo, porque o nome do arquivo no seletor corta de
   propósito. O piso do editor aqui é menor que o de leitura do painel: quem divide o painel em
   760px prefere o editor apertado a algo fora da tela. */
.redee-ia-chat-panel.chat-painel-aberto > .chat-doc-painel.chat-comparando {
    grid-template-columns: minmax(300px, 1fr) 10px minmax(320px, var(--chat-comparar-w, 45%)) 49px;
}
.redee-ia-chat-panel.chat-painel-aberto > .chat-doc-painel.chat-comparando:has(> .chat-anexos-lado-a-lado) {
    grid-template-columns: minmax(300px, 1fr) 10px minmax(540px, var(--chat-comparar-w, 45%)) 49px;
}
.chat-doc-painel.chat-comparando > .chat-doc-trilho { grid-column: 4; }
/* As duas partes ficam à vista seja qual for a aba guardada. */
.chat-doc-painel.chat-comparando > .chat-doc-painel-area { grid-column: 1; display: flex !important; }
.chat-doc-painel.chat-comparando > .chat-anexos-painel { grid-column: 3; display: flex !important; }
.chat-doc-painel > .chat-comparar-divisor { display: none; }
.chat-doc-painel.chat-comparando > .chat-comparar-divisor {
    grid-column: 2;
    display: flex;
}
/* A altura em porcentagem do resizer não resolve dentro da linha do grid: a barrinha estica pelo
   eixo do flex. */
.chat-doc-painel.chat-comparando > .chat-comparar-divisor:hover::before {
    align-self: stretch;
    height: auto;
}
/* No Editar a trilha sai: o anexo em exibição é escolhido na linha de escolha do alto do detalhe. */
.chat-doc-painel[data-painel-editor="true"] .chat-anexos-trilha,
.chat-doc-painel[data-painel-editor="true"] .chat-anexos-divisor { display: none; }
/* Sem trilha para ceder primeiro, o detalhe encolhe até o piso do painel e o seletor corta o nome. */
.chat-doc-painel[data-painel-editor="true"] .chat-anexos-detalhes { min-width: 0; }
.chat-anexo-escolha { display: flex; align-items: center; gap: 8px; min-width: 0; padding: 10px 14px 0; }
/* O widget é o do select de template; aqui só o que é deste lugar: o tamanho do nome, cortado em vez
   de alargar a linha. */
/* A largura vem do nome e não do widget: o PrimeFaces a mede com o detalhe ainda escondido.
   A fonte é a do switch ao lado. */
.chat-anexo-escolha .chat-anexo-seletor { flex: 0 1 auto; width: auto !important; min-width: 100px; max-width: 360px !important; border-radius: 40px !important; }
.chat-anexo-escolha .chat-anexo-seletor .ui-selectonemenu-label {
    width: auto !important; max-width: 320px; overflow: hidden; text-overflow: ellipsis;
    font-family: inherit; font-size: calc(var(--chat-fs, 16px) * 0.81); font-weight: normal; color: #334155;
}
.chat-anexo-nav { display: inline-flex; align-items: center; gap: 4px; flex: 0 0 auto; margin-left: auto; }
.chat-anexo-nav-pos { min-width: 3.4em; text-align: center; white-space: nowrap; font-size: calc(var(--chat-fs, 16px) * 0.75); color: #8a99a8; }
.chat-anexo-nav .chat-anexo-detalhe-acao[disabled] { opacity: .4; cursor: default; }
/* Usar na conversa: o switch do anexo em exibição, na altura dos botões do detalhe. */
.chat-anexo-usar {
    display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; height: 35px; padding: 0 10px 0 8px; box-sizing: border-box;
    border: 1px solid #dbe3ee; border-radius: 8px; background: #ffffff; color: #334155; cursor: pointer; white-space: nowrap;
    font-family: inherit; font-size: calc(var(--chat-fs, 16px) * 0.81); font-weight: normal;
}
.chat-anexo-usar:hover { border-color: #c3d4e6; }
.chat-anexo-usar-trilho { position: relative; flex: 0 0 auto; width: 34px; height: 20px; border-radius: 10px; background: #337ab7; transition: background .15s; }
.chat-anexo-usar-trilho::after {
    content: ""; position: absolute; top: 2px; left: 16px; width: 16px; height: 16px; border-radius: 50%;
    background: #ffffff; box-shadow: 0 1px 2px rgba(0, 0, 0, .2); transition: left .15s;
}
.chat-anexo-usar[aria-checked="false"] .chat-anexo-usar-trilho { background: #c8d2dc; }
.chat-anexo-usar[aria-checked="false"] .chat-anexo-usar-trilho::after { left: 2px; }
.chat-anexos-painel.chat-anexos-estreito .chat-anexo-usar { padding: 0 7px; }
.chat-anexos-painel.chat-anexos-estreito .chat-anexo-usar-rotulo { display: none; }
/* Cabeçalho do detalhe no Editar: abas com as ações do arquivo na mesma linha, e as opções de leitura embaixo. */
.chat-doc-painel[data-painel-editor="true"] .chat-anexo-corpo-cab {
    display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-areas: "abas arq" "flags flags";
}
.chat-doc-painel[data-painel-editor="true"] .chat-anexo-corpo-cab > .chat-anexo-detalhe-abas { grid-area: abas; }
.chat-doc-painel[data-painel-editor="true"] .chat-anexo-cab-extracao > .chat-anexo-acoes-original,
.chat-doc-painel[data-painel-editor="true"] .chat-anexo-cab-original > .chat-anexo-corpo-acoes { grid-area: arq; justify-self: end; }
.chat-doc-painel[data-painel-editor="true"] .chat-anexo-cab-extracao > .chat-anexo-corpo-acoes { grid-area: flags; justify-content: center; }
.chat-anexos-painel[data-lado-a-lado] .chat-anexo-ver-ao-lado { background: #eaf4ff; border-color: #bcd7f5; color: #1f4b7a; }
/* Extração ao lado do original no Editar: os dois lados do maximizado da home, com a linha de escolha
   por cima deles. Os pisos são de leitura, como o do painel, para o nome no seletor não alargar a coluna. */
.chat-doc-painel .chat-anexos-lado-a-lado .chat-anexo-detalhe.chat-anexo-detalhe-aberto {
    grid-template-columns: minmax(250px, var(--lado-extracao, 1fr)) 10px minmax(250px, 1fr);
    grid-template-rows: auto minmax(0, 1fr);
}
.chat-doc-painel .chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-extracao.chat-anexo-detalhe-aberto { grid-template-columns: 46px 10px minmax(250px, 1fr); }
.chat-doc-painel .chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-original.chat-anexo-detalhe-aberto { grid-template-columns: minmax(250px, 1fr) 10px 46px; }
.chat-anexos-lado-a-lado .chat-anexo-escolha { grid-column: 1 / -1; grid-row: 1; }
.chat-anexos-lado-a-lado .chat-anexo-detalhe > .chat-anexo-corpo,
.chat-anexos-lado-a-lado .chat-anexo-detalhe > .chat-anexo-divisor { grid-row: 2; min-height: 0; }

/* Editar sem a conversa: o painel toma a largura toda, como o maximizado da home. */
.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto.chat-sem-conversa { grid-template-columns: 0 auto minmax(0, 1fr); }
.redee-ia-chat-panel.chat-sem-conversa > .chat-scroll,
.redee-ia-chat-panel.chat-sem-conversa > .chat-saudacao-tela,
.redee-ia-chat-panel.chat-sem-conversa > .chat-perguntas-dock,
.redee-ia-chat-panel.chat-sem-conversa > .chat-input-container,
.redee-ia-chat-panel.chat-sem-conversa > .chat-doc-resizer { display: none !important; }
.redee-ia-chat-panel.chat-sem-conversa > .chat-doc-painel { width: auto !important; }
/* Sem documento e sem anexos, do painel sobra o trilho na mesma coluna de sempre, e a conversa fica com o resto. */
.redee-ia-chat-panel > .chat-doc-painel.chat-painel-so-trilho { grid-template-columns: 49px; width: auto !important; }
.chat-doc-painel.chat-painel-so-trilho > :not(.chat-doc-trilho) { display: none !important; }
.chat-doc-painel.chat-painel-so-trilho > .chat-doc-trilho { grid-column: 1; border-left: 0; }
.redee-ia-chat-panel:has(> .chat-doc-painel.chat-painel-so-trilho) > .chat-doc-resizer { display: none !important; }
.redee-ia-chat-panel.chat-painel-maximizado .chat-doc-btn-maximizar {
    background: #eaf4ff;
    color: #1f4b7a;
    border-color: #bcd7f5;
}

/* Balão cujo documento foi para o painel: o preview embutido e os botões do turno
   somem; o card injetado pelo script assume a abertura. */
.chat-doc-no-painel .chat-bot-message .chat-doc-render,
.chat-doc-no-painel .divBtnExtraChatAnalise {
    display: none;
}

.redee-ia-chat-panel .chat-msg-card.chat-doc-card {
    cursor: pointer;
    margin-top: 8px;
}

.redee-ia-chat-panel .chat-msg-card.chat-doc-card-fixo {
    cursor: default;
}

/* Este card é a continuação da fala, e não um anexo na moldura: o rótulo acompanha o texto da
   conversa, e a ação embaixo desce um degrau junto. */
.redee-ia-chat-panel .chat-doc-card .chat-msg-card-nome {
    font-size: calc(var(--chat-fs, 16px) * 0.8);
}

.redee-ia-chat-panel .chat-doc-card .chat-msg-card-meta {
    font-size: calc(var(--chat-fs, 16px) * 0.81);
}

/* O glifo é o que identifica o card na conversa, então vem maior que o dos ícones de lista. */
.redee-ia-chat-panel .chat-msg-card .chat-doc-ic {
    font-size: calc(var(--chat-fs, 16px) * 1.6);
}

/* Salvar flutuando no rodapé do painel, centralizado, no mesmo azul do enviar. */
.redee-ia-chat-panel .chat-doc-btn-salvar {
    position: absolute;
    left: 50%;
    bottom: 16px;
    transform: translateX(-50%);
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 35px;
    padding: 0 16px;
    border: none;
    border-radius: 18px;
    background: var(--chat-accent, #337ab7);
    color: var(--chat-btn-color, #fff);
    font-family: inherit;
    font-size: 0.8rem;
    cursor: pointer;
    box-shadow: 0 3px 12px rgba(20, 35, 50, .22);
    transition: background .16s;
}

.redee-ia-chat-panel .chat-doc-btn-salvar:hover {
    background: var(--chat-accent-hover, #2c5e8a);
}

.redee-ia-chat-panel .chat-doc-btn-salvar .pi {
    font-size: 15px;
}

/* Documento ainda em stream (turno não persistido): sem parâmetros para salvar. */
.chat-doc-painel.chat-doc-sem-turno .chat-doc-btn-salvar {
    display: none;
}

/* ===== Confirm dialog estilizado (exclusoes/confirmacoes) ===== */
.ui-confirm-dialog.ui-dialog {
    border: none !important;
    border-radius: 14px !important;
    box-shadow: 0 22px 60px -22px rgba(20,26,34,.5) !important;
    overflow: hidden;
}
.ui-confirm-dialog .ui-dialog-titlebar {
    background: #f6f8fc !important;
    border: none !important;
    border-bottom: 1px solid #e6ebf2 !important;
    border-radius: 0 !important;
    padding: 14px 20px !important;
    font-size: 15px !important;
    font-weight: 600 !important;
    color: #2f3b4c !important;
}
.ui-confirm-dialog .ui-dialog-content {
    padding: 22px 20px !important;
    font-size: 14px !important;
    line-height: 1.55;
    color: #3a4658 !important;
    display: flex !important;
    align-items: flex-start;
    gap: 14px;
}
.ui-confirm-dialog .ui-confirm-dialog-message {
    margin: 2px 0 0 0 !important;
    font-weight: 400;
}
.ui-confirm-dialog .ui-confirm-dialog-severity,
.ui-confirm-dialog .ui-dialog-content > .ui-icon {
    font-size: 26px !important;
    width: auto !important;
    height: auto !important;
    margin: 0 !important;
    flex: 0 0 auto;
}

.ui-confirm-dialog .pi-exclamation-triangle {
    color: #d9822b !important;
}
.ui-confirm-dialog .ui-dialog-footer {
    padding: 12px 18px !important;
    border-top: 1px solid #eef1f5 !important;
    background: #fafbfd;
    text-align: right;
}
.ui-confirm-dialog .ui-dialog-footer .ui-button {
    border-radius: 8px !important;
    padding: 7px 16px !important;
    font-weight: 600;
    margin-left: 8px;
}
.ui-confirm-dialog .ui-dialog-footer .ui-confirmdialog-yes.ui-button {
    background: #2f6fb0 !important;
    border-color: #2f6fb0 !important;
    color: #fff !important;
}
.ui-confirm-dialog .ui-dialog-footer .ui-confirmdialog-yes.ui-button:hover {
    background: #245a92 !important;
    border-color: #245a92 !important;
}
.ui-confirm-dialog .ui-dialog-footer .ui-confirmdialog-no.ui-button {
    background: #fff !important;
    color: #5c6a7d !important;
    border: 1px solid #c3ccdb !important;
}
.ui-confirm-dialog .ui-dialog-footer .ui-confirmdialog-no.ui-button:hover {
    background: #f1f4f8 !important;
    color: #2f3b4c !important;
}


/* ---- Painel do chat: botões Documento e Anexos do trilho ---- */
.chat-painel-abas { display: flex; flex-direction: column; align-items: center; gap: 7px; }
.chat-painel-aba {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 35px; height: 35px; padding: 0; border: 1px solid transparent; border-radius: 8px;
    background: none; color: #6b7280; cursor: pointer;
}
.chat-painel-aba .fa { font-size: calc(var(--chat-fs, 16px) * 0.81); }
.chat-painel-aba:hover { background: #eef2f6; color: #243648; }
/* No Editar o botão acende pela parte ligada, guardada no painel: o repaint do trilho não a perde. */
.chat-painel-aba-ativa,
.chat-doc-painel.chat-ver-documento .chat-painel-aba[data-aba="documento"],
.chat-doc-painel.chat-ver-anexos .chat-painel-aba[data-aba="anexos"],
.redee-ia-chat-panel:not(.chat-sem-conversa) > .chat-doc-painel[data-painel-editor="true"] .chat-painel-aba[data-aba="conversa"] {
    background: #eaf4ff; border-color: #bcd7f5; color: #1f4b7a;
}
/* Única parte ligada, o documento não se desliga: a tela ficaria vazia. */
.chat-doc-painel.chat-so-documento .chat-painel-aba[data-aba="documento"] { cursor: default; }
/* O contador é um selo no canto do botão, e não um texto ao lado: no trilho não há lado. */
.chat-painel-aba-contador {
    position: absolute; top: -4px; right: -4px; min-width: 16px; height: 16px; padding: 0 4px; border-radius: 8px;
    background: #337ab7; color: #fff; font-size: 10px; font-weight: 700; line-height: 16px; text-align: center;
    box-sizing: border-box;
}
.chat-painel-aba-ativa .chat-painel-aba-contador,
.chat-doc-painel.chat-ver-anexos .chat-painel-aba[data-aba="anexos"] .chat-painel-aba-contador { background: #1f4b7a; }

/* Quem rola é a trilha e a extração, cada uma na sua coluna, não o painel inteiro. */
.chat-anexos-painel { display: none; overflow: hidden; flex-direction: column; flex: 1; min-height: 0; }
.chat-doc-painel[data-aba="anexos"] .chat-anexos-painel { display: flex; }
.chat-doc-painel[data-aba="anexos"] .chat-doc-painel-area,
.chat-doc-painel[data-aba="anexos"] .chat-doc-btn-salvar { display: none; }
.chat-anexos-painel-vazio { color: #6b7280; font-size: calc(var(--chat-fs, 16px) * 0.8); padding: 18px 16px; }

.chat-anexo-selo { font-size: calc(var(--chat-fs, 16px) * 0.81); font-weight: 600; padding: 3px 10px; border-radius: 10px; }
.chat-anexo-selo-ok { background: #e8f3ec; color: #2e7d4f; }
.chat-anexo-selo-lendo { background: #eef2f7; color: #2b688f; }
.chat-anexo-selo-vazia { background: #fdf3e3; color: #a56a12; }
.chat-anexo-selo-falha { background: #fbeaea; color: #b03030; }
.chat-anexo-card-meta { font-size: 12px; color: #6b7280; }
.chat-anexo-flag {
    font-size: calc(var(--chat-fs, 16px) * 0.81); padding: 6px 12px; border-radius: 12px; border: 1px solid #d5dde5;
    display: inline-block; flex: 0 0 auto; white-space: nowrap;
    color: #6b7280; background: #fff;
}
.chat-anexo-flag:hover { border-color: #2b688f; color: #2b688f; }
.chat-anexo-flag-on { background: #2b688f; border-color: #2b688f; color: #fff; }
.chat-anexo-flag.ui-state-disabled { opacity: .45; cursor: not-allowed; }

/* Trilha à esquerda, conteúdo do anexo escolhido à direita. Sem nada escolhido a trilha ocupa a
   largura toda, que é também o que o X do detalhe devolve. */
.chat-anexos-lista { display: flex; align-items: stretch; min-height: 0; flex: 1 1 auto; }
/* Nada cruza a borda: a trilha corta na horizontal, porque a linha tem peças de tamanho fixo
   (o check e o X) que não encolhem junto com o nome. */
.chat-anexos-trilha { min-width: 0; display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; padding: 6px 0; }
/* Encolhe junto quando o painel estreita por fora: com shrink zero a trilha mantinha a largura e
   era o conteúdo que saltava fora da área. Sem teto em porcentagem, que travava o arrasto antes
   do limite do próprio arrasto. */
.chat-anexos-trilha { flex: 0 1 var(--trilha-w, 250px); }
/* Divisores: 10px de alvo de arrasto com um fio no meio, o mesmo idioma do resizer do painel. */
.chat-anexo-divisor { display: none; }
.chat-anexos-divisor {
    display: block; flex: 0 0 10px; cursor: col-resize;
    background: linear-gradient(to right, transparent 4px, #e6ecf3 4px, #e6ecf3 6px, transparent 6px);
    touch-action: none;
}
.chat-anexos-divisor:hover {
    background: linear-gradient(to right, transparent 3px, #bcd0e4 3px, #bcd0e4 7px, transparent 7px);
}
.chat-anexos-detalhes {
    display: flex; flex: 1 1 0; flex-direction: column; overflow: hidden;
    /* O piso é o do próprio conteúdo: botão e chip não encolhem, então o menor tamanho em que
       nada é espremido é o que o navegador já calcula. Com piso aqui, a trilha cede primeiro
       quando o painel aperta, em vez de o conteúdo absorver tudo. */
    min-width: min-content;
}
.chat-anexo-detalhe { display: none; }
.chat-anexo-detalhe.chat-anexo-detalhe-aberto { display: flex; flex-direction: column; flex: 1 1 auto; min-height: 0; min-width: 0; overflow: hidden; }

.chat-anexo-trilha-linha { display: flex; align-items: flex-start; gap: 10px; padding: 11px 12px 11px 10px; border-left: 3px solid transparent; }
.chat-anexo-trilha-linha-aberta { background: #eef5fb; border-left-color: #337ab7; }
/* Mesmo desenho do checkbox do tema, 18px com raio 6: caixa própria em vez do input nativo,
   porque o estado vem do servidor e não do DOM. */
.chat-anexo-trilha-check-wrap { flex-shrink: 0; margin-top: 1px; line-height: 0; }
.chat-anexo-trilha-check { padding: 2px; border: 0; background: transparent; cursor: pointer; line-height: 0; }
.chat-anexo-trilha-caixa {
    display: inline-block; box-sizing: border-box; width: 18px; height: 18px;
    border: 1px solid #b6bfc9; border-radius: 6px; background: #ffffff;
    transition: background .14s, border-color .14s;
}
.chat-anexo-trilha-check:hover .chat-anexo-trilha-caixa { border-color: #337ab7; }
.chat-anexo-trilha-check:focus-visible .chat-anexo-trilha-caixa { box-shadow: 0 0 0 3px rgba(51, 122, 183, .2); }
.chat-anexo-trilha-check[aria-checked="true"] .chat-anexo-trilha-caixa { border-color: #337ab7; background: #337ab7; }
.chat-anexo-trilha-check[aria-checked="true"] .chat-anexo-trilha-caixa::after {
    content: ""; display: block; width: 5px; height: 9px; margin: 1px auto 0;
    border: solid #ffffff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.chat-anexo-trilha-falha { flex-shrink: 0; margin-top: 2px; color: #b03030; font-size: 17px; }
.chat-anexo-trilha-nome {
    flex: 1 1 0; min-width: 0; display: flex; flex-direction: column; gap: 2px;
    padding: 0; border: none; background: transparent; font-family: inherit; text-align: left; cursor: pointer;
}
.chat-anexo-trilha-titulo { font-size: calc(var(--chat-fs, 16px) * 0.8); font-weight: 500; color: #334155; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-anexo-trilha-linha-aberta .chat-anexo-trilha-titulo { color: #1f5480; font-weight: 600; }
.chat-anexo-trilha-linha-off .chat-anexo-trilha-titulo { color: #8a99a8; }
.chat-anexo-trilha-forma { font-size: calc(var(--chat-fs, 16px) * 0.81); color: #6b7280; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.chat-anexo-trilha-x { flex-shrink: 0; margin-top: 1px; color: #8a99a8; font-size: 15px; }
.chat-anexo-trilha-x:hover { color: #c0392b; }

/* 1fr auto 1fr crava as opções no centro da coluna: com espaçador, o centro andaria com o tamanho
   do título e do X. */
/* O detalhe é grid nos dois estados, e o que muda é onde cada peça cai. Sem maximizar: abas e o
   cabeçalho do lado ativo dividem a primeira linha, e por isso as opções ficam na linha das abas.
   Maximizado: cada lado tem a sua coluna, com título e controles na mesma linha. */
.chat-anexo-detalhe.chat-anexo-detalhe-aberto {
    display: flex; flex-direction: column;
    flex: 1 1 auto; min-height: 0; min-width: 0; overflow: hidden;
}
/* Uma linha só com quebra: abas e controles descem juntos quando a largura aperta, e nada estoura
   a caixa, que era o que a versão em duas colunas não sabia fazer. */
.chat-anexo-corpo-cab {
    display: flex; align-items: center; flex-wrap: wrap; gap: 8px 10px; padding: 8px 14px 0;
}
.chat-anexo-corpo { flex: 1 1 auto; }
/* O grupo encolhe até o maior botão e para aí: o mínimo automático de um item flex é o do
   próprio conteúdo, e nenhum botão entra nessa conta encolhido. */
.chat-anexo-corpo-acoes { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 7px; flex: 1 1 auto; }
/* Baixar e abrir em outra aba são do anexo, não da aba escolhida, e por isso aparecem nas duas. No
   maximizado os dois lados convivem, e aí só o do lado Original aparece, para não duplicar. */
/* Encostados à direita da faixa: a margem automática empurra o grupo até o fim sem tirar as
   opções do centro. */
.chat-anexo-acoes-original { display: inline-flex; align-items: center; flex: 0 0 auto; gap: 5px; margin-left: auto; }
.chat-painel-maximizado .chat-anexo-cab-extracao .chat-anexo-acoes-original ,.chat-anexos-lado-a-lado .chat-anexo-cab-extracao .chat-anexo-acoes-original{ display: none; }
/* Título e seta só no maximizado: sem ele as abas são o título, e não há o que recolher. */
.chat-anexo-corpo-titulo, .chat-anexo-corpo-recolher { display: none; }
.chat-anexo-detalhe[data-aba="extracao"] .chat-anexo-cab-original,
.chat-anexo-detalhe[data-aba="extracao"] .chat-anexo-corpo-original,
.chat-anexo-detalhe[data-aba="original"] .chat-anexo-cab-extracao,
.chat-anexo-detalhe[data-aba="original"] .chat-anexo-corpo-extracao { display: none; }

.chat-anexo-detalhe-abas { display: flex; align-items: center; flex: 0 0 auto; gap: 3px; }
.chat-anexo-aba {
    padding: 7px 4px; margin-right: 12px; border: none; border-bottom: 2px solid transparent;
    background: transparent; color: #6b7280; font-family: inherit; font-size: calc(var(--chat-fs, 16px) * 0.8);
    font-weight: 600; cursor: pointer;
}
.chat-anexo-aba:hover { color: #2b688f; }
.chat-anexo-aba-ativa { color: #2b688f; border-bottom-color: #2b688f; }
.chat-anexo-corpo { display: none; flex-direction: column; min-height: 0; min-width: 0; }
.chat-anexo-detalhe[data-aba="extracao"] .chat-anexo-corpo-extracao,
.chat-anexo-detalhe[data-aba="original"] .chat-anexo-corpo-original { display: flex; }
/* O cinza e as margens são do visualizador, não do lado: o lado também abriga o cabeçalho. */
.chat-anexo-original-corpo {
    flex: 1 1 auto; min-height: 0; display: flex; overflow: hidden;
    margin: 9px 14px 14px; background: #eef1f5; border-radius: 10px;
}
.chat-anexo-original-quadro { flex: 1 1 auto; width: 100%; height: 100%; border: 0; background: #eef1f5; }
/* Durante o arrasto o iframe não recebe ponteiro: sem isto o cursor entra nele e o divisor
   congela na borda do documento. */
.chat-anexo-arrastando .chat-anexo-original-quadro { pointer-events: none; }
.chat-anexo-original-img { max-width: 100%; max-height: 100%; margin: auto; object-fit: contain; }
.chat-anexo-original-aviso { margin: auto; padding: 18px; font-size: calc(var(--chat-fs, 16px) * 0.81); color: #6b7280; text-align: center; }
.chat-anexo-original-baixar {
    margin-top: 10px; padding: 6px 12px; border: 1px solid #bcd7f5; border-radius: 8px;
    background: #eaf4ff; color: #1f4b7a; font: inherit; font-weight: 600; cursor: pointer;
}
.chat-anexo-original-baixar:hover { border-color: #2b688f; color: #2b688f; }
.chat-anexo-detalhe-acao {
    display: inline-flex; align-items: center; justify-content: center; flex: 0 0 auto; width: 35px; height: 35px;
    border: 1px solid #dbe3ee; border-radius: 8px; background: #ffffff; color: #4d5b68;
    font-size: calc(var(--chat-fs, 16px) * 0.81); cursor: pointer;
}
.chat-anexo-detalhe-acao:hover { color: #2b688f; border-color: #c3d4e6; }
.chat-anexo-detalhe-meta { display: flex; align-items: center; gap: 9px; padding: 11px 14px 0; flex-wrap: wrap; font-size: calc(var(--chat-fs, 16px) * 0.81); }
.chat-anexo-detalhe-explicacao { padding: 9px 14px 0; font-size: calc(var(--chat-fs, 16px) * 0.81); line-height: 1.5; color: #6b7280; }
.chat-anexo-corpo-recolher {
    flex: 0 0 auto; border: none; border-radius: 7px; background: transparent; color: #8a99a8; cursor: pointer;
    padding: 4px 6px; line-height: 0;
}
.chat-anexo-corpo-recolher:hover { background: #eef2f7; color: #2b688f; }
.chat-anexo-corpo-recolher:focus-visible { outline: 2px solid #bcd0e4; outline-offset: 1px; }

/* Maximizar zera a coluna da conversa: o painel toma a área de conteúdo sem virar outra tela. A
   largura do painel vem de estilo inline do arrasto, por isso o !important. */
.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto.chat-painel-maximizado {
    grid-template-columns: 0 auto minmax(0, 1fr);
}
.redee-ia-chat-panel.chat-painel-maximizado > .chat-doc-painel { width: auto !important; }

/* Com a tela toda os dois lados convivem, cada um na sua coluna, com título e controles na mesma
   linha. As abas somem: o título de cada lado passa a identificá-lo. */
/* Uma linha só, com três colunas: cada lado empilha o próprio cabeçalho e o próprio conteúdo por
   dentro. Enquanto os dois dividiam as linhas do grid, o cabeçalho mais alto empurrava o conteúdo
   do outro lado para baixo. */
.chat-painel-maximizado .chat-anexo-detalhe.chat-anexo-detalhe-aberto ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe.chat-anexo-detalhe-aberto{
    display: grid;
    grid-template-columns: minmax(min-content, var(--lado-extracao, 1fr)) 10px minmax(min-content, 1fr);
    grid-template-rows: minmax(0, 1fr);
}
.chat-painel-maximizado .chat-anexo-detalhe-abas ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-abas{ display: none; }
.chat-painel-maximizado .chat-anexo-corpo-extracao ,
.chat-anexos-lado-a-lado .chat-anexo-corpo-extracao{ grid-column: 1; }
.chat-painel-maximizado .chat-anexo-corpo-original ,
.chat-anexos-lado-a-lado .chat-anexo-corpo-original{ grid-column: 3; }
/* Lado a lado, a margem de cada um soma à do divisor e o vão fica três vezes maior que o da
   trilha. Quem separa os dois é o divisor, e a linha dele dispensa a borda da coluna. */
.chat-painel-maximizado .chat-anexo-extracao-texto ,
.chat-anexos-lado-a-lado .chat-anexo-extracao-texto{ margin-right: 0; }
.chat-painel-maximizado .chat-anexo-original-corpo ,
.chat-anexos-lado-a-lado .chat-anexo-original-corpo{ margin-left: 0; }
.chat-painel-maximizado .chat-anexo-detalhe .chat-anexo-divisor ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe .chat-anexo-divisor{
    display: block; grid-column: 2; cursor: col-resize; touch-action: none;
    background: linear-gradient(to right, transparent 4px, #e6ecf3 4px, #e6ecf3 6px, transparent 6px);
}
.chat-painel-maximizado .chat-anexo-detalhe .chat-anexo-divisor:hover ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe .chat-anexo-divisor:hover{
    background: linear-gradient(to right, transparent 3px, #bcd0e4 3px, #bcd0e4 7px, transparent 7px);
}
/* Os dois lados aparecem, e a aba deixa de decidir quem é visível. */
.chat-painel-maximizado .chat-anexo-detalhe .chat-anexo-corpo,
.chat-painel-maximizado .chat-anexo-detalhe .chat-anexo-corpo-cab ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe .chat-anexo-corpo-cab,
.chat-anexos-lado-a-lado .chat-anexo-detalhe .chat-anexo-corpo{ display: flex; }
.chat-painel-maximizado .chat-anexo-corpo-titulo ,
.chat-anexos-lado-a-lado .chat-anexo-corpo-titulo{
    display: block; flex: 0 1 auto; min-width: 0; font-size: calc(var(--chat-fs, 16px) * 0.8);
    font-weight: 700; color: #334155; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.chat-painel-maximizado .chat-anexo-corpo-recolher ,
.chat-anexos-lado-a-lado .chat-anexo-corpo-recolher{ display: inline-flex; align-items: center; flex: 0 0 auto; }

/* Recolhido, a coluna vira faixa de 46px e sobra o essencial para voltar: o título em pé e a seta. */
.chat-painel-maximizado .chat-anexo-detalhe-sem-extracao.chat-anexo-detalhe-aberto ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-extracao.chat-anexo-detalhe-aberto{ grid-template-columns: 46px 10px minmax(min-content, 1fr); }
.chat-painel-maximizado .chat-anexo-detalhe-sem-original.chat-anexo-detalhe-aberto ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-original.chat-anexo-detalhe-aberto{ grid-template-columns: minmax(min-content, 1fr) 10px 46px; }
/* Imagem não tem extração: só o original, em qualquer estado do painel. */
.chat-anexo-detalhe-so-original .chat-anexo-corpo-extracao,
.chat-anexo-detalhe-so-original .chat-anexo-divisor,
.chat-anexo-detalhe-so-original .chat-anexo-corpo-recolher { display: none !important; }
.chat-anexo-detalhe-so-original .chat-anexo-corpo-original { display: flex !important; }
.chat-painel-maximizado .chat-anexo-detalhe-so-original.chat-anexo-detalhe-aberto ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-so-original.chat-anexo-detalhe-aberto{ grid-template-columns: minmax(0, 1fr); }
.chat-painel-maximizado .chat-anexo-detalhe-so-original .chat-anexo-corpo-original ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-so-original .chat-anexo-corpo-original{ grid-column: 1; }
.chat-painel-maximizado .chat-anexo-detalhe-sem-extracao .chat-anexo-corpo-extracao > :not(.chat-anexo-corpo-cab),
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-extracao .chat-anexo-corpo-extracao > :not(.chat-anexo-corpo-cab),
.chat-painel-maximizado .chat-anexo-detalhe-sem-original .chat-anexo-corpo-original > :not(.chat-anexo-corpo-cab) ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-original .chat-anexo-corpo-original > :not(.chat-anexo-corpo-cab){ display: none; }
.chat-painel-maximizado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao,
.chat-painel-maximizado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original{
    flex: 1 1 auto; flex-direction: column; flex-wrap: nowrap; align-items: center; gap: 10px; padding: 12px 0;
}
.chat-painel-maximizado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-corpo-acoes,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-corpo-acoes,
.chat-painel-maximizado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-corpo-acoes ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-corpo-acoes{ display: none; }
/* Recolhido, o título e a seta saem e fica um botão só, seta em cima e rótulo embaixo, como na faixa
   da conversa. */
.chat-anexo-lado-reabrir {
    display: none; flex-direction: column; align-items: center; gap: 10px; min-height: 0;
    padding: 8px 4px; border: 0; border-radius: 7px; background: transparent; color: #8a99a8; cursor: pointer; font-family: inherit;
}
.chat-painel-maximizado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-corpo-titulo,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-corpo-titulo,
.chat-painel-maximizado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-corpo-recolher,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-corpo-recolher,
.chat-painel-maximizado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-corpo-titulo,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-corpo-titulo,
.chat-painel-maximizado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-corpo-recolher ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-corpo-recolher{ display: none; }
.chat-painel-maximizado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-lado-reabrir,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-lado-reabrir,
.chat-painel-maximizado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-lado-reabrir ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-lado-reabrir{ display: inline-flex; }
.chat-anexo-lado-reabrir:hover { background: #eef2f7; color: #2b688f; }
.chat-anexo-lado-reabrir:focus-visible { outline: 2px solid #bcd0e4; outline-offset: 1px; }
.chat-anexo-lado-rotulo {
    writing-mode: vertical-rl; width: 1.5em; min-width: 1.5em; max-height: 100%; font-size: calc(var(--chat-fs, 16px) * 0.8);
    font-weight: 700; color: #334155; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
/* A seta gira para dizer o que o clique faz: recolhida, ela reabre. */
.chat-painel-maximizado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-corpo-recolher,
.chat-painel-maximizado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-corpo-recolher ,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-original .chat-anexo-cab-original .chat-anexo-corpo-recolher,
.chat-anexos-lado-a-lado .chat-anexo-detalhe-sem-extracao .chat-anexo-cab-extracao .chat-anexo-corpo-recolher{ transform: rotate(180deg); }

/* A extração em HTML separa os parágrafos como o texto cru separa com a linha em branco. */
.chat-anexo-extracao-texto-html .doc-paragraph { margin: 0 0 12px; padding: 0; }
.chat-anexo-extracao-texto-html .doc-viewer > :last-child { margin-bottom: 0; }

.chat-anexo-extracao-img {
    display: block;
    max-width: 100%;
    height: auto;
    margin: 10px auto;
    border-radius: 6px;
}

.chat-anexo-relendo {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin: 11px 14px 14px;
    padding: 18px;
    border: 1px solid #eef2f6;
    border-radius: 10px;
}

.chat-anexo-relendo-cab {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: calc(var(--chat-fs, 16px) * 0.8);
    font-weight: 600;
    color: #1f5480;
}

.chat-anexo-relendo-ico {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #e6eff7;
}

.chat-anexo-relendo-barra {
    height: 4px;
    border-radius: 3px;
    background: #e6ecf3;
    overflow: hidden;
}

.chat-anexo-relendo-barra span {
    display: block;
    height: 100%;
    width: 38%;
    background: #337ab7;
    border-radius: 3px;
    animation: chatAnexoCorre 1.4s ease-in-out infinite;
}

.chat-anexo-relendo-nota {
    font-size: calc(var(--chat-fs, 16px) * 0.81);
    line-height: 1.5;
    color: #6b7280;
}

/* Durante a releitura as opções esperam: uma segunda troca disputaria a mesma leitura. */
.chat-anexo-detalhe[data-relendo="true"] .chat-anexo-flag {
    opacity: .45;
    pointer-events: none;
}

.chat-anexo-trilha-forma-lendo {
    color: #1f5480;
}

.chat-anexo-relido {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: #2e7d4f;
}

body .chat-reler-dialog .dialogCriarIaBotoes {
    margin-top: 16px;
}
.chat-anexo-extracao-texto {
    flex: 1 1 auto; min-height: 0; margin: 11px 14px 14px; padding: 13px 15px;
    background: #f6f8fa; border-radius: 10px; overflow-y: auto; overflow-x: hidden; white-space: pre-wrap;
    /* Palavra sem espaço (URL, hash) criava rolagem horizontal com o resto vazio. */
    overflow-wrap: anywhere;
    font-size: calc(var(--chat-fs, 16px) * 0.8); line-height: 1.6; color: #4b5563;
}
.chat-anexo-flag-off { opacity: .45; cursor: not-allowed; }
.chat-docs-dialog .chat-anexos-lista { max-height: 55vh; overflow-y: auto; padding-right: 4px; }
.chat-anexo-flag-retry { border-color: #d8a7a7; color: #b03030; }
.chat-anexo-flag-retry:hover { background: #fbeaea; border-color: #b03030; color: #b03030; }

/* Sem turno dono, o painel ainda nao tem documento: a aba dele nao anuncia conteudo inexistente. */
.chat-doc-painel.chat-doc-sem-turno .chat-painel-aba[data-aba="documento"],
.chat-doc-painel.chat-doc-sem-turno .chat-doc-btn-salvar { display: none; }

.chat-anexo-estado { font-weight: 600; }
.chat-anexo-estado-ok { color: #2e7d4f; }
.chat-anexo-estado-lendo { color: #2b688f; }
.chat-anexo-estado-vazia { color: #a56a12; }
.chat-anexo-estado-falha { color: #b03030; }

/* ---- Bloco de leitura dos anexos, acima do campo do chat ---- */
.chat-anexos-bloco {
    /* Flutua logo acima do campo, ancorado nele: em fluxo, entrar e sair mudava a altura do
       container e empurrava a saudacao 93px de uma vez, sem transicao. */
    position: absolute;
    bottom: calc(100% + 8px);
    left: 50%;
    transform: translateX(-50%);
    width: min(560px, calc(100% - 32px));
    box-sizing: border-box;
    border: 1px solid #dbe3ee; border-radius: 12px; background: #ffffff;
    padding: 11px 14px 4px; margin-bottom: 8px;
}
.chat-anexos-bloco-pronto { border-color: #cfe0d6; }
/* No formulário do agente o bloco fica em fluxo, no alto dele, com o mesmo visual. */
.chat-perguntas > .chat-anexos-bloco { position: static; transform: none; width: auto; margin: 0 0 12px; }
.chat-anexos-bloco-topo { display: flex; align-items: center; gap: 9px; padding-bottom: 9px; cursor: pointer; }
.chat-anexos-bloco-ico {
    width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0; font-size: calc(var(--chat-fs, 16px) * 0.81);
    display: flex; align-items: center; justify-content: center; background: #e6eff7; color: #1f5480;
}
.chat-anexos-bloco-pronto .chat-anexos-bloco-ico { background: #e8f3ea; color: #1f6b35; }
.chat-anexos-bloco-titulo { flex-grow: 1; font-size: calc(var(--chat-fs, 16px) * 0.8); font-weight: 600; color: #334155; }
.chat-anexos-bloco-recolher { border: 0; background: transparent; color: #98a4b3; cursor: pointer; padding: 2px; }
.chat-anexos-bloco-barra { height: 4px; border-radius: 3px; background: #e6ecf3; overflow: hidden; }
.chat-anexos-bloco-barra span { display: block; height: 100%; background: #337ab7; border-radius: 3px; transition: width .25s ease; }
/* A barra de rolagem sobreposta cairia em cima do X que fecha cada linha: o espaço dela fica reservado. */
.chat-anexos-bloco-lista { display: flex; flex-direction: column; max-height: 170px; overflow-y: auto; padding-right: 12px; }
.chat-anexos-bloco-nota { font-size: calc(var(--chat-fs, 16px) * 0.81); color: #6b7280; padding: 9px 0 10px; border-top: 1px solid #eef2f7; }
.chat-anexos-bloco-recolhido .chat-anexos-bloco-lista,
.chat-anexos-bloco-recolhido .chat-anexos-bloco-nota,
.chat-anexos-bloco-recolhido .chat-anexos-bloco-barra { display: none; }
.chat-anexos-bloco-enviado { display: none; }

.chat-anexo-linha { display: flex; align-items: center; gap: 9px; padding: 8px 0; border-top: 1px solid #eef2f7; flex-wrap: wrap; }
.chat-anexo-linha-pronta { cursor: pointer; }
.chat-anexo-linha-pronta:hover .chat-anexo-linha-nome { color: #337ab7; }
.chat-anexo-linha-ico {
    width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0; font-size: calc(var(--chat-fs, 16px) * 0.75);
    display: flex; align-items: center; justify-content: center;
}
.chat-anexo-linha-ico-ok { background: #e8f3ea; color: #1f6b35; }
.chat-anexo-linha-ico-lendo { background: #e6eff7; color: #1f5480; }
.chat-anexo-linha-ico-falha { background: #fbeaea; color: #b03030; }
.chat-anexo-linha-nome {
    /* Base zero: com a base no conteúdo, o nome comprido empurra o resultado da leitura para a
       linha de baixo antes de encolher. */
    flex-grow: 1; flex-basis: 0; min-width: 0; font-size: calc(var(--chat-fs, 16px) * 0.8); color: #334155;
    overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.chat-anexo-linha-res { font-size: calc(var(--chat-fs, 16px) * 0.81); color: #6b7280; white-space: nowrap; }
.chat-anexo-linha-res-lendo { color: #1f5480; }
.chat-anexo-linha-res-falha { color: #b03030; font-weight: 600; }
.chat-anexo-linha-x { color: #98a4b3; padding: 2px; }
.chat-anexo-linha-x:hover { color: #c0392b; }
.chat-anexo-linha-barra {
    flex-basis: 100%; height: 3px; border-radius: 2px; background: #e6ecf3;
    overflow: hidden; margin: 6px 0 0 29px;
}
.chat-anexo-linha-barra span {
    display: block; height: 100%; width: 38%; background: #337ab7; border-radius: 2px;
    animation: chatAnexoCorre 1.4s ease-in-out infinite;
}
@keyframes chatAnexoCorre { 0% { transform: translateX(-100%); } 100% { transform: translateX(300%); } }

/* A area da conversa cresce so pelo flex-grow, que e o que tem transicao. Sem fixar o basis, ele
   trocaria de auto para 0% num quadro e a altura cairia a zero antes da rampa, jogando o campo
   para cima antes de ele descer. */
.redee-ia-chat-panel.chat-com-anexo .chat-scroll {
    flex-basis: auto;
}

/* A saudacao continua visivel e no lugar: a posicao vem medida do script, porque qualquer ancora
   fixa a recentraliza em outro ponto. Largura pelo painel, para nao perder a centralizacao. */
/* A saudacao nao se reposiciona em nenhum dos dois sentidos. A ancora e o painel, que nao muda de
   posicao na transicao; a faixa ocupa a largura dele, sem medida, entao a expansao de 880 para 1440
   nao desloca nada; e com o painel de documento aberto o chat vira grid, onde a celula 1/1 e a
   coluna da conversa. A classe e propria e nao a do estado, porque na volta ela precisa continuar
   presa depois de o estado mudar, ate o layout terminar de voltar. */
.redee-ia-chat-panel .chat-saudacao-tela.chat-saudacao-presa {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    left: 0;
    right: 0;
    /* Intervalo fechado: em posição absoluta a linha final `auto` resolve na borda do painel, e a
       saudação invadiria o documento em vez de parar na coluna da conversa. */
    grid-column: 1 / 2;
    grid-row: 1 / 2;
    pointer-events: none;
}

.redee-ia-chat-panel.chat-com-anexo .chat-saudacao-tela {
    display: flex;
    align-items: center;
    justify-content: center;
}

/* O que o maximizado esconde vem DEPOIS das regras que mostram a saudação, porque elas empatam em
   especificidade e aí manda a ordem. O resizer é caso à parte: a regra que o mostra tem quatro
   classes, então aqui a disputa se ganha por especificidade, não por ordem. */
.redee-ia-chat-panel.chat-painel-aberto.chat-painel-maximizado > .chat-scroll,
.redee-ia-chat-panel.chat-painel-aberto.chat-painel-maximizado > .chat-perguntas-dock,
.redee-ia-chat-panel.chat-painel-aberto.chat-painel-maximizado > .chat-input-container,
.redee-ia-chat-panel.chat-painel-aberto.chat-painel-maximizado > .chat-saudacao-tela { display: none; }

.redee-ia-chat-panel.chat-com-painel.chat-painel-aberto.chat-painel-maximizado > .chat-doc-resizer { display: none; }

/* Copiar e salvar sao do documento: na aba de anexos nao ha o que copiar nem salvar. */
.chat-doc-painel[data-aba="anexos"] .chat-doc-btn-copiar,
.chat-doc-painel[data-aba="anexos"] .chat-doc-btn-salvar {
    display: none;
}

/* O aviso da IA continua escondido enquanto nao ha conversa: mostra-lo no quadro da troca cresce
   o container do campo em 22px e puxa o campo para cima antes de ele descer. */
.redee-ia-chat-panel.chat-com-anexo .chat-aviso-ia {
    display: none;
}

/* Barra do CKEditor (skin moono-lisa) */
/* O skin mostra o texto "Codigo-Fonte" ao lado do icone; os demais botoes sao so icone. */
.cke_button__source_label {
    display: none !important;
}
/* Menus da barra do Editar sem ícone no skin: o texto ("Inserir", "Aa") vai na caixa de 16px do ícone,
   centralizado, para ficar na mesma linha dos outros botões; o rótulo do skin segue escondido. */
.cke_button__redeeinserir_icon,
.cke_button__redeetexto_icon {
    display: flex !important;
    align-items: center;
    justify-content: center;
    height: 16px;
    background: none !important;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1;
    color: #484848;
}

.cke_button__redeeinserir_icon {
    width: auto !important;
}

.cke_button__redeeinserir_icon::before {
    content: 'Inserir';
}

.cke_button__redeetexto_icon {
    width: 16px;
    font-weight: 600;
    letter-spacing: -0.5px;
    color: #686868;
}

.cke_button__redeetexto_icon::before {
    content: 'Aa';
}

.cke_combo__redeetemplate .cke_combo_text {
    width: auto;
    min-width: 90px;
    max-width: 160px;
}

/* O combo de tamanho tem 60px fixos e sobra espaco vazio depois do "11": largura pelo conteudo. */
.cke_combo__fontsize .cke_combo_text {
    width: auto;
    min-width: 22px;
    padding-right: 6px;
}
.cke_paginacao_status.cke_paginacao_aviso { color: #b45309; font-weight: bold; }
