:root {
    /* Pastilha ativa do seletor da Grade do feed (dark.css inverte). */
    --gf-seg-ativo: #fff;
    --color-text-01: #000;
    --color-border: #0000001a;
    --color-hover-01: #8c8c8c14;
    --color-btn-text-01: #fff;
    --color-btn-bg-01: #000;
    --color-bg: #fff;
    --color-bg-01: #2946540d;
    /* Skeleton loading (shimmer) */
    --sk-base: #e8eaed;
    --sk-glow: rgba(255, 255, 255, 0.7);
    /* Superficie do cartao de pessoa (.ap-usercard, no fim deste arquivo).
       Var propria porque --color-bg vira preto puro no escuro e um popover
       em cima da tela preta some - la ela recebe elevacao (dark.css). */
    --uc-surface: #fff;
    /* Superficie do dropdown de regras das redes (.rdi-pop, no fim deste
       arquivo). Mesma razao do --uc-surface: popover precisa de elevacao. */
    --rdi-surface: #fff;
    /* COMENTARIOS (coment-editor.css). Mesma razao do --uc-surface: os
       paineis do editor (menu "+", emoji, anexos, referencia) e a barra de
       acoes do comentario flutuam e precisam de superficie propria. A bolha
       do comentario tem token porque e o unico tom "cheio" da conversa. */
    --ce-surface: #fff;
    --ce-bolha: #f3f3f5;
    --ce-sombra: 0 1px 2px rgba(16, 24, 40, .04), 0 18px 40px -20px rgba(16, 24, 40, .35);
    /* Superficie da bandeja de uploads (.up-tray, no fim deste arquivo).
       Mesma razao do --uc-surface: janela flutuante precisa de elevacao propria. */
    --up-surface: #fff;
    /* Superficie do cartao de notificacao (.ntf-card, no fim deste arquivo).
       Precisa ser OPACA: as folhas da pilha ficam atras do cartao e apareceriam
       through se a cor fosse translucida como a --color-bg-01. A folha e um
       degrau mais escura, senao a beirada de 4px some no fundo branco. */
    --ntf-surface: #f2f3f5;
    --ntf-folha: #e6e8ec;
    /* Tela de selecao de workspace (.wss-*, bloco WSS neste arquivo). E a
       primeira tela da conta nova: fundo com aura + grade e superficies em
       vidro, como o site. --wss-surface e OPACA de proposito: e o anel das
       mini marcas, e translucido deixaria a marca de tras aparecer no recorte.
       No escuro tudo ganha elevacao propria (dark.css). */
    --wss-bg: #f7f8fa;
    --wss-surface: #fff;
    --wss-glass: rgba(255, 255, 255, .74);
    --wss-glass-forte: rgba(255, 255, 255, .92);
    --wss-line: rgba(16, 24, 40, .08);
    --wss-line-forte: rgba(16, 24, 40, .15);
    --wss-aura-1: rgba(99, 102, 241, .20);
    --wss-aura-2: rgba(34, 211, 238, .16);
    --wss-grade: rgba(16, 24, 40, .06);
    --wss-sombra: 0 1px 2px rgba(16, 24, 40, .04), 0 12px 32px -20px rgba(16, 24, 40, .18);
    --wss-sombra-hover: 0 2px 4px rgba(16, 24, 40, .04), 0 32px 60px -30px rgba(16, 24, 40, .36);
    --wss-avatar-bg: linear-gradient(135deg, #eceef2, #d8dbe2);
    /* Icone do botao Aparencia: o dark.css inverte os dois */
    --wss-ico-sol: block;
    --wss-ico-lua: none;
    /* FILTROS (.bfr-* / .fdd-*, no fim deste arquivo). Popover e painel de
       filtro FLUTUAM, entao precisam de superficie propria: --color-bg vira
       preto puro no escuro e a janela sumiria no fundo da tela. Mesmo padrao de
       --uc-surface / --up-surface / --ntf-surface. */
    --fx-surface: #fff;
    --fx-campo: #00000008;
    --fx-line: #00000017;
    --fx-line-forte: #00000038;
    --fx-hover: #0000000a;
    --fx-sombra: 0 1px 2px rgba(16, 24, 40, .05), 0 24px 48px -24px rgba(16, 24, 40, .42);
}

/* ============================================================================
   BORDER-BOX - a base que esta folha SEMPRE assumiu e nunca declarou.
   ----------------------------------------------------------------------------
   Todo o painel3.css foi escrito com `width` e `padding` na mesma regra, contando
   que a largura ja inclua o padding. Isso funcionava por CARONA: browse/header.php
   carrega o Bootstrap 4 de CDN duas linhas antes desta folha, e e ele quem
   declara `*, *::before, *::after { box-sizing: border-box }`.

   A conta so nao fecha onde nao ha Bootstrap. Em /browse/workspaces/ - tela
   standalone, que carrega os assets minimos - o popup "Minha assinatura" abria
   com o menu EM CIMA do conteudo: `.left-contant` tem `width: 178px` mais
   `padding-right: 20px` e ocupava 198px reais, enquanto `.right-contant` pedia
   `calc(100% - 178px)`. Os dois flutuam a esquerda e a soma passava da largura
   do popup por exatos 20px, entao a segunda coluna quebrava para baixo.

   Declarar aqui e o conserto na raiz: a folha deixa de depender de um CDN de
   terceiro para o proprio modelo de caixa. No painel e NO-OP - a declaracao e
   byte a byte a do Bootstrap, que ja rodou antes. Nas telas standalone que
   carregam esta folha, passa a valer a mesma base em que cada regra daqui foi
   desenhada.

   ! Nao e um reset: `margin`/`padding` continuam como estao. Zerar os dois
   aqui mudaria o painel inteiro, e o painel esta certo do jeito que esta.
   ============================================================================ */
*,
*::before,
*::after {
    box-sizing: border-box;
}

@-webkit-keyframes video-icon-animation {
    from {
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
        opacity: 1;
    }

    to {
        -webkit-transform: scale(.2, 1.2);
        transform: scale(.2, .2);
        opacity: 0;
    }
}

@keyframes gradientAnimation {
    0% {
        background-position: 0% 0%;
    }

    50% {
        background-position: 100% 100%;
    }

    100% {
        background-position: 0% 0%;
    }
}

@keyframes video-icon-animation {
    from {
        -webkit-transform: scale(1, 1);
        transform: scale(1, 1);
        opacity: 1;
    }

    to {
        -webkit-transform: scale(2.2, 1.2);
        transform: scale(.2, 1.2);
        opacity: 0;
    }
}

.hidden {
    display: none !important;
}

* {
    /* letter-spacing: 0.4px; */
    font-family: "Golos Text", Inter;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    /* line-height: 1.6; */
    letter-spacing: -0.010em;
    /* text-wrap: balance; */
}

e {
    transition: 0.2s;
}

strong,
b {
    font-weight: 550 !important;
}

.overflow-hidden {
    overflow: hidden;
}

#header-lst-posts .header-topo {
    /* background: #00000009; */
    /* background-image: linear-gradient(to bottom, #00000005 0%, #00000008 50%, rgb(0 0 0 / 2%) 100%); */
    border-radius: 12px;
    padding: 20px;
    border: 1px solid var(--color-border);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    position: relative;
    overflow: hidden;
}

.header-baixo {
    padding: 3px 15px 22px 15px;
}

#header-lst-posts .limites-armazenamento::after,
.dropdown-default.t-menu-opcoes .it-bt::after,
.m-t-btns-configs::after,
.btn-novo-espaco::after,
.btn-status-tarefa::after,
.item-post.tarefa .edicao .parametros::after,
.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .center::after,
.header-perfil-user .txt .btns::after,
.estrutura-atividades-lst-01 .hdr .acoes .it::after,
.check-site-seguro::after,
.html-resumo-valores .txt-valor::after,
.lst-formas-pagamento .item-forma-pagamemento::after,
.formas-de-pagamento .display::after,
.resumo-pedido::after,
.resumo-pedido .tag-box-info::after,
.lst-perfis-geren .item-perfis-geren::after,
.lst-perfis-geren .item-perfis-geren .planos::after,
.contant-assinatura-new .lst-btns-actions::after,
.lst-planos-geren::after,
.popup-footer::after,
.metrics-perfil-display .drodpown-filtro-periodos::after,
.metrics-perfil-display .meta::after,
.greficos-metricass-perfil::after,
.estrutura-pessoas-lst-01 .lst::after,
.lst-membros-all .item .dropdown-default .hdr::after,
.header-style-01 .menu-itens-style-01::after,
.item-post .campos-content::after,
.totais-group-box .item-box::after,
.pg-action:after,
.dropdown-filtros-01 .lst-filtro-itens::after,
.item-post .configs .grupo-btns::after,
.table-datas-selecionadas .item::after,
.perfil-datas .section-bl::after,
.perfil-datas::after,
.edicao-page-direct .tabs::after,
.contant-metrica-conteudo .tabs::after,
.contant-metrica-perfil-conteudo .tabs::after,
.estrutura-atividades-lst-01 .hdr::after,
.usuario-cadastro-mais .campos::after,
.grupo-btns-tips .box-membros .membros::after,
.lst-membros-all::after,
.box-membros-02 .lst .item::after,
.totais-group-box .item-box.progesso-stauts::after,
.totais-group-box .item-box.progesso-stauts .item-status::after,
.header-perfil-user::after {
    visibility: hidden;
    display: block;
    content: "";
    clear: both;
    height: 0;
}

.estrutura-compras-lst-01 .item::after,
#menu-topo::after,
.editar-espaco .group-campo::after,
.contant-criar-tarefa::after,
.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item .hdr-lista::after,
.midias-tarefas::after,
.btns-t-espacolista .item::after,
.btns-t-espacolista::after,
.dropdown-default.tarefa-status .lst-status .st-item::after,
.popup-delta .item-post .btns-t-anteriores::after,
.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco::after,
.menu-sistema .espacos .m::after,
.item-post.tarefa .edicao .parametros .item::after,
#tabd2-6 .item::after,
.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .infos::after,
.header-pagina .header-filtros .status::after,
.contant-lista-estrutura .hdr .filtros::after,
.inicial-acesso-rapid::after,
.dash-bloco-info::after,
.dash-bloco-info .ls-totais .t-it::after,
.dash-blocos::after,
.header-pagina .header-filtros .pessoas .btn-eu::after {
    visibility: hidden;
    display: block;
    content: "";
    clear: both;
    height: 0;
}

.editar-espaco .group-campo .campos::after,
.editar-espaco .group-campo .ipt-prop-atual::after,
.editar-espaco .ftr::after,
.editar-espaco .group-mebros-box .lst-membros::after,
.dropdown-default.t-select-itens .it-user::after,
.dropdown-default.t-select-cores::after,
.opcoes-exibicao::after,
.titulo-group::after,
.opcoes-exibicao .btn-exibicao .opcao::after,
.btn-add-tarefa-quad::after,
.type-quadro .conteudo-item::after,
.editar-lista .ftr::after,
.estrutura-list-status-edit::after {
    visibility: hidden;
    display: block;
    content: "";
    clear: both;
    height: 0;
}

.clear::after {
    visibility: hidden;
    display: block;
    content: "";
    clear: both;
    height: 0;
}

.header-style-01 .menu-itens-style-01 .item.atv::after {
    display: block;
}

.header-style-01 {
    padding: 0px 0px 8px 9px;
    /* border-radius: 0px 0px 20px 20px; */
    margin-bottom: 22px;
    margin-top: 4px;
    /* border-bottom: 1px solid rgb(144 144 144 / 18%); */
}

.header-style-01 .menu-itens-style-01 {
    float: left;
    display: flex;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 15px;
    scrollbar-width: none;
    -ms-overflow-style: none;
}

.header-style-01 .menu-itens-style-01 .item {
    float: left;
    padding: 11px 0px 4px 0px;
    margin-bottom: -1px;
    transition: 0.3s;
    /* border-radius: 0px; */
    margin-right: 0px;
    font-weight: 400;
    font-size: 14px;
    color: #3b3b3b;
    border-bottom: 2px solid #00000000;
    flex: 0 0 auto;
    white-space: nowrap;
    cursor: pointer;
}

.header-style-01 .menu-itens-style-01 .item.atv {
    cursor: initial;
    border-color: #000000;
    font-weight: 550;
}

.header-style-01 .container-pesquisar {
    float: right;
    position: relative;
    display: block;
    /* overflow: hidden; */
    margin-top: -5px;
}

.header-style-01 .container-pesquisar.atv {
    width: calc(300px);
}

.header-style-01 .container-pesquisar .pesquisar {
    background: #fff;
    display: block;
    transition: 0.3s;
    overflow: hidden;
    border-radius: 40px;
    border: 1px solid rgba(249, 0, 50, 0);
}

.header-style-01 .container-pesquisar .pesquisar input {
    float: left;
    height: 24px;
    color: #000;
    cursor: auto;
    opacity: 1;
    padding: 0px 0px 0px 13px;
    font-size: 13px;
    border: 0px;
    display: none;
}

.header-style-01 .container-pesquisar.atv .pesquisar input {
    display: block;
    width: calc(100% - 35px);
    border-radius: 40px;
}

.header-style-01 .container-pesquisar.atv .pesquisar {
    border-color: #0064e0;
}

.header-style-01 .container-pesquisar .pesquisar .btn-pesquisar,
.header-style-01 .container-pesquisar .pesquisar .btn-fechar {
    float: right;
    padding: 4px;
    cursor: pointer;
}

.header-style-01 .container-pesquisar .pesquisar .btn-fechar {
    display: none;
}

.header-style-01 .container-pesquisar.atv .pesquisar .btn-fechar {
    display: block;
}

.header-style-01 .container-pesquisar.atv .pesquisar .btn-pesquisar {
    display: none;
}

.header-style-01 .container-pesquisar.atv .pesquisar input:focus,
.ipt-titulo-post:focus,
#tabd2-4 .item-objetivo .text:focus,
.textarea:focus,
.focus-none:focus,
.no-focus:focus {
    outline: none;
}

#back-menu {
    display: none;
}

.menu-sistema {
    position: fixed;
    left: 0px;
    top: 0px;
    height: 100%;
    width: 261px;
    /* border-right: solid 1px var(--color-border); */
    padding-top: 0px;
    overflow: hidden;
    transition: right 0.3s ease;
    /* background: #fff; */
}

.menu-sistema .logo {
    max-width: 66px;
    position: absolute;
    bottom: 11px;
    left: 22px;
}

.menu-sistema .itens {
    padding: 3px 7px 60px 14px;
    margin-top: 0px;
    clear: both;
    overflow: auto;
    position: absolute;
    width: 100%;
    height: calc(100% - 52px);
    bottom: 0px;
    z-index: 2;
    background: #ffffff;
    width: 215px;
    right: 0px;
    display: none;
    /* border-left: solid 1px var(--color-border); */
}

.menu-sistema .itens .item {
    padding: 5px 0px 6px 7px;
    margin-left: -6px;
    margin-bottom: 2px;
    cursor: pointer;
    color: rgb(0 0 0);
    fill: rgb(67 67 79 / 89%);
    transition: 0.3s;
    font-family: kastelov;
    font-weight: 400;
    position: relative;
    display: block;
    opacity: 1;
    border-radius: 7px;
}

.menu-sistema .itens .item .groupp {
    display: flex;
    align-items: center;
}

.menu-sistema .itens .item p {
    margin: 0 0px 0px 0px;
    float: left;
    line-height: 11px;
    font-size: 13.7px;
    letter-spacing: -0.015em;
    text-wrap: balance;
}

.menu-sistema .itens .item svg {
    width: 18px;
    height: 17px;
    float: left;
    margin: 0px 11px 0px 0px;
    padding: 0.5px;
}

.menu-sistema .item:after,
.edicao-page-estilo .sistema-estilos::after {
    visibility: hidden;
    display: block;
    content: "";
    clear: both;
    height: 0;
}

.menu-sistema .itens .item:hover {
    color: #000;
    fill: #000;
    opacity: 1;
    background: var(--color-bg-01);
    ;
}

.menu-sistema .itens .item.atv {
    color: #000000;
    fill: #000000;
    font-weight: 600;
    background: var(--color-bg-01);
}

.conteudo-sistema-home .container {
    width: 100%;
    cursor: inherit;
    padding: 0px 25px;
}

.etapas-conexao-redes {
    max-width: 800px;
    padding: 0px;
}

.etapas-conexao-redes .step {
    display: flex;
    align-items: flex-start;
    padding: 20px;
    border-bottom: 1px solid #ccc;
}

.etapas-conexao-redes .step:last-child {
    border-bottom: none;
}

.etapas-conexao-redes .step-number {
    font-size: 24px;
    font-weight: bold;
    color: white;
    background-color: #0064e0;
    width: 50px;
    height: 50px;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 50%;
    margin-right: 20px;
}

.etapas-conexao-redes .step-content h2 {
    font-size: 20px;
    margin-bottom: 10px;
}

.etapas-conexao-redes .step-content p {
    font-size: 16px;
    color: #555;
}

.etapas-conexao-redes .step-content {
    width: calc(100% - 50px);
}

.facebookConectado,
.instagramConectado {
    font-size: 12px;
    font-weight: 700;
    color: rgb(74, 212, 74);
    text-transform: uppercase;
}

/* The container */
.container {
    display: block;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    padding: 0px;
}

/* Hide the browser's default checkbox */
.container input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* Create a custom checkbox */
.checkmark {
    top: 0;
}

/* On mouse-over, add a grey background color */
.container:hover input~.checkmark {
    background-color: #ccc;
}

/* When the checkbox is checked, add a blue background */
.container input:checked~.checkmark {
    background-color: #2196F3;
}

/* Create the checkmark/indicator (hidden when not checked) */

/* Show the checkmark when checked */
.container input:checked~.checkmark:after {
    display: block;
}

/* Style the checkmark/indicator */
.container .checkmark:after {
    left: 9px;
    top: 5px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

/* The container */
.inputcheckbox {
    display: block;
    position: relative;
    cursor: pointer;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;
    user-select: none;
    display: flex;
    align-items: center;
    width: 22px;
    height: 40px;
}

/* Hide the browser's default checkbox */
.inputcheckbox input {
    position: absolute;
    opacity: 0;
    cursor: pointer;
    height: 0;
    width: 0;
}

/* Create a custom checkbox */
.checkmark {
    position: absolute;
    top: 0px;
    left: 0;
    height: 25px;
    width: 25px;
    background-color: #eee;
}

/* On mouse-over, add a grey background color */
.inputcheckbox:hover input~.checkmark {
    background-color: #ccc;
}

/* When the checkbox is checked, add a blue background */
.inputcheckbox input:checked~.checkmark {
    background-color: #2196F3;
}

/* Create the checkmark/indicator (hidden when not checked) */
.checkmark:after {
    content: "";
    position: absolute;
    display: none;
}

/* Show the checkmark when checked */
.inputcheckbox input:checked~.checkmark:after {
    display: block;
}

/* Style the checkmark/indicator */
.inputcheckbox .checkmark:after {
    left: 10px;
    top: 7px;
    width: 5px;
    height: 10px;
    border: solid white;
    border-width: 0 3px 3px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

/* Estilos gerais */
.editarPerfis {
    padding: 13px 12px 12px 12px !important;
    min-height: 200px;
}

.ipt2-col {
    padding: 0px 3px 6px 3px;
    float: left;
}

.campo-style-02 {
    border: 1px solid #0000001a;
    border-radius: 5px;
    transition: border 0.3s ease;
}

.campo-style-02 .inpt {
    cursor: pointer;
}

.campo-style-02 .lbel {
    padding: 5px 0px 0px 9px;
    font-size: 13px;
    color: #000000b3;
    height: 23px;
}

.campo-style-02 .lbel.label-ativa {
    color: #007BFF;
}

.campo-style-02 .cmp {
    width: 100%;
    border: 0px;
    height: 35px;
    border-radius: 0px 0px 8px 8px;
    font-size: 16px;
    font-weight: 500;
    padding: 0px 0px 0px 10px;
    outline: none;
    /* Remove outline do input */
    background: none;
}

.campo-style-02 .textarea.cmp {
    min-height: 124px;
    padding-top: 8px;
    padding-right: 8px;
}

.textarea {
    white-space: pre-wrap;
    cursor: text;
}

.btn-save-default {
    float: right;
    margin: 4px 0px 0px 0px;
}

.btn-ia {
    float: right;
    border-radius: 100px;
    cursor: pointer;
    font-size: 11px;
    font-weight: 400;
    padding: 3px 12px;
    /* background: linear-gradient(90deg, #4A90E2, #13dbfe, #26d73f, #F5A623); */
    /* -webkit-background-clip: text; */
    /* -webkit-text-fill-color: transparent; */
}

.btn-ia .ico {
    float: right;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #000;
    color: #fff;
    text-align: center;
    font-size: 10px;
    padding: 2px 0px 0px 0px;
    margin-left: 4px;
}

.campo-style-02 .btn-ia {
    margin-right: 4px;
    padding: 6px 2px;
    line-height: 7px;
}

.campo-style-02:focus-within {
    border: 1px solid #007BFF;
    /* Cor de borda ao focar */
}

@keyframes fade_in_show {
    0% {
        opacity: 0;
        left: -200px;
    }

    100% {
        opacity: 1;
        left: 0px;
    }
}

@keyframes fade_in_hide {
    0% {
        opacity: 1;
        left: 0px;
    }

    100% {
        opacity: 0;
        left: -200px;
    }
}

@keyframes fade_bottom_show {
    0% {
        opacity: 0;
        top: 0px;
    }

    70% {
        opacity: 0;
        top: 30px;
    }

    90% {
        opacity: 0.8;
        top: 40px;
    }

    100% {
        opacity: 1;
        top: 41px;
    }
}

@keyframes fade_top_hide {
    0% {
        opacity: 1;
        left: 0px;
    }

    100% {
        opacity: 0;
        left: -200px;
    }
}

/* ============================================================
   Efeito de IA em tela cheia - luz nas BORDAS (estilo Apple Intelligence).
   O JS so faz $('.effect-ia').fadeIn()/.fadeOut(); nada aqui depende de
   classe extra nem de JS novo. Camadas (HTML em header.php):
     .effect-ia          -> escurece a tela (e o que deixa a luz saturar)
     .ia-aura ::before/::after -> moldura: duas auras girando em sentidos
                            opostos, recortadas so nas beiradas
     .effect-ia::after   -> onda: avanca pra dentro e recua ~2x por segundo,
                            e e ela que da o flash de abertura
     .ttl                -> capsula de status com orbe + texto brilhando
   Tres ritmos diferentes (giro lento, respiracao media, pulso rapido) rodando
   juntos e o que faz parecer que esta pensando, e nao um GIF em loop.
   ============================================================ */
.effect-ia {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: none;
    overflow: hidden;
    z-index: 9999999999;
    /* A tela ESCURECE durante o efeito. Nao e so estetica: luz colorida sobre
       fundo branco vira pastel e o movimento some - sobre fundo escuro ela
       satura e vibra, que e o que a home do iPhone faz o efeito parecer.
       O miolo fica mais claro que as beiradas pra dar pra acompanhar a tela. */
    background: radial-gradient(140% 120% at 50% 45%, rgb(4 5 10 / 10%) 0%, rgb(0 0 0 / 13%) 100%);
    -webkit-backdrop-filter: blur(6px) saturate(115%);
    backdrop-filter: blur(0px) saturate(115%);
    --ia-c1: #870a0a;
    --ia-c2: #a63a08;
    --ia-c3: #be8809;
    --ia-c4: #0a9f91;
    --ia-c5: #0b58bb;
    --ia-c6: #470697;
    /* Moldura: uma mascara por borda (medida em px, nao em %, senao a faixa
       fica grossa nos lados e fina em cima/embaixo). A uniao das 4 desenha o
       retangulo de luz. O primeiro trecho e PLATO de alfa cheio - e o que faz
       a cor chegar solida na beirada em vez de ja nascer desbotada - e os
       stops seguintes fazem a queda rapida pro centro da tela.
       O min() com vmin encolhe a faixa no celular, onde 150px comeriam metade
       da largura; no desktop trava em 150px. */
    --ia-faixa: min(150px, 12vmin);
    /* Curvatura da "moldura do aparelho" - a luz vira a quina em curva. */
    /* --ia-raio: 44px; */
    --ia-mask:
        linear-gradient(to right, #000 0, #000 calc(var(--ia-faixa) * 0.14), rgb(0 0 0 / 55%) calc(var(--ia-faixa) * 0.34), rgb(0 0 0 / 12%) calc(var(--ia-faixa) * 0.62), rgb(0 0 0 / 0%) var(--ia-faixa)),
        linear-gradient(to left, #000 0, #000 calc(var(--ia-faixa) * 0.14), rgb(0 0 0 / 55%) calc(var(--ia-faixa) * 0.34), rgb(0 0 0 / 12%) calc(var(--ia-faixa) * 0.62), rgb(0 0 0 / 0%) var(--ia-faixa)),
        linear-gradient(to bottom, #000 0, #000 calc(var(--ia-faixa) * 0.12), rgb(0 0 0 / 55%) calc(var(--ia-faixa) * 0.31), rgb(0 0 0 / 12%) calc(var(--ia-faixa) * 0.58), rgb(0 0 0 / 0%) var(--ia-faixa)),
        linear-gradient(to top, #000 0, #000 calc(var(--ia-faixa) * 0.12), rgb(0 0 0 / 55%) calc(var(--ia-faixa) * 0.31), rgb(0 0 0 / 12%) calc(var(--ia-faixa) * 0.58), rgb(0 0 0 / 0%) var(--ia-faixa));
}

/* Camada 1 - a moldura de repouso: fica sempre acesa, girando e batendo.
   O border-radius + overflow sao o que fazem a luz virar a quina em curva,
   como na tela do iPhone, em vez de fechar um canto reto. */
.effect-ia .ia-aura {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 1;
    border-radius: var(--ia-raio);
    overflow: hidden;
    -webkit-mask: var(--ia-mask);
    mask: var(--ia-mask);
    animation:
        iaAuraPulsa 1.8s ease-in-out infinite,
        iaAuraEntra 1.2s cubic-bezier(0.16, 1, 0.3, 1) 0.2s backwards;
}

/* Camada 2 - a onda: faz a luz AVANCAR pra dentro da tela e recuar a cada
   1,9s (encolhendo a mascara, nao aumentando o brilho). O delay de 0,22s na
   animacao de entrada e proposital: com `backwards` ela segura o estado
   estourado durante o fadeIn do jQuery, entao a tela ABRE com o flash em vez
   de ele se perder na transparencia.
   A mascara e um CIRCULO de proposito: sendo simetrica, o elemento pode girar
   a vontade sem a mascara girar junto e denunciar o truque.
   O quadrado e 1,3x a soma das medidas da janela porque ele ENCOLHE no pulso -
   com folga menor, a beirada borrada do quadrado entra no canto da tela. */
.effect-ia::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: calc((100vw + 100vh) * 1.3);
    height: calc((100vw + 100vh) * 1.3);
    margin: calc((100vw + 100vh) * -0.65) 0 0 calc((100vw + 100vh) * -0.65);
    z-index: 2;
    pointer-events: none;
    background: conic-gradient(from 40deg,
            var(--ia-c1), var(--ia-c2), var(--ia-c3), var(--ia-c4),
            var(--ia-c5), var(--ia-c6), var(--ia-c1));
    -webkit-mask: radial-gradient(circle closest-side at 50% 50%, rgb(0 0 0 / 0%) 23%, rgb(0 0 0 / 18%) 37%, rgb(0 0 0 / 62%) 49%, #000 60%);
    mask: radial-gradient(circle closest-side at 50% 50%, rgb(0 0 0 / 0%) 23%, rgb(0 0 0 / 18%) 37%, rgb(0 0 0 / 62%) 49%, #000 60%);
    filter: blur(48px) saturate(185%);
    /* Soma luz sobre o fundo escurecido - e o que faz o pico do pulso parecer
       um clarao em vez de uma camada de tinta por cima. */
    mix-blend-mode: screen;
    opacity: 0.16;
    will-change: rotate, scale, opacity;
    animation:
        iaOndaGira 9s linear infinite reverse,
        iaOndaPulsa 1.9s ease-in-out infinite,
        iaOndaEntra 1.5s cubic-bezier(0.16, 1, 0.3, 1) 0.22s backwards;
}

/* As duas auras sao quadrados maiores que a diagonal da tela, entao giram sem
   nunca mostrar canto vazio. O blur fica NELAS (e nao no pai) porque assim o
   navegador rasteriza uma vez e so gira a camada na GPU.
   Nada de animar `translate` aqui: deslocar uma camada desse tamanho faz o
   Chrome mostrar a aresta reta do quadrado nos cantos. Quem da a sensacao de
   movimento e a paleta dar DUAS voltas no circulo - a cada giro passam 12
   faixas de cor em vez de 6, e ai o movimento se enxerga. */
.effect-ia .ia-aura::before,
.effect-ia .ia-aura::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    /* Lado = largura + altura da janela: por desigualdade triangular isso e
       sempre maior que a diagonal, entao o quadrado cobre a tela em qualquer
       proporcao enquanto gira (com vmax ele ficava curto em janela quase
       quadrada e a aresta reta aparecia nos cantos). */
    width: calc((100vw + 100vh) * 1.15);
    height: calc((100vw + 100vh) * 1.15);
    margin: calc((100vw + 100vh) * -0.575) 0 0 calc((100vw + 100vh) * -0.575);
    background: conic-gradient(from 0deg,
            var(--ia-c1), var(--ia-c2), var(--ia-c3), var(--ia-c4), var(--ia-c5), var(--ia-c6),
            var(--ia-c1), var(--ia-c2), var(--ia-c3), var(--ia-c4), var(--ia-c5), var(--ia-c6),
            var(--ia-c1));
    /* Blur baixo de proposito: com blur alto as cores viram uma papa uniforme
       e o giro fica imperceptivel. */
    filter: blur(24px) saturate(200%);
    opacity: 0.5;
    will-change: rotate, scale;
    animation:
        iaAuraGira 5.5s linear infinite,
        iaAuraRespira 2.6s ease-in-out infinite;
}

/* Segunda camada: sentido contrario, mais difusa e com outro ritmo - as duas
   se cruzando e o que faz a luz parecer viva em vez de um loop girando. */
.effect-ia .ia-aura::after {
    background: conic-gradient(from 140deg,
            var(--ia-c5), var(--ia-c6), var(--ia-c1), var(--ia-c2), var(--ia-c4),
            var(--ia-c5), var(--ia-c6), var(--ia-c1), var(--ia-c2), var(--ia-c4),
            var(--ia-c5));
    filter: blur(46px) saturate(170%);
    opacity: 0.3;
    mix-blend-mode: screen;
    animation:
        iaAuraGiraInv 9s linear infinite,
        iaAuraRespira 3.5s ease-in-out infinite -1.2s;
}

.effect-ia .ttl {
    z-index: 3;
    color: #fff;
    text-align: center;
    position: fixed;
    height: 100%;
    width: 100%;
    display: grid;
    align-items: center;
    justify-items: center;
    font-size: 16px;
    font-weight: 600;
}

.effect-ia .ia-pill {
    display: inline-flex;
    box-sizing: border-box;
    max-width: calc(100vw - 32px);
    align-items: center;
    gap: 11px;
    padding: 11px 20px 11px 14px;
    border-radius: 999px;
    background: rgb(16 17 23 / 55%);
    border: 1px solid rgb(255 255 255 / 14%);
    box-shadow: 0 20px 55px rgb(0 0 0 / 38%), inset 0 1px 0 rgb(255 255 255 / 12%);
    -webkit-backdrop-filter: blur(20px) saturate(170%);
    backdrop-filter: blur(20px) saturate(170%);
    letter-spacing: 0.2px;
    animation: iaPillEntra 0.75s cubic-bezier(0.16, 1, 0.3, 1) both;
}

.effect-ia .ia-orb {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: conic-gradient(from 0deg,
            var(--ia-c1), var(--ia-c2), var(--ia-c4), var(--ia-c5), var(--ia-c6), var(--ia-c1));
    box-shadow: 0 0 14px rgb(255 45 120 / 45%), 0 0 26px rgb(47 138 255 / 30%);
    animation: iaOrbGira 3.2s linear infinite, iaOrbPulsa 2.4s ease-in-out infinite;
}

/* Cancelar: dentro da propria capsula, separado por um fio. Fica discreto
   enquanto a IA trabalha e so ganha contraste no hover. */
.effect-ia .ia-cancelar {
    flex: 0 0 auto;
    margin-left: 4px;
    padding: 4px 4px 4px 12px;
    border: 0;
    border-left: 1px solid rgb(255 255 255 / 16%);
    border-radius: 0;
    background: none;
    color: rgb(255 255 255 / 62%);
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.2px;
    line-height: 1;
    cursor: pointer;
    transition: color 0.15s;
}

.effect-ia .ia-cancelar:hover {
    color: #fff;
}

/* Brilho passando pelo texto, igual ao "pensando" do Siri.
   min-width:0 pra poder quebrar em duas linhas na tela estreita em vez de
   empurrar o botao Cancelar pra fora da capsula. */
.effect-ia .ia-txt {
    min-width: 0;
    background: linear-gradient(100deg,
            rgb(255 255 255 / 62%) 0%,
            #fff 16%,
            rgb(255 255 255 / 62%) 32%,
            rgb(255 255 255 / 62%) 100%);
    background-size: 260% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    animation: iaTextoBrilho 2.8s linear infinite;
}

@keyframes iaAuraGira {
    to {
        rotate: 360deg;
    }
}

@keyframes iaAuraGiraInv {
    to {
        rotate: -360deg;
    }
}

@keyframes iaAuraRespira {

    0%,
    100% {
        scale: 1;
    }

    50% {
        scale: 1.22;
    }
}

@keyframes iaAuraPulsa {

    0%,
    100% {
        opacity: 0.6;
    }

    50% {
        opacity: 1;
    }
}

/* Abertura: a moldura chega de fora pra dentro e assenta no pulso. Usa
   `backwards` (e nao `both`) de proposito - com forwards ela congelaria o
   estado final e mataria o pulso que vem depois. */
@keyframes iaAuraEntra {
    0% {
        opacity: 1;
        scale: 1.12;
    }

    60% {
        opacity: 1;
        scale: 1;
    }

    100% {
        opacity: 0.6;
        scale: 1;
    }
}

@keyframes iaOndaGira {
    to {
        rotate: 360deg;
    }
}

@keyframes iaOndaPulsa {

    0%,
    100% {
        opacity: 0.08;
        scale: 1.08;
    }

    45% {
        opacity: 0.8;
        scale: 0.93;
    }
}

/* Flash de abertura: estoura e recua ate o pulso normal. */
@keyframes iaOndaEntra {
    0% {
        opacity: 0.95;
        scale: 0.84;
    }

    55% {
        opacity: 0.5;
        scale: 1;
    }

    100% {
        opacity: 0.08;
        scale: 1.08;
    }
}

@keyframes iaOrbGira {
    to {
        rotate: 360deg;
    }
}

@keyframes iaOrbPulsa {

    0%,
    100% {
        scale: 1;
        opacity: 0.9;
    }

    50% {
        scale: 1.12;
        opacity: 1;
    }
}

@keyframes iaTextoBrilho {
    0% {
        background-position: 140% 0;
    }

    100% {
        background-position: -40% 0;
    }
}

@keyframes iaPillEntra {
    from {
        opacity: 0;
        transform: translateY(12px) scale(0.96);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* Telas menores: blur mais barato (a faixa ja encolhe sozinha pelo vmin). */
@media (max-width: 991px) {
    .effect-ia .ia-aura::before {
        filter: blur(18px) saturate(200%);
    }

    .effect-ia .ia-aura::after {
        filter: blur(34px) saturate(170%);
    }

    .effect-ia::after {
        filter: blur(34px) saturate(185%);
    }

    .effect-ia .ttl {
        font-size: 15px;
    }

    .effect-ia .ia-pill {
        gap: 9px;
        padding: 10px 14px 10px 12px;
    }

    .effect-ia .ia-cancelar {
        padding-left: 10px;
        font-size: 12.5px;
    }
}

@media (prefers-reduced-motion: reduce) {

    .effect-ia::after,
    .effect-ia .ia-aura,
    .effect-ia .ia-aura::before,
    .effect-ia .ia-aura::after,
    .effect-ia .ia-orb,
    .effect-ia .ia-pill,
    .effect-ia .ia-txt {
        animation: none !important;
    }

    .effect-ia .ia-txt {
        color: #fff;
        -webkit-text-fill-color: #fff;
    }
}

@keyframes glow {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

/* @keyframes borderAnimation {
        0% {
            border-image-source: linear-gradient(0deg, #4A90E2, #9013FE, #D726B1, #F5A623);
        }
        25% {
            border-image-source: linear-gradient(90deg, #4A90E2, #9013FE, #D726B1, #F5A623);
        }
        50% {
            border-image-source: linear-gradient(180deg, #4A90E2, #9013FE, #D726B1, #F5A623);
        }
        75% {
            border-image-source: linear-gradient(270deg, #4A90E2, #9013FE, #D726B1, #F5A623);
        }
        100% {
            border-image-source: linear-gradient(0deg, #4A90E2, #9013FE, #D726B1, #F5A623);
        }
    } */
.tabd2 {
    margin: 0;
}

/* Mobile / base: abas em barra horizontal no topo (rolagem lateral se faltar espaco) */
.tabd2 .tabd2-links {
    display: flex;
    gap: 2px;
    padding: 2px 0 0;
    overflow-x: auto;
    scrollbar-width: none;
}

.tabd2 .tabd2-links::-webkit-scrollbar {
    display: none;
}

.tabd2 .tabd2-link {
    flex: 1 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 9px 10px;
    text-align: center;
    cursor: pointer;
    font-size: 14px;
    border-bottom: 2px solid var(--color-border);
    font-weight: 450;
    opacity: 0.7;
    white-space: nowrap;
    transition: opacity .15s ease, background .15s ease, color .15s ease;
}

/* Icone da aba: monocromatico, acompanha cor/opacidade do botao */
.tabd2 .tabd2-link svg {
    width: 16px;
    height: 16px;
    flex: none;
    fill: currentColor;
}

.tabd2 .tabd2-link:hover {
    opacity: 1;
}

.tabd2 .tabd2-link.active {
    border-color: var(--color-text-01);
    font-weight: 600;
    opacity: 1;
}

.tabd2 .tabd2-content .tabd2-tab {
    display: none;
    padding: 16px 0px 0px 0px;
}

/* ===== Cabecalho do popup de configuracoes do perfil ===== */
.editarPerfis-header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0px 0px 6px 0px;
    border-bottom: 1px solid var(--color-border);
}

.editarPerfis-avatar {
    width: 38px;
    height: 38px;
    flex: none;
    border-radius: 13px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    border: 1px solid var(--color-border);
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
}

.editarPerfis-header .btn-open-planejamento {
    flex: none;
}

/* ===== Desktop ===== */
@media (min-width: 901px) {

    /* Preenche o box maior: anula o width:700px fixo de #edit-popup .edicao-popup.
       SEMPRE ATIVO (independe do menu lateral) - mantem o popup grande. */
    #edit-popup .edicao-popup.editarPerfis {
        width: 100%;
        max-width: 100%;
    }

    /* ===== MENU LATERAL (sidebar, estilo ClickUp) - PRE-ENGATILHADO =====
       DESATIVADO por enquanto: o menu fica no TOPO (como no video enviado a Meta).
       PARA REATIVAR o menu a esquerda: basta adicionar a classe `menu-lateral`
       no container do popup em footer.php (a div com classe `editarPerfis`,
       ~linha 1456). Nenhuma outra mudanca e necessaria. */
    .editarPerfis.menu-lateral .tabd2 {
        display: flex;
        align-items: flex-start;
        gap: 0;
    }

    .editarPerfis.menu-lateral .tabd2 .tabd2-links {
        flex: none;
        width: 196px;
        min-width: 0;
        flex-direction: column;
        gap: 2px;
        padding: 14px 15px 0px 0px;
        margin-right: 18px;
        overflow: visible;
    }

    .editarPerfis.menu-lateral .tabd2 .tabd2-link {
        flex: 0 0 auto;
        justify-content: flex-start;
        text-align: left;
        border: 0;
        border-radius: 8px;
        padding: 9px 12px;
        opacity: 0.75;
    }

    .editarPerfis.menu-lateral .tabd2 .tabd2-link:hover {
        background: var(--color-hover-01);
        opacity: 1;
    }

    .editarPerfis.menu-lateral .tabd2 .tabd2-link.active {
        background: var(--color-bg-01);
        color: var(--color-text-01);
        border: 0;
        font-weight: 600;
        opacity: 1;
    }

    .editarPerfis.menu-lateral .tabd2 .tabd2-content {
        flex: 1 1 auto;
        min-width: 0;
        max-height: calc(100vh - 220px);
        overflow-y: auto;
        padding-right: 6px;
    }

    .editarPerfis.menu-lateral .tabd2 .tabd2-content .tabd2-tab {
        padding-top: 20px;
        padding-bottom: 20px;
    }

    /* Um unico scroller (a coluna de conteudo): paineis internos nao rolam sozinhos */
    .editarPerfis.menu-lateral .popup-show-limit-window {
        max-height: none;
        overflow: visible;
        border-bottom: 0;
    }
}

.lst-check-design-01 .item .it {
    font-size: 13px;
    padding: 5px 5px;
    align-content: center;
}

.design-calendario-item-01 .redes-ativas-design-01 .redes-item {
    display: none;
}

.design-calendario-item-01 .redes-ativas-design-01 .redes-item.atv {
    display: block;
}

.it-check-all {
    margin: auto;
    display: block;
}

/* painel planejamento */
/* Estilos para o container principal */
#planejamento-contant {
    width: 100%;
    padding: 50px 0px 0px 0px;
    background-color: #e4e7eb;
    /* background: linear-gradient(125deg, #f9f9f9, #e4e7eb); */
    position: absolute;
    height: 100%;
    overflow: auto;
    top: 0px;
    left: 0px;
    background: #fff;
}

#planejamento-contant.exibicao-lista #lista-posts {
    display: block
}

#planejamento-contant.exibicao-lista #lst-posts {
    padding-left: 10px;
    padding-right: 10px
}

#planejamento-contant #cal-body {
    height: auto !important;
}

.view-planejamento #lst-posts {
    max-width: initial !important;
    /* margin-left: -15px; */
    /* width: calc(100% + 18px); */
}

#sessoes-planejamento {
    max-width: 1300px;
    margin: auto;
    padding: 0px 15px;
    padding-bottom: 5px;
    border: 0px solid var(--color-border);
    padding: 0px 10px;
    border-radius: 10px;
    margin-bottom: 10px;
    /* width: calc(100% - 20px); */
}

#sessoes-planejamento .item {
    font-weight: 600;
    font-size: 24px;
    float: left;
    border: 0px solid var(--color-border);
    padding: 0px 0px;
    border-radius: 11px;
    margin-right: 14px;
    cursor: pointer;
    color: #979595;
}

#sessoes-planejamento .item.atv {
    /* cursor: initial; */
    /* background: #000; */
    color: #000000;
}

/* Perfis vinculados na tarefa */
.item-post.tarefa .selecao-perfis {
    display: grid;
    width: 100%;
    align-items: center;
}

.item-post.tarefa .selecao-perfis .selecionados {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    align-items: center;
}

.item-post.tarefa .selecao-perfis .chip-perfil {
    display: inline-flex;
    align-items: center;
    padding: 2px 8px;
    background: var(--color-hover-01);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    font-size: 12px;
    color: var(--color-text);
}

.edicao-page-perfis .box-membros-02.perfis-disponiveis .lst .item .btn svg {
    transform: rotate(0deg);
}

.edicao-page-perfis .box-membros-02.perfis-vinculados .lst .item .btn svg {
    transform: rotate(45deg);
}

.edicao-page-perfis .perfis-vinculados {
    padding-bottom: 18px;
}

.edicao-page-perfis .pesquisar-perfis {
    position: relative;
    display: flex;
    align-items: center;
    background: #fff;
    border: 1px solid var(--color-border, #e0e0e0);
    border-radius: 10px;
    padding: 0 8px 0 10px;
    margin-bottom: 14px;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.edicao-page-perfis .pesquisar-perfis:focus-within {
    border-color: #0064e0;
    box-shadow: 0 0 0 3px rgba(0, 100, 224, 0.12);
}

.edicao-page-perfis .pesquisar-perfis .ico-busca {
    flex: 0 0 18px;
    fill: rgba(0, 0, 0, 0.45);
    margin-right: 6px;
}

.edicao-page-perfis .pesquisar-perfis:focus-within .ico-busca {
    fill: #0064e0;
}

.edicao-page-perfis .pesquisar-perfis .ipt-pesquisar {
    flex: 1 1 auto;
    border: 0;
    outline: none;
    background: transparent;
    height: 36px;
    font-size: 14px;
    color: #000;
    padding: 0;
    min-width: 0;
}

.edicao-page-perfis .pesquisar-perfis .ipt-pesquisar::placeholder {
    color: rgba(0, 0, 0, 0.4);
}

.edicao-page-perfis .pesquisar-perfis .btn-limpar {
    flex: 0 0 auto;
    display: none;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    margin-left: 4px;
    background: transparent;
    border: 0;
    border-radius: 50%;
    cursor: pointer;
    color: rgba(0, 0, 0, 0.55);
    transition: background 0.2s, color 0.2s;
}

.edicao-page-perfis .pesquisar-perfis.com-texto .btn-limpar {
    display: inline-flex;
}

.edicao-page-perfis .pesquisar-perfis .btn-limpar:hover {
    background: rgba(0, 0, 0, 0.08);
    color: #000;
}

.edicao-page-perfis .pesquisar-perfis .btn-limpar svg {
    fill: currentColor;
    display: block;
}

#menu-exbicao {
    max-width: 1300px;
    padding: 0px 10px;
    margin: auto;
    display: block;
}

#menu-exbicao .item {
    float: left;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    margin-right: 8px;
    cursor: pointer;
    font-size: 14px;
    padding: 6px 11px;
}

#menu-exbicao .item.atv {
    background: #2856e400;
    border-color: #00000070;
    cursor: initial;
    opacity: 1;
    font-weight: 550;
    font-size: 13px;
    font-weight: 600;
}

#menu-exbicao .item svg {
    float: left;
    width: 16px;
    height: 15px;
    margin: 2px 7px 0px 0px;
}

/* Estilos para o menu superior */
#menu-topo {
    display: block;
    /* Distribui os itens ao longo do eixo horizontal */
    align-items: center;
    /* Centraliza os itens verticalmente */
    background-color: #fff;
    padding: 8px 15px 8px 8px;
    /* box-shadow: 0px 2px 8px rgb(0 0 0 / 6%); */
    /* Sombra sutil */
    border-radius: 0px;
    /* position: fixed; */
    width: 100%;
    top: 0px;
    left: 0px;
    z-index: 20;
    border-bottom: 1px solid var(--color-border);
    position: fixed;
}

#menu-topo .btn-voltar {
    width: 40px;
    height: 30px;
    /* Cor de fundo azul */
    border-radius: 50%;
    cursor: pointer;
    color: #fff;
    /* Texto branco */
    float: left;
}

#menu-topo .iniatura-edit-perfis {
    display: flex;
    align-items: center;
    /* Alinha a imagem e o texto verticalmente */
    float: left;
    padding: 2px 1px 1px 1px;
    /* border: 1px solid #0000001c; */
    border-radius: 100px;
    cursor: pointer;
    transition: 0.3s;
    position: relative;
}

#menu-topo .iniatura-edit-perfis:hover {
    border-color: #007bff8a;
}

#menu-topo .iniatura-edit-perfis .atual {
    padding: 0px 4px 0px 0px;
}

#menu-topo .iniatura-edit-perfis .btn-plus {
    border-left: 1px solid #0000000d;
    margin-left: 5px;
    padding: 0px 10px 0px 0px;
}

/* Estilos para a imagem dentro da miniatura */
#menu-topo .iniatura-edit-perfis .img {
    width: 33px;
    height: 33px;
    background-color: #00000012;
    /* Placeholder para a imagem */
    border-radius: 50%;
    /* Tornar a imagem circular */
    margin-right: 10px;
    background-size: cover;
    margin-right: 6px;
    float: left;
    border: 1px solid #00000012;
    background-clip: padding-box;
}

/* Estilos para o texto dentro da miniatura */
#menu-topo .iniatura-edit-perfis .text {
    display: flex;
    flex-direction: column;
    float: left;
    padding: 4px 0px 0px 0px;
}

/* Estilos para o nome do perfil */
#menu-topo .iniatura-edit-perfis .nome {
    font-size: 15px;
    line-height: 25px;
    font-weight: 500;
    color: #333;
    /* Texto em cor escura */
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    max-width: 250px;
}

#menu-topo .btns {
    gap: 2px;
    float: right;
    position: relative;
    padding: 1px 0px 0px 0px;
    display: flex;
    align-items: center;
}

#menu-topo .btn-agendar-criar {
    padding: 7px 14px;
    font-weight: 600;
    font-size: 14px;
    /* background: linear-gradient(90deg, #245cfb, #1c88fd); */
    color: #ffffff;
    /* Texto branco */
    background: #000000;
    border: none;
    border-radius: 27px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    box-shadow: 0px 0px 10px #00000012;
}

#menu-topo .btn-sec {
    background: none;
    color: #000000cc;
    font-size: 14px;
    transition: 0.3s;
    margin-top: -1px;
    padding-left: 7px;
    padding-right: 7px;
    opacity: 0.8;
    display: flex;
    float: left;
    cursor: pointer;
}

#menu-topo .btn-sec:hover {
    opacity: 1;
}

#menu-topo .btn-sec .txt {
    padding-left: 6px;
}

#menu-topo .btn-agendar-criar {
    margin-left: 8px;
}

#menu-topo .btn-sec:hover {
    background: none;
    color: #007bff;
}

#miniaturas-acesso-rapido {
    position: fixed;
    left: 10px;
    top: 62px;
    height: calc(100% - 70px);
    width: 174px;
    padding: 4px 7px;
    padding-top: 0px;
    z-index: 1;
    border: 1px solid #0000001a;
    border-radius: 10px;
    display: none !important;
}

#miniaturas-acesso-rapido .item {
    margin: auto;
    border-left: 0px solid #00000000;
    width: 100%;
    max-width: 189px;
    height: 92px;
    background: #ffffff00;
    /* overflow: hidden; */
    position: relative;
    padding: 11px 11px 0px 9px;
    transition: 0.3s;
    cursor: pointer;
    border-radius: 5px;
    margin-top: 3px;
}

#miniaturas-acesso-rapido .item:last-of-type .tipo {
    border-bottom: 0px;
}

.disabled {
    pointer-events: none;
    filter: grayscale(80%);
    /* Opcional: deixa a div mais apagada */
}

#miniaturas-acesso-rapido .item.atv {
    border-color: #007bff !important;
    /* box-shadow: 0px 1px 13px #007bff3d; */
}

#miniaturas-acesso-rapido .item.atv .sltd {
    width: 3px;
    height: 50%;
    background: #000000;
    position: absolute;
    left: -6px;
    top: calc(25%);
    border-radius: 23px;
}

#miniaturas-acesso-rapido .item:hover {
    box-shadow: 0px 5px 23px #00000024;
}

#miniaturas-acesso-rapido .item .status {
    background: #ff7000;
    color: #fff;
    font-size: 8px;
    text-align: center;
    transform: rotate(-90deg);
    width: 89px;
    position: absolute;
    right: -37px;
    bottom: 39px;
    text-transform: uppercase;
    padding: 1px 0px 1px 0px;
    font-weight: 550;
    border-radius: 6px;
}

#miniaturas-acesso-rapido .item .status:after {
    content: "";
    display: block;
    background: linear-gradient(90deg, #438ee600, #ffffff24);
    position: absolute;
    width: 100%;
    height: 100%;
    bottom: 0px;
    border-radius: 6px 6px 6px 6px;
    pointer-events: none;
}

#miniaturas-acesso-rapido .item .data {
    font-size: 15px;
    font-weight: 700;
}

#miniaturas-acesso-rapido .item .data::after,
.metas-qtd::after,
.dropdown-filtros-01 .lst-filtro-itens .f-item-list::after,
.lst-perfis-logo .item-logo::after,
.btn-novo-conteudo::after {
    display: block;
    clear: both;
    content: "";
}

#miniaturas-acesso-rapido .item .tipo {
    font-size: 12px;
    line-height: 14px;
    font-weight: 500;
    bottom: 0px;
    left: 0px;
    color: #000000d9;
    width: 89%;
    border-radius: 0px;
    padding-bottom: 8px;
    border-bottom: 1px solid #0000001a;
}

#miniaturas-acesso-rapido .item .codigo {
    display: block;
    clear: both;
    line-height: 15px;
    font-size: 10px;
    padding: 0px 0px 0px 0px;
    color: #0000006e;
    width: calc(100% - 10px);
    margin-top: 18px;
}

#miniaturas-acesso-rapido .item .hora {
    margin: 0px 0px 0px 0px;
    font-size: 11px;
    line-height: 14px;
    font-weight: 500;
    opacity: 0.6;
}

#miniaturas-acesso-rapido .item .dia {
    float: left;
    font-size: 29px;
    line-height: 25px;
    width: 44px;
    font-weight: 500;
}

#miniaturas-acesso-rapido .item .mes-dia .mes {
    line-height: 13px;
    /* text-transform: uppercase; */
    font-size: 14px;
    font-weight: 500;
}

#miniaturas-acesso-rapido .item .mes-dia {
    float: left;
    padding: 0px 0px 0px 0px;
}

.scroll-container {
    position: relative;
    width: 300px;
    height: 200px;
    overflow: hidden;
    /* Esconde o scroll nativo */
    border: 1px solid #ddd;
}

.scroll-content {
    height: 400px;
    overflow: hidden;
    padding-right: 20px;
}

/* A barra de rolagem personalizada */
.scroll-bar {
    position: absolute;
    top: 0;
    right: 0;
    width: 10px;
    height: 100%;
    background-color: #f1f1f1;
    /* Cor de fundo da barra */
}

.scroll-thumb {
    width: 100%;
    height: 30px;
    /* Altura do thumb */
    background-color: red;
    /* Cor do thumb */
    border-radius: 5px;
    cursor: pointer;
    position: relative;
}

/* Ao passar o mouse sobre o scroll, a cor muda */
.scroll-thumb:hover {
    background-color: darkred;
}

.scroll-thumb {
    transition: background-color 0.3s ease;
}

#menu-topo .btn-back {
    float: left;
    padding: 4px 4px 5px 0px;
    margin-right: 2px;
    fill: #00000096;
    cursor: pointer;
    transition: 0.3s;
}

#menu-topo .btn-back svg {
    width: 33px;
    height: 27px;
    padding: 0px 4px;
}

#menu-topo .btn-back:hover {
    fill: #000;
}

.fluxo-conteudos .header .btn-back {
    float: left;
    padding: 4px 4px 5px 0px;
    margin-right: 2px;
    fill: #00000096;
    cursor: pointer;
    transition: 0.3s;
}

.fluxo-conteudos .header .btn-back svg {
    width: 33px;
    height: 27px;
    padding: 0px 4px;
}

.fluxo-conteudos .header .btn-back:hover {
    fill: #000;
}

#lst-posts {
    z-index: 1;
    padding: 2px 0px;
    overflow-y: auto;
    padding-bottom: 0p;
    max-width: 1300px;
    margin: auto;
}

.item-post {
    width: 100%;
    /* max-width: 1300px; */
    /* height: 525px; */
    /* background: #fffffff5; */
    /* border-radius: 15px; */
    position: relative;
    margin: auto;
    margin-top: 34px;
}

.item-post .midia {
    /* position: absolute; */
    left: 0px;
    top: 0px;
    /* height: 100%; */
    background: #00000000;
    /* border-right: 1px solid #0000000a; */
    /* align-content: center; */
    overflow: hidden;
    float: left;
    position: relative;
    /* min-height: 300px; */
    width: 100%;
}

.item-post .midia .upload.atv {
    display: grid;
}

.item-post .midia .upload {
    height: 100%;
    width: 100%;
    align-content: center;
    display: block;
    z-index: 2;
    position: absolute;
}

.item-post .midia .upload svg {
    margin: auto;
    display: block;
    width: 50px;
    height: 50px;
    fill: #00000014;
}

.item-post .midia .upload p {
    margin: 0;
    text-align: center;
    padding: 10px 0px 0px 0px;
    color: #00000047;
    font-size: 14px;
}

.item-post .configs {
    /* position: absolute; */
    right: 0px;
    top: 0px;
    width: calc(100% - 311px);
    padding: 7px 0px;
    float: right;
    padding-bottom: 0px;
}

.item-post .configs .container-grupo-btns {
    float: right;
    padding: 0px 0px 0px 0px;
    position: absolute;
    width: 100px;
    right: 0px;
    height: 29px;
}

.item-post .configs .grupo-btns .btn {
    cursor: pointer;
    font-weight: 500;
    font-size: 14px;
    float: right;
    padding: 4px 12px;
}

.item-post .configs .textarea {
    min-height: 50px;
    background: none;
    padding-right: 8px;
    padding-bottom: 20px;
    font-size: 14px;
    font-weight: 400;
    word-break: break-word;
}

.item-post .configs .grupo-btns .btn-agendar {
    background-color: #007bff;
    border-radius: 100px;
    color: #ffffff;
    fill: #fff;
}

.item-post .configs .grupo-btns .btn-agendar:hover {
    background-color: #1986fb;
}

.item-post .configs .grupo-btns .btn-agendar svg {
    width: 13px;
    margin: -3px 0px 0px 1px;
}

.item-post .configs .grupo-btns .btn-em-andamento {
    background-color: #0d29a8;
    border-radius: 100px;
    color: #ffffff;
    border: 1px sold #0d29a8;
}

.item-post .configs .grupo-btns .btn-iniciar {
    background-color: #2c2c2c;
    border-radius: 100px;
    color: #ffffff;
    fill: #ffffff;
    margin-left: 3px;
}

.item-post .configs .grupo-btns .btn-iniciar svg {
    width: 11px;
    margin: -2px 0px 0px 3px;
}

.item-post .configs .grupo-btns .btn-iniciar:hover {
    background-color: #343434;
}

.item-post .configs .grupo-btns .btn-opcoes {
    /* border: 1px solid #0000001f; */
    fill: #000;
    border-radius: 50%;
    padding: 3px;
    margin-left: 5px;
    /* margin-top: 1px; */
    width: 26px;
    padding: 4px 3px;
}

.campo-style-02 .dropdown2 {
    color: #000;
    position: absolute;
    background: #fff;
    z-index: 2;
    width: calc(100% - 6px);
    box-shadow: 0px 9px 9px #00000012;
    border-radius: 13px;
    padding: 8px 0px;
    top: 46px;
    left: 0px;
    border: 1px solid #0000001c;
    display: none;
    min-width: 110px;
}

.campo-style-02 .dropdown2 .it {
    padding: 3px 9px;
    cursor: pointer;
    position: relative;
    z-index: 1;
    opacity: 0.8;
    transition: 0.3s;
}

.campo-style-02 .dropdown2 .it:hover {
    opacity: 1;
}

.contant-criar-conteudo .col-observacoes {
    margin-top: 8px;
}

.campo-style-02 .selecionado {
    height: 28px;
    padding: 0px 6px 0px 2px;
    font-weight: 500;
    line-height: 29px;
    font-size: 15px;
}

.campo-style-02 .datepicker.form-control,
.campo-style-02 .datepicker-date.form-control {
    background: none;
    border: 0px;
    height: 35px;
    cursor: pointer;
    font-weight: 500;
    padding-top: 1px;
    padding-right: 0px;
    color: #000;
    padding-left: 7px;
}

.campo-style-02 .datepicker.form-control:focus,
.campo-style-02 .datepicker-date.form-control:focus {
    border: 0px;
}

.ipt2-col.tipo-agendamento {
    width: 92px;
}

.ipt2-col.local-agendamento {
    width: 91px;
    float: left;
    padding-left: 0px;
    padding-right: 0px;
}

.ipt2-col.local-agendamento .campo-style-02 {
    border-left: 0px;
    border-radius: 0px;
}

.ipt2-col.data-agendamento {
    max-width: 146px;
}

.popup-uploader-drag {
    display: none;
    position: absolute;
    top: 0px;
    left: -10px;
    width: calc(100% + 20px);
    height: 100%;
    background: rgb(255 255 255 / 82%);
    z-index: 9999;
    fill: #000000;
    color: #000000;
    backdrop-filter: blur(4px);
    border-radius: 14px;
    border: 2px dashed #000000;
}

.input-hidden-upload-image.atv {
    position: fixed;
    top: 5px;
    left: 5px;
    height: calc(100% - 10px);
    width: calc(100% - 10px);
    z-index: 999999999;
    display: block !important;
    opacity: 0;
}

.popup-uploader-drag .center {
    display: grid;
    align-content: center;
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
}

.popup-uploader-drag .center p {
    text-align: center;
}

.popup-uploader-drag .center svg {
    max-width: 100px;
    width: 128px;
    height: 128px;
    margin: auto;
    display: block;
}

.input-hidden-upload {
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    z-index: 2;
    opacity: 0;
    display: none;
}

.input-hidden-upload.atv {
    display: block !important;
}

.item-post .status {
    /* position: absolute; */
    /* top: 7px; */
    /* left: 0; */
    position: relative;
    background: #000;
    color: #fff;
    text-transform: uppercase;
    font-size: 12px;
    z-index: 3;
    cursor: pointer;
    border-radius: 9px;
    float: left;
    /* box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); */
}

.item-post .status .selecionado {
    padding: 5px 2px 5px 6px;
    font-weight: 600;
    border-radius: 9px;
    height: 29px;
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: center;
}

.item-post .status .txt {
    float: left;
}

.item-post .status .selecionado .st-icon {
    float: left;
    margin: 0px 4px 0px 0px;
}

.item-post .status svg {
    float: left;
    height: 17px;
    width: 17px;
    fill: #000000;
}

.dropdown-status {
    position: absolute;
    top: 32px;
    padding: 6px 7px 6px 6px;
    padding-bottom: 12px;
    left: 0px;
    background: #ffffff;
    border-radius: 15px;
    box-shadow: rgba(0, 0, 0, 0.13) 0px 6px 19px -1px, rgba(0, 0, 0, 0.07) 0px 2px 4px -1px;
}

.dropdown-status .item-status {
    padding: 4px 7px;
    border-radius: 5px;
    margin-top: 0px;
    width: 139px;
    font-weight: 600;
    font-size: 11px;
    color: #000;
    display: flex;
    align-items: center;
}

.dropdown-status label {
    color: #919191;
    font-size: 11px;
    margin: 5px 0px 1px 7px;
    font-weight: 500;
    text-transform: capitalize;
}

.bkd-pg {
    /* background-image: radial-gradient(rgba(255, 255, 255, .25), rgba(255, 255, 255, 0) 40%), radial-gradient(hsla(44, 100%, 66%, 1) 30%, hsla(338, 68%, 65%, 1), hsla(338, 68%, 65%, .4) 41%, transparent 52%), radial-gradient(hsla(272, 100%, 60%, 1) 37%, transparent 46%), linear-gradient(155deg, transparent 65%, hsla(142, 70%, 49%, 1) 95%), linear-gradient(45deg, hsla(213, 100%, 44%, 1), hsla(209, 100%, 53%, 1)); */
    background-size: 200% 200%, 285% 500%, 285% 500%, cover, cover;
    background-position: bottom left, 109% 68%, 109% 68%, center, center;
    opacity: 0.03;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    pointer-events: none;
    z-index: 0;
}

.item-post .midia .midia-lst {
    padding: 20px 33px;
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
    display: grid;
    align-items: center;
}

.item-post .midia .midia-lst .midia-item {
    box-shadow: 0px 3px 19px #00000012;
    border: 1px solid #00000012;
}

.item-post .midia .midia-lst .midia-item img {
    max-width: 100%;
}

.item-post .midia .midia-uni {
    padding: 0px 10px 10px 0px;
    position: relative;
    top: 0;
    left: 0;
    z-index: 1;
    fill: #000;
    overflow: hidden;
}

.item-post .midia .midia-uni .midia-item {
    position: relative;
}

.item-post .midia .midia-uni .midia-item img {
    max-width: 100%;
    height: auto;
    margin: auto;
    display: block;
    border-radius: 9px;
    width: 100%;
    box-shadow: 0px 1px 10px #00000014;
    max-height: 500px;
    object-fit: contain;
}

/* .item-post .midia .midia-uni .btn-remover {
    position: absolute;
    right: 41px;
    top: 0px;
    font-size: 13px;
    color: #00000052;
    font-weight: 400;
    cursor: pointer;
    transition: 0.3s;
    opacity: 0.8;
    padding: 3px 0px 0px 0px;
    display: none;
} */
/* Estilo geral para o elemento de loading */
.loading-post {
    position: absolute;
    /* Position absolute para cobrir 100% da tela */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgb(0 0 0 / 20%);
    /* Fundo semitransparente */
    display: flex;
    /* Usar flexbox para centralizar o spinner */
    justify-content: center;
    /* Centraliza horizontalmente */
    align-items: center;
    /* Centraliza verticalmente */
    z-index: 9999;
    /* Para garantir que fique acima de outros elementos */
    align-content: center;
    display: none;
}

/* Estilo para o spinner */
.spinner-post {
    width: 50px;
    /* Largura do spinner */
    height: 50px;
    /* Altura do spinner */
    border: 5px solid rgba(255, 255, 255, 0.3);
    border-top: 5px solid #ffffff;
    border-radius: 50%;
    /* Forma circular */
    animation: spin 1s linear infinite;
    margin: auto;
}

.plyr {
    width: 281px;
    border-radius: 10px;
    margin: auto;
    height: 499px;
    border: 0px;
    padding: 0px;
}

.plyr .plyr__controls__item.plyr__control[data-plyr="play"] {
    position: absolute;
    bottom: 250px;
    right: 117px;
}

.item-post .owl-item .midia-item img {
    border-radius: 0px !important;
}

.item-post .owl-stage {
    border-radius: 5px;
    overflow: hidden;
}

.item-post .owl-dots {
    width: 320px;
}

/* TIRA DE MINIATURAS DO CARROSSEL
   E a ordem de publicacao: a primeira miniatura e a capa. Arrastar aqui usa o
   setupDynamicDrag (ver sortableMidia no footer.php), nao mais o jQuery UI. */
.sortable-list {
    margin: 5px 0px 0px 0px;
    padding: 0px 0px 0px 0px;
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
}

.sortable-list li {
    /* background-color: #f0f0f0; */
    margin: 0px;
    width: 37px;
    height: 37px;
    /* Um carrossel do Instagram vai a 20 midias: sem `flex: 0 0 auto` o flex
       espreme a fileira ate as miniaturas virarem tiras de poucos pixels - e
       nao ha o que arrastar num alvo de 4px. */
    flex: 0 0 auto;
    text-align: center;
    cursor: grab;
    border: 0px solid #ffffff00;
    /* Enquadramento fica como sempre foi (canto superior esquerdo). Trocar para
       `center` reenquadra TODA miniatura e corta o lado esquerdo das imagens
       deitadas - nao e assunto do arrastar. */
    background-size: cover;
    border-radius: 5px;
    position: relative;
    transition: border-color .12s ease;
    /* Segurar para arrastar nao pode selecionar nem abrir o menu do iOS. */
    -webkit-user-select: none;
    user-select: none;
    -webkit-touch-callout: none;
}

.sortable-list li:active {
    cursor: grabbing;
}

/* Miniatura da midia que esta no ar no carrossel. Monocromatico: quem marca e
   a tinta do app, nao uma cor de acento.

   O anel e BORDA, nao `outline`: o `.midia-uni` em volta tem `overflow: hidden`
   e nao sobra padding do lado esquerdo, entao um contorno desenhado FORA da
   caixa era cortado justamente na primeira miniatura - que e a que nasce ativa.
   Com o `box-sizing: border-box` global a borda vem por dentro: nada e cortado
   e a miniatura continua com os mesmos 37px. */
.sortable-list li.atv {
    border: 2px solid var(--color-btn-bg-01);
}

/* Enquanto arrasta, o plugin esconde o original e mostra o clone .placeholder
   no lugar de destino. O marcador tem o TAMANHO EXATO da miniatura: o antigo
   (60x60 contra 37x37) empurrava a fileira a cada passagem do mouse e o alvo
   fugia do cursor. */
.sortable-list li.dragging {
    opacity: .35;
}

.sortable-list li.placeholder {
    opacity: 1 !important;
    border: 2px dashed var(--color-btn-bg-01);
    filter: grayscale(1) opacity(.45);
}

.sortable-list li img {
    /* width: 100%; */
    max-height: 53px;
    max-width: 100%;
}

.loading-message {
    display: -webkit-box;
    /* Inicialmente oculto */
    text-align: center;
    font-size: 18px;
    color: #555;
    margin-bottom: 10px;
    position: absolute;
    width: 100%;
    height: 100%;
    z-index: 2;
    background: #ffffff;
    top: 0px;
    left: 0px;
    align-content: center;
    display: grid;
}

.iniatura-edit-perfis .dropdown-perfis {
    position: absolute;
    background: #fff;
    z-index: 2;
    width: 250px;
    box-shadow: 0px -1px 33px #00000012;
    border-radius: 15px;
    top: 46px;
    left: 3px;
    /* border: 1px solid #0000001c; */
}

.iniatura-edit-perfis .dropdown-perfis .h {
    overflow: auto;
    padding: 3px 6px 6px 6px;
    border-radius: 15px;
    max-height: calc(100vh - 62px) !important;
}

.iniatura-edit-perfis .dropdown-perfis::after {
    position: absolute;
    display: block;
    pointer-events: none;
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    left: 18px;
    top: -2px;
    transform: rotate(45deg);
    z-index: 0;
    background: #fff;
    width: 30px;
    height: 30px;
    border-radius: 3px;
}

.iniatura-edit-perfis .dropdown-perfis .item-perfis {
    padding: 3px 5px;
    cursor: pointer;
    border-radius: 5px;
    /* background: #00000008; */
    margin-top: 4px;
    font-weight: 600;
    display: block;
    color: #000;
    position: relative;
    border: 1px solid #007bff00;
    transition: 0.3s;
    z-index: 1;
}

.iniatura-edit-perfis .dropdown-perfis .item-perfis:hover {
    border: 1px solid #007bff;
    background-color: #007bff1a;
}

.iniatura-edit-perfis .dropdown-perfis .item-perfis .img-item-perfis {
    width: 30px;
    height: 30px;
    background: #00000017;
    border-radius: 50%;
    float: left;
    transition: 0.3s;
    background-size: cover;
    background-position: center;
}

.iniatura-edit-perfis .dropdown-perfis .item-perfis .txt-item-perfis {
    float: left;
    padding: 8px 0px 0px 7px;
    width: calc(100% - 32px);
    line-height: 15px;
    height: 31px;
    font-size: 15px;
    align-items: center;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    font-weight: 500;
}

.dropdown-criar {
    position: absolute;
    background: #fff;
    z-index: 2;
    width: 221px;
    box-shadow: 0px -1px 33px #00000012;
    border-radius: 11px;
    padding: 5px 9px;
    top: 46px;
    right: 79px;
    font-size: 19px;
    /* border: 1px solid #0000001c; */
}

.dropdown-criar::after {
    position: absolute;
    display: block;
    pointer-events: none;
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    left: 18px;
    top: -2px;
    transform: rotate(45deg);
    z-index: 0;
    background: #fff;
    width: 30px;
    height: 30px;
    border-radius: 3px;
}

.dropdown-criar .item-criar {
    cursor: pointer;
}

.dropdown-criar .col {
    float: left;
    padding: 0px 3px;
}

.dropdown-criar .btn-criar-em-lote .txt {
    background: linear-gradient(90deg, #4A90E2, #13dbfe, #26d73f, #F5A623);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

#menu-btns-flutuantes .dropdown-criar {
    top: -102px;
}

#menu-btns-flutuantes .dropdown-criar::after {
    right: 8px;
    top: initial;
    bottom: -2px;
}

.contant-criar-conteudo {
    width: 100%;
    max-width: 600px;
    padding: 7px 0px;
}

.contant-criar-conteudo h3 {
    font-weight: 500;
    font-size: 19px;
    padding: 23px 0px 2px 18px;
}

.contant-criar-conteudo .container-criar {
    padding: 0px;
    /* overflow: auto; */
}

.contant-criar-conteudo .container-criar::after,
.box-view-perfil-open::after {
    content: "";
    clear: both;
    display: block;
}

.container-criar .data-agendamento {
    max-width: calc(41%);
}

.container-criar .tipo-agendamento {
    width: 100%;
    max-width: calc(29% - 6px);
    float: left;
    margin-right: 6px;
}

.container-criar .btn-gerar-conteudo-insert {
    background: #000000;
    color: #ffffff;
    font-size: 14px;
    font-weight: 500;
    padding: 6px 10px;
    border-radius: 10px;
    cursor: pointer;
    float: right;
}

.item-post.tipo-5 .ipt2-col.col-md-8 {
    display: none;
}

.item-post.tipo-5 .ipt2-col.col-md-4 {
    max-width: 100%;
}

.lst-connect-accounts {
    display: block;
    width: 100%;
    padding: 0px 0px 30px 0px;
}

.lst-connect-accounts::after {
    content: "";
    clear: both;
    display: block;
}

.lst-connect-accounts .col {
    padding: 0px;
}

.lst-connect-accounts .item-connect {
    /* background: #1f2b32; */
    padding: 0px 0px 0px 0px;
    border-radius: 12px;
    position: relative;
    overflow: hidden;
    color: #000000;
    /* box-shadow: 0px 2px 13px rgb(0 0 0 / 21%); */
    /* background-image: url(/browse/comum/img/browse-home-banner-02.png); */
    background-position: right top;
    background-size: auto 100%;
    background-repeat: no-repeat;
}

.lst-connect-accounts .item-connect .txt {
    font-size: 37px;
    font-weight: 600;
    position: relative;
    line-height: 38px;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

.lst-connect-accounts .item-connect .center {
    /* margin: auto; */
    max-width: 100%;
    position: relative;
    z-index: 1;
}

.lst-connect-accounts .item-connect .sub-txt {
    font-size: 15px;
    padding: 13px 0px 5px 0px;
    color: #000000ba;
}

.btn-style-mono-01 {
    /* background: #0064e0; */
    color: #000000;
    border-radius: 11px;
    margin-top: 13px;
    position: relative;
    z-index: 1;
    cursor: pointer;
    padding: 8px 12px;
    font-weight: 550;
    font-size: 14px;
    border: 0px;
    /* background: #0000000a; */
    /* border: 1px solid #6c6c6c61; */
    box-shadow: 0px 1px 5px #0000000a;
    border: 1px solid #66666636;
}

.btn-cancelar-agendamento,
.btn-deletar-publicacao {
    color: #000000;
}

.btn-cancelar-agendamento:hover,
.btn-deletar-publicacao:hover {
    color: #bb2222;
    /* border: 1px solid #bb22222e; */
}

.item-post .redes-ativas {
    padding: 1px 10px 0px 0px;
    float: left;
}

.item-post .redes-ativas::after {
    content: "";
    clear: both;
    display: block;
}

.item-post .redes-ativas .redes-item {
    float: left;
    cursor: pointer;
    padding: 0px 0px 0px 0px;
    fill: #000000;
    opacity: 0.25;
    width: 22px;
    height: 22px;
    display: grid;
    align-items: center;
    margin-right: 2.5px;
    border-radius: 7px;
}

.item-post .redes-ativas .redes-item.atv {
    border: 1px solid #000;
    border-radius: 7px;
}

.item-post .redes-ativas .redes-item svg {
    width: 14px;
    height: 14px;
    margin: auto;
}

#menu-topo .filtro {
    float: left;
    /* border: 1px solid #00000014; */
    border-radius: 100px;
    margin: 9.4px 0px 0px 9px;
    /* background: #007bff; */
    /* border-color: #007bff38; */
    cursor: pointer;
}

#menu-topo .filtro label {
    font-size: 11px;
    margin: 0px;
    line-height: 10px;
    font-weight: 300;
    cursor: pointer;
    height: 13px;
}

#menu-topo .filtro .datepicker-filtro.form-control {
    float: left;
    background: none;
    border: 0px;
    height: 19px;
    cursor: pointer;
    padding-top: 1px;
    padding-right: 0px;
    font-size: 14px;
    padding: 0px 0px 0px 0px;
    color: #000000;
    /* text-transform: uppercase; */
    width: 202px;
    font-weight: 700;
    text-align: center;
}

#menu-topo .filtro input {
    display: none;
}

input.form-control.input:focus {
    outline: none;
    border: none;
    box-shadow: none !important;
}

.conexoes-perfil h2 {
    font-size: 20px !important;
    font-weight: 500;
    margin: 5px 0px 10px 0px !important;
    float: initial !important;
}

.conexoes-perfil .itens .item {
    background: #f1f1f1;
    display: block;
    width: 100%;
    padding: 18px 14px;
    margin-bottom: 6px;
    border-radius: 5px;
}

.conexoes-perfil .itens .item::after {
    clear: both;
    content: "";
    display: block;
}

.conexoes-perfil .itens .item .txt {
    float: left;
    font-weight: 500;
    font-size: 17px;
}

.conexoes-perfil .itens .item .acao {
    float: right;
}

#header-lst-posts {
    max-width: 1300px;
    margin: auto;
    margin-top: 13px;
    margin-bottom: 24px;
    /* width: calc(100% - 20px); */
    padding: 0px 9px;
}

#header-lst-posts::after {
    clear: both;
    content: "";
    display: block;
}

#header-lst-posts .text-desc {
    float: left;
    max-width: calc(100% - 480px);
    position: relative;
    z-index: 2;
}

#header-lst-posts .text-desc h1 {
    font-size: 18px;
    font-weight: 400;
    margin: 0px;
    line-height: 20px;
    float: left;
}

#header-lst-posts .text-desc h2 {
    font-size: 50px;
    font-weight: 600;
    margin: 0px 0px 3px -3px;
    line-height: 50px;
    clear: both;
    padding: 5px 0px 0px 0px;
}

#header-lst-posts .text-desc .descricao {
    font-size: 12px;
    max-width: 500px;
}

#header-lst-posts .totais-desc,
.view-planejamento .totais-desc-conteudos {
    float: right;
    position: relative;
    z-index: 2;
}

.view-planejamento .totais-desc-conteudos {
    float: none;
    margin-bottom: 8px;
    padding: 0px 15px 0px 12px;
}

.view-planejamento .totais-desc-conteudos .grafics {
    float: left;
}

.view-planejamento .totais-desc-conteudos::after {
    clear: both;
    content: "";
    display: block;
}

#header-lst-posts .totais-desc .totais-desc-item:last-child,
.view-planejamento .totais-desc-conteudos .totais-desc-item:last-child {
    border: 0px !important;
    padding-right: 0px;
}

#header-lst-posts .totais-desc .totais-desc-item label,
.view-planejamento .totais-desc-conteudos .totais-desc-item label {
    font-size: 13px;
    font-weight: 400;
    /* min-width: 100px; */
    margin: 0px;
    color: #00000091;
    padding-left: 5px;
    min-width: 66px;
}

#header-lst-posts .totais-desc .totais-desc-item .total,
.view-planejamento .totais-desc-conteudos .totais-desc-item .total {
    font-size: 30px;
    font-weight: 600;
    line-height: 35px;
    margin-bottom: 3px;
    padding-left: 5px;
}

#header-lst-posts .totais-desc .totais-desc-item .agendados,
.view-planejamento .totais-desc-conteudos .totais-desc-item .agendados {
    font-size: 10px;
    display: none;
}

#header-lst-posts .totais-desc .totais-desc-item .publicados,
.view-planejamento .totais-desc-conteudos .totais-desc-item .publicados {
    font-size: 11px;
    opacity: 0;
    height: 0;
    display: none;
}

#progress-status {
    width: calc(100% - 43px);
    float: right;
    border-radius: 100px;
    overflow: hidden;
    background: #0000000f;
    margin: 0px 0px 0px 0px;
    position: relative;
    border: 1px solid #ffffff1c;
    margin-top: 1px;
}

#progress-status .status-item {
    float: left;
    width: 30%;
    height: 5px;
    background: green;
    border-radius: 0px;
    border-radius: 100px;
    position: relative;
}

.nenhum-posts {
    text-align: center;
    padding: 50px;
    border-radius: 7px;
    font-size: 14px;
    max-width: 1300px;
    margin: auto;
}

.container-status-header {
    float: right;
    width: 275px;
    margin: 26px 0px 0px 0px;
}

.container-status-header .info {
    float: left;
    font-size: 11px;
    line-height: 9px;
    color: #000000a1;
}

.tooltip-custom {
    position: absolute;
    background-color: #1a1a1abf;
    color: #fff;
    padding: 5px 10px;
    border-radius: 4px;
    font-size: 12px;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s;
    /* Acima de TUDO. O tooltip e' transiente e tem pointer-events:none, entao
       nao atrapalha nada estando no topo - e ficar por baixo o torna inutil.
       O 1000 antigo perdia para a bandeja de uploads, para os popups e para o
       visualizador de midia: a dica existia e ninguem via.

       2147483647 e o TETO REAL: o navegador guarda z-index em int32, entao os
       9999999999 e 999999999999999999 espalhados por este arquivo sao todos
       clampados para este mesmo numero. Qualquer valor abaixo dele perde para
       eles - foi por isso que 2147483000 ainda ficou por baixo da bandeja. */
    z-index: 2147483647;
    max-width: 250px;
}

.tooltip-custom.show {
    opacity: 1;
}

/* Texto em LISTA (as regras da midia) precisa de mais linha: a 250px cada item
   quebra no meio e a continuacao alinha com o marcador do item seguinte - a
   lista parece ter o dobro de itens. Opt-in por `data-tooltip-largo` no
   elemento; quem nao pede continua em 250px. */
.tooltip-custom.tt-largo {
    max-width: 330px;
    line-height: 1.5;
}

/* Deixamos apenas o CSS cuidar das setas usando ::after */
.tooltip-custom::after {
    content: '';
    position: absolute;
    border-style: solid;
    border-width: 6px;
    border-color: transparent;
}

/* Seta do Tooltip no Topo (Seta aponta para baixo) */
.tooltip-custom[data-placement="top"]::after {
    border-top-color: #1a1a1abf;
    top: 100%;
    /* --tt-seta vem do JS e aponta para o CENTRO DO ALVO. Quando o tooltip e
       preso na borda da tela, alvo e caixa deixam de estar alinhados e uma seta
       fixa em 50% apontaria para o vazio. Sem a var, cai no 50% de sempre. */
    left: var(--tt-seta, 50%);
    margin-left: -6px;
    /* Centraliza a seta baseada na largura da borda */
}

/* Seta do Tooltip na Base (Seta aponta para cima) */
.tooltip-custom[data-placement="bottom"]::after {
    border-bottom-color: #1a1a1abf;
    bottom: 100%;
    /* --tt-seta vem do JS e aponta para o CENTRO DO ALVO. Quando o tooltip e
       preso na borda da tela, alvo e caixa deixam de estar alinhados e uma seta
       fixa em 50% apontaria para o vazio. Sem a var, cai no 50% de sempre. */
    left: var(--tt-seta, 50%);
    margin-left: -6px;
}

/* Seta do Tooltip na Esquerda (Seta aponta para a direita) */
.tooltip-custom[data-placement="left"]::after {
    border-left-color: #1a1a1abf;
    left: 100%;
    top: 50%;
    margin-top: -6px;
}

/* Seta do Tooltip na Direita (Seta aponta para a esquerda) */
.tooltip-custom[data-placement="right"]::after {
    border-right-color: #1a1a1abf;
    right: 100%;
    top: 50%;
    margin-top: -6px;
}

/* Estilo dos itens que mostram o tooltip */
.status-item {
    display: inline-block;
    position: relative;
    cursor: pointer;
    border-radius: 9px;
}

.dropdown-default {
    position: absolute;
    background: #fff;
    z-index: 2;
    width: 376px;
    box-shadow: 0px -1px 33px #00000012;
    border-radius: 15px;
    padding: 4px 5px 7px 5px;
    top: 46px;
    right: 3px;
    font-size: 19px;
    /* border: 1px solid #0000001c; */
    box-shadow: 0 6px 19px -1px rgb(0 0 0 / 13%), 0 2px 4px -1px rgb(0 0 0 / 7%);
}

.dropdown-default::after {
    position: absolute;
    display: block;
    pointer-events: none;
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    right: 18px;
    top: -2px;
    transform: rotate(45deg);
    z-index: 0;
    background: #fff;
    width: 24px;
    height: 24px;
    border-radius: 3px;
    opacity: 0;
}

.dropdown-default .item-criar {
    padding: 26px 9px;
    cursor: pointer;
    border-radius: 5px;
    background: #00000008;
    margin-top: 4px;
    font-weight: 600;
    display: block;
    height: 73px;
    color: #000;
    position: relative;
    border: 1px solid #007bff00;
    transition: 0.3s;
    z-index: 1;
    text-align: center;
    line-height: 18px;
}

.dropdown-default .item-criar:hover {
    border: 1px solid #007bff
}

.dropdown-default .col {
    float: left;
    padding: 0px 3px;
}

.item-post .dropdown-default {
    max-width: 136px;
    margin: 9px 0px 0px 0px;
    padding: 0px 0px;
    min-width: 182px;
}

.item-post .dropdown-default::after {
    right: 6px;
}

.dropdown-default .opcoes-post {
    padding: 12px 4px;
    position: relative;
    z-index: 1;
}

.dropdown-default .opcoes-post .divisao {
    width: 100%;
    height: 1px;
    background: #0000001c;
    margin: auto;
    margin-top: 5px;
    margin-bottom: 5px;
    width: calc(100% - 20px);
}

.dropdown-default .opcoes-post .titulo {
    text-align: left;
    font-size: 11px;
    padding: 4px 0px 3px 9px;
    font-weight: 500;
    color: #00000066;
    margin: 0px;
    line-height: 12px;
}

.dropdown-default .opcoes-post .item-opcoes-post {
    text-align: left;
    padding: 2px 9px;
    font-size: 13px;
    cursor: pointer;
}

.dropdown-default .opcoes-post .item-opcoes-post::after {
    clear: both;
    content: "";
    display: block;
}

.dropdown-default .opcoes-post .item-opcoes-post .txt {
    padding: 0px 0px 0px 0px;
    float: left;
    width: calc(100% - 23px);
    font-weight: 400;
}

.dropdown-default .opcoes-post .item-opcoes-post svg {
    float: left;
    width: 12px;
    height: 19px;
    margin-right: 8px;
    fill: #000;
}

.dropdown-default .opcoes-post .item-opcoes-post .icon {
    float: left;
    font-size: 13px;
    margin-right: 7px;
    padding: 3px 0px 0px 0px;
    font-weight: 600;
}

.dropdown-default .opcoes-post .item-opcoes-post.excluir {
    color: red;
    fill: red;
}

.dropdown-default.btns-conteudo,
.btns-tarefa {
    width: 175px;
}

.color-ia {
    background: linear-gradient(90deg, #4A90E2, #9013FE, #D726B1, #F5A623);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.bkd-ia {
    background: linear-gradient(90deg, #4A90E2, #9013FE, #D726B1, #F5A623);
    color: #fff;
}

.group-btns-popup-baixo {
    clear: both;
    padding: 12px 0px 3px 0px;
}

.group-btns-popup-baixo::after {
    clear: both;
    content: "";
    display: block;
}

.group-btns-popup-baixo .btn-gerar-conteudo-update {
    float: right;
    border-radius: 100px;
    font-weight: 500;
    padding: 8px 23px;
    cursor: pointer;
}

.group-btns-popup-baixo .btn-cancelar-popup {
    float: right;
    border: 1px solid #00000021;
    padding: 8px 19px;
    margin-right: 6px;
    border-radius: 100px;
}

#edit-popup .btn-cancelar-popup {
    float: right;
    /* border: 1px solid #00000021; */
    padding: 8px 19px;
    margin-right: 6px;
    border-radius: 100px;
    cursor: pointer;
}

.bkd-dark {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    /* background-image: radial-gradient(oklab(99.999999% 0 0 / .25), oklab(99.999999% 0 0 / 0) 40%), radial-gradient(oklab(87.835683% .003366 .14967) 30%, oklab(67.83255% .157095 -0.003474), oklab(67.83255% .157095 -0.003474 / .4) 41%, oklab(67.83255% .157095 -0.003474 / 0) 52%), radial-gradient(oklab(58.984582% .14704 -0.231127) 37%, oklab(58.984582% .14704 -0.231127 / 0) 46%), linear-gradient(155deg, oklab(76.355294% -0.174894 .102381 / 0) 65%, oklab(76.355294% -0.174894 .102381 / 1) 95%), linear-gradient(45deg, oklab(53.548175% -0.040251 -0.199701), oklab(63.951656% -0.055073 -0.189536)); */
    /* filter: blur(5px) url(#:R1d5bb9knpapd5aq:); */
    opacity: 0.08;
    /* background-size: 200% 200%, 285% 500%, 285% 500%, cover, cover; */
    /* background-position: bottom left, 109% 68%, 109% 68%, center, center; */
    z-index: 0;
    display: none;
}

.popup-upload-etapas {
    display: none;
    z-index: 99999999999999999;
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.93);
    color: #fff;
    text-align: center;
}

.popup-upload-etapas .conteudo {
    max-width: 400px;
    margin: auto;
    display: block;
}

.popup-upload-etapas .conteudo p {
    font-size: 15px;
    text-align: center;
    color: rgba(255, 255, 255, 0.47);
}

.popup-upload-etapas .conteudo h1 {
    font-size: 32px;
    text-align: center;
    padding: 10px 0px 0px 0px;
}

.popup-upload-etapas .conteudo .barra-porgresso {
    width: 100%;
    height: 40px;
    background: rgba(238, 35, 76, 0.08);
    border-radius: 100px;
    position: relative;
    overflow: hidden;
    margin-top: 40px;
    border: 2px solid #0064e0;
}

.popup-upload-etapas .center {
    display: grid;
    align-items: center;
    height: 100%;
    width: 100%;
    position: absolute;
}

.popup-upload-etapas .conteudo .barra-porgresso .percentual {
    position: absolute;
    top: 0px;
    left: 0px;
    height: 100%;
    background: #0064e0;
    transition: 0.3s;
}

.btn-mais-imagens-airpage,
.btn-mais-imagens-airpage-voltar {
    display: table;
    padding: 2px 11px 7px 0px;
    border-radius: 50px;
    cursor: pointer;
    /* box-shadow: 0 1px 4px rgba(0, 0, 0, 0.22); */
    font-size: 13px;
}

.edicao-page-pessoas .btn-sair {
    float: right;
    font-size: 12px;
    padding: 4px 0px 0px 8px;
    color: rgba(0, 0, 0, 0.46);
    cursor: pointer;
    transition: 0.3s;
}

.edicao-page-pessoas .btn-sair:hover {
    color: #000;
}

/* ===========================================================================
   CROPPER DE IMAGEM (#edit-image) - kit .cp-*
   ---------------------------------------------------------------------------
   Popup unico de 5 fluxos: upload de midia, galeria do usuario, foto de perfil
   (avatar), capa de video e recorte de midia ja enviada.
   Layout em coluna flex: cabecalho / palco / barra / rodape. Antes era tudo
   absoluto com altura fixa (barra de 130px, rodape de 244px centralizado no
   braco), o que estourava em tela baixa e nao existia no celular.
   MONOCROMATICO: o ativo e a tinta (--color-btn-bg-01), nada de azul de acento.
   =========================================================================== */
#edit-image {
    /* Palco escuro nos dois temas: e o fundo que faz a foto aparecer. */
    --cp-palco: #0f1013;
    --cp-xadrez: #ffffff0a;
    /* Superficie da janela. No escuro ela ganha elevacao propria (dark.css),
       senao um popup preto sobre fundo preto some. Mesma ideia do --up-surface. */
    --cp-surface: var(--color-bg);

    display: none;
    position: fixed;
    inset: 0;
    z-index: 99999999999999;
}

#edit-image .contant {
    position: absolute;
    inset: 0;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.64);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 22px 15px;
}

#edit-image .contant .mask {
    position: absolute;
    inset: 0;
    z-index: 1;
}

#edit-image .contant .conteudo {
    max-width: 940px;
    max-height: 720px;
    width: 100%;
    height: 100%;
    background: var(--cp-surface);
    color: var(--color-text-01);
    display: flex;
    flex-direction: column;
    border-radius: 18px;
    z-index: 2;
    position: relative;
    overflow: hidden;
    box-shadow: 0 30px 80px -24px rgba(0, 0, 0, .55);
    animation: cp-entra .22s cubic-bezier(.16, 1, .3, 1);
}

@keyframes cp-entra {
    from {
        opacity: 0;
        transform: translateY(10px) scale(.99);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* ---------- Cabecalho ---------- */
#edit-image .cp-hdr {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 15px 18px 13px 20px;
    border-bottom: 1px solid var(--color-border);
}

#edit-image .cp-titulo {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.25;
}

#edit-image .cp-sub {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.35;
    opacity: .55;
}

#edit-image .cp-hdr-acoes {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 7px;
}

/* Botao de texto+icone do cabecalho (Texto / Logo) */
#edit-image .cp-btn-icone {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 12px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    font-size: 13px;
    font-weight: 550;
    cursor: pointer;
    user-select: none;
    transition: background .18s ease, border-color .18s ease;
}

#edit-image .cp-btn-icone em {
    font-style: normal;
}

#edit-image .cp-btn-icone .material-icons-round {
    font-size: 17px;
    opacity: .7;
}

#edit-image .cp-btn-icone:hover {
    background: var(--color-hover-01);
}

#edit-image .cp-btn-icone:focus-visible {
    outline: none;
    border-color: var(--color-text-01);
}

/* Logo ativo: o botao do cabecalho acende. Sem isto so dava para saber que a
   marca d'agua esta ligada abrindo o painel. */
#edit-image .cp-btn-icone.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

#edit-image .cp-btn-icone.atv .material-icons-round {
    opacity: 1;
}

/* Sem editor de texto disponivel (modo avatar/capa): o botao some. */
#edit-image.cp-sem-texto .btn-texto-editor {
    display: none;
}

/* ---------- Palco ---------- */
#edit-image .image {
    flex: 1 1 auto;
    min-height: 0;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 14px;
    background-color: var(--cp-palco);
    background-image:
        linear-gradient(45deg, var(--cp-xadrez) 25%, transparent 25%, transparent 75%, var(--cp-xadrez) 75%),
        linear-gradient(45deg, var(--cp-xadrez) 25%, transparent 25%, transparent 75%, var(--cp-xadrez) 75%);
    background-size: 18px 18px;
    background-position: 0 0, 9px 9px;
}

#edit-image .image canvas {
    display: block;
    max-height: 100%;
    max-width: 100%;
    margin: auto;
    border: 0;
}

/* Estado de leitura do arquivo: sem ele a tela fica preta e parece travada. */
#edit-image .cp-carregando {
    display: none;
    position: absolute;
    inset: 0;
    align-items: center;
    justify-content: center;
    background: var(--cp-palco);
    z-index: 20;
}

#edit-image.cp-carregando-atv .cp-carregando {
    display: flex;
}

#edit-image .cp-carregando span {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    border: 2px solid #ffffff26;
    border-top-color: #ffffffb3;
    animation: cp-gira .7s linear infinite;
}

@keyframes cp-gira {
    to {
        transform: rotate(360deg);
    }
}

/* ---------- Barra de ferramentas ---------- */
#edit-image .opcoes {
    flex: 0 0 auto;
    padding: 12px 18px;
    border-top: 1px solid var(--color-border);
}

#edit-image .cp-grupo-label {
    display: block;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    opacity: .45;
    margin: 0 0 6px 2px;
}

#edit-image .cp-linha {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Botao quadrado das ferramentas (girar, zoom, espelhar) */
#edit-image .cp-btn-quad {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    cursor: pointer;
    user-select: none;
    transition: background .18s ease, border-color .18s ease;
}

#edit-image .cp-btn-quad .material-icons-round {
    font-size: 18px;
    opacity: .75;
}

#edit-image .cp-btn-quad:hover {
    background: var(--color-hover-01);
}

#edit-image .cp-btn-quad:active {
    transform: scale(.95);
}

#edit-image .cp-btn-quad:focus-visible {
    outline: none;
    border-color: var(--color-text-01);
}

#edit-image .cp-btn-quad.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

#edit-image .cp-btn-quad.atv .material-icons-round {
    color: var(--color-btn-text-01);
    opacity: 1;
}

/* ---------- Formatos ---------- */
#edit-image .opcoes .proporcoes {
    display: flex;
    gap: 5px;
}

#edit-image .opcoes .proporcoes .item {
    width: 48px;
    padding: 5px 0 4px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    cursor: pointer;
    user-select: none;
    transition: background .18s ease, border-color .18s ease;
}

#edit-image .opcoes .proporcoes .item:hover {
    background: var(--color-hover-01);
}

#edit-image .opcoes .proporcoes .item .c {
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* A miniatura do formato e so a silhueta: preenchida = escolhida. */
#edit-image .opcoes .proporcoes .item .c div {
    border: 1.5px solid var(--color-text-01);
    border-radius: 2px;
    opacity: .4;
    transition: .18s;
}

#edit-image .opcoes .proporcoes .item .c .cp-livre {
    border: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    fill: var(--color-text-01);
}

#edit-image .opcoes .proporcoes .item {
    width: 56px;
}

/* O nome diz o USO ("Stories"); a razao ("9:16") fica de apoio. Quem so quer
   postar nao sabe o que e 4:5, mas sabe o que e feed. */
#edit-image .opcoes .proporcoes .item p {
    font-size: 10px;
    font-weight: 600;
    margin: 0;
    padding: 3px 0 0;
    text-align: center;
    opacity: .75;
    line-height: 1.1;
}

#edit-image .opcoes .proporcoes .item em {
    display: block;
    font-style: normal;
    font-size: 8.5px;
    text-align: center;
    opacity: .4;
    font-variant-numeric: tabular-nums;
}

#edit-image .opcoes .proporcoes .item.atv em {
    color: var(--color-btn-text-01);
    opacity: .7;
}

#edit-image .opcoes .proporcoes .item.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

#edit-image .opcoes .proporcoes .item.atv .c div {
    border-color: var(--color-btn-text-01);
    background: var(--color-btn-text-01);
    opacity: 1;
}

#edit-image .opcoes .proporcoes .item.atv .c .cp-livre {
    background: none;
    fill: var(--color-btn-text-01);
}

#edit-image .opcoes .proporcoes .item.atv p {
    color: var(--color-btn-text-01);
    opacity: 1;
}

/* ---------- Rodape ---------- */
#edit-image .btns-footer {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 18px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

/* Resolucao de saida: e o unico aviso antes de salvar de que o recorte
   ficou pequeno demais para o feed. */
#edit-image .cp-saida {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    opacity: .55;
}

#edit-image .cp-saida .material-icons-round {
    font-size: 16px;
}

#edit-image .cp-saida b {
    font-weight: 600;
}

#edit-image .cp-saida.cp-saida-baixa {
    opacity: 1;
    color: #d4380d;
}

#edit-image .cp-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
}

#edit-image .btns-footer .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: 0 17px;
    border: 1px solid transparent;
    border-radius: 13px;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    user-select: none;
    background: transparent;
    color: var(--color-text-01);
    transition: transform .2s cubic-bezier(.16, 1, .3, 1), box-shadow .2s cubic-bezier(.16, 1, .3, 1), background .18s ease, opacity .18s ease;
}

#edit-image .btns-footer .btn.btn-resetar,
#edit-image .btns-footer .btn.btn-cancelar {
    opacity: .6;
}

#edit-image .btns-footer .btn.btn-resetar:hover,
#edit-image .btns-footer .btn.btn-cancelar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

#edit-image .btns-footer .btn.btn-save {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

#edit-image .btns-footer .btn.btn-save:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

#edit-image .btns-footer .btn:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--color-hover-01), 0 0 0 4px var(--color-border);
}

#perfil-modal {
    transform: translateX(-100%);
    -webkit-transform: translateX(-100%);
    display: none;
    position: fixed;
    left: 0px;
    top: 0px;
    height: 100%;
    width: 100%;
    background: rgba(255, 255, 255, 0.75);
    z-index: 999;
    max-width: 500px;
    box-shadow: 0px 0px 11px rgba(0, 0, 0, 0.23);
}

#perfil-modal iframe {
    border: 0;
    position: absolute;
    width: 100%;
    height: 100%;
}

#perfilModal-bloqueio {
    position: fixed;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.26);
    z-index: 9;
    display: none;
}

#edit-popup-mini {
    display: none;
    position: fixed;
    width: calc(100% - 399px);
    height: 100%;
    top: 0;
    left: 0;
    z-index: 9999;
    padding: 9px 0px;
    /* ! TRANSITION DESLIGADA - o `fadeIn()` do jQuery e uma `transition` na
       mesma propriedade sao incompativeis por construcao.

       O fadeIn escreve `opacity` inline A CADA FRAME; com `transition: .1s`
       (que e `all`), cada uma dessas escritas dispara uma transicao de 100ms, e
       o valor computado passa a PERSEGUIR o do jQuery com atraso. Medido: a
       casca abria em 1, mergulhava ate 0.11 e voltava - o "piscar" ao abrir o
       dialogo de vincular conteudos.

       O `#edit-popup` (a casca principal) ja roda com `0s` desde sempre; estas
       duas e que ficaram para tras. Se um dia alguem precisar animar algo aqui,
       anime a propriedade especifica, nunca `all`. */
    transition: 0s;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

#edit-popup-mini .contant {
    position: absolute;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.5);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    align-content: center;
    align-items: center;
    padding: 22px 15px;
    overflow: auto;
}

#edit-popup-mini .contant .mask {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
}

#edit-popup-mini .contant .boxpop {
    max-width: 400px;
    /* max-height: 90%; */
    width: 100%;
    /* height: 100%; */
    min-height: 100px;
    background: #fff;
    margin: auto;
    display: block;
    border-radius: 18px;
    z-index: 2;
    position: relative;
    overflow: auto;
}

#edit-popup-mini .contant .conteudo .etapa {
    margin: auto;
    width: 100%;
}

#edit-popup-medium {
    display: none;
    position: fixed;
    width: calc(100% - 399px);
    height: 100%;
    top: 0;
    left: 0;
    z-index: 9999;
    padding: 9px 0px;
    /* ! TRANSITION DESLIGADA - o `fadeIn()` do jQuery e uma `transition` na
       mesma propriedade sao incompativeis por construcao.

       O fadeIn escreve `opacity` inline A CADA FRAME; com `transition: .1s`
       (que e `all`), cada uma dessas escritas dispara uma transicao de 100ms, e
       o valor computado passa a PERSEGUIR o do jQuery com atraso. Medido: a
       casca abria em 1, mergulhava ate 0.11 e voltava - o "piscar" ao abrir o
       dialogo de vincular conteudos.

       O `#edit-popup` (a casca principal) ja roda com `0s` desde sempre; estas
       duas e que ficaram para tras. Se um dia alguem precisar animar algo aqui,
       anime a propriedade especifica, nunca `all`. */
    transition: 0s;
}

#edit-popup-medium .contant {
    position: absolute;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.5);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    align-content: center;
    align-items: center;
    padding: 22px 15px;
    overflow: auto;
}

#edit-popup-medium .contant .mask {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
}

#edit-popup-medium .contant .boxpop {
    max-width: 765px;
    /* max-height: 90%; */
    width: 100%;
    /* height: 100%; */
    min-height: 100px;
    background: #fff;
    margin: auto;
    display: block;
    border-radius: 8px;
    z-index: 2;
    position: relative;
    overflow: auto;
}

#edit-popup-medium .contant .conteudo .etapa {
    margin: auto;
    width: 100%;
}

/* =============================================================================
   POPUP FULL - o degrau XL da escada de popups
   -----------------------------------------------------------------------------
   mini 400 . medium 765 . popup 900 . big 1200 . FULL. Nasceu quando telas
   INTEIRAS do painel (Equipes, Workflow) passaram a morar em popup: elas foram
   desenhadas para a area de conteudo, com tabela densa e grade de agenda, e a
   1200px ja comecavam a espremer coluna.

   Casca GENERICA: mesma marcacao (.mask/.btn-close/.conteudo) e mesmos handlers
   das outras quatro, entao qualquer tela pode usa-la sem codigo novo.

   Dimensao: ocupa a janela menos uma moldura, com teto para nao virar uma faixa
   deitada em monitor ultrawide. `height` fixo (e nao `max-height`) porque quem
   mora aqui sao telas com barra propria e cabecalho fixo - elas precisam de uma
   altura para dividir entre as partes, e um popup que encolhe conforme a aba
   trocaria de tamanho a cada clique.
   ========================================================================== */
#edit-popup-full {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 999;
    transition: 0s;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

#edit-popup-full .contant {
    position: absolute;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.45);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

#edit-popup-full .contant .mask {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
}

#edit-popup-full .contant .boxpop {
    width: 100%;
    max-width: 1560px;
    height: 100%;
    max-height: 940px;
    background: var(--color-bg);
    border-radius: 18px;
    z-index: 2;
    position: relative;
    /* A casca recorta: quem mora aqui rola por dentro, e sem isto o conteudo
       passaria por cima dos cantos arredondados. */
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

#edit-popup-full .contant .boxpop>.conteudo {
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

#edit-popup-full .btn-close {
    position: absolute;
    right: 18px;
    top: 17px;
    cursor: pointer;
    z-index: 3;
}

/* Em tela pequena a moldura vira desperdicio: o popup encosta nas bordas e o
   raio some, porque um retangulo arredondado de 4px de margem le como erro. */
@media (max-width: 780px) {
    #edit-popup-full .contant {
        padding: 0;
    }

    #edit-popup-full .contant .boxpop {
        max-height: none;
        border-radius: 0;
    }
}

#edit-popup-big {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 999;
    padding: 9px 0px;
    transition: 0s;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

#edit-popup-big .contant {
    position: absolute;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.45);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    align-content: center;
    align-items: center;
    padding: 22px 15px;
    overflow: auto;
}

#edit-popup-big .contant .mask {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
}

#edit-popup-big .contant .boxpop {
    max-width: 1200px;
    /* max-height: 650px; */
    width: 100%;
    height: auto;
    background: #fff;
    margin: auto;
    display: block;
    border-radius: 21px;
    z-index: 2;
    position: relative;
    /* overflow: hidden; */
}

#edit-popup-big .btn-close {
    position: absolute;
    right: 17px;
    top: 16px;
    cursor: pointer;
    z-index: 2;
}

#edit-popup {
    display: none;
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 999;
    padding: 9px 0px;
    transition: 0s;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

#edit-popup .contant {
    position: absolute;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.45);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: flex;
    align-content: center;
    align-items: center;
    padding: 22px 15px;
    overflow: auto;
}

#edit-popup .contant .mask {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
}

#edit-popup .contant .boxpop {
    max-width: 960px;
    /* max-height: 650px; */
    width: auto;
    height: auto;
    background: #fff;
    margin: auto;
    display: block;
    border-radius: 21px;
    z-index: 2;
    position: relative;
    /* overflow: hidden; */
}

/* Popup de configuracoes do perfil: box maior (estilo "big"), preenche a largura
   e usa as abas como sidebar no desktop. No mobile vira tela cheia. */
#edit-popup .contant .boxpop:has(.editarPerfis) {
    width: 100%;
    max-width: 1100px;
}

#edit-popup-right {
    display: none;
    position: fixed;
    width: calc(100% - 399px);
    height: 100%;
    top: 0;
    left: 0;
    z-index: 999;
    padding: 9px 0px;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}

#edit-popup-right .contant {
    position: absolute;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.5);
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    padding: 52px 10px 10px 10px;
}

#edit-popup-right .contant .mask {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    z-index: 1;
}

#edit-popup-right .contant .boxpop {
    max-width: 325px;
    /* max-height: 90%; */
    width: 100%;
    height: 100%;
    min-height: 100px;
    background: #fff;
    display: block;
    border-radius: 16px;
    z-index: 2;
    position: relative;
    overflow: auto;
    float: right;
}

#edit-popup-right .contant .conteudo .etapa {
    margin: auto;
    width: 100%;
}

#edit-popup-right .btn-close {
    position: absolute;
    right: 17px;
    top: 16px;
    cursor: pointer;
    z-index: 2;
}

#edit-popup-right .edicao-page-historico {
    position: relative;
    height: 100%;
}

#edit-popup-right .edicao-page-historico .topo {
    padding: 12px 0px 7px 0px;
    border-bottom: 1px solid #0000000d;
}

#edit-popup-right .edicao-page-historico .container-atividades {
    position: absolute;
    overflow: auto;
    width: 100%;
    left: 0px;
    height: calc(100% - 47px);
    padding: 0px 15px;
    padding-bottom: 15px;
    padding-top: 6px;
}

.edicao-page-pessoas .lst-pessoas .item {
    border-bottom: 1px solid rgba(0, 0, 0, 0.06);
    padding: 9px 0px;
}

.edicao-page-pessoas .lst-pessoas .item .img {
    width: 26px;
    height: 26px;
    border-radius: 19px;
    background-size: cover;
    float: left;
    margin-right: 6px;
    background-color: #00000014;
    display: grid;
    align-items: center;
    text-align: center;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 500;
}

.edicao-page-pessoas .lst-pessoas .item .nome {
    float: left;
    font-size: 14px;
    margin-top: -1px;
    width: calc(100% - 167px);
}

.edicao-page-pessoas .lst-pessoas .item .nome p {
    margin: -2px 0px 0px 0px;
    height: 20px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    font-weight: 500;
}

.edicao-page-pessoas .lst-pessoas .item .nome span {
    color: rgba(0, 0, 0, 0.38);
    font-size: 11px;
    margin-top: -3px;
    display: block;
    height: 15px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.edicao-page-pessoas .lst-pessoas .item .btn-remover {
    cursor: pointer;
    transition: 0.3s;
    color: #000000;
    padding-left: 29px !important;
}

.edicao-page-pessoas .lst-pessoas .item .info {
    float: right;
    font-size: 12px;
    padding: 4px 0px;
    color: rgba(0, 0, 0, 0.46);
    cursor: pointer;
    transition: 0.3s;
}

.edicao-page-pessoas .lst-pessoas .item .dropdown-toggle {
    padding: 5px 13px;
    background: none;
    border: 0px;
    margin: 0px;
    font-size: 13px;
    display: block;
    background: rgba(0, 0, 0, 0.05);
    border-radius: 30px;
}

.edicao-page-pessoas .lst-pessoas .item .dropdown-toggle svg {
    width: 12px;
    margin-top: -2px;
}

.edicao-page-pessoas .lst-pessoas .item .dropdown-toggle::before {
    display: none !important;
}

.edicao-page-pessoas .lst-pessoas .item .dropdown {
    float: right;
    font-size: 13px;
}

.edicao-page-pessoas .lst-pessoas .item .dropdown .dropdown-item {
    font-size: 13px;
    padding: 2px 12px;
}

.edicao-page-pessoas .lst-pessoas .item .dropdown .dropdown-item span {
    color: rgba(255, 255, 255, 0);
    font-size: 15px;
    line-height: 0px;
    position: relative;
    top: 0px;
}

.edicao-page-pessoas .lst-pessoas .item .dropdown .dropdown-item.atv span {
    color: #0064e0 !important;
}

.container-pessoas-inserir {
    padding: 17px 0px 4px 0px;
}

.container-pessoas-inserir input {
    padding: 6px 12px;
    font-size: 13px;
    background: rgba(255, 255, 255, 0.48);
    border-radius: 9px;
    border: 2px solid #d3dbe2;
    height: 40px;
    width: 60%;
    margin-bottom: 8px;
    border-radius: 5px 0px 0px 5px;
    border-right: 0px;
}

.container-pessoas-inserir .btn-nova-pessoa {
    float: right !important;
    padding: 6px 15px;
    /* width: 40px; */
    /* height: 40px; */
    align-content: center;
    display: grid;
    font-size: 15px;
}

.btn-open-menu-perfil {
    margin: 0px;
    font-size: 13px;
}

.popup-delta .btn-close:hover {
    background-color: var(--color-border);
}

#edit-popup-mini .btn-close,
#edit-popup .btn-close,
#edit-popup-medium .btn-close {
    position: absolute;
    right: 17px;
    top: 16px;
    cursor: pointer;
    z-index: 4;
}

.edicao-popup {
    padding: 0px 15px 15px 15px;
}

.edicao-popup:after {
    contain: "";
    clear: both;
    display: block;
}

.edicao-popup .topo {
    padding: 15px 0px 16px 0px;
}

.edicao-popup .topo h1 {
    font-size: 20px;
    margin: 0px;
    float: left;
    font-weight: 600;
}

.edicao-popup .info {
    padding: 0px 15px 15px 0px;
    font-size: 12px;
    color: rgba(0, 0, 0, 0.37);
    margin-bottom: 0px;
}

.edicao-page-pessoas .lst-pessoas .item .btn-remover:hover {
    color: #0064e0;
}

.users .btn-users:hover {
    fill: #000;
}

.btn-open-menu-perfil {
    padding: 0px 2px;
    background: none;
    border: 0px;
    margin: -5px 0px 0px 0px;
    font-size: 0px;
    display: block;
    background: rgba(0, 0, 0, 0);
    border-radius: 30px;
}

.btn-open-menu-perfil .svg-open {
    width: 14px;
}

.btn-01 {
    cursor: pointer;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    color: rgba(0, 0, 0, 0.68);
    padding: 9px 17px;
    box-shadow: 0px 1px 8px rgba(0, 0, 0, 0.11);
    border-radius: 10px;
    display: table;
    background: #000;
    color: #fff;
    box-shadow: 0 6px 18px rgba(0, 100, 224, 0.04);
}

#menu-sistema-inicio {
    display: none;
    z-index: 2;
    position: fixed;
    top: 0px;
    left: 0px;
    background: #f7f7f7;
    width: 100%;
    padding: 9px 10px;
}

#menu-sistema-inicio .menu-sistema-inicio-btn-open {
    display: table;
    cursor: pointer;
    width: 40px;
    height: 40px;
}

#menu-sistema-inicio .menu-sistema-inicio-btn-open svg {
    width: 100%;
    height: 100%;
    /* height: 40px; */
    display: block;
    fill: rgba(110, 0, 6, 1);
}

#menu {
    position: fixed;
    left: 0;
    top: 0;
    height: 100%;
    width: 79px;
    background: #f1f1f1;
    z-index: 9;
}

#menu .itens {
    text-align: center;
    position: absolute;
    width: 100%;
    top: 28vh;
}

#menu .itens .item {
    text-align: center;
    font-size: 12px;
}

#menu #perfil {
    position: absolute;
    left: 0px;
    bottom: 0px;
    width: 100%;
    padding: 0px 0px 15px 0px;
}

#menu #perfil .image {
    width: 50px;
    height: 50px;
    background: rgba(0, 0, 0, 0.05);
    border-radius: 50%;
    margin: auto;
}

#menu-principal {
    left: 0;
    /* top: 0; */
    width: 100%;
    /* background: rgba(5, 5, 9, 0.01); */
    z-index: 4;
    border-right: 1px solid rgba(0, 0, 0, 0.06);
}

#menu-principal .logo {
    padding: 35px 0px 0px 0px;
    margin: auto;
}

#menu-principal .logo img {
    max-width: 36px;
    margin: auto;
    display: block;
    opacity: 0.1;
}

#menu-principal .menu-itens {
    text-align: center;
    position: absolute;
    width: 100%;
    top: 28vh;
}

#menu-principal .menu-itens .item {
    font-size: 13px;
    padding: 3vh 0px;
    border-left: 4px solid rgba(0, 0, 0, 0);
    color: #000;
    transition: 0.3s;
    font-weight: 200;
    opacity: 0.7;
    cursor: pointer;
}

#menu-principal .menu-itens .item:hover {
    opacity: 1;
}

#logoplataforma {
    /* float: left; */
    font-size: 22px;
    margin: 0px 0px 0px 0px;
    font-weight: 600;
    color: #000000;
    /* font-family: axiforma; */
    /* text-transform: uppercase; */
}

#loading {
    z-index: 999999999999999999;
    position: fixed;
}

#loading .container-loading {
    position: fixed;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
    z-index: 999999999;
    background: rgb(0 0 0 / 42%);
    display: flex;
    align-content: center;
    align-items: center;
    transition: 0.1s;
}

#loading .loadingio-spinner-spinner-xde9oldnq3p {
    width: 108px;
    height: 108px;
    display: inline-block;
    overflow: hidden;
    margin: auto;
}

@keyframes ldio-lnxp6kbjbt {
    0% {
        opacity: 1
    }

    100% {
        opacity: 0
    }
}

.ldio-lnxp6kbjbt div {
    left: 51.300000000000004px;
    top: 25.380000000000003px;
    position: absolute;
    animation: ldio-lnxp6kbjbt linear 1s infinite;
    background: #f80032;
    width: 5.4px;
    height: 14.040000000000001px;
    border-radius: 2.7px / 5.896800000000001px;
    transform-origin: 2.7px 28.62px;
}

.ldio-lnxp6kbjbt div:nth-child(1) {
    transform: rotate(0deg);
    animation-delay: -0.9090909090909091s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(2) {
    transform: rotate(32.72727272727273deg);
    animation-delay: -0.8181818181818182s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(3) {
    transform: rotate(65.45454545454545deg);
    animation-delay: -0.7272727272727273s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(4) {
    transform: rotate(98.18181818181819deg);
    animation-delay: -0.6363636363636364s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(5) {
    transform: rotate(130.9090909090909deg);
    animation-delay: -0.5454545454545454s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(6) {
    transform: rotate(163.63636363636363deg);
    animation-delay: -0.45454545454545453s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(7) {
    transform: rotate(196.36363636363637deg);
    animation-delay: -0.36363636363636365s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(8) {
    transform: rotate(229.0909090909091deg);
    animation-delay: -0.2727272727272727s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(9) {
    transform: rotate(261.8181818181818deg);
    animation-delay: -0.18181818181818182s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(10) {
    transform: rotate(294.54545454545456deg);
    animation-delay: -0.09090909090909091s;
    background: #ffffff;
}

.ldio-lnxp6kbjbt div:nth-child(11) {
    transform: rotate(327.27272727272725deg);
    animation-delay: 0s;
    background: #ffffff;
}

.loadingio-spinner-spinner-xde9oldnq3p {
    width: 108px;
    height: 108px;
    display: inline-block;
    overflow: hidden;
    margin: auto;
}

.ldio-lnxp6kbjbt {
    width: 100%;
    height: 100%;
    position: relative;
    transform: translateZ(0) scale(1);
    backface-visibility: hidden;
    transform-origin: 0 0;
    /* see note above */
}

.ldio-lnxp6kbjbt div {
    box-sizing: content-box;
}

#menu-principal .menu-itens .item.atv {
    border-color: #0064e0;
    font-weight: 400;
    opacity: 0.9;
}

#menu-principal .menu-itens .item img {
    width: 100%;
    max-width: 24px;
}

.user {
    position: fixed;
    bottom: 0;
    left: 34px;
    padding: 0px 0px 35px 0px;
    z-index: 9;
}

.user i {
    display: grid;
    fill: #fa243c;
}

.user .image {
    transition: 0.3s;
    color: rgba(255, 255, 255, 0.76);
    cursor: pointer;
    width: 50px;
    height: 50px;
    background: #0084fc;
    border-radius: 50%;
    margin: auto;
    align-items: center;
    align-content: center;
    display: flex;
    justify-content: center;
    /* border: 1px solid rgba(255, 255, 255, 0.2); */
}

.user .image p {
    text-align: center;
    font-size: 21px;
    transition: 0.3s;
    display: grid;
    align-items: center;
    line-height: 21px;
    margin: 0;
}

.menu-sistema .usuario {
    padding-top: 13px;
    position: absolute !important;
    bottom: 5px;
    left: 7px;
    padding: 0px 0px;
    width: 253px;
    padding: 8px 0px 8px 11px;
    z-index: 5;
    border: solid 1px var(--color-border);
    background-color: #fcfcfc63;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: 13px;
    display: flex;
    align-items: center;
    border: 1px solid var(--glass-borda) !important;
    box-shadow: var(--glass-brilho), var(--glass-sombra), 0 40px 90px -30px rgba(0, 0, 0, .08) !important;
}

.menu-sistema .usuario .usuario-img {
    width: 28px;
    height: 28px;
    /* background: rgba(228, 228, 236, 0.51); */
    border-radius: 27px;
    float: left;
    background-size: cover;
    position: relative;
    overflow: hidden;
    cursor: pointer;
    border: 1px solid var(--color-border);
    margin-left: -5px;
    display: grid;
    align-items: center;
    background-clip: padding-box;
    background-position: center;
}

.menu-sistema .usuario .usuario-img .edit {
    transition: 0.3s;
    opacity: 0;
    fill: #fff;
    background: rgba(0, 0, 0, 0.28);
    position: absolute;
    width: 100%;
    height: 100%;
    padding: 0px 4px;
    border-radius: 12px;
    cursor: pointer;
    display: none !important;
}

.menu-sistema .usuario .usuario-img .edit svg {
    transition: 0.3s;
    cursor: pointer;
    width: 17px;
}

.menu-sistema .usuario .usuario-img:hover .edit {
    opacity: 1;
}

.menu-sistema .usuario .usuario-txt:after,
.planos .lst-planos .item-plano .funcoes .item-funcao::after,
.planos .lst-planos::after,
.menu-sistema .usuario .usuario-txt .usuario-btns:after,
.popup-delta .contant .col-left .box-conteudo:after,
.popup-delta .contant:after,
.radio-button-group:after,
.edicao-popup .etap:after {
    visibility: hidden;
    display: block;
    content: "";
    clear: both;
    height: 0;
}

.menu-sistema .usuario .usuario-txt {
    float: left;
    width: calc(100% - 104px);
    padding: 0px 5px 0px 6px;
    font-size: 14px;
    font-weight: 550;
    letter-spacing: -0.015em;
    text-wrap: balance;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.menu-sistema .usuario .usuario-txt .usuario-nome {
    height: 25px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    max-width: 155px;
}

.menu-sistema .usuario .usuario-txt .usuario-btns .usuario-btn {
    font-size: 11px;
    float: left;
    color: rgba(0, 0, 0, 0.49);
    margin-right: 10px;
    cursor: pointer;
    font-weight: 200;
    margin-top: -2px;
}

.edicao-perfil .imagem {
    width: 150px;
    height: 150px;
    background: #8f8f8f26;
    border-radius: 50%;
    margin: auto;
    position: relative;
    background-size: cover;
    background-repeat: no-repeat;
    box-shadow: 0 7px 9px #00000012;
}

.edicao-perfil .btn-imagem {
    width: 40px;
    height: 40px;
    fill: #fff;
    border-radius: 50%;
    align-content: center;
    background: #0064e0;
    display: grid;
    position: absolute;
    bottom: -9px;
    right: 8px;
    cursor: pointer;
    padding: 0px;
}

.edicao-perfil .btn-imagem svg {
    margin: auto;
}

.edicao-popup-min-inputs label {
    display: block;
    font-size: 14px;
    margin: 14px 0px 4px 0px;
}

.edicao-popup-min-inputs input {
    width: 100%;
    border-radius: 6px;
    border: 2px solid rgba(0, 0, 0, 0.1);
    height: 42px;
    padding: 0px 10px;
}

.edicao-popup-min-inputs h6 {
    font-size: 14px;
    margin: 4px 0px 0px 0px !important;
    color: #a6a6a6;
}

.edicao-popup .ipt-01 {
    border-radius: 9px;
    border: 2px solid #d3dbe2;
    width: 100%;
    height: 56px;
    padding: 0px 16px;
    max-width: 400px;
    margin: auto;
    display: block;
    font-size: 20px;
    text-align: center;
}

.popup-interno-big {
    width: 100%;
    /* height: calc(100%); */
    padding: 15px 15px;
    min-width: 900px;
}

.popup-interno-big h1 {
    font-size: 22px;
}

.popup-interno-big h2 {
    font-size: 19px !important;
}

#btn-galeria-upload {
    border-radius: 7px;
    padding: 6px 10px;
    margin: auto;
}

.lst-galeria {
    padding: 21px 0px 40px 0px;
}

.lst-galeria::after,
.lst-uploads::after {
    display: block;
    clear: both;
    content: "";
}

.lst-galeria .col {
    float: left;
    padding: 4px;
}

.lst-galeria .col .item img {
    max-width: 100%;
    display: block;
    height: auto;
    max-height: 151px;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
    margin: auto;
}

.preview-desktop .lst-galeria .col {
    -ms-flex: 0 0 33.333333%;
    /* flex: 0 0 33.333333%; */
    /* max-width: 33.333333%; */
}

#popup-uploader-drag {
    display: none;
    position: fixed;
    top: 5px;
    left: 5px;
    width: calc(100% - 10px);
    height: calc(100% - 10px);
    background: rgba(255, 255, 255, 0.93);
    z-index: 9999;
    fill: #0064e0;
    color: #0064e0;
}

#input-hidden-upload-image.atv {
    position: fixed;
    top: 5px;
    left: 5px;
    height: calc(100% - 10px);
    width: calc(100% - 10px);
    z-index: 999999999;
    display: block !important;
    opacity: 0;
}

#popup-uploader-drag .center {
    display: grid;
    align-content: center;
    position: absolute;
    left: 0px;
    top: 0px;
    width: 100%;
    height: 100%;
}

#popup-uploader-drag .center p {
    text-align: center;
}

#popup-uploader-drag .center svg {
    max-width: 100px;
    width: 128px;
    height: 128px;
    margin: auto;
    display: block;
}

.box-upload-arraste-aqui {
    padding: 14px 0px;
    border: 2px dashed rgba(0, 0, 0, 0.11);
}

.box-upload-arraste-aqui .box-arraste-aqui-up {
    margin: auto;
    display: table;
    padding: 9px 0px 0px 0px;
    font-size: 13px;
}

.galeria-footer {
    position: absolute;
    bottom: 0px;
    right: 0px;
    background: #fff;
    border-top: 1px solid rgba(0, 0, 0, 0.11);
    width: 100%;
    padding: 10px 15px;
}

.galeria-footer .btn-usar {
    background: #0064e0;
    color: #fff;
    box-shadow: 0 10px 27px rgba(249, 0, 50, 0.4);
    padding: 7px 22px;
    border-radius: 22px;
    display: table;
    float: right;
    opacity: 0.3;
}

.galeria-footer .btn-deletar {
    background: rgba(8, 8, 8, 0.02);
    color: #4a4a4a;
    padding: 7px 22px;
    border-radius: 22px;
    display: table;
    float: left;
    opacity: 0.3;
    margin-left: 14px;
}

.galeria-footer .btn-usar.atv,
.galeria-footer .btn-deletar.atv {
    opacity: 1;
    cursor: pointer;
}

.galeria-footer .total {
    float: left;
    font-size: 11px;
    color: rgba(0, 0, 0, 0.56);
    padding: 11px 0px 0px 0px;
}

#galeria-uploads {
    padding: 0px 0px 21px 0px;
}

#galeria-uploads .btn-carregar-mais {
    display: table;
    color: #0064e0;
    padding: 7px 22px;
    border-radius: 22px;
    cursor: pointer;
    clear: both;
    margin: auto;
    margin-top: 10px;
    border: 1px solid rgba(249, 0, 50, 0.2);
    font-size: 14px;
}

#galeria-uploads .item.selected {
    border-color: #0064e0;
    box-shadow: 0 2px 11px rgba(249, 0, 50, 0.21);
}

#galeria-uploads .item:hover {
    box-shadow: 0 2px 11px rgba(249, 0, 50, 0.21);
}

.lst-galeria .col .item {
    cursor: pointer;
    border: 2px solid rgba(0, 0, 0, 0.07);
    border-radius: 2px;
    overflow: hidden;
    padding: 0px;
    height: 131px;
    display: grid;
    align-content: center;
    /* background: rgba(0, 0, 0, 0.13); */
    width: 100%;
    position: relative;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    transition: 0.2s;
}

.lst-paginas .bloco-page-item {
    display: none;
}

.lst-paginas .bloco-page-item.atv {
    display: block;
}

.lst-paginas .sem-conteudo,
.lst-paginas .sem-conteudo-02 {
    display: none;
}

.lst-paginas .sem-conteudo.atv,
.lst-paginas .sem-conteudo-02.atv {
    display: block;
}

.lst-blocos-home-sistema {
    margin-top: 2px;
    padding-bottom: 36px;
}

.lst-blocos-home-sistema .col {
    float: left;
    padding: 0px 19px 0px 0px;
    border-right: 1px solid #00000017;
}

.lst-blocos-home-sistema .col:last-child {
    padding-right: 0px;
    border-right: 0px solid !important;
}

.lst-blocos-home-sistema .col .item {
    border: 0px solid rgba(0, 0, 0, 0.07);
    /* border-radius: 12px; */
    padding: 31px 26px;
    text-align: left;
}

.lst-blocos-home-sistema .col .item h2 {
    font-size: 32px;
    padding-top: 0px;
    font-weight: 700;
    max-width: 266px;
}

.lst-blocos-home-sistema .col .item .descricao {
    padding: 3px 0px 0px 0px;
    font-size: 14px;
    color: rgba(0, 0, 0, 0.65);
    min-height: 152px;
}

.lst-blocos-home-sistema .col .item .btn-v1 {
    display: table;
    /* margin: auto; */
    border-radius: 40px;
    margin-top: 0px;
    background: rgb(0 0 0 / 0%);
    padding: 13px 20px 13px 20px;
    color: #000000;
    font-weight: 600;
    font-size: 15px;
    cursor: pointer;
    border: 1px solid #000;
}

.lst-blocos-home-sistema .col .item img {
    max-width: 160px;
    margin: auto;
}

.lst-blocos-home-sistema .col .item .svg {
    height: 178px;
    display: grid;
    align-content: center;
    display: none;
}

#htmlSessaoAtual {
    position: fixed;
    right: 9px;
    /* Mantem o posicionamento original da moldura (top:52px). A .header-pagina agora e
       a 1a filha (flex) desta moldura: fica no topo do card e o conteudo rola abaixo dela.
       (No mobile a barra/hamburguer #header-mobile ocupa o topo, entao NAO usar top:0.) */
    top: 0px;
    height: 100%;
    width: calc(100% - 276px);
    padding: 0px;
    /* A MOLDURA nao rola mais. Quem rola e a .centraliza (filha direta).
       Tirar o scroll daqui mantem a .header-pagina (irma da .centraliza) FORA do
       scroller, corrigindo o bug do iOS em que o header fixo ficava oculto-mas-clicavel. */
    overflow: inherit;
    display: flex;
    flex-direction: column;
    max-width: 100%;
}

/* Rolagem nativa nos conteineres que eram do nicescroll (plugin removido em
   09/10/2026: rolava por JS e prendia a roda sobre listas internas). Barra fina
   na cor do texto do tema, trilho transparente. */
.nice-scroll {
    scrollbar-width: thin;
    scrollbar-color: color-mix(in srgb, var(--color-text-01) 25%, transparent) transparent;
}

/* Scroller real do painel (o ".center" da descricao). */
#htmlSessaoAtual>.centraliza {
    /* flex: 1 1 auto; */
    min-height: 0;
    /* necessario p/ filho flex poder rolar */
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

#htmlSessaoAtual .centraliza {
    /* max-width: 1400px; */
    /* margin: auto; */
    padding: 0px;
    /* box-shadow: 0 0px 14px 4px rgb(0 0 0 / 3%); */
    border-radius: 22px 22px 0px 0px;
    border: solid 1px var(--color-border);
    height: calc(100% - 49px);
    border-bottom: 0px !important;
}

.usuario::after,
#htmlSessaoAtual .centraliza::after,
.container-inicio::after,
.contant-dashboard-home::after {
    display: block;
    clear: both;
    content: "";
}

.contant-dashboard-home {
    padding: 15px 15px 32px 15px;
}

.title-section {
    padding: 13px 0px 0px 0px;
    font-weight: 600;
    font-size: 40px;
}

.lst-connect-accounts .btn-segundario {
    background: #00000000 !important;
    font-weight: 550 !important;
    color: #000 !important;
    font-size: 14px;
    margin: 12px 0px 0px 0px;
    cursor: pointer;
}

.contant-dashboard-home .totais-itens {
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0px 5px 26px #0000001a;
    background: #1f2b32;
}

.contant-dashboard-home .totais-group-itens .totais-grafico-linha {
    width: calc(100% - 86px);
    height: 5px;
    background: #ffffff0d;
    margin: auto;
    border-radius: 19px;
    position: relative;
    /* overflow: hidden; */
    position: absolute;
    left: 43px;
    bottom: 6px;
}

.contant-dashboard-home .totais-group-itens .totais-grafico-linha div {
    position: absolute;
    height: 100%;
    background: #25d76ae3;
    box-shadow: 0px 1px 16px #25d76a87;
    border-radius: 100px 0px 0px 100px;
    background: linear-gradient(to left top, #25d76ae3, #1c9f4fe3);
}

.contant-dashboard-home .totais-group-itens .totais-grafico-linha p {
    position: absolute;
    right: 0px;
    bottom: 8px;
    margin: 0px;
    color: #25d76ae3;
    font-size: 10px;
    line-height: 9px;
}

.contant-dashboard-home .totais-group-itens {
    margin-top: 26px;
    margin-bottom: 26px;
    position: relative;
}

.contant-dashboard-home .totais-itens .totais-item {
    float: left;
    padding: 0px 0px;
    width: 16.66%;
}

.contant-dashboard-home .totais-itens .totais-item::after,
.contant-dashboard-home .totais-itens::after {
    clear: both;
    content: "";
    display: block;
}

.contant-dashboard-home .totais-itens .totais-item label {
    margin: 0px;
    line-height: 15px;
    font-size: 14px;
    margin-bottom: 21px;
    font-weight: 400;
    text-transform: uppercase;
}

.contant-dashboard-home .totais-itens .totais-item .numero {
    font-size: 54px;
    line-height: 48px;
    font-weight: 700;
}

.contant-dashboard-home .totais-itens .totais-item .cennn {
    padding: 19px 14px 40px 14px;
    text-align: center;
    /* border-radius: 10px; */
    /* box-shadow: 0px 2px 9px rgb(0 0 0 / 9%); */
    border-width: 0px !important;
    /* background: linear-gradient(to top left, #236db00a, #ffffff1a); */
    /* background: #fff; */
    position: relative;
    overflow: hidden;
}

.contant-dashboard-home .totais-itens .totais-item .bkd-mask {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    opacity: 0.3;
}

.contant-dashboard-home .totais-historico {
    padding: 0px;
    border-radius: 8px;
    min-height: 149px;
    margin-top: -9px;
}

.contant-dashboard-home h4 {
    font-size: 19px;
    font-weight: 500;
    margin-bottom: 16px;
}

.contant-dashboard-home .col-block {
    padding: 0px 0px 0px 0px;
    float: left;
}

.perfil-lst-item {
    padding: 15px 13px;
    /* background: #f4f4f4; */
    border-radius: 8px;
    cursor: pointer;
    /* box-shadow: 0px 2px 10px #00000014; */
    display: block;
    border: 1px solid #00000000;
    transition: 0.3s;
    position: relative;
}

.perfil-lst-item:hover {
    background: #ebebeb40;
}

.col-item-perfil {
    float: left;
    padding: 0px;
    display: none;
}

.col-item-perfil.atv {
    display: block;
}

.perfil-lst-item .img {
    width: 45px;
    height: 45px;
    border-radius: 17px;
    background-size: cover;
    float: left;
    background-color: #0000001c;
    margin: 0px 0px 0px 0px;
    border: 2px solid #7e7e7e30;
    position: relative;
    z-index: 2;
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
}

.perfil-lst-item .nome {
    float: left;
    padding: 0px 0px 0px 9px;
    font-size: 16px;
    font-weight: 600;
    color: #000;
    max-width: calc(100% - 51px);
    align-items: center;
    display: grid;
    height: 47px;
    line-height: 22px;
}

.contant-planejamento-home .lst-perfis .sem-conteudo,
.sem-conteudo-03-dinamic {
    color: #000000;
    font-size: 13px;
    font-weight: 200;
}

.contant-planejamento-home .lst-perfis::after,
.contant-planejamento-home .planejamento-item::after,
.editarPerfis::after,
.contant-dashboard-home .totais-perfis::after,
.contant-dashboard-home .totais-perfis .item::after {
    clear: both;
    display: block;
    content: "";
}

.editarPerfis-header h2 {
    flex: 1;
    min-width: 0;
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.editarPerfis .btn-save-perfil {
    clear: both;
    margin-top: 16px;
}

.contant-dashboard-home .totais-perfis {
    padding: 0px 27px 0px 0px;
    width: 100%;
}

.contant-dashboard-home .totais-perfis .item {
    padding: 10px 16px 10px 0px;
    border-top: 0px solid #0000000f;
    width: 33%;
    float: left;
    /* min-height: 100px; */
}

.contant-dashboard-home .totais-perfis .item .img {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    background-size: contain;
    float: left;
    border: 2px solid #a4a4a417;
    background-color: #8e8e8e17;
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
}

.contant-dashboard-home .totais-perfis .item .right {
    float: left;
    padding: 3px 0px 0px 9px;
    width: calc(100% - 43px);
    /* clear: both; */
}

.contant-dashboard-home .totais-perfis .item .nome {
    font-size: 15px;
    font-weight: 500;
    max-width: 210px;
    /* max-width: calc(100% - 31px); */
}

.contant-dashboard-home .totais-perfis .item .right .status {
    width: calc(100% - 0px);
    background: #0000000f;
    border-radius: 30px;
    overflow: hidden;
    min-height: 6px;
    margin-top: 4px;
    display: flex;
}

.contant-dashboard-home .totais-perfis .item .right .status div {
    height: 6px;
    float: left;
    border-radius: 100px;
    position: relative;
}

.contant-dashboard-home .totais-perfis .item .metas-qtd {
    padding-top: 5px;
}

/* ILUMINACAO */
.contant-dashboard-home .totais-perfis .item .right .status div::after,
#progress-status .status-item::after {
    content: "";
    display: block;
    background: linear-gradient(90deg, #438ee600, #ffffff24);
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0px;
    bottom: 0px;
    border-radius: 6px 6px 6px 6px;
    pointer-events: none;
}

.contant-dashboard-home .totais-perfis .item .left {
    float: left;
}

/* Icone de IA (estrelas) - diferencia visualmente as acoes geradas por IA */
.ico-ia-estrelas {
    width: 15px;
    height: 15px;
    fill: currentColor;
    vertical-align: -2px;
    margin-right: 6px;
    flex-shrink: 0;
}

.grupo-btns-tips {
    float: left;
    padding: 3px 0px 18px 0px;
    max-width: 570px;
    width: 100%;
}

.item-post .btn-download {
    width: 17px;
    float: right;
    /* fill: #000000; */
    position: absolute;
    right: 10px;
    top: 0px;
    font-weight: 400;
    cursor: pointer;
    transition: 0.3s;
    opacity: 0.8;
    /* display: none; */
}

.item-post .btn-download:hover,
.item-post .midia-uni .btn-remover:hover {
    color: #007bff;
    fill: #007bff;
}

.item-post .midia-uni .btn-remover svg {
    width: 15px;
}

.criar-page .etapa {
    display: none;
}

.popup-conectar-contas-meta h4 {
    padding: 20px 20px 5px 20px;
    font-size: 28px;
    font-weight: 600;
}

.popup-conectar-contas-meta .btn-buscar,
.popup-conectar-contas-meta .connectarContas {
    margin: 0px 15px 10px 9px;
    float: right;
    fill: #fff;
}

#header-lst-posts .grafics,
.view-planejamento .totais-desc-conteudos .grafics {
    display: flex;
    gap: 4px;
}

#header-lst-posts .grafics::after,
.view-planejamento .totais-desc-conteudos .grafics::after {
    clear: both;
    content: "";
    display: block;
}

#header-lst-posts .container-total-header,
.view-planejamento .totais-desc-conteudos .container-total-header {
    float: right;
    font-size: 11px;
    padding: 26px 0px 0px 8px;
    line-height: 9px;
}

.item-post[data-tipo="5"] .midia .midia-uni .midia-item img {
    max-height: 444px;
}

.item-post[data-local="4"] .col-legenda,
.item-post[data-local="2"] .col-legenda,
.item-post[data-tipo="8"] .col-legenda {
    display: none;
}

.item-post[data-local="4"] .col-observacoes,
.item-post[data-local="2"] .col-observacoes,
.item-post[data-tipo="8"] .col-observacoes {
    max-width: 100%;
}

.item-post[data-local="4"] .col-observacoes .textarea,
.item-post[data-local="2"] .col-observacoes .textarea {
    min-height: 149px;
}

.item-post[data-tipo="8"] .col-observacoes .textarea {
    min-height: 240px !important;
    padding-top: 30px;
    cursor: text;
}

.item-post[data-local="5"] .col-observacoes .textarea {
    min-height: 358px;
    padding-bottom: 8px;
}

.item-post[data-local="4"] .campos-content-left,
.item-post[data-local="2"] .campos-content-left,
.item-post[data-tipo="8"] .campos-content-left {
    max-width: 100%;
}

.item-post[data-local="4"] .col-objetivo .textarea,
.item-post[data-local="2"] .col-objetivo .textarea,
.item-post[data-tipo="8"] .col-objetivo .textarea {
    min-height: 46px !important;
}

.item-post[data-local="4"] .col-observacoes .campo-style-02,
.item-post[data-local="2"] .col-observacoes .campo-style-02,
.item-post[data-tipo="8"] .col-observacoes .campo-style-02 {
    border-radius: 5px;
}

.item-post[data-local="3"] .redes-ativas,
.item-post[data-local="4"] .redes-ativas,
.item-post[data-local="5"] .redes-ativas,
.item-post[data-local="99"] .redes-ativas {
    display: none;
}

.ipt2-col.tipo-agendamento .campo-style-02 .lbel,
.ipt2-col.local-agendamento .campo-style-02 .lbel,
.ipt2-col.data-agendamento .campo-style-02 .lbel {
    transition: 0.3s;
}

.ipt2-col.tipo-agendamento .campo-style-02:hover .lbel,
.ipt2-col.local-agendamento .campo-style-02:hover .lbel,
.ipt2-col.data-agendamento .campo-style-02:hover .lbel {
    color: #007bff;
}

.item-post .campos-content .titulo {
    border-bottom: 0px solid #0000000d;
    padding-bottom: 7px;
    padding-bottom: 0px;
}

.col-legenda,
.col-titulo,
.tipo-agendamento,
.col-objetivo,
.col-observacoes {
    padding-right: 0px;
    padding-left: 0px;
    padding-bottom: 0px;
    border: 1px solid #00000017;
    border-radius: 10px;
    margin-bottom: 7px;
}

.col-legenda,
.col-titulo,
.tipo-agendamento .lbel,
.col-objetivo .lbel,
.col-observacoes .lbel {
    font-weight: 600;
}

.item-post .col-legenda .campo-style-02,
.tipo-agendamento .campo-style-02 {
    border-radius: 5px 0px 0px 5px;
}

.item-post .col-observacoes,
.data-agendamento {
    /* padding-left: 0px; */
    /* padding-right: 0px; */
    max-width: 100%;
}

.item-post .col-observacoes .campo-style-02,
.data-agendamento .campo-style-02 {
    border-radius: 0px 5px 5px 0px;
    border-left: 0px solid #000 !important;
}

/* Aba OBJETIVOS: estilos legados removidos. O design atual (monocromatico,
   estilo ClickUp) vive no bloco "REDESIGN MONOCROMATICO" escopado em
   .editarPerfis (procure por "Aba OBJETIVOS (redesign)"). */

.totais-objetivos {
    float: left;
    padding: 20px 0px 0px 0px;
    width: 60%;
}

.totais-datas {
    float: left;
    padding: 20px 0px 0px 23px;
    width: 40%;
}

.totais-objetivos h5,
.totais-datas h5 {
    font-size: 16px;
    /* border-bottom: 1px solid #00000012; */
    padding-bottom: 6px;
    margin-bottom: -3px;
    font-weight: 600;
    float: left;
}

.totais-objetivos .totais-obj-item {
    float: left;
    border-radius: 5px;
    width: 100%;
    padding: 8px 0px 0px 0px;
    clear: both;
}

.totais-objetivos .totais-obj-item .data {
    font-size: 13px;
    font-weight: 600;
}

.totais-objetivos .totais-obj-item .texto {
    font-size: 13px;
    /* max-height: 54px; */
    text-overflow: ellipsis;
    overflow: hidden;
    /* white-space: nowrap; */
    color: #000000ba;
    white-space: pre-wrap;
}

.totais-datas .totais-data-item {
    padding: 5px 0px 0px 0px;
    clear: both;
}

.totais-datas .totais-data-item::after {
    clear: both;
    display: block;
    content: "";
}

.totais-datas .totais-data-item .data {
    float: left;
    font-weight: 600;
    font-size: 13px;
    width: 68px;
    text-align: left;
}

.totais-datas .totais-data-item .titulo {
    float: left;
    font-size: 13px;
    padding-left: 9px;
    font-weight: 400;
    width: calc(100% - 69px);
    color: #000000ba;
}

.msg-null {
    font-size: 12px;
    padding: 5px 0px 0px 0px;
    color: #0000004a;
    clear: both;
}

.datepicker-deate {
    background: none;
    border: 0px;
    height: 35px;
    cursor: pointer;
    font-weight: 600;
    font-size: 15px;
    color: #000;
    width: auto;
    padding: 0px 0px 0px 15px;
}

.datepicker-deate:disabled,
.datepicker-deate[readonly] {
    background-color: #5252520d;
    opacity: 1;
    border: 1px solid #00000024;
}

.lst-edit-objetivos .item-objetivo .btn-delete {
    width: 34px;
    float: right;
    padding: 10px;
    fill: #000;
    transition: 0.3s;
    cursor: pointer;
    opacity: 0.5;
}

.lst-edit-objetivos .item-objetivo .btn-delete:hover {
    opacity: 1;
}

#menu-btns-flutuantes {
    position: fixed;
    bottom: 69px;
    right: 10px;
    z-index: 9;
    display: none;
}

#menu-btns-flutuantes .btn-item {
    background: #027cff;
    fill: #fff;
    padding: 13px;
    border-radius: 50%;
    cursor: pointer;
    margin-bottom: 6px;
    width: 51px;
}

.item-post .btn-ajuste-conteudo,
.item-post .btn-ajuste-ideia {
    fill: #fdb711;
    border-radius: 100px;
    margin-left: 4px;
}

.btn-ideia-conteudo {
    color: #000;
    border-radius: 100px;
}

.item-post .btn-aprovar-conteudo {
    fill: #64c712;
}

.item-post .btn-aprovar-conteudo svg {
    fill: #64c712;
}

.item-post .btn-aprovar-conteudo div {
    float: left;
}

.item-post .btn-style-aprovar svg {
    width: 11px;
    float: left;
    fill: #64c712;
    margin: 3px 3px 0px 0px;
}

.item-post .btn-style-aprovar div {
    float: left;
}

#header-lst-posts .text-desc .segmento {
    font-size: 16px;
}

.container-pessoas-inserir .add-user-ttl {
    font-weight: 500;
    font-size: 16px;
    padding: 0px 0px 4px 0px;
}

.container-pessoas-inserir .btn-conta-externa {
    float: left;
    font-size: 14px;
    padding: 6px 0px;
    cursor: pointer;
}

.container-pessoas-inserir .btn-conta-externa::after,
.bloco-compartilhar-link::after {
    clear: both;
    display: block;
    content: "";
}

.container-pessoas-inserir .btn-conta-externa .ck {
    float: right;
    width: 17px;
    height: 17px;
    border: 2px solid #0000002b;
    border-radius: 100px;
    margin: 3px 0px 0px 4px;
    align-items: center;
    display: grid;
}

.container-pessoas-inserir .btn-conta-externa.atv .ck div {
    background: #0064e0;
}

.container-pessoas-inserir .btn-conta-externa.atv .ck {
    border-color: #0064e0;
}

.container-pessoas-inserir .btn-conta-externa .ck div {
    width: 8px;
    height: 8px;
    background: #0000000a;
    border-radius: 100px;
    margin: auto;
}

.container-pessoas-inserir .btn-conta-externa .txt {
    float: left;
    color: #00000094;
}

.custom-select-wrapper {
    position: relative;
    display: inline-block;
    width: 40%;
    float: right;
}

.custom-select {
    display: inline-block;
    width: 100%;
    padding: 5px 8px;
    background-color: #ffffff;
    border: 2px solid #d3dbe2;
    height: 40px;
    border-radius: 0px 5px 5px 0px;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    font-size: 14px;
    cursor: pointer;
    color: #333;
    font-family: Arial, sans-serif;
}

.custom-select-wrapper::after {
    position: absolute;
    top: 50%;
    right: 10px;
    transform: translateY(-50%);
    pointer-events: none;
    font-size: 14px;
    color: #666;
}

.custom-select:hover,
.custom-select:focus {
    border-color: #007bff;
    outline: none;
}

select::-ms-expand {
    display: none;
}

.bloco-compartilhar-link {
    padding: 15px 17px;
    background: #007bff1f;
    margin-top: 18px;
    border-radius: 5px;
}

.bloco-compartilhar-link .text-title {
    float: left;
    font-size: 17px;
    font-weight: 600;
    width: calc(100% - 100px);
}

.bloco-compartilhar-link .btn-copiar-link-url {
    float: right;
    font-size: 13px;
    padding: 1px 7px;
    border-radius: 101px;
    font-weight: 500;
    color: #0064e0;
    cursor: pointer;
}

/* Container principal da dashboard */
.contant-metrica-conteudo,
.contant-metrica-perfil-conteudo {
    max-width: 518px;
    margin: 0px;
    padding: 15px;
    border-radius: 10px;
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;
    color: #333;
}

.contant-metrica-conteudo .titulo {
    font-size: 28px;
    color: #333;
    text-align: center;
    margin-bottom: 30px;
}

.contant-metrica-conteudo .metrics-display h4 {
    font-size: 24px;
    font-weight: bold;
    color: #444;
    margin-bottom: 20px;
}

.contant-metrica-conteudo .metrics-display .metric-item {
    padding: 16px 0px 0px 0px;
    transition: background-color 0.3s ease;
    border-top: 1px solid #0000001a;
    float: left;
    width: 50%;
    padding-right: 10px;
}

.contant-metrica-conteudo .metrics-display .metric-item strong {
    font-size: 18px;
    color: #333;
    display: block;
    margin-bottom: 8px;
}

.contant-metrica-conteudo .metrics-display .metric-item .value {
    font-size: 57px;
    font-weight: bold;
    color: #007bff;
    line-height: 51px;
}

.contant-metrica-conteudo .metrics-display .metric-item .title {
    font-weight: 600;
}

.contant-metrica-conteudo .metrics-display .metric-item p {
    font-size: 13px;
    color: #666;
    margin-top: 8px;
}

/* ===== Log de Publicacao (popup do conteudo) - premium ===== */
.contant-log-publicacao {
    width: 100%;
    max-width: 100%;
    padding: 24px;
    box-sizing: border-box;
}

.contant-log-publicacao h3 {
    font-size: 19px;
    font-weight: 700;
    margin: 0;
    text-align: left;
    letter-spacing: -.01em;
}

.contant-log-publicacao .log-sub {
    font-size: 13px;
    opacity: .5;
    margin: 3px 0 18px;
}

.contant-log-publicacao .log-display {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.contant-log-publicacao .log-item {
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 15px 16px;
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    transition: box-shadow .18s ease, border-color .18s ease;
}

.contant-log-publicacao .log-item-top {
    display: flex;
    align-items: center;
    gap: 12px;
}

.contant-log-publicacao .log-ico {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 2px 8px rgba(15, 23, 42, .18);
}

.contant-log-publicacao .log-ico svg {
    width: 21px;
    height: 21px;
}

.contant-log-publicacao .log-item-info {
    flex: 1 1 auto;
    min-width: 0;
}

.contant-log-publicacao .log-rede {
    font-size: 14.5px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: -.01em;
}

.contant-log-publicacao .log-meta {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-top: 4px;
    font-size: 11.5px;
    opacity: .55;
}

.contant-log-publicacao .log-meta-i {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.contant-log-publicacao .log-badge {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 700;
    padding: 5px 11px 5px 9px;
    border-radius: 999px;
    white-space: nowrap;
}

.contant-log-publicacao .log-badge-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
}

.contant-log-publicacao .log-item--ok .log-badge {
    background: rgba(16, 185, 129, .12);
    color: #059669;
}

.contant-log-publicacao .log-item--erro .log-badge {
    background: rgba(239, 68, 68, .12);
    color: #dc2626;
}

.contant-log-publicacao .log-msg {
    margin-top: 12px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--color-bg-01);
    font-size: 13px;
    line-height: 1.55;
    word-break: break-word;
}

.contant-log-publicacao .log-item--erro .log-msg {
    background: rgba(239, 68, 68, .07);
    color: #dc2626;
}

.contant-log-publicacao .log-redeid {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    font-size: 12px;
    opacity: .7;
    word-break: break-all;
}

.contant-log-publicacao .log-redeid svg {
    flex: 0 0 auto;
    opacity: .7;
}

.contant-log-publicacao .log-redeid strong {
    font-weight: 600;
}

.contant-log-publicacao .log-retorno {
    margin-top: 12px;
}

.contant-log-publicacao .log-retorno summary {
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: #2563eb;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    user-select: none;
    padding: 6px 10px;
    border-radius: 8px;
    transition: background .15s ease;
}

.contant-log-publicacao .log-retorno summary:hover {
    background: rgba(37, 99, 235, .08);
}

.contant-log-publicacao .log-retorno summary::-webkit-details-marker {
    display: none;
}

.contant-log-publicacao .log-retorno summary::before {
    content: '';
    width: 0;
    height: 0;
    border-left: 5px solid currentColor;
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    transition: transform .15s ease;
}

.contant-log-publicacao .log-retorno[open] summary::before {
    transform: rotate(90deg);
}

.contant-log-publicacao .log-retorno pre {
    margin-top: 8px;
    background: #0f172a;
    color: #e2e8f0;
    padding: 14px;
    border-radius: 10px;
    font-size: 11.5px;
    line-height: 1.55;
    overflow: auto;
    max-height: 280px;
    white-space: pre-wrap;
    word-break: break-word;
    font-family: SFMono-Regular, ui-monospace, Menlo, Consolas, monospace;
}

.contant-log-publicacao .log-vazio {
    padding: 36px 16px;
    text-align: center;
    opacity: .5;
    font-size: 14px;
}

.bkd-browse-home {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    pointer-events: none;
    z-index: 0;
    /* background: #f7f9fc; */
}

.btn-color-sys svg {
    /* fill: #292929; */
    width: 17px;
    height: 17px;
}

.edicao-page-estilo .sistema-estilos .estilo {
    width: calc(50% - 5px);
    height: 250px;
    float: left;
    position: relative;
    border: 3px solid #00000000;
    cursor: pointer;
    padding: 64px 0px 0px 13px;
    transition: 0.3s;
}

.edicao-page-estilo .sistema-estilos .estilo .txt {
    font-size: 34px;
    line-height: 30px;
    font-weight: 700;
}

.edicao-page-estilo .sistema-estilos .estilo.dark {
    background: #1d1d1d;
    border-radius: 15px;
    margin-right: 10px;
}

.edicao-page-estilo .sistema-estilos .estilo.dark .txt {
    color: #fff;
}

.edicao-page-estilo .sistema-estilos .estilo.white {
    border-radius: 15px;
    background: #e7e7e7;
}

.edicao-page-estilo .sistema-estilos .estilo.white .txt {
    color: #000;
}

.edicao-page-estilo .sistema-estilos .estilo.atv {
    border-color: #007bff;
}

.edicao-page-estilo .sistema-estilos .estilo .btn {
    background: #007bff;
    color: #fff;
    border-radius: 100px;
    margin-top: 12px;
    font-size: 14px;
}

.edicao-page-estilo .sistema-estilos .estilo .selecionado {
    display: none;
}

.edicao-page-estilo .sistema-estilos .estilo.atv .btn {
    display: none;
}

.edicao-page-estilo .sistema-estilos .estilo.atv .selecionado {
    display: block;
    color: #ffffff;
    font-weight: 500;
    margin-top: 59px;
    background: #007bff;
    width: 100px;
    text-align: center;
    border-radius: 37px 37px 0px 0px;
    margin: auto;
    position: absolute;
    bottom: 0px;
    left: calc(50% - 50px);
    padding: 3px 0px 0px 0px;
    box-shadow: 0px 0px 21px #007bff66;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 1px;
    font-weight: 600;
}

.edicao-page-estilo .sistema-estilos .estilo:not(.atv):hover {
    border-color: #007bff3a;
}

.edicao-page-comentarios {
    color: #000;
}

.edicao-page-comentarios .container-atividades .titulo {
    border-top: 0px;
}

.edicao-page-comentarios .lst-comentarios {
    max-width: 450px;
    width: 100%;
}

.edicao-page-comentarios .lst-comentarios .box-add-comentario {
    border: 1px solid var(--color-border);
    transition: 0.3s;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    background: #ffffffcf;
    border-radius: 13px;
}

.edicao-page-comentarios .lst-comentarios .box-add-comentario .textarea {
    width: 100%;
    border: 0px;
    background: #00000000;
    border-radius: 9px;
    padding: 2px 0px;
    font-size: 14px;
    padding-bottom: 50px;
    padding: 9px 13px 10px 13px;
}

.btn-add-comentario {
    margin-top: 6px;
    padding: 3px;
    background-color: #99999921;
    color: #000000;
    border-radius: 100px;
    transition: background-color 0.3s ease;
    margin-top: -40px;
    margin-right: 8px;
    float: right;
    position: relative;
    z-index: 2;
    cursor: pointer;
    font-size: 14px;
    font-weight: 500;
}

.btn-add-comentario svg {
    width: 20px;
    height: 20px;
}

.mencao-chip {
    color: #2f6bff;
    background: rgba(47, 107, 255, 0.10);
    border-radius: 5px;
    padding: 0px 4px;
    font-weight: 500;
    white-space: nowrap;
    cursor: default;
}

.mencao-dropdown {
    position: fixed;
    z-index: 999999;
    background: #fff;
    border: 1px solid var(--color-border, #e2e2e2);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    width: 260px;
    max-height: 230px;
    overflow-y: auto;
    padding: 5px;
    display: none;
}

.mencao-dropdown .mencao-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 9px;
    border-radius: 8px;
    cursor: pointer;
}

.mencao-dropdown .mencao-item.ativo,
.mencao-dropdown .mencao-item:hover {
    background: rgba(47, 107, 255, 0.10);
}

.mencao-dropdown .mencao-item .img {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #0000001c;
    background-size: cover;
    background-position: center;
    display: grid;
    align-items: center;
    text-align: center;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 500;
    flex-shrink: 0;
}

.mencao-dropdown .mencao-item .nome {
    font-size: 14px;
    color: #000;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mencao-dropdown .mencao-vazio {
    padding: 9px;
    font-size: 13px;
    color: #888;
    text-align: center;
}

/* ============================================================
   AirpostPicker - dropdown reutilizavel ancorado a um <input>.
   Estrutura "shell" generica; cada preset (data-picker="...")
   define o HTML interno de cada item (use as classes auxiliares
   .picker-img / .picker-txt / .picker-nome / .picker-desc para
   herdar o visual padrao, ou injete HTML livre dentro do item).
   ============================================================ */
.picker-dropdown {
    position: fixed;
    z-index: 999999;
    background: #fff;
    border: 1px solid var(--color-border, #e2e2e2);
    border-radius: 10px;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
    width: 320px;
    max-height: 260px;
    overflow-y: auto;
    padding: 5px;
    display: none;
}

.picker-dropdown .picker-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 9px;
    border-radius: 8px;
    cursor: pointer;
}

.picker-dropdown .picker-item.ativo,
.picker-dropdown .picker-item:hover {
    background: rgba(47, 107, 255, 0.10);
}

.picker-dropdown .picker-item .picker-img {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #0000001c;
    background-size: cover;
    background-position: center;
    display: grid;
    align-items: center;
    text-align: center;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 500;
    flex-shrink: 0;
}

.picker-dropdown .picker-item .picker-txt {
    min-width: 0;
    flex: 1;
}

.picker-dropdown .picker-item .picker-nome {
    font-size: 14px;
    color: #000;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.picker-dropdown .picker-item .picker-desc {
    font-size: 12px;
    color: #888;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.picker-dropdown .picker-vazio {
    padding: 9px;
    font-size: 13px;
    color: #888;
    text-align: center;
}

#miniaturas-acesso-rapido .item .mask-red {
    display: none;
}

#miniaturas-acesso-rapido .item.em-atraso .mask-red {
    display: block;
    background: linear-gradient(45deg, #e4070712, transparent);
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: -2px;
    border-radius: 6px 0px 0px 6px;
}

.item-post .midia .midia-uni .midia-item .tipo {
    position: absolute;
    top: 0px;
    left: 0px;
    background: #000000ba;
    color: #fff;
    padding: 1px 7px;
    font-size: 13px;
    border-radius: 0px 0px 8px 0px;
    font-weight: 500;
}

.item-post .midia .midia-uni .midia-item .tipo a {
    color: #fff;
}

.container-atividades .atividades-lst .item .container-left {
    float: left;
    width: calc(100% - 29px);
    padding-left: 8px;
}

.contant-dashboard-home .container-atividades {
    padding: 0px 0px 0px 0px;
    display: block;
}

.container-atividades .titulo {
    font-size: 16px;
    font-weight: 500;
    border-top: 1px solid #00000014;
    padding-top: 10px;
}

.container-atividades .atividades-lst {
    display: block;
}

.container-atividades .atividades-lst .item {
    padding: 8px 0px 12px 0px;
    position: relative;
}

.container-atividades .atividades-lst .item::after,
.container-atividades .atividades-lst .item .container-left::after,
.contant-dashboard-home .totais-perfis .item .right .status::after {
    clear: both;
    content: "";
    display: block;
}

.container-atividades .atividades-lst .item .img {
    width: 28px;
    height: 28px;
    background: #0000001c;
    border-radius: 50%;
    float: left;
    background-size: cover;
    background-position: center;
    display: grid;
    align-items: center;
    text-align: center;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 500;
    border: 1px solid #ffffff1a;
    position: relative;
    background-clip: padding-box;
}

.container-atividades .atividades-lst .item .acao-txt {
    float: left;
    font-size: 12px;
    padding: 0px 0px 0px 0px;
    width: 100%;
    margin: -5px 0px 0px 0px;
    word-break: break-word;
    font-weight: 400;
}

.container-atividades .atividades-lst .item .acao-txt strong {
    font-weight: 600;
}

.container-atividades .atividades-lst .item .acao-data {
    font-size: 11px;
    color: #00000057;
    float: left;
    padding: 0px 0px 0px 0px;
    width: 100%;
}

.container-atividades .atividades-lst .item .acao-coment {
    float: left;
    width: 100%;
    background: #0000000d;
    border-radius: 8px;
    font-size: 14px;
    margin: 3px 0px 0px 0px;
    /* white-space: pre-wrap; */
}

.container-atividades .atividades-lst .item .acao-coment-btns {
    float: left;
    padding: 6px 0px 0px 0px;
}

.container-atividades .atividades-lst .item .acao-coment-btns .btn {
    padding: 0px;
    font-size: 11px;
    margin-right: 8px;
    color: #000;
    transition: 0.3s;
    cursor: pointer;
    opacity: 0.5;
}

.container-atividades .atividades-lst .item .acao-coment-btns .btn:hover {
    opacity: 1;
}

.container-atividades .sem-atividades {
    font-size: 13px;
    color: #00000091;
}

.container-atividades .atividades-lst .item .acao-coment-btns .btns-editor {
    padding: 5px 0px 6px 0px;
}

.container-atividades .atividades-lst .item .acao-coment-btns .btns-editor .btn {
    border-radius: 100px;
    padding: 5px 14px;
    margin-right: 0px;
    cursor: pointer;
    font-weight: 600;
    font-size: 13px;
}

.container-atividades .atividades-lst .item .acao-coment-btns .btns-editor .btn.save {
    background-color: #007bff;
    color: #fff;
    opacity: 1;
}

.container-atividades .atividades-lst .item .acao-coment-btns .btns-editor .btn.cancelar {
    background: #0000000d;
    color: #000;
}

.container-atividades .atividades-lst .item .acao-coment .textarea {
    width: 100%;
    background: none;
    border: 0px;
    padding: 5px 9px;
}

.container-atividades .atividades-lst .item .acao-coment .text {
    padding: 5px 9px;
    word-break: break-word;
    font-size: 13px;
    font-weight: 500;
}

#fluxo-contant #menu-topo {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 46px;
    background: #fff;
    display: none;
}

#fluxo-contant .fluxo-conteudos {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: calc(100% - 0px);
    overflow: auto;
    padding: 0px 20px 0px 20px;
    display: grid;
    background: #fff;
}

#fluxo-contant .fluxo-conteudos .header {
    height: 62px;
    position: fixed;
    width: 100%;
    left: 0px;
    top: 0px;
    padding: 19px 17px 0px 17px;
    z-index: 2;
    background: #fff;
}

#fluxo-contant .fluxo-conteudos .header h1 {
    font-size: 29px;
    font-weight: 600;
    margin: 0px 0px 0px 0px;
    float: left;
    line-height: 35px;
}

#fluxo-contant .fluxo-conteudos .status-lst {
    display: flex;
    gap: 15px;
    flex-direction: row;
    gap: 12px;
    padding-top: 76px;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .topo {
    padding: 6px 8px 3px 8px;
    display: table;
    width: 100%;
    background: #00000008;
    border-radius: 9px 9px 0px 0px;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .topo .status {
    display: table;
    padding: 5px 8px;
    float: left;
    border-radius: 17px;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .topo h2 {
    font-size: 14px;
    font-weight: 500;
    margin: 0px;
    float: left;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos {
    width: 280px;
    min-height: 119px;
    max-height: 120px;
    padding: 0px 8px 2px 8px;
    /* box-shadow: 0px 2px 8px rgb(0 0 0 / 6%); */
    font-size: 14px;
    overflow: auto;
    background: #00000008;
    /* border-radius: 0px 0px 9px 9px; */
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos::after {
    clear: both;
    content: "";
    display: block;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item {
    position: relative;
    background: #fff;
    padding: 7px 9px;
    border-radius: 8px;
    margin-top: 7px;
    box-shadow: 0px 2px 8px rgb(0 0 0 / 13%);
    overflow: hidden;
    transition: 0.2s;
    border: 1px solid #ffffff00;
    user-select: none !important;
}

.table-01 tbody td .redes {
    float: right;
    width: 110px;
}

.table-01 tbody td .redes svg {
    margin-left: 3px;
    width: 13px !important;
    height: 13px !important;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item:hover {
    border-color: #1a89ff;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item .data {
    width: 100%;
    font-weight: 600;
    font-size: 14px;
    line-height: 15px;
    padding: 8px 0px 2px 0px;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item .data span {
    font-weight: 400;
    font-size: 14px;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item .tag {
    margin: 0px 7px 0px 0px;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item .perfil::after,
#fluxo-contant .fluxo-conteudos .status-lst .status-item .topo::after,
.atividades-lst .mais-infos::after,
#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item .data::after {
    display: block;
    clear: both;
    content: "";
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item .perfil .img {
    width: 23px;
    height: 23px;
    background-size: cover;
    border-radius: 50%;
    float: left;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item .perfil .nome {
    float: left;
    font-size: 13px;
    color: #00000099;
    font-weight: 400;
    padding: 1px 0px 0px 5px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    width: calc(100% - 59px);
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item .tipo {
    display: table;
    border-radius: 100px;
    padding: 0px 0px;
    border: 0px solid #0000002e;
    margin: 0px 0px 1px 0px;
    font-weight: 600;
    font-size: 15px;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos .conteudo-item .codigo {
    opacity: 0.6;
    float: left;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    width: 100%;
    font-size: 12px;
    margin-bottom: 3px;
}

.fancybox__content {
    padding: 0 !important;
    /* Remove o padding */
}

/* .placeholder-highlight {
    background-color: #0000001e; 
    border: 1px dashed #00000011;
    visibility: visible; 
    margin-bottom: 10px; 
    border-radius: 8px;
} */
.drop-mask {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(0, 0, 0, 0.2);
    color: #fff;
    display: grid;
    align-items: center;
    text-align: center;
    line-height: 50px;
    font-size: 16px;
    font-weight: bold;
    z-index: 1;
    /* Fica acima dos outros elementos */
    backdrop-filter: blur(5px);
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .status-conteudos.drop {
    position: relative;
}

#fluxo-contant .fluxo-conteudos .status-lst .status-item .topo .tot-count {
    float: right;
    font-size: 13px;
    line-height: 12px;
    opacity: 0.9;
    font-weight: 500;
    padding: 8px 0px 0px 9px;
    float: left;
}

.item-post .codigo {
    /* position: absolute; */
    left: 150px;
    font-size: 11px;
    color: #00000070;
    font-weight: 300;
    top: 13px;
    float: right;
    padding: 6px 10px 0px 7px;
}

#fluxo-contant .status-conteudos {
    overflow: scroll;
    scrollbar-width: thin;
    /* Scroll fino (Firefox) */
    scrollbar-color: #ccc transparent;
    /* Cor do scroll e fundo (Firefox) */
}

/* Para navegadores baseados em WebKit (Safari, Chrome, Edge no macOS) */
#fluxo-contant .status-conteudos::-webkit-scrollbar {
    width: 4px;
    height: 8px;
}

#fluxo-contant .status-conteudos::-webkit-scrollbar-thumb {
    background-color: #ccc;
    border-radius: 4px;
    /* Bordas arredondadas */
}

#fluxo-contant .status-conteudos::-webkit-scrollbar-thumb:hover {
    background-color: #aaa;
    /* Cor do thumb ao passar o mouse */
}

#fluxo-contant .status-conteudos::-webkit-scrollbar-track {
    background: transparent;
    /* Fundo do trilho do scroll */
}

#fluxo-contant .status-conteudos {
    scrollbar-gutter: stable;
}

#fluxo-contant .conteudo-item .mask-red {
    display: none;
}

#fluxo-contant .conteudo-item.em-atraso .mask-red {
    display: block;
    background: linear-gradient(45deg, #e407070f, transparent);
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 0;
}

.popup-delta {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    z-index: 99;
    display: none;
    overflow: auto;
}

.popup-delta .mask {
    position: fixed;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    background: rgb(255 255 255 / 94%);
    transition: 0.3s;
    /* backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px); */
}

.popup-delta .contant {
    position: absolute;
    z-index: 999999;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    /* display: flex; */
    /* align-content: center; */
    /* align-items: center; */
    padding: 0px 9px 7px 25px;
    overflow: auto;
}

.popup-delta .contant .boxpop {
    max-width: 1340px;
    /* max-height: 650px; */
    width: 100%;
    height: auto;
    margin: auto;
    display: block;
    z-index: 2;
    position: relative;
    /* overflow: hidden; */
    padding-top: 62px;
}

.popup-delta .btn-close {
    border-radius: 9px;
    padding: 4px;
    fill: #666;
    transition: 0.2s;
    cursor: pointer;
}

.popup-delta .btn-close svg {
    width: 21px;
    height: 21px;
    margin: auto;
    padding: 0px;
}

.popup-delta .item-post {
    /* background: #ffffffe3; */
    margin-top: 10px;
}

.atividades-lst .mais-infos {
    float: left;
    font-size: 12px;
    padding: 2px 0px 0px 0px;
    width: 100%;
    /* white-space: pre-wrap; */
}

.atividades-lst .mais-infos .codigo {
    line-height: 12px;
    float: left;
    padding: 3px 0px 0px 0px;
    opacity: 0.7;
}

.atividades-lst .mais-infos .perfis {
    text-decoration: none;
    font-size: 12px;
    line-height: 12px;
    float: left;
    border: 1px solid #000;
    padding: 2px 6px;
    border-radius: 100px;
    margin-left: 7px;
    cursor: pointer;
    max-width: 150px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.atividades-lst .mais-infos .tipo {
    line-height: 12px;
    float: left;
    padding: 3px 0px 0px 5px;
    opacity: 0.7;
}

.contant-dashboard-home .container-atividades .atividades-lst .item .acao-coment-btns {
    display: none;
}

.contant-dashboard-home .container-atividades .atividades-lst .item .acao-coment .text {
    font-size: 12px;
}

.contant-dashboard-home .container-atividades .atividades-lst .item .acao-coment {
    display: table;
    width: auto;
}

.swal2-html-container {
    white-space: pre-wrap;
}

.swal-confirm-btn {
    background-color: #007bff !important;
    /* Cor azul */
    color: white !important;
}

.swal-deny-btn {
    background-color: #0000000f !important;
    /* Cor roxa */
    color: #000000 !important;
}

.swal-cancel-btn {
    background-color: #6c757d !important;
    /* Cor cinza (opcional, ou escolha outra) */
    color: white !important;
}

.item-post .expand {
    position: absolute;
    bottom: 6px;
    right: 7px;
    z-index: 9;
    cursor: pointer;
    background: #353535b0;
    padding: 6px;
    border-radius: 8px;
    opacity: 0;
    transition: 0.2s;
}

.item-post .expand svg {
    width: 13px;
    fill: #fff;
}

.fc-view .fc-col-header,
.fc-view tbody,
.fc-view a {
    color: #000;
}

.fc-toolbar-title {
    text-transform: capitalize;
    font-size: 17px !important;
}

.fc-view th,
.fc-view tr,
.fc-view td,
.fc-theme-standard .fc-scrollgrid {
    border-radius: 8px 8px 0px 0px;
    padding: 3px 3px;
}

.tooltip-calendar {
    background-color: rgba(0, 0, 0, 0.75);
    color: white;
    padding: 10px;
    border-radius: 5px;
    font-size: 14px;
    z-index: 9999;
    max-width: 200px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}

#btn-hbr {
    display: none;
}

.box-view-perfil-open {
    color: #000000;
    font-weight: 500;
    font-size: 19px;
    transition: 0.2s;
    display: block;
    padding: 0px 13px 0px 18px;
    height: 56px;
    border-bottom: 1px solid var(--color-border);
    position: fixed;
    top: 0px;
    left: 0px;
    width: calc(100% - 300px);
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
    z-index: 92;
    background: #ffffffd6;
    display: flex;
    align-items: center;
}

.box-view-perfil-open .perfil-btn {
    font-size: 17px;
    font-weight: 500;
    color: #000000;
    float: left;
    padding: 0px 0px 0px 0px;
    margin-left: 15px;
    display: flex;
    align-items: center;
}

.box-view-perfil-open .perfil-btn:hover {
    background: #ffffff0d;
}

.box-view-perfil-open .perfil-btn .img {
    float: left;
    width: 29px;
    height: 29px;
    background: #00000082;
    border-radius: 9px;
    background-size: cover;
    border: 1px solid #7b7b7b24;
    background-clip: padding-box;
}

.box-view-perfil-open .perfil-btn .txt {
    float: left;
    line-height: 25px;
    padding-left: 7px;
    padding-right: 12px;
    font-size: 15px;
    font-weight: 600;
}

.flatpickr-mobile {
    background: none;
    border: 0px;
    color: #fff;
    font-weight: 700;
    padding: 5px 0px 4px 10px;
}

.header-filtros {
    float: right;
}

.header-filtros .filtro-count {
    float: left;
    background: #0064e0;
    color: #fff;
    line-height: 19px;
    font-size: 9px;
    padding: 0px;
    width: 18px;
    height: 18px;
    text-align: center;
    border-radius: 16px;
    position: absolute;
    left: 5px;
    top: 4.5px;
}

.header-filtros .btn-filtro {
    float: initial;
    color: #050505;
    fill: #000000;
    /* background: #0000000d; */
    padding: 0px 10px;
    border-radius: 100px;
    transition: 0.3s;
    display: flex;
}

.header-filtros .btn-filtro:hover {
    background: #00000012;
}

.header-filtros .btn-filtro svg {
    float: left;
    width: 10px;
    margin-top: 2px;
}

.header-filtros .btn-filtro .txt {
    float: left;
    padding: 4px 3px 4px 7px;
    font-size: 13px;
}

/* O kit dos FILTROS (barra rapida, popover e painel completo) foi reescrito e
   mora no fim deste arquivo, no bloco "FILTROS - kit .bfr-* / .fdd-*". As regras
   que estavam aqui desenhavam um painel `position: absolute` de coluna unica que
   nao existe mais. */


.campo-style-02 .btn-copiar {
    font-size: 10px;
    line-height: 12px;
    padding: 3px 4px;
    border-radius: 5px;
    cursor: pointer;
    opacity: 0.5;
}

.campo-style-02 svg {
    width: 14px;
    fill: #000000;
}

.campo-style-02 .btn-copiar svg {
    width: 11px;
    padding: 1px 0px 0px 0px;
}

.campo-style-02 .btns-campo {
    position: absolute;
    top: 4px;
    right: 6px;
}

.campo-style-02 .btns-campo .btn {
    float: right;
    opacity: 0.8;
    transition: 0.3s;
    color: #000;
    cursor: pointer;
    font-weight: 500;
}

.btn-add-logo {
    padding: 5px 14px;
    border-radius: 9px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    margin-top: 0px;
    border: 1px solid var(--color-border);
}

.lst-perfis-logo {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin-top: 0px !important;
}

.lst-perfis-logo .item-logo {
    background: var(--color-bg-01);
    margin-top: 0;
    border-radius: 14px;
    overflow: hidden;
    padding: 0px;
    position: relative;
    border: 1px solid var(--color-border);
    box-shadow: none;
    display: flex;
    transition: border-color 0.15s ease;
}

.lst-perfis-logo .item-logo:hover {
    border-color: var(--ap-faint);
}

.lst-perfis-logo .item-logo .img {
    margin: auto;
    display: block;
    width: fit-content;
}

.lst-perfis-logo .item-logo .img img {
    max-width: 200px;
    padding: 25px;
}

.lst-perfis-logo .item-logo .btn-delete {
    width: 12px;
    float: right;
    fill: var(--ap-muted);
    position: absolute;
    top: 14px;
    right: 14px;
    opacity: 0.6;
    cursor: pointer;
    transition: opacity 0.15s ease, fill 0.15s ease;
}

.lst-perfis-logo .item-logo .btn-delete:hover {
    opacity: 1;
    fill: var(--color-text-01);
}

.lst-perfis-logo .item-logo .rodape {
    width: 100%;
    clear: both;
    padding: 3px 11px;
    font-size: 12px;
    color: var(--ap-muted);
}

.lst-perfis-logo .item-logo .rodape .data {
    text-align: right;
    opacity: 0.6;
    font-size: 9px;
    letter-spacing: 1px;
    font-weight: 300;
    position: absolute;
    bottom: 6px;
    right: 13px;
}

/* Os tres grupos de ferramenta na mesma regua. O separador vertical entre
   eles substitui a moldura que antes cada bloco carregava sozinho. */
#edit-image .opcoes-center {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    flex-wrap: wrap;
}

#edit-image .cp-grupo+.cp-grupo {
    padding-left: 16px;
    border-left: 1px solid var(--color-border);
}

#edit-image .cp-grupo-girar {
    flex: 1 1 190px;
    min-width: 160px;
}

#edit-image .cp-grupo-girar .cp-linha {
    gap: 8px;
}

#edit-image #controle-rotacao {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

#edit-image #input-rotate {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    height: 4px;
    margin: 0;
    accent-color: var(--color-btn-bg-01);
    cursor: pointer;
}

#edit-image #rotate-value {
    flex: 0 0 auto;
    width: 36px;
    text-align: right;
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    opacity: .55;
}

/* ===========================================================================
   PAINEL DE MARCA D'AGUA (.drpdown-editor) - trilho do cropper
   ---------------------------------------------------------------------------
   Era um popup solto no canto direito da JANELA (right:15px, fixed), longe do
   editor. Agora o JS (posicionarPainelLogo) encosta ele na borda direita do
   proprio popup, e o layout virou header fixo / corpo rolante / rodape fixo -
   as acoes nunca somem no scroll.
   Continua position:fixed de proposito: o arraste pelo titulo trabalha em
   coordenadas de viewport, e absolute quebraria essa conta.
   =========================================================================== */
/* ---------------------------------------------------------------------------
   CASCA COMPARTILHADA DOS PAINEIS (.cp-painel)
   Dois paineis usam a mesma casca: "Luz e cor" e "Marca d'agua". Um dialeto so.
   --------------------------------------------------------------------------- */
#edit-image .mais-opcoes,
#edit-image .cp-ajustes-wrap {
    position: relative;
}

#edit-image .cp-painel {
    display: none;
    flex-direction: column;
    background: var(--cp-surface);
    color: var(--color-text-01);
    position: fixed;
    width: 268px;
    right: 15px;
    top: 50%;
    transform: translateY(-50%);
    max-height: 86vh;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    z-index: 9;
    box-shadow: 0 20px 50px -18px rgba(0, 0, 0, .45);
    overflow: hidden;
}

/* O .show() do jQuery devolve display:block; o painel precisa de flex. */
#edit-image.cp-logo-painel .drpdown-editor,
#edit-image.cp-ajustes-painel .cp-painel-ajustes {
    display: flex;
}

/* ---------- Cabecalho (pega de arraste) ---------- */
#edit-image .cp-painel-hdr {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 12px 10px 11px 14px;
    border-bottom: 1px solid var(--color-border);
}

#edit-image .cp-painel-titulo {
    flex: 1 1 auto;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -.01em;
    padding-left: 12px;
    margin: 0;
    cursor: move;
    user-select: none;
    position: relative;
    touch-action: none;
}

/* Pega de arraste: 6 pontinhos a esquerda do titulo. */
#edit-image .cp-painel-titulo::before {
    content: "";
    position: absolute;
    left: 1px;
    top: 50%;
    margin-top: -5px;
    width: 2px;
    height: 2px;
    border-radius: 50%;
    background: currentColor;
    opacity: .3;
    box-shadow:
        0 4px 0 currentColor,
        0 8px 0 currentColor,
        3px 0 0 currentColor,
        3px 4px 0 currentColor,
        3px 8px 0 currentColor;
}

#edit-image .cp-painel-fechar {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    cursor: pointer;
    opacity: .5;
    transition: .18s;
}

#edit-image .cp-painel-fechar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

#edit-image .cp-painel-fechar .material-icons-round {
    font-size: 17px;
}

/* ---------- Corpo rolante e rodape ---------- */
#edit-image .cp-painel-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 12px 14px 14px;
}

#edit-image .cp-painel-sub {
    font-size: 11.5px;
    opacity: .5;
    margin: 0 0 10px;
    line-height: 1.4;
}

#edit-image .cp-painel-ftr {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 11px 14px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

#edit-image .cp-btn-painel {
    flex: 1 1 0;
    text-align: center;
    height: 33px;
    line-height: 31px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    user-select: none;
    opacity: .65;
    transition: .18s;
}

#edit-image .cp-btn-painel:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* ---------------------------------------------------------------------------
   PAINEL "LUZ E COR" - presets visuais + sliders finos
   As miniaturas mostram a PROPRIA foto da pessoa em cada estilo: e o que faz
   alguem sem repertorio de edicao entender a diferenca sem testar um por um.
   --------------------------------------------------------------------------- */
#edit-image .cp-presets {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 7px;
    margin-bottom: 14px;
}

#edit-image .cp-preset {
    cursor: pointer;
    user-select: none;
    text-align: center;
}

#edit-image .cp-preset-img {
    height: 52px;
    border-radius: 9px;
    overflow: hidden;
    border: 1.5px solid var(--color-border);
    background: var(--color-bg-01);
    transition: border-color .15s, transform .15s;
}

#edit-image .cp-preset-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

#edit-image .cp-preset span {
    display: block;
    font-size: 10.5px;
    font-weight: 550;
    margin-top: 4px;
    opacity: .6;
}

#edit-image .cp-preset:hover .cp-preset-img {
    transform: translateY(-1px);
    border-color: var(--color-text-01);
}

#edit-image .cp-preset.atv .cp-preset-img {
    border-color: var(--color-text-01);
    box-shadow: 0 0 0 2px var(--color-hover-01);
}

#edit-image .cp-preset.atv span {
    opacity: 1;
}

#edit-image .cp-presets-vazio {
    grid-column: 1 / -1;
    font-size: 11.5px;
    opacity: .5;
    text-align: center;
    padding: 14px 6px;
}

#edit-image .cp-painel-ajustes .lg-slider {
    margin: 10px 0;
}

#edit-image .cp-painel-ajustes .lg-slider label {
    display: flex;
    justify-content: space-between;
    font-size: 11.5px;
    margin-bottom: 5px;
    opacity: .7;
}

#edit-image .cp-painel-ajustes .lg-slider label span {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    opacity: .85;
}

#edit-image .cp-painel-ajustes input[type="range"] {
    width: 100%;
    height: 4px;
    margin: 0;
    accent-color: var(--color-btn-bg-01);
    cursor: pointer;
}

/* ---------------------------------------------------------------------------
   PAINEL "MARCA D'AGUA" - o que e proprio dele
   --------------------------------------------------------------------------- */
/* Enquanto nao ha logo escolhido os ajustes nao tem o que ajustar: ficam
   inertes em vez de darem a impressao de estarem quebrados. */
#edit-image:not(.cp-logo-on) .cp-logo-ajustes {
    opacity: .35;
    pointer-events: none;
}

/* Atalho "usar a de sempre": repete logo + ajustes da ultima vez em 1 clique. */
#edit-image .cp-logo-atalho {
    margin-bottom: 11px;
}

#edit-image .btn-logo-de-sempre {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 10px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    cursor: pointer;
    user-select: none;
    transition: background .18s ease, border-color .18s ease;
}

#edit-image .btn-logo-de-sempre:hover {
    background: var(--color-hover-01);
    border-color: var(--color-text-01);
}

#edit-image .btn-logo-de-sempre img {
    width: 30px;
    height: 30px;
    object-fit: contain;
    flex: 0 0 auto;
}

#edit-image .btn-logo-de-sempre span {
    min-width: 0;
    line-height: 1.25;
}

#edit-image .btn-logo-de-sempre b {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
}

#edit-image .btn-logo-de-sempre em {
    display: block;
    font-style: normal;
    font-size: 10.5px;
    opacity: .5;
}

/* ---------- Lista de logos da marca ---------- */
.lstPerfilLogos-select {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 6px;
    max-height: 140px;
    overflow: auto;
    margin: 0 0 14px;
}

.lstPerfilLogos-select .logo-item {
    border: 1.5px solid var(--color-border);
    border-radius: 10px;
    padding: 4px;
    cursor: pointer;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    background:
        linear-gradient(45deg, var(--color-bg-01) 25%, transparent 25%, transparent 75%, var(--color-bg-01) 75%) 0 0/10px 10px,
        linear-gradient(45deg, var(--color-bg-01) 25%, transparent 25%, transparent 75%, var(--color-bg-01) 75%) 5px 5px/10px 10px;
    transition: border-color .15s, transform .15s;
}

.lstPerfilLogos-select .logo-item:hover {
    transform: translateY(-1px);
    border-color: var(--color-text-01);
}

.lstPerfilLogos-select .logo-item img {
    max-width: 100%;
    max-height: 40px;
    object-fit: contain;
}

.lstPerfilLogos-select .logo-item.atv {
    border-color: var(--color-text-01);
    box-shadow: 0 0 0 2px var(--color-hover-01);
}

/* Selo de escolhido: confirma a acao sem depender so da borda. */
.lstPerfilLogos-select .logo-item.atv::after {
    content: "\2713";
    position: absolute;
    top: -6px;
    right: -6px;
    width: 16px;
    height: 16px;
    line-height: 16px;
    text-align: center;
    font-size: 10px;
    font-weight: 700;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* Logo que o navegador nao consegue ler para gravar (falta CORS no arquivo). */
.lstPerfilLogos-select .logo-item.logo-item-erro {
    border-color: #d4380d;
    opacity: .5;
}

.lstPerfilLogos-select .logo-vazio {
    grid-column: 1 / -1;
    font-size: 11.5px;
    opacity: .5;
    text-align: center;
    padding: 16px 6px;
    line-height: 1.45;
}

/* ---------- Cor do logo ---------- */
.bx-addlogo-configs .lg-opts {
    padding: 0;
}

.bx-addlogo-configs .lg-opts.estilo {
    display: flex;
    gap: 5px;
    width: 100%;
    margin-bottom: 4px;
}

.bx-addlogo-configs .lg-opts .opt {
    flex: 1 1 0;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border: 1px solid var(--color-border);
    padding: 7px 4px;
    border-radius: 9px;
    font-size: 11.5px;
    font-weight: 550;
    cursor: pointer;
    user-select: none;
    transition: background .18s ease, border-color .18s ease;
}

/* Amostra da cor: o nome sozinho nao mostra o resultado. */
.bx-addlogo-configs .lg-opts .opt i {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    flex: 0 0 auto;
}

.bx-addlogo-configs .lg-opts .opt[data-id="normal"] i {
    background: linear-gradient(135deg, #f0a, #0af 60%, #fd0);
}

.bx-addlogo-configs .lg-opts .opt[data-id="branco"] i {
    background: #fff;
}

.bx-addlogo-configs .lg-opts .opt[data-id="preto"] i {
    background: #000;
}

.bx-addlogo-configs .lg-opts .opt:hover {
    background: var(--color-hover-01);
}

.bx-addlogo-configs .lg-opts .opt.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* ---------- Sliders ---------- */
.bx-addlogo-configs .lg-slider {
    margin: 10px 0;
}

.bx-addlogo-configs .lg-slider label {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    font-size: 11.5px;
    margin-bottom: 5px;
    opacity: .7;
}

.bx-addlogo-configs .lg-slider label span {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    opacity: .85;
    white-space: nowrap;
}

.bx-addlogo-configs .lg-slider input[type="range"] {
    width: 100%;
    height: 4px;
    margin: 0;
    accent-color: var(--color-btn-bg-01);
    cursor: pointer;
}

.bx-addlogo-configs .cp-logo-ajustes>.logo-pos-label:first-child {
    margin-top: 4px;
}

.bx-addlogo-configs .logo-pos-label {
    display: block;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    margin: 14px 0 6px;
    opacity: .45;
}

/* ---------- Grade de 9 posicoes ----------
   Largura CHEIA e proporcao de imagem (3 x 2 celulas ~ paisagem): antes era um
   quadradinho de 96px encostado na esquerda, que parecia sobra de layout em vez
   do controle mais usado do painel. Agora ela le como uma miniatura da imagem. */
.bx-addlogo-configs .logo-pos-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 5px;
    width: 100%;
    padding: 5px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg-01);
}

.bx-addlogo-configs .logo-pos-grid span {
    height: 34px;
    border: 1px solid transparent;
    border-radius: 8px;
    cursor: pointer;
    position: relative;
    transition: .15s;
}

/* Indicador: o ponto fica no canto/borda/centro que a celula representa. */
.bx-addlogo-configs .logo-pos-grid span::after {
    content: "";
    position: absolute;
    width: 6px;
    height: 6px;
    border-radius: 2px;
    background: currentColor;
    opacity: .35;
    transition: .15s;
}

/* eixo vertical */
.bx-addlogo-configs .logo-pos-grid span[data-pos^="cima-"]::after {
    top: 6px;
}

.bx-addlogo-configs .logo-pos-grid span[data-pos^="centro-"]::after {
    top: 50%;
    margin-top: -3px;
}

.bx-addlogo-configs .logo-pos-grid span[data-pos^="baixo-"]::after {
    bottom: 6px;
}

/* eixo horizontal */
.bx-addlogo-configs .logo-pos-grid span[data-pos$="-esquerda"]::after {
    left: 6px;
}

.bx-addlogo-configs .logo-pos-grid span[data-pos$="-centro"]::after {
    left: 50%;
    margin-left: -3px;
}

.bx-addlogo-configs .logo-pos-grid span[data-pos$="-direita"]::after {
    right: 6px;
}

.bx-addlogo-configs .logo-pos-grid span:hover {
    background: var(--color-hover-01);
}

.bx-addlogo-configs .logo-pos-grid span:hover::after {
    opacity: 1;
}

/* Celula acesa = onde o logo esta AGORA. Arrastar apaga (posicao virou livre). */
.bx-addlogo-configs .logo-pos-grid span.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

.bx-addlogo-configs .logo-pos-grid span.atv::after {
    background: var(--color-btn-text-01);
    opacity: 1;
}

.bx-addlogo-configs .logo-dica {
    font-size: 10.5px;
    line-height: 1.4;
    opacity: .42;
    margin: 7px 0 2px;
}

/* ---------- Rodape fixo do painel ---------- */
/* Rodape e botoes do painel de logo vem da casca (.cp-painel-ftr/.cp-btn-painel).
   So sobra o que e proprio deste painel: sem logo escolhido nao ha o que remover. */
#edit-image:not(.cp-logo-on) .btn-remover-logo {
    opacity: .3;
    pointer-events: none;
}

/* Botao "auto": nao e uma cor, e uma acao (le o fundo e escolhe). Por isso e
   quadrado e sem rotulo, separado das tres opcoes de cor. */
.bx-addlogo-configs .lg-opts .opt.opt-auto {
    flex: 0 0 34px;
    padding: 0;
    height: 32px;
}

.bx-addlogo-configs .lg-opts .opt.opt-auto .material-icons-round {
    font-size: 16px;
    opacity: .7;
}

.bx-addlogo-configs .lg-opts .opt.opt-auto:hover .material-icons-round {
    opacity: 1;
}

/* Legibilidade (sem sombra / sombra / contorno): a amostra e o proprio "Aa"
   com o efeito, para a escolha nao depender de imaginar o resultado. */
.bx-addlogo-configs .lg-opts.sombra {
    display: flex;
    gap: 5px;
    width: 100%;
    margin-bottom: 4px;
}

.bx-addlogo-configs .lg-opts.sombra .opt {
    font-size: 11px;
}

/* ---------- Overlay arrastavel do logo sobre a area de recorte ---------- */
#logoOverlay {
    position: absolute;
    z-index: 10;
    cursor: move;
    box-sizing: border-box;
    outline: 0;
    touch-action: none;
    user-select: none;
}

/* A moldura so aparece quando a pessoa esta MEXENDO no logo (painel aberto) ou
   no hover. Fora disso o logo tem que parecer parte da imagem - que e o que
   ele vai ser depois de salvo. */
#edit-image.cp-logo-painel #logoOverlay,
#logoOverlay:hover {
    outline: 1px dashed #ffffffcc;
    box-shadow: 0 0 0 1px #00000055;
}

#logoOverlay .logo-resize {
    opacity: 0;
}

#edit-image.cp-logo-painel #logoOverlay .logo-resize,
#logoOverlay:hover .logo-resize {
    opacity: 1;
}

#logoOverlay img {
    width: 100%;
    height: 100%;
    display: block;
    pointer-events: none;
    -webkit-user-drag: none;
}

#logoOverlay .logo-resize {
    position: absolute;
    right: -7px;
    bottom: -7px;
    width: 14px;
    height: 14px;
    background: #fff;
    border: 2px solid #00000059;
    border-radius: 50%;
    cursor: nwse-resize;
    box-shadow: 0 1px 3px #00000066;
    touch-action: none;
    transition: opacity .15s;
}

.cropper-face {
    background-color: #00000000 !important;
}

.upload.atv .btn-criar-arte {
    position: absolute;
    bottom: 11px;
    padding: 2px 8px;
    left: calc(50% - 53px);
    font-size: 13px;
    border-radius: 8px;
    background: #ffffff0f;
    font-weight: 500;
    cursor: pointer;
    opacity: 0.8;
    transition: 0.3s;
    display: none;
}

.upload.atv .btn-criar-arte:hover {
    opacity: 1;
}

.progressUpload {
    display: none;
    position: fixed;
    top: 0px;
    left: 0px;
    background: #000000ab;
    width: 100%;
    height: 100%;
    z-index: 999999999;
    align-items: center;
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.progressUpload .total {
    text-align: center;
    color: #fff;
    margin-bottom: 16px;
}

.progressUpload .progress-estrutura {
    width: 100%;
    background: #eeeeee17;
    border-radius: 24px;
    overflow: hidden;
    max-width: 400px;
    margin: auto;
}

.progressUpload .progress-estrutura #progressBar {
    background: linear-gradient(to top right, #0064e0 0%, #2b89fd 100%);
    color: white;
    text-align: center;
    font-weight: 500;
    padding: 1px 6px;
    width: 0;
    transition: width 0.5s ease;
    border-radius: 0px;
}

.progressUpload h4 {
    text-align: center;
    color: #fff;
    font-size: 25px;
    padding: 0px 0px 0px 0px;
}

.swal2-container {
    z-index: 999999999999 !important;
}

.btn-novo-conteudo {
    color: #000000;
    fill: #000000;
    font-size: 14px;
    font-weight: 500;
    padding: 7px 0px 7px 10px;
    margin: 0px;
    cursor: pointer;
    transition: 0.3s;
    border-radius: 0px 0px 9px 9px;
}

.btn-novo-conteudo:hover * {
    opacity: 1;
}

.btn-novo-conteudo * {
    opacity: 0.6;
    transition: 0.3s;
}

.btn-novo-conteudo svg {
    float: left;
    width: 19px;
}

.btn-novo-conteudo div {
    float: left;
    margin: -1px 0px 0px 0px;
}

.tag {
    display: table;
    background: #e23636;
    color: #fff;
    line-height: 10px;
    padding: 5px 4px;
    border-radius: 5px;
    font-size: 11px;
    float: left;
    margin: 0px 0px 0px 7px;
}

.tag.tag-atencao {
    background: #750def;
}

#miniaturas-acesso-rapido .tag {
    font-size: 10px;
    padding: 2px 3px;
    margin-left: 0px;
    margin: 1px 0px 0px 0px;
}

.no-select {
    user-select: none;
    -moz-user-select: none;
    -webkit-user-select: none;
    -ms-user-select: none;
}

#miniaturas-acesso-rapido.mobile-atv {
    z-index: 999;
    background: #0e0e0efa;
    width: 100%;
    top: 46px;
    padding: 10px 20%;
    display: block;
    height: calc(100% - 46px);
}

#miniaturas-acesso-rapido .btn-close {
    display: none;
    position: fixed;
    top: 54px;
    right: 8px;
    width: 37px;
    height: 37px;
    padding: 9px;
}

.perfil-datas {
    margin-bottom: 12px;
    clear: both;
    padding-bottom: 5px;
}

.perfil-datas .btn-add {
    margin: auto;
    display: table;
    background: #0064e0;
    color: #fff;
    font-size: 16px;
    border-radius: 100px;
    margin-top: 9px;
    cursor: pointer;
    transition: 0.3s;
}

.perfil-datas .btn-add:hover {
    background: #1a80ff;
}

.perfil-datas .section-bl {
    margin: auto;
    display: table;
}

.perfil-datas .section-bl .item {
    float: left;
    padding: 6px 10px;
    border: 1px solid var(--color-border);
    margin-right: 4px;
    border-radius: 5px;
    font-size: 27px;
    cursor: pointer;
    transition: 0.3s;
    font-weight: 600;
    color: #000000;
}

.perfil-datas .section-bl .item.atv {
    border-color: #0064e0;
    color: #0064e0;
}

.table-datas-selecionadas .item {
    display: block;
    clear: both;
    padding: 6px 0px;
    text-align: center;
    border-top: 1px solid #0000000d;
}

.table-datas-selecionadas .item .btn-remover,
.table-datas-selecionadas .item .btn-add {
    float: left;
    font-size: 13px;
    padding: 6px 2px;
    line-height: 12px;
    cursor: pointer;
    width: 65px;
}

.table-datas-selecionadas .item .btn-add {
    color: #0064e0;
    border: 1px solid #0064e0;
    border-radius: 4px;
    padding: 3px 4px 2px 4px;
    margin: 2px 0px 0px 0px;
    font-size: 11px;
    font-weight: 500;
}

.table-datas-selecionadas .item .btn-remover {
    color: #e21e1e;
    border: 1px solid #e21e1e;
    border-radius: 4px;
    padding: 3px 4px 2px 4px;
    margin: 2px 0px 0px 0px;
    font-size: 11px;
    font-weight: 500;
}

.table-datas-selecionadas .item .ttl {
    float: left;
    width: calc(100% - 142px);
    padding: 4px 9px 0px 11px;
    font-weight: 500;
    text-align: left;
    font-size: 13px;
    line-height: 14px;
}

.table-datas-selecionadas .item .data {
    float: left;
    font-size: 13px;
    padding: 2px 0px 0px 0px;
}

/* ---- Datas personalizadas ---- */
.perfil-datas .acoes-datas {
    margin: 9px auto 0;
    display: table;
}

.perfil-datas .acoes-datas .btn-add {
    float: left;
    padding: 7px 16px;
    font-size: 14px;
    border-radius: 100px;
    cursor: pointer;
    transition: 0.3s;
    line-height: 1;
    background: #0064e0;
    color: #fff;
}

.perfil-datas .acoes-datas .btn-add:hover {
    background: #1a80ff;
}

.table-datas-selecionadas .item .acoes-dp {
    float: left;
    width: 65px;
    display: flex;
    gap: 6px;
}

.table-datas-selecionadas .item .acoes-dp>div {
    width: 28px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    cursor: pointer;
    transition: 0.2s;
}

.table-datas-selecionadas .item .btn-editar-dp svg {
    fill: #0064e0;
}

.table-datas-selecionadas .item .btn-excluir-dp svg {
    fill: #e21e1e;
}

.table-datas-selecionadas .item .btn-editar-dp:hover {
    border-color: #0064e0;
    background: #0064e00d;
}

.table-datas-selecionadas .item .btn-excluir-dp:hover {
    border-color: #e21e1e;
    background: #e21e1e0d;
}

.table-datas-selecionadas .item .tag-dp {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    color: #0064e0;
    background: #0064e014;
    border-radius: 4px;
    padding: 1px 6px;
    margin-left: 4px;
    vertical-align: middle;
}

.contant-data-personalizada {
    padding: 16px;
    width: 320px;
    max-width: 100%;
}

.contant-data-personalizada h4 {
    font-size: 18px;
    margin-bottom: 6px;
}

.contant-data-personalizada label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text);
    opacity: 0.7;
    margin: 12px 0 5px;
}

.contant-data-personalizada input {
    width: 100%;
    height: 42px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    padding: 0 12px;
    font-size: 14px;
    background: var(--color-bg);
    color: var(--color-text);
}

.contant-data-personalizada input:focus {
    border-color: #0064e0;
    outline: none;
}

.contant-data-personalizada .footer-dp {
    display: flex;
    gap: 8px;
    margin-top: 18px;
}

.contant-data-personalizada .footer-dp .btn-salvar-dp {
    flex: 1;
    background: #0064e0;
    color: #fff;
    text-align: center;
    padding: 11px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
    transition: 0.3s;
}

.contant-data-personalizada .footer-dp .btn-salvar-dp:hover {
    background: #1a80ff;
}

.contant-data-personalizada .footer-dp .btn-cancelar-dp {
    padding: 11px 16px;
    border-radius: 8px;
    cursor: pointer;
    text-align: center;
    color: var(--color-text);
    opacity: 0.7;
}

.contant-add-dates {
    padding: 12px;
}

.contant-add-dates h4 {
    font-size: 19px;
}

.plyr--video {
    min-height: 448px;
}

.contant-add-dates .pesquisar {
    padding: 3px 0px 9px 0px;
}

.contant-add-dates .pesquisar input {
    width: 100%;
    border-radius: 100px;
    border: 1px solid #00000000;
    background: #0000000d;
    height: 40px;
    padding: 0px 13px;
    text-align: center;
    color: #0064e0;
    font-weight: 600;
}

/* ---- Popup de datas: abas Sistema / Personalizadas ---- */
.dp-manager .dp-tabs {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--color-border);
    margin: 4px 0 10px;
}

.dp-manager .dp-tab {
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text);
    opacity: 0.55;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: 0.2s;
}

.dp-manager .dp-tab:hover {
    opacity: 0.85;
}

.dp-manager .dp-tab.atv {
    opacity: 1;
    color: #0064e0;
    border-bottom-color: #0064e0;
}

.dp-loading,
.dp-vazio {
    text-align: center;
    font-size: 13px;
    color: #00000066;
    padding: 18px 6px;
}

.dp-manager .btn-nova-dp {
    display: table;
    margin: 0 0 10px auto;
    background: #0064e0;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 100px;
    cursor: pointer;
    transition: 0.3s;
}

.dp-manager .btn-nova-dp:hover {
    background: #1a80ff;
}

.dp-personalizadas-lst .dp-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 4px;
    border-top: 1px solid #0000000d;
}

.dp-personalizadas-lst .dp-item .data {
    font-size: 13px;
    font-weight: 600;
    width: 78px;
    flex: 0 0 auto;
}

.dp-personalizadas-lst .dp-item .ttl {
    font-size: 13px;
    flex: 1 1 auto;
    color: #000000ba;
}

.dp-personalizadas-lst .dp-item .acoes-dp {
    display: flex;
    gap: 6px;
    flex: 0 0 auto;
}

.dp-personalizadas-lst .dp-item .acoes-dp>div {
    width: 28px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    cursor: pointer;
    transition: 0.2s;
}

.dp-personalizadas-lst .btn-editar-dp svg {
    fill: #0064e0;
    width: 14px;
}

.dp-personalizadas-lst .btn-excluir-dp svg {
    fill: #e21e1e;
    width: 14px;
}

.dp-personalizadas-lst .btn-editar-dp:hover {
    border-color: #0064e0;
    background: #0064e00d;
}

.dp-personalizadas-lst .btn-excluir-dp:hover {
    border-color: #e21e1e;
    background: #e21e1e0d;
}

/* listas rolaveis dentro do popup (abas/busca ficam fixas) */
.dp-sistema-lst,
.dp-personalizadas-lst {
    max-height: 52vh;
    overflow-y: auto;
}

/* Datas do sistema agrupadas por mes (accordion) */
.dp-sistema-lst .dp-mes-grupo {
    border-top: 1px solid var(--color-border);
}

.dp-sistema-lst .dp-mes-grupo:first-child {
    border-top: none;
}

.dp-sistema-lst .dp-mes-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 6px;
    cursor: pointer;
    font-weight: 600;
    font-size: 13px;
    position: sticky;
    top: 0;
    background: var(--color-bg, #fff);
    z-index: 1;
    user-select: none;
}

.dp-sistema-lst .dp-mes-hdr:hover {
    color: #0064e0;
}

.dp-sistema-lst .dp-mes-hdr .nome {
    flex: 1 1 auto;
}

.dp-sistema-lst .dp-mes-hdr .cnt {
    flex: 0 0 auto;
    font-size: 11px;
    color: #00000080;
    background: #0000000d;
    border-radius: 100px;
    padding: 1px 9px;
    font-weight: 600;
}

.dp-sistema-lst .dp-mes-hdr .chev {
    flex: 0 0 auto;
    opacity: 0.45;
    transition: transform 0.2s;
}

.dp-sistema-lst .dp-mes-grupo.aberto .dp-mes-hdr .chev {
    transform: rotate(180deg);
}

.dp-sistema-lst .dp-mes-itens {
    display: none;
    padding-bottom: 4px;
}

.dp-sistema-lst .dp-mes-grupo.aberto .dp-mes-itens {
    display: block;
}

.contant-boxpopup01-conteudo {
    padding: 11px;
    width: 350px;
}

.contant-boxpopup01-conteudo h3 {
    width: 261px;
    font-size: 25px;
    font-weight: 600;
}

.lst-plataformas {
    padding: 4px 0px 7px 0px;
}

.lst-plataformas::after {
    content: "";
    clear: both;
    display: block;
}

.lst-plataformas .plataforma-item {
    float: left;
    padding: 0px 8px;
    border: 1px solid #0000001a;
    color: #0000004d;
    border-radius: 100px;
    margin-right: 3px;
    font-weight: 500;
    font-size: 13px;
    cursor: pointer;
}

.lst-plataformas .plataforma-item.atv {
    border-color: #007bff;
    color: #007bff;
    background: #007bff12;
}

.edicao-page-direct {
    padding: 0px;
}

.edicao-page-direct .topo {
    padding: 14px 9px 9px 10px;
    border-bottom: 1px solid #ffffff1a;
}

.edicao-page-direct .html {
    position: absolute;
    width: 100%;
    height: calc(100% - 86px);
    overflow: auto;
    padding: 8px 8px 0px 8px;
}

.edicao-page-direct .item {
    border: 1px solid #0000001a;
    padding: 9px 9px;
    margin-bottom: 5px;
    border-radius: 7px;
    cursor: pointer;
    transition: 0.3s;
    position: relative;
}

.edicao-page-direct .item:hover {
    background-color: #007bff1a;
    border-color: #007bff;
}

.edicao-page-direct .item:hover svg {
    fill: #007bff;
}

.edicao-page-direct .item svg {
    position: absolute;
    right: 5px;
    top: calc(50% - 10px);
    fill: #00000040;
    height: 20px;
}

.edicao-page-direct .name {
    font-weight: 600;
    font-size: 16px;
}

.edicao-page-direct .updatetime {
    font-size: 12px;
    font-weight: 400;
    color: #00000070;
}

.edicao-page-direct .lastmessage {
    font-size: 14px;
    font-weight: 500;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    padding-right: 30px;
}

.edicao-page-direct .lastmessage .you {
    color: #007bff;
}

.edicao-page-direct .lastmessage .outro {
    color: #a61212;
}

/* Estilo para o bloco de loading */
.loading-bloco {
    width: 100%;
    height: 20px;
    margin-bottom: 4px;
    background-color: #f2f2f2;
    position: relative;
    overflow: hidden;
    border-radius: 4px;
}

.loading-bloco::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: #e7e7e7;
    animation: loading 2s ease-in-out infinite;
}

@keyframes loading {
    0% {
        left: -100%;
    }

    50% {
        left: 100%;
    }

    100% {
        left: -100%;
    }
}

.edicao-page-direct .tabs {
    padding: 9px 0px 0px 0px;
}

.edicao-page-direct .tabs .tab {
    float: left;
    margin-right: 3px;
    border-radius: 5px;
    font-size: 14px;
    padding: 3px 9px;
    font-weight: 500;
    cursor: pointer;
    background: #007bff1a;
    color: #007bff;
    transition: 0.3s;
}

.edicao-page-direct .tabs .tab:hover {
    background-color: #007bff38;
}

.edicao-page-direct .tabs .tab.atv {
    background: #007bff;
    color: #fff;
    border-color: #007bff;
}

.contant-metrica-conteudo .tabs {
    padding: 9px 0px 13px 0px;
}

.contant-metrica-conteudo .tabs .tab {
    float: left;
    margin-right: 3px;
    border-radius: 5px;
    font-size: 14px;
    padding: 3px 9px;
    font-weight: 500;
    cursor: pointer;
    background: #007bff1a;
    color: #007bff;
    transition: 0.3s;
}

.contant-metrica-conteudo .tabs .tab:hover {
    background-color: #007bff38;
}

.contant-metrica-conteudo .tabs .tab.atv {
    background: #007bff;
    color: #fff;
    border-color: #007bff;
}

.contant-metrica-perfil-conteudo .tabs {
    padding: 9px 0px 13px 0px;
}

.contant-metrica-perfil-conteudo .tabs .tab {
    float: left;
    margin-right: 3px;
    border-radius: 5px;
    font-size: 14px;
    padding: 3px 9px;
    font-weight: 500;
    cursor: pointer;
    background: #007bff1a;
    color: #007bff;
    transition: 0.3s;
}

.contant-metrica-perfil-conteudo .tabs .tab:hover {
    background-color: #007bff38;
}

.contant-metrica-perfil-conteudo .tabs .tab.atv {
    background: #007bff;
    color: #fff;
    border-color: #007bff;
}

.inbox-estrutura-chat {
    padding: 0px;
    position: relative;
}

.inbox-estrutura-chat .topo {
    padding: 10px 16px;
    border-bottom: 1px solid #00000014;
    /* background: #007bff1a; */
}

.inbox-estrutura-chat .topo h1 {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    font-weight: 600;
    width: calc(100% - 40px);
}

.inbox-estrutura-chat .tiponome {
    font-size: 13px;
    color: #00000070;
    line-height: 12px;
    margin-top: 4px;
}

.inbox-estrutura-chat .send-box {
    height: 48px;
    position: absolute;
    left: 10px;
    bottom: 6px;
    width: calc(100% - 20px);
    background: #1063bc24;
    border-radius: 100px;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
}

.inbox-estrutura-chat .send-box .textarea {
    width: calc(100% - 64px);
    height: 48px;
    border: 0px;
    background: none;
    float: right;
    margin-right: 49px;
    padding: 17px 4px;
    font-size: 15px;
    line-height: 15px;
}

.inbox-estrutura-chat .send-box .textarea:focus {
    outline: none;
    /* Remove o outline */
    border: none;
    /* Remove qualquer borda */
    box-shadow: none;
    /* Remove sombras */
}

.inbox-estrutura-chat .send-box .btn-send {
    position: absolute;
    right: 5px;
    bottom: 4px;
    background: #007bff;
    width: 40px;
    height: 40px;
    display: grid;
    align-items: center;
    border-radius: 50%;
    cursor: pointer;
    transition: 0.3s;
}

.inbox-estrutura-chat .send-box .btn-send:hover {
    background-color: #0066d3;
}

.inbox-estrutura-chat .send-box .btn-send svg {
    margin: auto;
    fill: #fff;
    width: 17px;
}

.inbox-estrutura-chat .lst-itens {
    height: calc(100% - 137px);
    max-height: 500px;
    overflow-x: auto;
    display: block;
    padding: 7px 15px;
    padding-bottom: 55px;
    background: #00000000;
}

.inbox-estrutura-chat .lst-itens .item {
    padding: 7px 0px;
}

.inbox-estrutura-chat .lst-itens .item.right {
    text-align: right;
}

.inbox-estrutura-chat .lst-itens .item.right .name {
    color: #007bff;
    width: 102px;
    float: right;
    clear: both;
}

.inbox-estrutura-chat .lst-itens .item .name {
    font-weight: 600;
    font-size: 16px;
}

.inbox-estrutura-chat .lst-itens .item .btn-remover {
    float: left;
    font-size: 10px;
    color: #000;
    font-weight: 400;
    padding: 0px 6px;
    border-radius: 4px;
    margin: 5px 4px 0px 0px;
    opacity: 0.2;
    transition: 0.3s;
    cursor: pointer;
    display: none;
}

.inbox-estrutura-chat .lst-itens .item .btn-remover:hover {
    opacity: 1;
}

.inbox-estrutura-chat .lst-itens .item .updatetime {
    font-size: 12px;
    font-weight: 400;
    color: #00000070;
}

.inbox-estrutura-chat .lst-itens .item .lastmessage {
    font-size: 14px;
    font-weight: 500;
    clear: both;
    word-wrap: break-word;
    /* Antigo, mas amplamente suportado */
    overflow-wrap: break-word;
    /* Moderno */
}

.inbox-estrutura-chat .recarregar {
    position: absolute;
    right: 14px;
    top: 37px;
    padding: 2px 8px;
    border-radius: 15px;
    color: #000;
    background: #0000000a;
    font-size: 10px;
    cursor: pointer;
    box-shadow: 0px 1px 3px #00000029;
}

.lst-btns-destaque-plan {
    padding: 11px 0px 0px 0px;
    display: flex;
    gap: 4px;
}

.lst-btns-destaque-plan .btn {
    padding: 3px 9px;
    font-size: 14px;
    border-radius: 8px;
    transition: 0.3s;
    cursor: pointer;
    border: 1px solid #0000001a;
    align-items: center;
    display: flex;
    font-weight: 600;
}

.lst-btns-destaque-plan .btn svg {
    float: left;
    width: 12px;
    margin: 0px 5px 0px 0px;
}

.lst-btns-destaque-plan .btn:hover {
    border: 1px solid #000000fa;
}

.metrics-perfil-display {
    min-width: 315px;
}

.metrics-perfil-display .meta {
    width: fit-content;
    margin: auto;
    padding-bottom: 28px;
    padding-top: 8px;
}

.metrics-perfil-display .logo {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background-size: cover;
    margin: auto;
}

.metrics-perfil-display .nome {
    font-size: 14px;
    font-weight: 400;
    text-align: center;
}

.metrics-perfil-display .info {
    font-weight: 400;
    font-size: 13px;
}

.metrics-perfil-display .meta .metricas {
    margin-bottom: 11px;
    margin-top: 7px;
    padding: 12px 0px 0px 13px;
    border: 1px solid #ffffff0d;
    border-radius: 9px;
    float: right;
}

.metrics-perfil-display .meta .metricas::after {
    clear: both;
    content: "";
    display: block;
}

.metrics-perfil-display .meta .metrica {
    float: left;
    width: 33%;
    padding: 0px 17px 13px 1px;
}

.metrics-perfil-display .meta .metrica .ttl {
    font-size: 13px;
    margin-bottom: 3px;
    opacity: 0.5;
}

.metrics-perfil-display .meta .metrica .valor {
    font-size: 29px;
    font-weight: 600;
    line-height: 29px;
}

.item-post[data-status="13"] .status,
.item-post[data-status="6"] .status {
    background: linear-gradient(90deg, #4A90E2, #9013FE, #D726B1, #F5A623);
    background-size: 400% 400% !important;
    animation: gradientAnimation 1s ease infinite;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
    color: #fff !important;
    border-radius: 100px;
    cursor: pointer;
    width: fit-content;
    background-position: 181% 139%;
}

.item-post[data-status="13"] .status svg,
.item-post[data-status="6"] .status svg {
    fill: #fff !important;
}

#miniaturas-acesso-rapido .item[data-status="13"] .status,
#miniaturas-acesso-rapido .item[data-status="6"] .status {
    background: linear-gradient(90deg, #4A90E2, #9013FE, #D726B1, #F5A623);
    background-size: 400% 400% !important;
    animation: gradientAnimation 1s ease infinite;
    color: #fff !important;
    background-position: 181% 139%;
}

#miniaturas-acesso-rapido .item[data-status="13"] .status svg,
#miniaturas-acesso-rapido .item[data-status="6"] .status svg {
    fill: #fff !important;
}

.mask.blur {
    backdrop-filter: blur(18px);
    -webkit-backdrop-filter: blur(18px);
}

.init-txt {
    clear: both;
    text-align: left;
    font-weight: 500;
    font-size: 17px;
}

.contant-grade-perfil-conteudo .topo .btndownloadgrid {
    float: left;
    padding: 1px 11px;
    opacity: 0.4;
    transition: 0.3s;
    cursor: pointer;
}

.contant-grade-perfil-conteudo .topo .btndownloadgrid svg {
    width: 21px;
}

.contant-grade-perfil-conteudo .topo .btndownloadgrid:hover {
    opacity: 1;
}

.contant-grade-perfil-conteudo .grade-perfil-display {
    /* max-width: 1000px; */
    clear: both;
}

.contant-grade-perfil-conteudo .grade-perfil-display .h {
    display: block;
}

.contant-grade-perfil-conteudo .grade-perfil-display .h::after {
    clear: both;
    content: "";
    display: block;
}

.contant-grade-perfil-conteudo .grade-perfil-display .h .item {
    float: left;
    width: 33.333333333%;
    margin: 0px;
}

.contant-grade-perfil-conteudo .grade-perfil-display .h .item .midia-item {
    background-size: cover;
    background-position: center;
    background-color: #00000030;
    position: relative;
}

.contant-grade-perfil-conteudo .grade-perfil-display .h .item .midia-item img {
    width: 100%;
    aspect-ratio: 3 / 4;
}

.contant-grade-perfil-conteudo .grade-perfil-display .h .item .midia-item .inf {
    position: absolute;
    text-align: center;
    color: #000000;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    display: grid;
    align-items: center;
    opacity: 0.2;
    font-size: 13px;
}

.contant-grade-perfil-conteudo .topo {
    padding: 14px 46px 12px 13px;
}

.contant-grade-perfil-conteudo .topo h3 {
    margin: 0px;
    font-size: 20px;
    float: left;
}

.edicao-container-novo-perfis {
    width: 350px;
}

.edicao-container-novo-perfis .campos::after,
.edicao-container-novo-perfis .footer::after,
.tabs-redes-conexoes-results-item .box-conectar::after,
.tabs-redes-conexoes-results-item .box-conectar .btns-center::after,
.tabs-redes::after,
.contant-grade-perfil-conteudo .topo::after {
    clear: both;
    content: "";
    display: block;
}

.edicao-container-novo-perfis .campos .ipt2-col {
    width: 100%;
    padding: 0px;
}

.edicao-container-novo-perfis .btn-01 {
    float: right;
    padding: 11px 20px;
}

.edicao-container-novo-perfis .footer {
    clear: both;
    padding-top: 13px;
}

.dropdown-perfis .btn-new {
    text-align: center;
    padding: 7px 20px 7px 20px;
    font-size: 14px;
    transition: 0.3s;
    position: absolute;
    bottom: 0px;
    left: 0px;
    display: none;
    width: 100%;
    background: #ffffff1f;
    backdrop-filter: blur(90px);
    -webkit-backdrop-filter: blur(90px);
    z-index: 2;
    border-radius: 0px 0px 15px 15px;
}

.dropdown-perfis .btn-new:hover {
    opacity: 1;
}

.tabs-redes {
    margin: auto;
    width: fit-content;
}

.tabs-redes .tab {
    float: left;
    margin-right: 3px;
    border-radius: 5px;
    font-size: 14px;
    padding: 3px 9px;
    font-weight: 500;
    cursor: pointer;
    background: #007bff1a;
    color: #007bff;
    transition: 0.3s;
}

.tabs-redes .tab:hover {
    background-color: #007bff38;
}

.tabs-redes .tab.atv {
    background: #007bff;
    color: #fff;
    border-color: #007bff;
}

.tabs-redes-conexoes-results-item {
    display: block;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    float: left;
    min-height: 311px;
}

.tabs-redes-conexoes-results-item .box-conectar {
    margin: auto;
    width: fit-content;
    padding: 5px 7px 22px 7px;
}

.tabs-redes-conexoes-results-item h5 {
    font-size: 18px;
    padding: 25px 10px 0px 10px;
    text-align: center;
    font-weight: 600;
    color: #1872e3;
}

.tabs-redes-conexoes-results-item .box-conectar h4 {
    font-size: 23px;
    text-align: center;
    margin-bottom: 8px;
}

.tabs-redes-conexoes-results-item .btn-conectar {
    background: #0064e0;
    color: #fff;
    fill: #fff;
    display: table;
    padding: 10px 19px;
    border-radius: 28px;
    cursor: pointer;
    float: left;
    margin-right: 5px;
    box-shadow: 0px 1px 20px #0064e017;
    font-weight: 500;
    font-size: 15px;
}

.tabs-redes-conexoes-results-item .btn-aprender {
    background: #00000014;
    color: #000000;
    display: table;
    padding: 10px 19px;
    border-radius: 28px;
    cursor: pointer;
    font-size: 15px;
}

#tabd2-3 .tabs-redes-conexoes {
    padding: 6px 0px 0px 0px;
}

.tabs-redes-conexoes-results-item .box-conectar .btns-center {
    width: fit-content;
    margin: auto;
    padding-bottom: 11px;
}

.grupo-btns-tips .box-membros {
    float: left;
    padding: 1px 0px 0px 5px;
    min-width: 84px;
}

.grupo-btns-tips .box-membros label {
    margin: 0px;
    padding: 0px 0px 0px 0px;
    font-size: 13px;
    display: block;
    color: #000000b3;
    height: 19.2px;
    font-weight: 500;
}

.grupo-btns-tips .box-membros .btn-add-membro {
    display: block;
    float: left;
    background: #0000001a;
    border-radius: 50%;
    opacity: 0.6;
    cursor: pointer;
    transition: 0.3s;
    /* margin-left: 11px; */
    z-index: 9;
    position: relative;
}

.grupo-btns-tips .box-membros .btn-add-membro:hover {
    opacity: 1;
}

.grupo-btns-tips .box-membros .membros {
    padding: 0px 0px 0px 0px;
    /* margin: -4px 0px 0px 0px; */
}

.grupo-btns-tips .box-membros .btn-add-membro svg {
    width: 20px;
    height: 20px;
}

.btn-nex svg {
    width: 19px;
    margin: -1px -5px 0px -5px;
}

.btn-criacao-conteudo {
    color: #f3430f;
    fill: #f3430f;
    /* background: #f3430f12;
    border-radius: 100px; */
}

.btn-aprovacao-conteudo:hover {
    color: #a150ff;
    background: #750def3d;
}

.edicao-page-membros {
    min-width: 310px;
}

.lst-membros-all {
    clear: both;
    padding: 29px 12px 0px 0px;
    float: right;
}

.lst-membros-all .item {
    float: left;
    margin-right: -7px;
    cursor: pointer;
    position: relative;
    padding: 0px !important;
    border-top: 0px !important;
}

/* Avatar de PESSOA (usuario). O tamanho varia por densidade de tela - quem
   ajusta e o contexto -, mas o desenho e sempre este: disco, foto cobrindo o
   quadro (cover: 'contain' deixava banda vazia em foto nao quadrada) e as
   iniciais legiveis quando nao ha foto. A moldura usa a var de tema para nao
   ficar clara no escuro. Clique: abre o cartao .ap-usercard (fim deste arquivo). */
.thumb-user {
    width: 28px;
    height: 28px;
    display: grid;
    align-items: center;
    text-align: center;
    text-transform: uppercase;
    background-color: #e9e9e9;
    border-radius: 50%;
    margin: 0px 2px;
    font-size: 10px;
    background-size: cover;
    background-position: center;
    box-shadow: 0px 0px 7px #0000000f;
    font-weight: 500;
    color: #242424;
    border: 1.5px solid var(--color-border);
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
}

.item-post .lst-membros-all {
    padding: 0px 0px 0px 0px;
    float: left;
}

.item-post .lst-membros-all .item .thumb-user {
    height: 22px;
    width: 22px;
    font-size: 9px;
}

/* .item-post .lst-membros-all .item .thumb-user:last-child {
    margin-right: 13px;
} */
.item-post .lst-membros-all .item-mais,
.conteudo-item .lst-membros-all .item-mais {
    float: left;
    font-size: 10px;
    height: 23px;
    width: 23px;
    text-align: center;
    border-radius: 50%;
    align-items: center;
    display: grid;
}

.conteudo-item .lst-membros-all .item-mais {
    font-size: 12px;
    width: 30px;
    height: 30px;
}

.edicao-page-membros .pesquisar {
    display: none;
}

.edicao-page-membros .pesquisar input {
    width: 100%;
    border-radius: 100px;
    border: 1px solid #00000000;
    background: #0000000d;
    height: 40px;
    padding: 0px 13px;
    text-align: center;
    color: #0064e0;
    font-weight: 600;
}

.box-membros-02 label {
    font-size: 13px;
    font-weight: 550;
}

.box-membros-02 .lst .item {
    padding: 3px 4px;
    transition: 0.3s;
    border-radius: 6px;
    width: calc(100% + 10px);
    margin-left: -5px;
    cursor: pointer;
}

.box-membros-02 .lst .item:hover {
    background: #00000017;
}

.box-membros-02 .lst .item .thumb-user {
    float: left;
    padding: 0px;
    margin: 0px;
}

.box-membros-02 .lst .item .nome {
    float: left;
    padding: 4px 5px 0px 7px;
    font-size: 14px;
    font-weight: 450;
    width: calc(100% - 59px);
}

.box-membros-02 .lst .item .btn {
    float: right;
}

.box-membros-02 .lst .item .btn-add {
    padding: 0px;
    opacity: 0.5;
    margin: 2px 0px 0px 0px;
}

.box-membros-02.membros-conteudo .lst .item .btn {
    cursor: pointer;
}

.box-membros-02.membros-conteudo .lst .item .btn svg {
    transform: rotate(45deg);
}

.membros-conteudo {
    padding-bottom: 18px;
}

.box-membros-02 .lst .nenhum {
    font-size: 12px;
    opacity: 0.5;
}

.min-post {
    transition: 0.3s;
}

.min-post .membros {
    position: absolute;
    right: 22px;
    top: 12px;
}

.min-post .membros .lst-membros-all {
    padding: 0px;
    width: 25px;
    margin-top: 4px;
}

.min-post .membros .lst-membros-all .item {
    padding: 0px !important;
    height: auto !important;
    background: none !important;
    margin-top: -6px !important;
}

.min-post .membros .lst-membros-all .item .thumb-user {
    width: 23px;
    height: 23px;
}

.min-post .membros .lst-membros-all .item-mais {
    font-size: 10px;
    height: 15px;
    width: 23px;
    text-align: center;
    /* background: #202020; */
    border-radius: 50%;
    align-items: center;
    margin-top: -6px;
    display: grid;
    opacity: 0.5;
}

.min-post:hover {
    background: #ffffff0d !important;
}

.fim-result {
    text-align: center;
    font-size: 12px;
    padding: 90px 0px;
    color: #0000004a;
}

.fluxo-conteudos .conteudo-item .membros {
    position: absolute;
    right: 5px;
    top: 12px;
    width: 28px;
}

.fluxo-conteudos .conteudo-item .membros .lst-membros-all {
    padding: 0px;
}

.fluxo-conteudos .conteudo-item .membros .lst-membros-all .item {
    margin-right: 0px;
    margin-top: -6px;
}

.fluxo-conteudos .conteudo-item .membros .lst-membros-all .item .thumb-user {
    width: 28px;
    height: 28px;
}

.fluxo-conteudos .conteudo-item .membros .lst-membros-all .item-mais {
    float: left;
    font-size: 10px;
    text-align: center;
    width: 100%;
    padding: 1px 0px 0px 0px;
    opacity: 0.8;
}

.totais-group-box {
    padding: 0px 0px 10px 0px;
    clear: both;
}

.totais-group-box::after {
    visibility: hidden;
    display: block;
    content: "";
    clear: both;
    height: 0;
}

.totais-group-box .item-box {
    /* background: #ffffffff; */
    padding: 16px 20px;
    border-radius: 9px;
    float: left;
    border: 1px solid #0000001f;
}

.totais-group-box .item-box label {
    color: rgb(0 0 0);
    margin-bottom: 14px;
    opacity: 0.5;
    display: block;
    font-weight: 500;
}

.totais-group-box .item-box.progesso-total {
    width: 342px;
    height: 256px;
    position: relative;
    margin-right: 0px;
    padding-left: 17px;
    background: none;
    border: 0px;
}

.totais-group-box .item-box.progesso-total .percentual {
    font-size: 105px;
    font-weight: 500;
    color: #000;
    line-height: 77px;
    margin: 20px 0px 16px 0px;
}

.grafico-bar-line-01 {
    width: calc(100% - 40px);
    background: #0000000f;
    border-radius: 30px;
    overflow: hidden;
    position: relative;
    margin-top: 14px;
    border: 1px solid #000;
}

.grafico-bar-line-01 div {
    height: 8px;
    /* background: #0064e0; */
    background: #000000;
}

.grafico-bar-line-01::after {
    content: "";
    display: block;
    background: linear-gradient(90deg, #438ee600, #ffffff26);
    position: absolute;
    width: 100%;
    height: 100%;
    pointer-events: none;
    bottom: 0px;
}

.totais-group-box .item-box.progesso-stauts {
    width: calc(100% - 350px);
    padding-right: 19px;
    padding-left: 0px;
    background: none;
    border: 0px;
}

.totais-group-box .item-box .info {
    color: #000;
    opacity: 0.5;
    font-size: 12px;
    font-weight: 300;
}

.totais-group-box .item-box.progesso-stauts .item-status {
    display: block;
    /* width: 100%; */
    padding: 5px 4px 6px 0px;
    float: left;
    /* border-bottom: 1px solid #00000012; */
}

.desativado {
    filter: grayscale(70%);
    opacity: 0.25;
}

.totais-group-box .item-box.progesso-stauts .item-status .name {
    border-radius: 8px;
    padding: 2px 9px;
    float: left;
    font-size: 12px;
    font-weight: 400;
    position: relative;
    overflow: hidden;
}

.totais-group-box .item-box.progesso-stauts .item-status .total {
    float: right;
    color: #000;
    font-size: 14px;
    line-height: 20px;
    font-weight: 600;
    margin: 1px 10px 0px 5px;
}

.totais-group-box .item-box.progesso-stauts .group {
    float: left;
    /* width: 50%; */
    /* padding: 0px 24px 0px 0px; */
}

/* ===========================================================================
   ETAPAS - o bloco que substituiu "Totais por status".
   ---------------------------------------------------------------------------
   A tela mostra so a ETAPA (status_segmento). Cada cartao traz o volume, a
   composicao em barra e o peso no mes; o detalhe status a status abre num
   dropdown por hover ou clique. Listar os 14 status de uma vez era a parede
   que este bloco veio desfazer.
   =========================================================================== */
/* GRID, e nao flex-wrap. Com `flex: 1 1 148px` o ultimo cartao de uma linha
   incompleta esticava sozinho pela largura toda - "Encerrado" virava uma faixa
   do tamanho da tela e parecia outra coisa, nao uma etapa entre as outras. */
.totais-group-box .item-box.progesso-stauts .etapas-lst {
    display: grid;
    /* 3 colunas (2 fileiras para as 6 fases de fabrica), e nao 6 numa linha so.
       Em linha unica os cartoes ficavam estreitos - "Aprovacao do cliente" nao
       cabia - e o painel media 76px de altura contra ~320 do cartao ao lado,
       abrindo um vazio no meio da tela. Em duas fileiras o bloco ganha corpo e
       o nome da fase cabe inteiro. */
    grid-template-columns: repeat(auto-fill, minmax(238px, 1fr));
    gap: 10px;
    float: none;
}

.etapas-lst .etapa-card {
    position: relative;
    min-width: 0;
    padding: 11px 13px 12px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

.etapas-lst .etapa-card:hover,
.etapas-lst .etapa-card:focus-visible,
.etapas-lst .etapa-card.aberta {
    background: var(--color-hover-01);
    border-color: color-mix(in srgb, var(--color-text-01) 24%, transparent);
    outline: none;
}

/* A etapa sem nenhum conteudo continua na tela - some-la faria a fila de fases
   mudar de forma a cada mes, e "esta vazia" e uma resposta. */
.etapas-lst .etapa-card.vazia {
    opacity: .5;
}

.etapas-lst .et-top {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 8px;
}

.etapas-lst .et-nome {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--color-text-01);
    opacity: .6;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.etapas-lst .et-qtd {
    margin-left: auto;
    font-size: 19px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.03em;
    font-variant-numeric: tabular-nums;
    color: var(--color-text-01);
}

.etapas-lst .et-barra {
    display: flex;
    height: 5px;
    border-radius: 100px;
    overflow: hidden;
    background: var(--color-bg-01);
    margin-bottom: 7px;
}

.etapas-lst .et-barra i {
    display: block;
    height: 100%;
}

.etapas-lst .et-pe {
    display: flex;
    align-items: baseline;
    gap: 6px;
    font-size: 10.5px;
    color: var(--color-text-01);
    opacity: .5;
    font-variant-numeric: tabular-nums;
}

.etapas-lst .et-pe span {
    margin-left: auto;
}

/* --- o dropdown do andamento da etapa ------------------------------------ */
.etapas-lst .etapa-pop {
    display: none;
    position: absolute;
    z-index: 60;
    top: calc(100% + 6px);
    left: 0;
    min-width: 258px;
    max-width: 320px;
    padding: 11px 4px 6px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg);
    box-shadow: 0 18px 40px -18px rgba(16, 24, 40, .45);
    cursor: default;
}

/* Hover E foco E clique. O hover sozinho deixa a tela sem saida no toque, e o
   :focus-within mantem o dropdown aberto enquanto se navega nele por teclado. */
.etapas-lst .etapa-card:hover .etapa-pop,
.etapas-lst .etapa-card:focus-within .etapa-pop,
.etapas-lst .etapa-card.aberta .etapa-pop {
    display: block;
}

/* A ultima coluna de cartoes abriria o dropdown para fora da tela. */
.etapas-lst .etapa-card:last-child .etapa-pop,
.etapas-lst .etapa-card.pop-esq .etapa-pop {
    left: auto;
    right: 0;
}

.etapas-lst .ep-hdr {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 0 10px 9px;
    margin-bottom: 4px;
    border-bottom: 1px solid var(--color-border);
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-01);
}

.etapas-lst .ep-hdr b {
    font-size: 13px;
    font-variant-numeric: tabular-nums;
}

.etapas-lst .ep-hdr span {
    margin-left: auto;
    font-weight: 400;
    font-size: 10.5px;
    opacity: .5;
}

/* Cabem ~9 status sem rolar, que cobre a etapa mais cheia do catalogo de
   fabrica (Producao, com 8). Acima disso rola em vez de crescer sem fim. */
.etapas-lst .ep-lst {
    max-height: 310px;
    overflow-y: auto;
}

.etapas-lst .ep-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    border-radius: 7px;
    font-size: 12px;
    color: var(--color-text-01);
    cursor: pointer;
}

.etapas-lst .ep-row:hover {
    background: var(--color-hover-01);
}

.etapas-lst .ep-row.ep-zero {
    cursor: default;
    opacity: .45;
}

.etapas-lst .ep-row.ep-zero:hover {
    background: none;
}

/* A COR DO STATUS E UM PONTO, NUNCA O FUNDO DO ROTULO.
   16 dos status do banco tem CorFundo == CorTexto (herdado dos modelos de
   Workflow): como fundo de pastilha o nome fica invisivel. Como ponto, a cor
   informa e o rotulo herda a tinta legivel do tema. */
.etapas-lst .ep-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 7px;
    box-shadow: 0 0 0 1px var(--color-border);
}

.etapas-lst .ep-nome {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.etapas-lst .ep-qtd {
    margin-left: auto;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.etapas-lst .ep-pct {
    width: 34px;
    text-align: right;
    font-size: 10.5px;
    opacity: .5;
    font-variant-numeric: tabular-nums;
}

.dashboard-header .title-section {
    float: left;
    padding: 0px;
}

.totais-group-box-filtros {
    float: right;
    padding: 9px 0px 8px 11px;
    text-align: right;
    border-radius: 15px;
    /* background: #00000012; */
    cursor: pointer;
    /* border: 1px solid #00000014; */
}

.totais-group-box-filtros label {
    font-size: 12px;
    margin: 0px;
    color: #00000063;
    height: 16px;
    line-height: 10px;
    font-weight: 300;
    width: 100%;
    text-align: left;
    padding-right: 6px;
}

.totais-group-box-filtros .datepicker-filtro.form-control {
    background: none;
    border: 0px;
    height: 18px;
    width: 168px;
    cursor: pointer;
    font-weight: 500;
    padding-top: 1px;
    padding-right: 0px;
    font-size: 12px;
    padding: 0px 0px 0px 0px;
    color: #000000;
    text-transform: uppercase;
    text-align: center;
}

.totais-group-box .item-box.progesso-stauts .item-status .name:after {
    content: "";
    display: block;
    background: linear-gradient(90deg, #438ee600, #ffffff24);
    position: absolute;
    width: 100%;
    height: 100%;
    left: 0px;
    bottom: 0px;
    border-radius: 6px 6px 6px 6px;
    pointer-events: none;
}

.totais-group-box .item-box.progesso-stauts .item-status:last-child {
    border-color: transparent;
}

.controle-meses-nextprev {
    float: left;
    padding: 0px 0px 0px 0px;
    margin: 0px;
}

.controle-meses-nextprev div {
    float: left;
    padding: 0px 0px;
    opacity: 0.5;
    transition: 0.3s;
    cursor: pointer;
}

.controle-meses-nextprev div svg {
    width: 18px;
}

.controle-meses-nextprev div.next svg {
    transform: rotate(180deg);
}

.controle-meses-nextprev div:hover {
    opacity: 1;
}

.dashboard-header .controle-meses-nextprev {
    padding: 0px 0px 0px 6px;
}

.btn-finalizado-conteudo:hover {
    background-color: #1978041f;
    color: #27950e;
}

.item-post .status .selecionado:after {
    content: "";
    display: block;
    background: linear-gradient(90deg, #438ee600, #ffffff24);
    position: absolute;
    width: 100%;
    height: 100%;
    bottom: 0px;
    border-radius: 6px 6px 6px 6px;
    pointer-events: none;
}

.box2-lst-dash {
    float: left;
    width: 100%;
}

.box2-lst-dash .box2-item {
    /* border: 1px solid #ffffff17; */
    padding: 23px 0px 0px 0px;
    /* border-radius: 10px; */
    float: left;
}

.box2-lst-dash .box2-item.col-alertas {
    padding: 19px 0px 14px 0px;
    border: 0px solid #0000001c;
    border-radius: 10px;
    width: 100%;
}

.box2-lst-dash .box2-item h5 {
    color: #000000;
    font-size: 16px;
    margin-bottom: 13px;
    font-weight: 500;
    opacity: 0.6;
}

.tabs-redes-conexoes-results-item .btns::after,
.tabs-redes-conexoes-results-item .actions::after,
.tabs-redes-conexoes-results-item .actions .action-item::after,
.popup-delta .contant .boxpop::after {
    content: "";
    clear: both;
    display: block;
}

.box2-item.col-historico {
    padding: 21px 0px 0px 22px;
    padding: 19px 20px 20px 20px;
    border: 0px solid #0000001c;
    border-radius: 10px;
    max-height: 515px;
    overflow: hidden;
}

.box2-lst-dash.left {
    width: calc(100% - 190px);
    clear: both;
    padding: 0px 10px 0px 5px;
}

.box2-lst-dash.right {
    width: 188px;
    padding-left: 12px;
    padding-right: 10px;
    padding-top: 30px;
}

.plyr__video-wrapper {
    overflow: inherit !important;
    position: absolute !important;
    height: 100% !important;
}

.plyr--stopped.plyr__poster-enabled .plyr__poster {
    height: 100%;
    width: 100%;
    top: 0px;
    left: 0px;
    position: absolute;
    display: block;
    background-size: auto 100.5%;
}

.btn-save-perfil {
    margin: 9px 2px 4px 0px;
}

.tabs-redes-conexoes-results-item .expira-em {
    text-align: center;
    font-size: 12px;
    opacity: 0.7;
}

.tabs-redes-conexoes-results-item .atualizar-conexao-perfis {
    cursor: pointer;
    background: #1872e30d;
    color: #64a9ff;
}

.tabs-redes-conexoes-results-item .btns {
    width: fit-content;
    margin: auto;
}

.tabs-redes-conexoes-results-item .btns .btn {
    width: fit-content;
    padding: 0px 7px;
    border-radius: 100px;
    font-size: 13px;
    float: left;
    margin-top: 4px;
    cursor: pointer;
}

.tabs-redes-conexoes-results-item .btns .desconectar {
    color: #fc2d2d;
    margin-left: 6px;
}

.tabs-redes-conexoes-results-item .actions {
    margin: 0px 0px 26px 0px;
}

.tabs-redes-conexoes-results-item .actions .action-item {
    float: left;
    width: 50%;
    text-align: center;
}

.tabs-redes-conexoes-results-item .actions .action-item .btn-ativar {
    background: #5ee81917;
    color: #5ee819;
    border-radius: 100px;
    width: fit-content;
    margin: auto;
    padding: 5px 21px;
    font-size: 15px;
}

.tabs-redes-conexoes-results-item .actions .action-item .btn-desativar {
    background: #ff000014;
    color: #fc2d2d;
    border-radius: 100px;
    width: fit-content;
    margin: auto;
    padding: 5px 21px;
    font-size: 15px;
    cursor: pointer;
}

.plyr--video .plyr__control {
    border-radius: 50%;
    padding: 11px;
    right: calc(50% - 20px) !important;
}

.item-post .col-legenda .campo-style-02,
.item-post .col-titulo .campo-style-02,
.item-post .col-observacoes .campo-style-02,
.item-post .col-objetivo .campo-style-02 {
    border: 0px;
}

.item-post .campos-content .campos-content-left {
    float: left;
    padding: 0px;
    max-width: 100%;
}

.item-post .campos-content .campos-content-left .col-legenda .textarea {
    min-height: 10px;
}

.item-post .campos-content .campos-content-left .col-objetivo .textarea {
    min-height: 10px;
    padding-bottom: 20px;
    overflow: hidden;
}

.container-criar .btn-gerar-conteudo-insert-ia {
    padding: 5px 19px;
    /* background-color: #007bff; */
    color: #fff;
    border-radius: 100px;
    font-size: 14px;
    cursor: pointer;
    transition: background-color 0.3s ease;
    float: right;
    font-weight: 500;
    background: linear-gradient(90deg, #4A90E2, #13dbfe, #26d73f, #F5A623);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.contant-criar-conteudo .ipt2-col.textcampo .campo-style-02 {
    border: 0px;
    white-space: normal;
}

.contant-criar-conteudo .ipt2-col.textcampo .campo-style-02 .lbel {
    padding-left: 0px;
    margin-bottom: -31px;
    padding-left: 11px;
}

.contant-criar-conteudo .ipt2-col.textcampo .campo-style-02 .textarea.cmp {
    padding-left: 0px;
    padding-right: 0px;
    border-radius: 12px;
    padding: 29px 15px 11px 12px;
    font-size: 14px;
    font-weight: 400;
    margin-bottom: 4px;
    border: 1px solid var(--color-border);
    min-height: 76px !important;
    margin: 0px;
}

.item-post .grupo-btns-tips .campo-style-02 .lbel,
.contant-criar-conteudo .campo-style-02 .lbel {
    padding: 2px 0px 0px 2px;
    margin-bottom: 1px;
    font-weight: 500;
}

#header-lst-posts .limites-armazenamento {
    clear: both;
    text-align: right;
    float: right;
    margin-top: 15px;
    font-size: 12px;
    opacity: 0.8;
    font-weight: 300;
    display: none;
}

#header-lst-posts .limites-armazenamento .limites-armazenamento-gbs {
    float: left;
}

#header-lst-posts .limites-armazenamento .limites-armazenamento-tokens {
    float: right;
    margin-left: 12px;
}

/* O cartao de pessoa que abria aqui dentro virou .ap-usercard (fim deste
   arquivo): mora no <body> em position:fixed e o JS calcula a posicao - nao ha
   um bloco de posicionamento por contexto (.lst-membros-all, .atividades-lst,
   .item-post...). */

.conteudo-item[data-statusid="6"] .status {
    background: linear-gradient(90deg, #4A90E2, #9013FE, #D726B1, #F5A623);
    background-size: 400% 400% !important;
    animation: gradientAnimation 1s ease infinite;
}

.totais-desc .btns .btn-remover {
    display: none;
}

.grupo-btns-tips .dropdown2::after {
    position: absolute;
    display: block;
    pointer-events: none;
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    left: 5px;
    top: -2px;
    transform: rotate(45deg);
    z-index: -1;
    background: #fff;
    width: 30px;
    height: 30px;
    border-radius: 3px;
    display: none;
}

.estrutura-pessoas-lst-01 h5 {
    font-size: 18px;
    padding: 22px 0px 13px 0px;
    font-weight: 550;
}

.estrutura-pessoas-lst-01 .item {
    float: left;
    padding: 0px 15px 35px 0px;
    cursor: pointer;
}

.estrutura-pessoas-lst-01 .item .thumb-user {
    aspect-ratio: 5 / 6;
    border-radius: 20px;
    background-size: cover;
    background-position: center;
    width: 100%;
    height: auto;
    margin: auto;
    font-size: 43px;
    transition: 0.3s;
}

.estrutura-pessoas-lst-01 .item:hover .thumb-user {
    border-color: #0064e0;
}

.estrutura-pessoas-lst-01 .item .nome {
    text-align: left;
    font-size: 13px;
    padding: 12px 0px 0px 0px;
    line-height: 15px;
    font-weight: 400;
}

.estrutura-pessoas-lst-01 .item .total {
    font-size: 11px;
    text-align: left;
    color: #000;
    opacity: 0.6;
    font-weight: 300;
}

.btn-sair-conta {
    margin: 0px 0px 0px 0px;
    padding: 20px 20px 11px 0px;
    float: left;
}

.btn-salvar-perfil {
    float: right;
    margin-top: 12px;
    margin-bottom: 10px;
    padding: 9px 26px;
}

.usuario-btns .dropdown-item {
    cursor: pointer;
}

.usuario-btns .dropdown-item:hover {
    background: none;
}

.usuario-txt .dropdown-menu {
    border-radius: 11px;
}

.campo-style-02 .btn-falar {
    font-size: 10px;
    line-height: 12px;
    padding: 3px 4px;
    border-radius: 5px;
    cursor: pointer;
}

.btn-copiar-link {
    padding-left: 29px !important;
}

.plan-bloqueio {
    opacity: 0.4;
    filter: grayscale(100%);
}

#header-lst-posts .plano-tag {
    float: left;
    font-size: 11px;
    border: 1px solid #007bff57;
    color: #007bff;
    font-weight: 500;
    padding: 0px 6px;
    border-radius: 6px;
    margin: 1px 0px 0px 7px;
    cursor: pointer;
    transition: 0.3s;
    display: none;
}

#header-lst-posts .plano-tag:hover {
    border: 1px solid #007bff;
}

.contant-metrica-perfil-conteudo {
    max-width: 100%;
}

.greficos-metricass-perfil h4 {
    padding-top: 0px;
    margin: 0px;
    margin-top: 25px;
    border-top: 0px solid #ffffff12;
}

.greficos-metricass-perfil .info-txt {
    float: left;
}

.greficos-metricass-perfil .info-txt .tg {
    height: 7px;
    width: 50px;
    border-radius: 100px;
    margin-bottom: 9px;
    margin-top: 2px;
}

.greficos-metricass-perfil .info-txt svg {
    width: 24px;
    height: 18px;
    fill: rgb(15, 222, 43);
}

.greficos-metricass-perfil .descricao {
    font-size: 12px;
    opacity: 0.7;
    padding-bottom: 16px;
}

.metrics-perfil-display .col-logo {
    float: left;
    padding-right: 32px;
}

.metrics-perfil-display .drodpown-filtro-periodos {
    width: fit-content;
    margin: auto;
    padding: 2px 0px 14px 0px;
}

.metrics-perfil-display .drodpown-filtro-periodos .dropdown-filtro-item {
    float: left;
    font-size: 12px;
    border: 1px solid #ffffff0a;
    margin: 2px 2px;
    border-radius: 3px;
    padding: 0px 5px;
    opacity: 0.5;
    cursor: pointer;
    font-weight: 300;
    transition: 0.3s;
}

.metrics-perfil-display .drodpown-filtro-periodos .dropdown-filtro-item:hover {
    opacity: 1;
}

.metrics-perfil-display .drodpown-filtro-periodos .dropdown-filtro-item.atv {
    opacity: 1;
    color: #007bff;
    border-color: #007bff;
    font-weight: 500;
}

.contant-metrica-perfil-conteudo #btndownloadgridmetricas {
    float: right;
    padding: 1px 11px;
    opacity: 0.4;
    transition: 0.3s;
    cursor: pointer;
    margin: -2px 25px 0px 0px;
}

.contant-metrica-perfil-conteudo #btndownloadgridmetricas svg {
    fill: #171010;
    width: 22px;
    transition: 0.3s;
}

.contant-metrica-perfil-conteudo #btndownloadgridmetricas:hover {
    opacity: 1;
}

.popup-contant-estrutura-02 {
    padding: 27px;
    padding-top: 32px;
    max-width: 800px;
    width: 730px;
}

.contant-add-perfis {
    padding: 20px
}

.contant-add-perfis h3 {
    padding-right: 29px !important;
    font-size: 20px !important;
    width: 350px;
    margin-bottom: -9px;
}

.contant-assinatura-new .etapa {
    display: none;
}

.contant-assinatura-new[data-atv="1"] .etapa[data-id="1"] {
    display: block;
}

.contant-assinatura-new[data-atv="2"] .etapa[data-id="2"] {
    display: block;
}

.contant-assinatura-new[data-atv="3"] .etapa[data-id="3"] {
    display: block;
}

.contant-assinatura-new h3 {
    font-size: 29px;
    padding: 0px 0px 1px 0px;
    font-weight: 600;
}

.fc-daygrid-dot-event .fc-event-title {
    font-weight: 600;
}

.fc .fc-button-primary {
    background-color: rgba(0, 0, 0, 0);
    border-color: #000;
    opacity: 0.7;
    color: #000;
}

.fc .fc-button-primary:hover {
    background: rgba(0, 100, 255, 0);
    opacity: 1;
    color: #000;
}

.fc .fc-button-primary:not(:disabled).fc-button-active {
    opacity: 1;
}

.fc .fc-daygrid-day.fc-day-today,
.fc .fc-timegrid-col.fc-day-today {
    background-color: rgb(47 172 242 / 0%) !important;
}

.fc .fc-toolbar.fc-header-toolbar {
    margin-bottom: 11px;
    margin-top: 17px;
}

.contant-assinatura-new .btn-add-perfis {
    width: fit-content;
    border: 1px solid #00000038;
    padding: 4px 8px;
    border-radius: 9px;
    font-weight: 500;
    cursor: pointer;
    opacity: 0.9;
    float: left;
    color: #000000;
    margin-top: 9px;
    font-size: 13px;
}

.contant-assinatura-new .btn-add-perfis:hover {
    opacity: 1;
}

.lst-perfis-geren {
    padding: 10px 0px 6px 0px;
}

.lst-perfis-geren .item-perfis-geren {
    border-bottom: 1px solid #0000000f;
    padding: 10px 0px;
}

.lst-perfis-geren .item-perfis-geren:last-child {
    border: 0px;
}

.lst-perfis-geren .item-perfis-geren .nome {
    float: left;
    padding: 0px;
    max-width: calc(100% - 30px);
}

.lst-perfis-geren .item-perfis-geren .nome input {
    background: none;
    border: 0px;
    color: #000000;
    padding: 0px;
    width: calc(100% - 26px);
    float: left;
    font-weight: 500;
}

.lst-perfis-geren .item-perfis-geren .nome input:focus {
    outline: none;
}

.lst-perfis-geren .item-perfis-geren .numero {
    float: left;
    width: 26px;
    font-size: 11px;
    line-height: 24px;
}

.lst-perfis-geren .item-perfis-geren .planos {
    float: right;
    padding: 0px;
    max-width: 16px;
}

.lst-perfis-geren .item-perfis-geren .planos .plano {
    float: left;
    border: 1px solid #ffffff3b;
    border-radius: 26px;
    margin: 0px 4px;
    padding: 0px 9px;
    font-size: 14px;
    opacity: 0.6;
    cursor: pointer;
}

.lst-perfis-geren .item-perfis-geren .planos .plano:hover {
    opacity: 1;
}

.lst-perfis-geren .item-perfis-geren .planos .plano.atv {
    opacity: 1;
    border-color: #1c88fd80;
    background: #1c88fd0d;
    color: #1c88fd;
}

.lst-perfis-geren .btn-delete {
    fill: #00000057;
    float: right;
    opacity: 0.5;
    cursor: pointer;
    padding: 3px 0px 0px 0px;
}

.lst-perfis-geren .btn-delete svg {
    width: 16px;
}

.lst-perfis-geren .btn-delete:hover {
    opacity: 1;
}

/* =====================================================================
 * NOVO PERFIL - modal premium unificado (window.abrirNovoPerfil)
 * Single guiado (avatar ao vivo) + Em lote. Estilo ClickUp/Wix/Canva.
 * ===================================================================== */
#edit-popup .contant .boxpop:has(.np-modal) {
    width: 440px;
    max-width: 92vw;
    border: 1px solid var(--color-border);
    box-shadow: 0 24px 60px -12px rgba(0, 0, 0, 0.35);
}

.np-modal {
    width: 100%;
    box-sizing: border-box;
    padding: 24px 26px 20px;
}

.np-modal *,
.np-modal *::before,
.np-modal *::after {
    box-sizing: border-box;
}

.np-modal .np-head {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 0 36px 18px 0;
    position: relative;
}

.np-modal .np-ico {
    width: 44px;
    height: 44px;
    flex: 0 0 44px;
    border-radius: 13px;
    background: var(--color-bg-01);
    display: flex;
    align-items: center;
    justify-content: center;
}

.np-modal .np-ico svg {
    width: 21px;
    height: 21px;
    fill: var(--color-text-01);
}

.np-modal .np-head-txt h2 {
    font-size: 20px;
    font-weight: 650;
    line-height: 1.1;
    margin: 0;
    color: var(--color-text-01);
}

.np-modal .np-head-txt p {
    font-size: 13px;
    margin: 3px 0 0;
    opacity: 0.55;
}

/* .np-close e .np-btn-cancel usam a classe .btn-cancelar-popup so pelo
   comportamento de fechar; o prefixo #edit-popup neutraliza o float/pilula
   herdado de #edit-popup .btn-cancelar-popup (seletor com ID). */
#edit-popup .np-modal .np-close {
    position: absolute;
    top: 0;
    right: 0;
    width: 30px;
    height: 30px;
    margin: 0;
    padding: 0;
    float: none;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0.5;
    transition: 0.15s;
}

#edit-popup .np-modal .np-close:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.np-modal .np-close svg {
    width: 13px;
    height: 13px;
    fill: var(--color-text-01);
}

/* Tabs (Um perfil / Em lote) */
.np-modal .np-tabs {
    display: flex;
    gap: 4px;
    padding: 4px;
    background: var(--color-bg-01);
    border-radius: 12px;
    margin-bottom: 20px;
}

.np-modal .np-tab {
    flex: 1;
    text-align: center;
    padding: 8px 10px;
    font-size: 13px;
    font-weight: 550;
    border-radius: 9px;
    cursor: pointer;
    opacity: 0.6;
    transition: 0.15s;
}

.np-modal .np-tab:hover {
    opacity: 0.85;
}

.np-modal .np-tab.atv {
    background: var(--color-bg);
    opacity: 1;
    box-shadow: 0 1px 4px #0000000f;
}

/* Panes - alternancia controlada por data-mode */
.np-modal .np-pane {
    display: none;
}

.np-modal[data-mode="single"] .np-pane-single {
    display: block;
}

.np-modal[data-mode="batch"] .np-pane-batch {
    display: block;
}

/* SINGLE - avatar ao vivo + campos */
/* Avatar do single: iniciais (fundo neutro) ou imagem escolhida + acoes ao lado */
.np-modal .np-avatar-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 20px;
}

.np-modal .np-avatar {
    width: 74px;
    height: 74px;
    flex: 0 0 74px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 27px;
    font-weight: 650;
    text-transform: uppercase;
    background-color: #ececec;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    color: #8a8a8a;
}

/* Quando ha imagem escolhida, esconde as iniciais e indica que e clicavel p/ trocar */
.np-modal .np-avatar.np-has-img {
    color: transparent;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px #00000014;
}

.np-modal .np-avatar-actions {
    flex: 1;
    min-width: 0;
}

.np-modal .np-avatar-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 8px 13px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    font-size: 13px;
    font-weight: 550;
    cursor: pointer;
    color: var(--color-text-01);
    transition: 0.15s;
}

.np-modal .np-avatar-btn:hover {
    background: var(--color-hover-01);
}

.np-modal .np-avatar-btn svg {
    width: 15px;
    height: 15px;
    fill: var(--color-text-01);
}

.np-modal .np-avatar-remove {
    display: none;
    font-size: 12px;
    font-weight: 550;
    color: #ef5350;
    cursor: pointer;
    margin-top: 8px;
}

.np-modal .np-avatar-row.np-com-img .np-avatar-remove {
    display: inline-block;
}

.np-modal .np-avatar-row.np-com-img .np-avatar-btn span {
    display: none;
}

.np-modal .np-avatar-row.np-com-img .np-avatar-btn::after {
    content: 'Trocar imagem';
}

.np-modal .np-avatar-hint {
    font-size: 11px;
    opacity: 0.5;
    margin-top: 8px;
}

.np-modal .np-avatar-row.np-com-img .np-avatar-hint {
    display: none;
}

/* Modo avatar: a proporcao e obrigatoria (quadrado), entao o grupo de formatos
   inteiro sai da barra - nao so os botoes, senao sobrava o rotulo "Formato"
   sozinho. Logo e texto tambem nao valem para foto de perfil. */
#edit-image.cropper-avatar-mode .cp-grupo-formato,
#edit-image.cropper-avatar-mode .btn-texto-editor,
#edit-image.cropper-avatar-mode .mais-opcoes {
    display: none !important;
}

/* Sem o grupo de formatos, o "Girar" vira o primeiro da regua e nao precisa
   mais do separador da esquerda. */
#edit-image.cropper-avatar-mode .cp-grupo-girar {
    padding-left: 0;
    border-left: 0;
}

.np-modal .np-field {
    margin-bottom: 13px;
}

.np-modal .np-field label {
    display: block;
    font-size: 12px;
    font-weight: 550;
    margin-bottom: 6px;
    opacity: 0.7;
}

.np-modal .np-field label span {
    font-weight: 400;
    opacity: 0.7;
}

.np-modal .np-field input {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-01);
    background: var(--color-bg);
    transition: 0.15s;
    outline: none;
}

.np-modal .np-field input:focus {
    border-color: #1c88fd;
    box-shadow: 0 0 0 3px #1c88fd1f;
}

.np-modal .np-field.np-erro input {
    border-color: #ef5350;
    box-shadow: 0 0 0 3px #ef53501f;
    animation: npShake 0.3s;
}

@keyframes npShake {

    0%,
    100% {
        transform: translateX(0);
    }

    25% {
        transform: translateX(-5px);
    }

    75% {
        transform: translateX(5px);
    }
}

/* LOTE */
.np-modal .np-batch-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 6px;
}

.np-modal .np-batch-head span {
    font-size: 13px;
    opacity: 0.55;
}

.np-modal .np-add {
    font-size: 13px;
    font-weight: 600;
    color: #1c88fd;
    cursor: pointer;
    padding: 5px 9px;
    border-radius: 8px;
    transition: 0.15s;
}

.np-modal .np-add:hover {
    background: #1c88fd14;
}

.np-modal .np-batch-lst {
    max-height: 290px;
    overflow-y: auto;
    margin: 0 -2px;
    padding: 2px;
}

.np-modal .np-row {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 7px 0;
    border-bottom: 1px solid var(--color-border);
}

.np-modal .np-row:last-child {
    border-bottom: 0;
}

.np-modal .np-row-av {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 650;
    background-color: #ececec;
    color: #8a8a8a;
    text-transform: uppercase;
}

.np-modal .np-row-nome {
    flex: 1;
    border: 0;
    background: none;
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-01);
    padding: 6px 0;
    outline: none;
}

.np-modal .np-row-del {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    cursor: pointer;
    opacity: 0.4;
    transition: 0.15s;
}

.np-modal .np-row-del:hover {
    opacity: 1;
    background: #ef535014;
}

.np-modal .np-row-del svg {
    width: 14px;
    height: 14px;
    fill: #ef5350;
}

/* WORKSPACE de destino da marca nova - vale para os dois modos do modal */
.np-modal .np-ws-campo {
    margin-top: 16px;
    display: flow-root;
}

.np-modal .np-ws-campo .ipt2-col {
    padding: 0;
    width: 100%;
    max-width: 100%;
}

/* O AirpostSelect padrao deixa o titulo e o valor com recuos diferentes.
   Neste modal o campo deve ler como os demais: rotulo acima, valor alinhado
   abaixo e a seta no proprio valor que sera trocado. */
.np-modal .np-ws-select .campo-style-02 {
    position: relative;
    border-color: var(--color-border);
    border-radius: 11px;
    background: var(--color-bg);
}

.np-modal .np-ws-select .inpt {
    min-height: 56px;
    padding: 8px 13px;
}

.np-modal .np-ws-select .lbel {
    height: auto;
    margin: 0 0 2px;
    padding: 0;
    color: var(--color-text-01);
    font-size: 11px;
    font-weight: 550;
    line-height: 15px;
    opacity: 0.65;
}

.np-modal .np-ws-select .lbel::after {
    display: none;
}

.np-modal .np-ws-select .selecionado {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 22px;
    padding: 0;
    color: var(--color-text-01);
    font-size: 14px;
    font-weight: 600;
    line-height: 22px;
}

.np-modal .np-ws-select .selecionado::after {
    content: "";
    width: 7px;
    height: 7px;
    margin: -4px 1px 0 auto;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    opacity: 0.55;
    transform: rotate(45deg);
}

.np-modal .np-ws-select .ws-dot-sel {
    margin-right: 0;
}

.np-modal .np-ws-select .dropdown2 {
    top: calc(100% + 6px);
    left: 0;
    width: 100%;
}

/* Um workspace so: o campo vira rotulo, nao ha escolha a fazer */
.np-modal .np-ws-fixo {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 8px;
    background: var(--color-bg-01);
    font-size: 13px;
    color: var(--color-text);
}

.ws-dot-sel {
    display: inline-block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    flex: 0 0 9px;
    margin-right: 7px;
}

/* USO do plano - barra de progresso */
.np-modal .np-uso {
    clear: both;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    margin: 16px 0 4px;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    background: var(--color-bg-01);
}

.np-modal .np-uso-bar {
    grid-row: 2;
    height: 5px;
    border-radius: 99px;
    background: var(--color-bg);
    overflow: hidden;
}

.np-modal .np-uso-bar span {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 99px;
    background: linear-gradient(90deg, #245cfb, #1c88fd);
    transition: width 0.3s ease;
}

.np-modal .np-uso-bar span.np-over {
    background: linear-gradient(90deg, #ef5350, #ff7043);
}

.np-modal .np-uso-txt {
    grid-row: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
    color: var(--color-text-01);
    line-height: 1.3;
}

.np-modal .np-uso-label {
    font-size: 10px;
    font-weight: 650;
    letter-spacing: 0.055em;
    line-height: 1.3;
    opacity: 0.52;
    text-transform: uppercase;
}

.np-modal .np-uso-valor {
    font-size: 12px;
    opacity: 0.72;
}

.np-modal .np-uso-valor b {
    color: var(--color-text-01);
    font-size: 14px;
    opacity: 1;
    font-weight: 700;
}

.np-modal .np-uso.np-uso-excedido {
    border-color: #ef53504d;
    background: #ef53500d;
}

.np-modal .np-uso.np-uso-excedido .np-uso-label,
.np-modal .np-uso.np-uso-excedido .np-uso-valor b {
    color: #d84343;
    opacity: 1;
}

/* Footer */
.np-modal .np-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    padding-top: 18px;
    margin-top: 20px;
    margin-left: -26px;
    margin-right: -26px;
    padding-left: 26px;
    padding-right: 26px;
    border-top: 1px solid var(--color-border);
}

#edit-popup .np-modal .np-btn-cancel {
    float: none;
    margin: 0;
    padding: 10px 16px;
    border-radius: 11px;
    font-size: 14px;
    font-weight: 550;
    cursor: pointer;
    opacity: 0.6;
    transition: 0.15s;
}

#edit-popup .np-modal .np-btn-cancel:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.np-modal .np-btn-go {
    padding: 10px 20px;
    border-radius: 11px;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    opacity: 0.45;
    transition: 0.15s;
}

.np-modal .np-btn-go.atv {
    opacity: 1;
}

.np-modal .np-btn-go.np-disabled {
    cursor: not-allowed;
}

.popup-footer {
    padding: 11px 0px 0px 0px;
    border-top: 1px solid #ffffff0f;
    margin-top: 15px;
    clear: both;
}

.btn-principal-01 {
    width: fit-content;
    /* background: linear-gradient(90deg, #245cfb, #1c88fd); */
    padding: 7px 17px;
    border-radius: 10px;
    font-weight: 550;
    cursor: pointer;
    float: right;
    opacity: 0.5;
    background: #000000;
    color: #ffffff;
}

.btn-principal-01.atv {
    opacity: 1;
}

.lst-planos-geren {
    padding: 18px 0px 0px 0px;
    opacity: 0.4;
    pointer-events: none;
    border-top: 1px solid #ffffff12;
    margin-top: 18px;
}

.lst-planos-geren.atv {
    opacity: 1;
    pointer-events: visible;
}

.lst-planos-geren .item-plano-geren {
    text-align: center;
    border: 1px solid #ffffff0f;
    min-height: 200px;
    border-radius: 13px;
    cursor: pointer;
    padding: 0px 15px;
    position: relative;
    overflow: hidden;
}

.lst-planos-geren .item-plano-geren:hover {
    border-color: #1c88fd80;
}

.lst-planos-geren .col {
    float: left;
    padding: 4px 4px;
}

.lst-planos-geren .item-plano-geren.atv {
    border-color: #1c88fd80;
    background: #1c88fd0d;
}

.lst-planos-geren .item-plano-geren.atv .ttl {
    color: #1c88fd;
}

.lst-planos-geren .item-plano-geren .ttl {
    font-size: 24px;
    padding: 24px 0px 0px 0px;
    font-weight: 600;
}

.lst-planos-geren .item-plano-geren .valor {
    font-size: 20px;
}

.lst-planos-geren .item-plano-geren .valor-info01 {
    font-size: 13px;
    font-weight: 600;
}

.lst-planos-geren .item-plano-geren .valor-info-green {
    color: #18da18;
    font-size: 11px;
}

.lst-planos-geren .item-plano-geren .valor-info-min {
    font-size: 11px;
    opacity: 0.5;
    line-height: 12px;
    font-weight: 200;
    margin-top: 12px;
}

.contant-assinatura-new label {
    width: 100%;
    font-size: 20px;
    opacity: 0.8;
    margin: 0px;
    font-weight: 500;
}

.contant-assinatura-new .lst-btns-actions {
    margin-bottom: 12px;
}

.contant-assinatura-new .lst-btns-actions .btn-view-plans {
    float: left;
    padding: 5px 15px;
    opacity: 0.8;
    font-weight: 300;
    cursor: pointer;
}

.contant-assinatura-new .lst-btns-actions .btn-view-plans:hover {
    opacity: 1;
}

.contant-assinatura-new .txt-info {
    opacity: 0.5;
    font-size: 13px;
    font-weight: 300;
    margin-bottom: 10px;
}

.lst-perfis-geren .lst {
    background: #0000000a;
    padding: 0px 14px;
    border-radius: 6px;
    border: 1px solid #0000001a;
}

.contant-assinatura-new .tag-desconto {
    position: absolute;
    top: 0px;
    right: 0px;
    background: #18da18;
    color: #000;
    font-weight: 600;
    padding: 0px 11px;
    font-size: 13px;
    border-radius: 0px 0px 0px 9px;
}

.planos .lst-planos {
    max-width: 1030px;
    margin: auto;
    padding: 28px 10px 76px 10px;
}

.planos .lst-planos .col {
    float: left;
    padding: 5px;
}

.planos .lst-planos .item-plano {
    padding: 20px;
    border: 1px solid #ffffff21;
    border-radius: 12px;
    position: relative;
}

.planos .lst-planos .item-plano .ttl {
    color: #fff;
    font-size: 20px;
    font-weight: 500;
    padding-bottom: 10px;
}

.planos .lst-planos .item-plano .descricao {
    opacity: 0.5;
    font-size: 13px;
    min-height: 79px;
}

.planos .lst-planos .item-plano .valor {
    font-size: 18px;
}

.planos .lst-planos .item-plano .info-valor {
    font-size: 12px;
    opacity: 0.6;
    text-transform: uppercase;
}

.planos .lst-planos .item-plano .recomendado {
    background: #0064e0;
    text-align: center;
    border-radius: 30px;
    width: fit-content;
    margin: auto;
    position: absolute;
    top: -12px;
    font-weight: 500;
    font-size: 13px;
    padding: 2px 13px;
}

.planos .lst-planos .item-plano.essencial {
    border-color: #245cfb;
}

.planos .lst-planos .item-plano .btn-iniciar {
    background: linear-gradient(90deg, #245cfb, #1c88fd);
    border-radius: 30px;
    padding: 5px 13px;
    width: fit-content;
    margin-bottom: 23px;
    font-weight: 500;
}

.planos .lst-planos .item-plano .funcoes {
    padding: 18px 0px 0px 0px;
}

.planos .lst-planos .item-plano .funcoes .item-funcao {
    padding-top: 6px;
    clear: both;
}

.planos .lst-planos .item-plano .funcoes .item-funcao svg {
    fill: #4f7dff;
    width: 15px;
    float: left;
    height: 18px;
}

.planos .lst-planos .item-plano .funcoes .item-funcao .txt {
    float: left;
    padding: 0px 0px 0px 10px;
    font-size: 14px;
    max-width: calc(100% - 15px);
}

.planos .lst-planos .item-plano .funcoes .item-funcao .txt bold {
    font-weight: 700;
}

.planos .lst-planos .item-plano .funcoes .ttf {
    color: #4f7dff;
    font-weight: 500;
}

.planos .lst-planos .item-plano .funcoes .ttf.ia {
    margin-top: 17px;
    background: linear-gradient(90deg, #4A90E2, #13dbfe, #26d73f, #F5A623);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.contant-assinatura-new .popup-footer .btn-proximo.atv {
    opacity: 1;
}

.contant-assinatura-new .htmlPeriodos .info-pgto,
.resumo-pedido .info-pgto {
    text-align: center;
    opacity: 0.6;
    font-weight: 300;
    font-size: 11px;
    margin: 0px;
    clear: both;
    padding: 8px 0px 0px 0px;
}

.resumo-pedido {
    padding: 20px;
}

.resumo-pedido h5 {
    font-size: 15px;
    font-weight: 300;
    margin-bottom: 11px;
    opacity: 0.7;
}

.resumo-pedido .tag-box-info {
    background: #ffffff24;
    padding: 12px 13px;
    width: calc(50% - 10px);
    border-radius: 5px;
    float: left;
    margin-right: 10px;
}

.resumo-pedido .tag-box-info div {
    font-weight: 600;
    font-size: 16px;
    float: right;
}

.resumo-pedido .tag-box-info label {
    font-size: 12px;
    margin: 3px 0px 0px 0px;
    float: left;
    opacity: 0.8;
}

.resumo-pedido .tag-box-info:last-child {
    margin-right: 0px;
    width: 50%;
}

.resumo-pedido .payment-resume-table {
    color: #fff;
    width: 100%;
    margin: 0px 0px 17px 0px;
}

.resumo-pedido .payment-resume-table tr {
    border-top: 1px solid #ffffff2e;
    height: 40px;
}

.resumo-pedido .payment-resume-table tr:first-child {
    border-top: 0px;
    border-bottom: 1px solid #ffffff2e;
}

.resumo-pedido .payment-resume-table tbody tr:last-child {
    border-bottom: 0px;
}

.formas-de-pagamento .box-c {
    float: left;
    padding: 0px 16px 15px 0px;
}

.formas-de-pagamento .box-c h4 {
    font-size: 17px;
    font-weight: 400;
}

.formas-de-pagamento .display {
    width: 700px;
    clear: both;
    margin-top: 20px;
}

.lst-formas-pagamento {
    padding-right: 9px;
}

.lst-formas-pagamento .item-forma-pagamemento {
    border: 1px solid #0000001c;
    border-radius: 11px;
    padding: 13px 11px;
    cursor: pointer;
    margin-bottom: 6px;
    fill: #000000;
    position: relative;
}

.lst-formas-pagamento .item-forma-pagamemento .ico-next {
    transition: 0.3s;
    position: absolute;
    right: 9px;
    top: calc(50% - 9px);
    height: 18px;
    width: 18px;
    opacity: 0.3;
}

.lst-formas-pagamento .item-forma-pagamemento svg {
    width: 25px;
    float: left;
}

.lst-formas-pagamento .item-forma-pagamemento .txts {
    float: left;
    width: calc(100% - 40px);
    padding: 0px 0px 0px 11px;
}

.lst-formas-pagamento .item-forma-pagamemento .txts label {
    font-size: 16px;
    opacity: 1;
    line-height: 16px;
}

.lst-formas-pagamento .item-forma-pagamemento .txts span {
    font-size: 11px;
    opacity: 0.7;
    margin-top: 2px;
    display: block;
}

.lst-formas-pagamento .item-forma-pagamemento.atv {
    fill: #0064e0ff;
    border-color: #0064e0ff;
    background: #0064e026;
}

.lst-formas-pagamento .item-forma-pagamemento:hover {
    border-color: #0064e0ff;
}

.lst-formas-pagamento .item-forma-pagamemento:hover .ico-next {
    fill: #0064e0ff;
    opacity: 1;
}

.lst-formas-pagamento .item-forma-pagamemento img {
    max-width: 179px;
    clear: both;
    margin: 6px 0px 5px 0px;
}

.contant-assinatura-new .html-resumo-valores .txt-valor {
    padding: 0px 0px 7px 0px;
}

.contant-assinatura-new .html-resumo-valores .txt-valor.final {
    margin-top: 4px;
    padding-top: 8px;
    border-top: 1px solid #ffffff2b;
}

.contant-assinatura-new .html-resumo-valores .txt-valor.final span {
    font-weight: 600;
    opacity: 1;
}

.contant-assinatura-new .html-resumo-valores .txt-valor label {
    float: left;
    width: fit-content;
    font-size: 14px;
}

.contant-assinatura-new .html-resumo-valores .txt-valor span {
    float: right;
    font-size: 14px;
    font-weight: 300;
    opacity: 0.7;
}

.check-site-seguro {
    padding: 18px 0px 0px 0px;
    width: fit-content;
    margin: auto;
}

.check-site-seguro svg {
    width: 19px;
    fill: #04d804;
    float: left;
}

.check-site-seguro span {
    color: #ffffff;
    font-weight: 300;
    font-size: 12px;
    line-height: 14px;
    padding: 3px 0px 0px 5px;
    float: left;
    opacity: 0.8;
}

.resultado-pix-qr-code {
    padding: 20px;
}

.resultado-pix-qr-code h3 {
    text-align: center;
    clear: both;
    margin-top: 28px;
}

.resultado-pix-qr-code h5 {
    font-size: 17px;
    font-weight: 300;
    padding-bottom: 6px;
    text-align: center;
}

.resultado-pix-qr-code img {
    max-width: 300px;
    margin: auto;
    display: grid;
    border-radius: 8px;
}

.usuario-cadastro-mais {
    padding: 15px;
}

.usuario-cadastro-mais h3 {
    padding: 0px 0px 0px 2px;
}

.usuario-cadastro-mais .campos {
    padding: 7px 0px 8px 0px;
}

.usuario-cadastro-mais h6 {
    clear: both;
    padding: 15px 0px 0px 4px;
}

/* CPF/CNPJ (.empresa-ipt) e Estado do cadastro do checkout: estilos no bloco
   "CHECKOUT - DADOS DE COBRANCA" no fim deste arquivo (era a pilula azul). */

.etapa-item {
    display: none;
}

.etapa-item.atv {
    display: block;
}

.estrutura-atividades-lst-01 {
    padding: 0px 15px;
    padding-top: 54px;
}

.estrutura-atividades-lst-01 .item {
    max-width: 575px;
    width: 100%;
    margin: auto;
    border-bottom: 1px solid #00000017;
    padding: 20px 0px 20px 0px;
    color: #000000;
}

.estrutura-atividades-lst-01 .hdr .img {
    background-size: cover;
    width: 53px;
    height: 53px;
    border-radius: 50%;
    float: left;
    font-size: 20px;
}

.estrutura-atividades-lst-01 .hdr .nome {
    float: left;
    width: calc(100% - 60px);
    padding: 0px 0px 0px 9px;
    margin: -4px 0px 0px 0px;
}

.estrutura-atividades-lst-01 .perfil-nome {
    font-size: 12px;
    padding: 1px 7px;
    border-radius: 5px;
    border: 1px solid #8d8d8d5c;
    cursor: pointer;
    color: var(--color-text-01);
    margin-bottom: 15px;
    display: block;
    width: fit-content;
}

.estrutura-atividades-lst-01 .hdr .acoes {
    clear: both;
    padding: 0px 0px 0px 66px;
    font-size: 12px;
    opacity: 0.8;
    font-weight: 300;
    overflow: hidden;
    position: relative;
}

.estrutura-atividades-lst-01 .hdr .acoes.oculto {
    max-height: 82px;
}

.estrutura-atividades-lst-01 .hdr .acoes.show {
    max-height: initial;
}

.estrutura-atividades-lst-01 .hdr .acoes .it {
    margin: 0px 0px 6px 0px;
    /* padding: 0px 0px 6px 0px; */
    /* border-bottom: 1px solid #ffffff24; */
}

.estrutura-atividades-lst-01 .hdr .acoes .it .data {
    float: right;
    font-size: 11px;
    font-weight: 200;
    opacity: 0.7;
    line-height: 12px;
}

.estrutura-atividades-lst-01 .hdr .acoes .it .txt {
    float: left;
    width: calc(100% - 150px);
}

.estrutura-atividades-lst-01 .hdr .acoes .ver-mais {
    position: absolute;
    bottom: 0px;
    width: 100%;
    padding: 83px 0px 0px 0px;
    cursor: pointer;
    background: linear-gradient(to top, #ffffff 0%, #ffffff7a 100%);
}

.estrutura-atividades-lst-01 .hdr .it-p {
    font-size: 14px;
    margin-bottom: 8px;
    opacity: 0.9;
    overflow-wrap: break-word;
    word-break: break-word;
}

.estrutura-atividades-lst-01 .hdr .it-p .data {
    display: block;
    clear: both;
    width: 100%;
    font-size: 12px;
    opacity: 0.6;
}

.estrutura-atividades-lst-01 .ctud {
    padding: 13px 0px 0px 67px;
}

.estrutura-atividades-lst-01 .ctud .html-midias {
    max-width: 399px;
}

.estrutura-atividades-lst-01 .ctud .html-midias .midia {
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0px 3px 15px #00000024;
    width: fit-content;
}

.estrutura-atividades-lst-01 .ctud .html-midias .midia img {
    max-width: 100%;
}

.estrutura-atividades-lst-01 .ctud .html-midias .midia .plyr--video {
    margin: 0px;
}

.estrutura-atividades-lst-01 .ctud .html-midias .midia .midia-doc {
    display: block;
    position: relative;
    line-height: 0;
}

.estrutura-atividades-lst-01 .ctud .html-midias .midia .midia-doc img {
    max-width: 100%;
}

.estrutura-atividades-lst-01 .ctud .html-midias .midia .midia-doc-badge {
    position: absolute;
    top: 8px;
    left: 8px;
    background: #e23b3b;
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
    padding: 4px 6px;
    border-radius: 4px;
}

.btn-recarregar {
    font-size: 10px;
    float: right;
    font-weight: 300;
    border: 1px solid #00000026;
    padding: 7px 10px;
    border-radius: 9px;
    cursor: pointer;
    margin: 9px 0px 0px 0px;
    display: none;
}

.header-perfil-user {
    color: #000000;
    padding: 0px;
    width: fit-content;
    margin: auto;
    margin-top: calc(50vh - 157px);
    width: 380px;
}

.header-perfil-user .thumb {
    width: 120px;
    height: 120px;
    /* float: left; */
    border: 1px solid #ffffff24;
    font-size: 51px;
    margin: auto;
}

.header-perfil-user .txt {
    /* float: left; */
    width: 100%;
    padding: 11px 0px 0px 0px;
    text-align: center;
}

.header-perfil-user .txt .nome {
    font-size: 30px;
    margin-bottom: 0px;
    font-weight: 600;
    line-height: 36px;
    margin-bottom: 15px;
}

.header-perfil-user .txt .btns {
    width: 100%;
}

.header-perfil-user .txt .btns .btn {
    border: 1px solid #00000017;
    border-radius: 100px;
    color: #000000;
    font-size: 14px;
    cursor: pointer;
    margin-bottom: 8px;
}

.estrutura-compras-lst-01 {
    color: #000000;
}

.estrutura-compras-lst-01 .item {
    border-top: 1px solid #ffffff17;
    padding: 14px 0px;
}

.estrutura-compras-lst-01 .item .info {
    float: left;
    width: 16.6%;
    padding-right: 15px;
}

.estrutura-compras-lst-01 .item .info label {
    width: 100%;
    opacity: 0.6;
    font-size: 14px;
    margin: 0px;
}

.estrutura-compras-lst-01 .item .info .v {
    font-size: 15px;
}

.estrutura-compras-lst-01 h5 {
    opacity: 0.6;
    font-size: 18px;
    font-weight: 400;
    margin-bottom: 18px;
}

.estrutura-compras-lst-01 .item .info.data {
    width: 13%;
}

.estrutura-compras-lst-01 .item .info.perfis {
    width: 27%;
}

.estrutura-compras-lst-01 .item .info.status {
    width: 20.2%;
}

.estrutura-compras-lst-01 .item .info.codigo {
    width: 10%;
}

.estrutura-compras-lst-01 .item .info.vencimento {
    width: 13%;
}

.ipt-titulo-post {
    background: none;
    border: 0px;
    width: 100%;
    font-size: 29px;
    color: #000000;
    font-weight: 600;
    padding: 0px 0px 0px 4px;
}

.btn-finalizacao-conteudo {
    color: #269b0c;
    background: #1978041c;
    border-radius: 100px;
    margin-left: 3px;
}

.btn-finalizacao-conteudo:hover {
    color: #269b0c;
    background: #19780436;
}

.swal2-container .swal2-popup {
    border-radius: 16px;
    overflow: hidden;
}

.swal2-container button {
    border-radius: 100px;
    transition: 0.3s;
}

.swal2-container .swal2-cancel {
    background: none;
    padding-left: 5px;
    padding-right: 5px;
    color: #000000;
}

.swal2-container .swal2-cancel:hover {
    background-image: linear-gradient(rgb(0 0 0 / 0%), rgb(0 0 0 / 0%)) !important;
}

.box-select-perfis-criacao-conteudo {
    padding-bottom: 6px;
}

.box-select-perfis-criacao-conteudo .select-perfis {
    border: 1px solid #66666640;
    padding: 10px;
    border-radius: 10px;
    margin-bottom: 8px;
}

.campo-style-02 .dropdown2 .it .img {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-size: cover;
    float: left;
    margin: 3px 7px 0px 0px;
    background-color: #0000004a;
}

.grupo-btns-tips .campo-style-02 .lbel {
    padding-left: 0px !important;
}

.grupo-btns-tips .campo-style-02 {
    border: 0px !important;
}

.grupo-btns-tips .campo-style-02 .selecionado,
.grupo-btns-tips .campo-style-02 .datepicker.form-control {
    padding-left: 0px !important;
    padding-top: 0px;
    height: 20px;
    line-height: 15px;
    padding-bottom: 6px;
    font-size: 15px;
    font-weight: 550;
}

.item-post[data-tipo="8"] .col-observacoes .lbel {
    display: none;
}

.campo-style-02 .img {
    width: 25px;
    height: 25px;
    border-radius: 50%;
    background-size: cover;
    float: left;
    margin: 2px 8px 0px 0px;
    background-color: #6e6e6e4a;
}

.contant-criar-conteudo .titulo {
    padding-left: 0px;
    padding-right: 0px;
}

.contant-criar-conteudo .titulo .campo-style-02 {
    padding: 0px;
    border: 0px;
}

.contant-criar-conteudo .titulo .campo-style-02 .lbel,
.contant-criar-conteudo .titulo .campo-style-02 .cmp {
    padding-left: 0px;
    padding-right: 0px;
    margin-top: 16px;
}

.contant-criar-conteudo .titulo .campo-style-02 .cmp {
    font-size: 20px;
}

.popup-audio {
    display: none;
    position: fixed;
    top: 70px;
    right: calc(50% - 150px);
    z-index: 999999999;
}

.popup-audio .stop,
.popup-audio .play {
    display: none;
    width: 41px;
    padding: 5px;
    float: left;
    cursor: pointer;
}

.popup-audio.in-play .stop {
    display: block;
}

.popup-audio.in-stop .play {
    display: block;
}

.popup-audio .speech-wave {
    display: none;
}

.popup-audio .speech-line {
    display: none;
    float: left;
    padding: 21px 0px 0px 13px;
}

.popup-audio .speech-line div {
    width: 40px;
    height: 1px;
    background-color: #fff;
    opacity: 0.3;
}

.popup-audio.in-play .speech-wave {
    display: flex;
}

.popup-audio.in-stop .speech-line {
    display: block;
}

.popup-audio .close {
    float: right;
    position: absolute;
    right: 16px;
    top: 23px;
    cursor: pointer;
}

.popup-audio .conteudo {
    margin: auto;
    display: block;
    width: fit-content;
    width: 300px;
    background: linear-gradient(89deg, #2c2d30, #26272a);
    color: #fff;
    fill: #fff;
    border-radius: 14px;
    padding: 9px 10px;
    border: 1px solid #313235;
    height: 61px;
}

.speech-wave {
    display: flex;
    align-items: center;
    gap: 5px;
    width: 100px;
    padding: 8px 0px 0px 13px;
}

.speech-wave div {
    width: 5px;
    height: 20px;
    background: #3c6ffe;
    animation: wave 1s infinite ease-in-out;
}

.speech-wave div:nth-child(1) {
    animation-delay: 0s;
}

.speech-wave div:nth-child(2) {
    animation-delay: 0.2s;
}

.speech-wave div:nth-child(3) {
    animation-delay: 0.4s;
}

.speech-wave div:nth-child(4) {
    animation-delay: 0.6s;
}

.speech-wave div:nth-child(5) {
    animation-delay: 0.8s;
}

@keyframes wave {

    0%,
    100% {
        height: 10px;
    }

    50% {
        height: 25px;
    }
}

.btn-ver-all-box {
    float: initial;
    display: block;
    clear: both;
    color: #000000;
    font-size: 14px;
    font-weight: 400;
    text-align: left;
    padding: 5px 18px;
    width: fit-content;
    border-radius: 100px;
    margin-top: 1px;
    background: #00000014;
    margin: auto;
}

.btn-ver-all-box:hover {
    color: #000;
}

.contant-perfil-home .col {
    float: left;
}

.item-post::after {
    content: "";
    display: block;
    clear: both;
}

#lst-posts .item-post::before {
    content: "";
    display: block;
    border-top: 1px solid var(--color-border);
    top: -12px;
    position: relative;
}

.campo-style-02 .btns-campo .btn.btn-bold {
    padding: 5px 8px;
}

.campo-style-02 .btns-campo .btn.btn-bold svg {
    width: 9px;
}

.item-post[data-tipo="8"] .midia {
    align-content: unset;
    padding-top: 58px;
}

.contant-lista-estrutura {
    display: grid;
    height: 100%;
}

.contant-lista-estrutura .estrutura-lista {
    padding: 52px 13px 0px 14px;
}

.contant-lista-estrutura .estrutura-lista .titulo-group {
    font-size: 12px;
    font-weight: 400;
    /* margin: 10px 0px 0px 0px; */
    line-height: 16px;
    background: #282828;
    width: fit-content;
    padding: 5px 7px;
    margin-bottom: 1px;
    color: #fff;
    height: 23px;
    float: left;
    /* box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); */
}

.table-01 {
    width: 100%;
    border-collapse: collapse;
    font-family: "Segoe UI", sans-serif;
}

.table-01 thead th {
    text-align: left;
    padding: 12px 16px;
    font-weight: 500;
    font-size: 10px;
    color: #333;
    border-bottom: 0px;
    text-transform: uppercase;
    opacity: 0.5;
}

.table-01 tbody td {
    padding: 9px 16px;
    font-size: 13px;
    font-weight: 500;
    color: #444;
    border-top: 1px solid var(--color-border);
}

.table-01 tbody tr {
    background: #ffffff00;
    transition: 0.3s;
    cursor: pointer;
    position: relative;
}

.table-01 tbody tr:hover {
    background-color: #0e0e0e0d;
}

.table-01 .numero {
    padding-left: 4px;
    padding-right: 6px;
    font-size: 10px;
    opacity: 0.6;
    font-weight: 200;
}

.table-01 .status {
    background: #666;
    color: #fff;
    padding: 3px 7px;
    font-size: 12px;
    border-radius: 100px;
    font-weight: 500;
    position: relative;
    overflow: hidden;
    width: fit-content;
}

.table-01 .img-perfil {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
}

.table-01 .inf-dt {
    font-size: 10px;
    margin: 1px 0px 0px 0px;
    font-weight: 200;
    opacity: 0.6;
    /* display: none; */
    line-height: 8px;
}

.table-01 .lst-membros-all {
    padding: 0px;
    float: left;
}

.edicao-page-comentarios .lst-comentarios .box-add-comentario .textarea:focus {
    outline: none;
}

.popup-delta .html-conteudo-atividades h1 {
    font-size: 15px;
    margin: 0px 0px 0px 0px;
    font-weight: 550;
}

.popup-delta .html-conteudo-atividades .topo {
    padding: 15px 0px 0px 0px;
    position: relative;
    z-index: 9;
    display: flex;
    align-items: center;
}

.contant-planejamento-home {
    padding-top: 26px;
}

.contant-compras-home {
    padding-top: 75px;
}

.header-pagina {
    /* Agora e filho direto de #htmlSessaoAtual (irmao da .centraliza), em fluxo
       flex no topo da moldura. Sem position:fixed nem hacks de iOS. */
    flex: 0 0 auto;
    width: 100%;
    padding: 0px 14px;
    background-color: var(--color-bg, #ffffff);
    z-index: 91;
    position: relative;
    min-height: 51px;
}

.header-pagina .btn-add {
    float: left;
    padding: 8px 10px 8px 0px;
    /* background: #ededed; */
    border-radius: 13px;
    fill: #000000;
    color: #000;
    margin: 14px 0px 0px 6px;
    font-weight: 400;
    cursor: pointer;
    float: right;
    display: none;
}

.header-pagina .btn-add svg {
    width: 10px;
    float: left;
    opacity: 1;
}

.header-pagina .btn-add div {
    float: left;
    font-size: 13px;
    line-height: 10px;
    margin: 0px 0px 0px 5px;
    opacity: 1;
}

.header-pagina .title-section {
    font-size: 18px;
    line-height: 51px;
    margin: 0px;
    font-weight: 550;
    padding: 0px;
    float: left;
    letter-spacing: -0.025em;
    text-wrap: balance;
}

.header-pagina .filtros {
    padding: 0px;
}

.header-pagina .header-filtros .status {
    float: left;
    font-size: 13px;
    font-weight: 300;
    padding: 7px 12px 0px 0px;
    opacity: 0.8;
    cursor: pointer;
}

.header-pagina .header-filtros .status:hover {
    opacity: 1;
}

.header-pagina .header-filtros .status .txt {
    float: left;
}

.header-pagina .header-filtros .status svg {
    float: left;
    width: 18px;
}

.header-pagina .header-filtros .pessoas {
    float: right;
    padding: 0px 2px 0px 0px;
}

.header-pagina .header-filtros .pessoas .btn-eu {
    padding: 3px 10px 2px 5px;
    border-radius: 25px;
    border: 1px solid #ffffff1a;
    opacity: 0.8;
}

.header-pagina .header-filtros .pessoas .btn-eu.atv,
.header-pagina .header-filtros .pessoas .btn-eu.atv:hover {
    border: 1px solid #006eff;
}

.header-pagina .header-filtros .pessoas .btn-eu:hover {
    border: 1px solid #006eff80;
}

.header-pagina .header-filtros .pessoas .btn-eu .img {
    width: 20px;
    height: 20px;
    background-color: #ffffff2e;
    border: 1px solid #ffffff1a;
    float: left;
}

.header-pagina .header-filtros .pessoas .btn-eu p {
    float: left;
    padding-left: 4px;
    margin: 0px;
    font-size: 14px;
    line-height: 20px;
    padding-bottom: 1px;
}

.header-pagina .filtros .periodo {
    padding: 17px 0px 16px 0px;
    float: right;
    display: flex;
}

.header-pagina .filtro-all {
    padding: 11px 0px 0px 0px;
}

.inicial-acesso-rapido {
    fill: #000000;
    color: #000000;
    max-width: 1050px;
}

.inicial-acesso-rapido .it {
    padding: 21px 30px 20px 0px;
    max-width: 12.5%;
    width: 100%;
    cursor: pointer;
    float: left;
}

.inicial-acesso-rapido .it .icon {
    /* background: #00000008; */
    aspect-ratio: 1 / 1;
    height: auto;
    padding: 35px;
    border-radius: 32px;
    align-items: center;
    display: grid;
    transition: 0.3s;
    border: 1px solid #6666662b;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}

.inicial-acesso-rapido .it .icon svg {
    opacity: 0.9;
    max-width: 42px;
    margin: auto;
    display: block;
}

.inicial-acesso-rapido .it .nome {
    text-align: center;
    padding: 6px 0px 0px 0px;
    font-size: 13px;
    font-weight: 400;
    color: #000000;
}

.inicial-acesso-rapido .it:hover .icon {
    opacity: 1;
    /* background: #0000001a; */
    box-shadow: 0px 0px 61px #00000014;
    border: 1px solid #66666685;
}

.inicial-acesso-rapido .it:hover .nome {
    opacity: 1;
}

.inicial-acesso-rapido-planejamentos {
    clear: both;
    color: #000000;
    padding-top: 31px;
}

.inicial-acesso-rapido-planejamentos h2 {
    font-size: 17px;
    margin-bottom: 16px;
    font-weight: 600;
}

.inicial-acesso-rapido-planejamentos h2 span {
    font-weight: 400;
}

.inicial-acesso-rapido-planejamentos .lst .it {
    background-color: #00000014;
    border: 2px solid #00000017;
    aspect-ratio: 1 / 1;
    width: 71px;
    background-size: cover;
    background-position: center;
    border-radius: 35%;
    float: left;
    margin-right: 6px;
    margin-bottom: 6px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
    border: 1px solid var(--glass-borda) !important;
    box-shadow: var(--glass-brilho), var(--glass-sombra), 0 40px 90px -30px rgba(0, 0, 0, .08) !important;
}

.table-01 tbody td .titulo {
    max-width: 750px;
}

.progresso-grafico-status {
    max-width: 50%;
    float: left;
    padding: 0px 21px 0px 0px;
}

.progresso-grafico-status canvas {
    height: 150px !important;
}

.inf-txt {
    font-size: 13px;
    opacity: 0.6;
    font-weight: 300;
}

.inf-txt svg {
    width: 119px;
    margin: auto;
    display: block;
    margin-top: 63px;
}

.inf-txt p {
    text-align: center;
    margin-top: 32px;
}

.dash-bloco-info {
    background: #292c2e00;
    border-radius: 16px;
    padding: 0px;
    /* max-width: 450px; */
    margin-bottom: 15px;
    /* padding-bottom: 9px; */
    /* cursor: pointer; */
    border: 1px solid #6666662b;
    transition: 0.3s;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    position: relative;
    overflow: hidden;
}

.dash-bloco-info .ini {
    display: flex;
    padding: 19px 10px 10px 9px;
    /* border-bottom: 1px solid var(--color-border); */
    width: calc(100% - 16px);
    margin-left: 8px;
    align-items: center;
}

.dash-blocos .col {
    padding-left: 0px;
    float: left;
}

.dash-bloco-info h3 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 0px;
    height: 18px;
}

.dash-bloco-info .ini .total-numero {
    font-size: 23px;
    font-weight: 500;
    line-height: 23px;
    height: 22px;
    margin-left: auto;
}

.dash-bloco-info .ini .btn-open {
    font-size: 13px;
    margin-top: 10px;
    border: 1px solid #00000030;
    width: fit-content;
    padding: 3px 10px;
    border-radius: 8px;
    opacity: 0.6;
    clear: both;
    display: none;
}

.dash-bloco-info .ls-totais {
    width: 100%;
    padding: 12px 0px 10px 0px;
}

.dash-bloco-info .ls-totais .t-it {
    width: 100%;
    display: block;
    clear: both;
    padding: 6px 0px;
    margin-bottom: 5px;
    display: flex;
    align-items: center;
    cursor: pointer;
}

.dash-bloco-info .ls-totais .t-it:last-child {
    border-bottom: 0px;
}

.dash-bloco-info .ls-totais .t-it p {
    float: left;
    margin: 0px;
    font-size: 14px;
    font-weight: 500;
}

.dash-bloco-info .ls-totais .t-it span {
    float: left;
    font-size: 13px;
    padding: 0px;
    margin: 0px 4px 0px 13px;
    opacity: 0.5;
    line-height: 21px;
}

.dash-bloco-info.v2 .ini {
    width: 285px;
    padding-right: 23px;
}

.dash-bloco-info.v2 .ini .total-numero {
    float: right;
    margin-top: 3px;
}

.dash-bloco-info.v2 .ini h3 {
    max-width: 126px;
    float: left;
}

.dash-bloco-info.v2 .ls-totais {
    width: calc(100% - 285px);
}

.totais-alertas h5 {
    font-size: 16px;
    margin-bottom: 13px;
    font-weight: 500;
    opacity: 0.6;
}

.totais-alertas .item-box {
    width: 100%;
    padding: 11px 0px;
    background: #ffffff00 !important;
    margin-bottom: 6px;
    border-width: 0px 0px 1px 0px !important;
    border-radius: 0px;
    border-bottom: 1px solid #6666664a;
}

.totais-alertas .item-box label {
    float: left;
    margin: 2px 0px 0px 0px;
}

.totais-alertas .item-box .total {
    float: right;
    font-weight: 500;
    font-size: 20px;
}

.btn-edit-p {
    float: left;
    padding: 1px 5px 2px 8px;
    opacity: 0.4;
    cursor: pointer;
}

.btn-edit-p svg {
    width: 16px;
}

.btn-edit-p:hover {
    opacity: 1;
}

.metas-qtd {
    clear: both;
    display: block;
    float: right;
    font-size: 10px;
    opacity: 0.7;
    padding: 8px 0px 0px 0px;
}

.metas-qtd p {
    margin: 0px 3px 0px 0px;
    float: left;
}

.metas-qtd div {
    float: left;
    padding: 0px 7px;
    background: #a5a5a552;
    border-radius: 100px;
    margin-left: 2px;
}

#planejamento-contant #menu-topo .btn-sec svg {
    width: 14px;
}

.dropdown-criar .item-btn {
    z-index: 1;
    position: relative;
    cursor: pointer;
    font-size: 16px;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item {
    width: 100%;
    padding-top: 30px;
    border-bottom: 1px solid #7a7a7a26;
    padding: 28px 15px;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .midia-item {
    width: calc(50% - 7px);
    margin-right: 7px;
    margin-bottom: 7px;
    display: block;
    float: left;
    border-radius: 7px;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .center {
    margin: auto;
    display: block;
    width: fit-content;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .infos {
    margin: auto;
    /* width: fit-content; */
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .info {
    float: left;
    padding: 0px 26px 14px 0px;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .info p {
    font-size: 12px;
    line-height: 14px;
    opacity: 0.7;
    margin: 0px;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .info div {
    font-size: 15px;
    font-weight: 500;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item.unic .midia-item {
    width: 100%;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .info.legenda {
    padding: 0px 0px;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .info.legenda p {
    padding: 8px 0px 8px 0px;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .info.legenda div {
    font-size: 15px;
    font-weight: 400;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .btn-open {
    float: right;
    width: 30px;
    height: 23px;
    border-radius: 50%;
    display: grid;
    align-items: center;
}

.contant-grade-perfil-conteudo.v2 .grade-perfil-display .h .item .btn-open svg {
    width: 15px;
    margin: auto;
}

.contant-grade-perfil-conteudo.v2 h1 {
    font-weight: 600;
    margin-bottom: 21px;
    margin-top: 15px;
    font-size: 37px;
}

.contant-grade-perfil-conteudo.v2 h5 {
    clear: both;
    margin: 0px 0px 6px 0px;
    font-size: 20px;
    font-weight: 600;
    border-top: 1px solid #66666630;
    padding-top: 16px;
}

.contant-grade-perfil-conteudo.v2 .totais-datas {
    padding: 0px;
}

.contant-grade-perfil-conteudo.v2 .totais-objetivos {
    padding: 0px 0px 20px 0px;
}

.contant-grade-perfil-conteudo.v2 .periodo {
    text-transform: uppercase;
    margin-bottom: 20px;
}

#tabd2-6 .table-datas-selecionadas .item {
    max-width: 261px;
    margin: auto;
}

#tabd2-6 .table-datas-selecionadas .item .ttl {
    float: left;
    width: 90px;
    text-transform: uppercase;
    font-weight: 400;
    font-size: 15px;
    padding: 5px 0px 0px 0px;
}

#tabd2-6 .table-datas-selecionadas .item input {
    float: right;
    background: var(--color-border);
    border: 0px;
    width: 42px;
    text-align: center;
    font-size: 15px;
    font-weight: 500;
    border-radius: 8px;
}

#tabd2-6 .info {
    text-align: center;
    opacity: 0.7;
}

.item-post.tarefa {
    padding-bottom: 30px;
}

.item-post.tarefa .edicao {
    padding-bottom: 30px;
    padding-top: 10px;
}

.item-post.tarefa .edicao .ipt-titulo-post {
    height: 50px;
    border-radius: 6px;
    transition: 0.3s;
    margin-left: -5px;
}

.item-post.tarefa .edicao .ipt-titulo-post:hover {
    background: #ffffff14;
}

.item-post.tarefa .edicao .texto {
    padding: 32px 0px 35px 0px;
    border-radius: 0px;
    min-height: 120px;
    font-size: 14px;
    font-weight: 400;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    /* background: #00000014; */
    /* border-radius: 13px; */
    margin-bottom: 38px;
    /* border: 1px solid #ffffff1f; */
}

.item-post.tarefa .edicao .parametros {
    padding: 17px 0px 24px 0px;
}

.item-post.tarefa .edicao .parametros .col {
    padding: 0px 18px 0px 0px;
    float: left;
}

.item-post.tarefa .edicao .parametros .item {
    padding: 5px 0px;
}

.item-post.tarefa .edicao .parametros .item .p-icon {
    width: 15px;
    height: 15px;
    float: left;
    opacity: 0.7;
    margin: 2px 10px 0px 0px;
}

.item-post.tarefa .edicao .parametros .item .label {
    width: 138px;
    font-weight: 450;
    font-size: 13px;
    float: left;
    opacity: 0.7;
}

.item-post.tarefa .edicao .parametros .item .valor {
    float: left;
    width: calc(100% - 165px);
    padding: 0px 10px;
    font-size: 14px;
    border-radius: 7px;
    cursor: pointer;
    margin-top: -7px;
    transition: 0.3s;
    height: 34px;
    position: relative;
}

.item-post.tarefa .edicao .parametros .item .valor:hover {
    background: #0000000d;
}

/* Perfis pode ter varios chips vinculados (flex-wrap). A altura fixa de 34px
   do .valor serve para campos de uma linha; aqui ela precisa crescer, senao os
   chips transbordam e sobrepoem a divisoria/conteudo abaixo dos parametros. */
.item-post.tarefa .edicao .parametros .item .valor.perfis {
    height: auto;
    min-height: 34px;
    padding-top: 5px;
    padding-bottom: 5px;
}

.item-post.tarefa .edicao .parametros .item .valor .null {
    opacity: 0.3;
    font-size: 12px;
    line-height: 34px;
    position: absolute;
    top: 0px;
}

.menu-sistema .divisoria {
    padding-bottom: 17px;
    padding-top: 17px;
    margin-top: 2px;
    border-top: 0px solid rgb(241 241 241);
}

.menu-sistema .divisoria h4 {
    font-size: 10px;
    opacity: 0.5;
    float: left;
    margin: 0px;
    text-transform: uppercase;
}

.menu-sistema .espacos {
    padding-bottom: 15px;
}

.menu-sistema .espacos .m h4 {
    font-size: 10px;
    opacity: 0.5;
    float: left;
    margin: 0px;
    text-transform: uppercase;
}

.menu-sistema .espacos .m {
    margin-top: 10px;
    margin-bottom: 6px;
    padding-top: 12px;
    border-top: 0px solid rgb(241 241 241);
}

.menu-sistema .espacos .m .btn-add {
    float: right;
    background: #ffffff1a;
    width: 18px;
    height: 18px;
    display: grid;
    align-items: center;
    border-radius: 5px;
    cursor: pointer;
    margin-top: -2px;
    transition: 0.3s;
    display: none;
}

.menu-sistema .espacos .m .btn-add svg {
    width: 10px;
    margin: auto;
}

.menu-sistema .espacos .m .btn-add:hover {
    background: #ffffff26;
}

.menu-sistema .espacos .espacos-lst .espaco-item {
    border-radius: 5px;
    display: block;
    margin-bottom: 2px;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco {
    cursor: pointer;
    padding: 5px 6px;
    margin-left: -6px;
    display: block;
    border-radius: 6px;
    transition: 0.3s;
    padding-right: 0px;
    position: relative;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco:hover .titulo {
    opacity: 0.9;
    width: calc(100% - 75px) !important;
}

.menu-sistema .espacos .espacos-lst .espaco-item.open .hdr-espaco .titulo {
    width: calc(100% - 75px) !important;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco .titulo {
    font-size: 13.7px;
    font-weight: 500;
    transition: 0.3s;
    float: left;
    width: calc(100% - 34px);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    line-height: 20px;
    transition: 0.0s;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco .icon {
    float: left;
    font-size: 12px;
    background: #ffffff36;
    color: #fff;
    width: 20px;
    height: 20px;
    border-radius: 5px;
    margin-right: 11px;
    align-items: center;
    display: grid;
    text-align: center;
    font-weight: 600;
    position: relative;
    overflow: hidden;
}

.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas {
    padding: 3px 0px 3px 14px;
    border-left: 1px solid #0000002e;
    width: calc(100% - 9px);
    margin-left: 9px;
    display: none;
}

.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item {
    cursor: pointer;
    padding: 6px 8px;
    margin-left: -9px;
    margin-bottom: 2px;
    display: block;
    border-radius: 6px;
    transition: 0.3s;
    color: rgb(0 0 0 / 77%);
    fill: rgb(0 0 0 / 77%);
    padding-right: 0px;
    position: relative;
}

.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item .hdr-lista .icon {
    float: left;
    width: 14px;
    height: 14px;
    margin: 1px 0px 0px 0px;
}

.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item .hdr-lista .titulo {
    float: left;
    padding: 0px 0px 0px 9px;
    font-size: 13px;
    font-weight: 500;
    line-height: 16px;
    width: calc(100% - 15px);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.popup-delta .item-post .lst-membros-all {
    width: 100%;
    /* padding: 3px 0px 0px 0px; */
}

.popup-delta .item-post.tarefa .lst-membros-all .btn-add-membro {
    float: right;
    margin: 1px 0px 0px 0px;
    opacity: 0;
    transition: 0.3s;
}

.item-post.tarefa .edicao .parametros .item .valor.responsaveis:hover .btn-add-membro {
    opacity: 0.7;
}

.popup-delta .item-post .btns-t-anteriores {
    width: fit-content;
    border: 1px solid #00000021;
    border-radius: 6px;
    overflow: hidden;
    margin: 0px 0px 8px 0px;
}

.popup-delta .item-post .btns-t-anteriores .item {
    float: left;
    padding: 2px 9px;
    border-right: 1px solid #00000021;
    font-size: 13px;
    color: #000000b8;
    font-weight: 400;
}

.popup-delta.tarefa .item-post .lst-membros-all .item .thumb-user {
    height: 28px;
    width: 28px;
    border: 1px solid #4f4f4f;
    margin: 0px;
}

.date-basic {
    background-color: #00000000 !important;
    border: 0px;
    height: 19px;
    width: 199px;
    cursor: pointer;
    font-weight: 600;
    padding-top: 1px;
    padding-right: 0px;
    font-size: 13px;
    padding: 0px 0px 0px 0px;
    color: #000000;
    text-transform: uppercase;
}

.tarefa .parametros .date-basic {
    margin: 0px 0px 0px 0px;
    font-weight: 500;
    text-align: left;
    text-transform: unset;
    float: left;
    width: calc(100% - 19px);
}

.date-basic:focus {
    color: #000;
}

.tarefa .parametros .valor.status-tarefa .btn-status-tarefa {
    margin: 4px 0px 0px -3px;
}

.btn-status-tarefa {
    background: #272727;
    display: block;
    float: left;
    height: auto;
    border-radius: 8px;
    position: relative;
    cursor: pointer;
}

.btn-status-tarefa .txt {
    float: left;
    line-height: 12.7px;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 500;
    padding: 7px 7px 6px 7px;
    max-width: 207px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    width: calc(100% - 29px);
}

.btn-status-tarefa .btn {
    float: left;
    padding: 8px 9px 7px 9px;
    border-left: 1px solid #fff;
    margin-left: 0px;
    border-radius: 0px;
}

.btn-status-tarefa .btn svg {
    width: 9px;
}

.tarefa .parametros .valor.data .btn-limpar {
    float: right;
    padding: 11px 4px;
    cursor: pointer;
    transition: 0.3s;
    opacity: 0;
}

.tarefa .parametros .valor.data:hover .btn-limpar {
    opacity: 1;
}

.tarefa .parametros .valor.data .btn-limpar svg {
    width: 11px;
}

.dropdown-default.tarefa-status {
    min-height: 95px;
    left: 7px;
    top: 26px;
    min-width: 236px;
    padding: 0px 0px 0px 0px;
    background: #ffffff;
}

.dropdown-default.tarefa-status::after {
    left: 9px;
    background: #ffffff;
}

.dropdown-default.tarefa-status .ttl {
    display: block;
    position: relative;
    z-index: 1;
    font-size: 11px;
    font-weight: 400;
    opacity: 0.4;
    padding: 6px 14px 5px 9px;
}

.dropdown-default.tarefa-status .group {
    border-top: 1px solid #0000000d;
    position: relative;
    z-index: 1;
    padding: 8px 7px 9px 7px;
}

.dropdown-default.tarefa-status .group:first-child {
    border-top: 0px;
}

.dropdown-default.tarefa-status .lst-status .st-item {
    text-transform: uppercase;
    font-size: 12px;
    padding: 6px 9px;
    border-radius: 8px;
    transition: 0.3s;
    cursor: pointer;
    font-weight: 500;
}

.dropdown-default.tarefa-status .lst-status .st-item:hover {
    background: #00000008;
}

.dropdown-default.tarefa-status .lst-status .st-item .st-icon {
    float: left;
    padding: 1px 8px 0px 0px;
}

.st-icon .st {
    width: 14px;
    height: 14px;
    /* padding: 1.5px; */
    border-radius: 50%;
    border: 1.5px dotted #ffffff7a;
    display: grid;
    align-items: center;
}

.dropdown-default.tarefa-status .lst-status .st-item .st-txt {
    float: left;
    line-height: 17px;
    width: calc(100% - 41px);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

[data-percent] {
    --percent: 0;
    width: 50px;
    height: 50px;
    position: relative;
}

[data-percent="0"] {
    --percent: 0;
}

[data-percent="10"] {
    --percent: 10;
}

[data-percent="20"] {
    --percent: 20;
}

[data-percent="30"] {
    --percent: 30;
}

[data-percent="40"] {
    --percent: 40;
}

[data-percent="50"] {
    --percent: 50;
}

[data-percent="60"] {
    --percent: 60;
}

[data-percent="70"] {
    --percent: 70;
}

[data-percent="75"] {
    --percent: 75;
}

[data-percent="80"] {
    --percent: 80;
}

[data-percent="90"] {
    --percent: 90;
}

[data-percent="100"] {
    --percent: 100;
}

[data-percent] .circle {
    width: calc(100% - 3px);
    height: calc(100% - 3px);
    background: conic-gradient(#4caf50 calc(var(--percent) * 1%), #e0e0e000 0);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: sans-serif;
    font-weight: bold;
    font-size: 0.7em;
    border-radius: 50%;
    margin: auto;
    padding: 1px 1px;
}

.dropdown-default.tarefa-status .lst-status .st-item svg {
    width: 8px;
}

.dropdown-default.tarefa-status .lst-status .st-item .ck {
    width: 16px;
    height: 17px;
    fill: #050505;
    float: right;
    opacity: 0;
}

.dropdown-default.tarefa-status .lst-status .st-item.atv .ck {
    opacity: 1;
}

.dropdown-default.tarefa-status .lst-status .st-item.atv {
    font-weight: 600;
}

.table-01 .inf-dt.vencido {
    color: #ff4747 !important;
    font-weight: 400;
    width: fit-content;
    opacity: 1;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco:hover {
    background: #2946540d;
}

.t-divisao .t-hdr .t-ttl {
    font-size: 16px;
    margin-bottom: 7px;
    font-weight: 500;
}

.t-upload .t-n {
    font-size: 12px;
    text-align: center;
    border-radius: 6px;
    padding: 13px 5px;
    border: 1px dashed #0000001f;
    cursor: pointer;
    color: #00000080;
    font-weight: 200;
    transition: 0.3s;
}

.t-descricao {
    transition: 0.3s;
    position: relative;
}

.t-descricao .t-ttl-descricao {
    opacity: 0;
    font-size: 9px;
    position: absolute;
    text-transform: uppercase;
    top: 10px;
    left: 0px;
    font-weight: 300;
    transition: 0.5s;
    letter-spacing: 1px;
}

.t-descricao:hover .t-ttl-descricao {
    opacity: 0.3;
}

.btns-t-espacolista {
    position: fixed;
    top: 18px;
    left: 65px;
    z-index: 99;
    font-weight: 550;
    width: calc(100% - 450px);
}

.btns-t-espacolista .item {
    float: left;
    padding-right: 8px;
    font-size: 14px;
    width: 100%;
}

.btns-t-espacolista .item .icon {
    float: left;
    color: #fff;
    font-size: 12px;
    background: #ffffff36;
    width: 20px;
    height: 20px;
    border-radius: 5px;
    margin-right: 7px;
    align-items: center;
    display: grid;
    text-align: center;
    font-weight: 600;
}

.btns-t-espacolista .item .txt {
    float: left;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

/* GRID DE ANEXOS DA TAREFA.
   Era um grid de FLOAT (as celulas sao .col-* do bootstrap com float:left). Isso
   funciona enquanto todas as celulas tem a MESMA altura: basta uma mais alta que
   as vizinhas para ela virar uma prateleira, e o primeiro item da linha seguinte
   nao caber embaixo dela - some para a direita e deixa um buraco na coluna 1.
   Foi o que apareceu quando os documentos entraram no mesmo grid: o card de doc
   e alguns pixels mais alto que o de arquivo (borda + caixa do titulo).

   Flex resolve na raiz em vez de perseguir a diferenca de altura: cada linha
   passa a ter a altura da celula mais alta e o alinhamento e no topo, entao
   celula desigual nunca mais abre buraco. As .col-* do bootstrap 4 ja sao
   flex-based (flex: 0 0 X% + max-width), entao as larguras nao mudam, e o
   `float` das celulas simplesmente deixa de ter efeito em contexto flex. */
.midias-tarefas {
    padding: 6px 0px;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
}

/* O clearfix (declarado la em cima, num grupo compartilhado) viraria um ITEM
   FLEX vazio no fim da lista - inofensivo na maioria das larguras, mas capaz de
   empurrar a ultima celula para a linha seguinte. Em flex ele nao tem mais
   funcao nenhuma. */
.midias-tarefas::after {
    display: none;
}

.midias-tarefas .midia-item {
    float: left;
    padding: 10px 10px 10px 0px;
    position: relative;
    fill: #fff;
    color: #fff;
}

.midias-tarefas .midia-item .img {
    width: 100%;
    aspect-ratio: 1;
    background-color: #ffffff0d;
    border: 1px solid var(--color-border);
    background-size: cover;
    background-position: center;
    border-radius: 10px;
    position: relative;
    overflow: hidden;
    background-clip: padding-box;
}

.midias-tarefas .midia-item .infos {
    padding: 3px 0px 0px 1px;
}

[placeholder]:empty::before {
    content: attr(placeholder);
    color: #7e7e7ea6;
}

[placeholder]:empty:focus::before {
    content: "";
}

.midias-tarefas .midia-item .infos .t-data {
    font-size: 11px;
    font-weight: 400;
    float: left;
    opacity: 0.5;
    color: #000
}

.midias-tarefas .midia-item .infos .t-user {
    float: right;
}

.midias-tarefas .midia-item .infos .t-user .thumb {
    width: 16px;
    height: 16px;
}

.midias-tarefas .midia-item .t-type {
    font-size: 10px;
    position: absolute;
    top: 16px;
    left: 7px;
    padding: 2px 7px;
    border-radius: 5px;
    text-transform: uppercase;
    font-weight: 500;
    background: #1b1b1bbf;
}

.midia-item:hover .t-expand,
.midia-item:hover .bt {
    opacity: 1;
}

.midias-tarefas .midia-item .t-expand {
    position: absolute;
    width: 100%;
    height: 100%;
    background: #2020209e;
    display: grid;
    align-items: center;
    transition: 0.3s;
    opacity: 0;
    cursor: pointer;
}

.item-post.conteudo .bt {
    background: #353535b0;
    fill: #fff;
    padding: 0px;
    border-radius: 8px;
    transition: 0.2s;
    /* width: 24px; */
    height: 24px;
    display: flex;
    align-items: center;
}

.midias-tarefas .midia-item .t-expand svg {
    width: 33px;
    margin: auto;
}

.midia-item .bt {
    width: 25px;
    padding: 5px 5px;
    border-radius: 5px;
    opacity: 0;
    cursor: pointer;
    transition: 0.3s;
}

.midia-item .bt svg {
    height: 14px;
    margin: auto;
}

.midia-item .btn-download {
    position: absolute;
    top: 5px;
    right: 5px;
}

.midia-item .btn-remover {
    position: absolute;
    right: 35px;
    top: 5px;
}

/* Alterar capa de video: mesmo estilo .bt, ancorado no canto esquerdo. */
.midia-item .btn-alterar-capa {
    position: absolute;
    left: 5px;
    top: 5px;
    width: auto;
    /* sobrescreve o .bt (25px) p/ caber o rotulo */
    gap: 6px;
    padding: 3px 9px !important;
    white-space: nowrap;
    color: #fff;
}

.midia-item .btn-alterar-capa svg {
    fill: none;
    stroke: currentColor;
    flex: 0 0 auto;
}

.midia-item .btn-alterar-capa .bt-label {
    font-size: 12px;
    line-height: 1;
}

/* ===================================================================
   Seletor "Escolher imagem do perfil" (troca de capa de video)
   Mini-Drive: pastas + busca + ordenacao + breadcrumb + scroll infinito
   =================================================================== */
.capa-pick {
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    /* largura explicita: o .boxpop e width:auto, entao sem isto o grid (1fr)
       nao consegue calcular as colunas e os itens saem com tamanhos errados. */
    width: min(860px, 92vw);
    height: min(76vh, 760px);
    padding: 22px;
}

.capa-pick * {
    box-sizing: border-box;
}

.capa-pick-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px 16px;
    flex-wrap: wrap;
    padding: 0 34px 14px 0;
    /* 34px a direita: espaco para o X de fechar */
    border-bottom: 1px solid var(--color-bg-01, #2946540d);
}

.capa-pick-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text, #294654);
    flex: 0 0 auto;
}

.capa-pick-tools {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    justify-content: flex-end;
    min-width: 0;
}

.capa-pick-search {
    display: flex;
    align-items: center;
    gap: 8px;
    background: var(--color-bg-01, #2946540d);
    border-radius: 8px;
    padding: 8px 12px;
    flex: 1 1 auto;
    min-width: 0;
    max-width: 280px;
}

.capa-pick-search svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
    opacity: 0.55;
    flex: 0 0 auto;
}

.capa-pick-search input {
    border: none;
    background: none;
    outline: none;
    font-size: 14px;
    width: 100%;
    min-width: 0;
    color: inherit;
}

.capa-pick-ordenar {
    border: 1px solid var(--color-bg-01, #2946540d);
    background: var(--color-bg, #fff);
    border-radius: 8px;
    padding: 8px 10px;
    font-size: 13px;
    cursor: pointer;
    color: inherit;
}

.capa-pick-breadcrumb {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    padding: 12px 0 4px;
    font-size: 13px;
}

.capa-pick-breadcrumb .capa-bc-item {
    cursor: pointer;
    color: var(--color-text, #294654);
    opacity: 0.7;
    transition: 0.15s;
}

.capa-pick-breadcrumb .capa-bc-item:last-child {
    opacity: 1;
    font-weight: 600;
}

.capa-pick-breadcrumb .capa-bc-item:hover {
    opacity: 1;
}

.capa-pick-breadcrumb .capa-bc-sep {
    opacity: 0.4;
}

.capa-pick-scroll {
    flex: 1;
    overflow-y: auto;
    padding: 10px 4px 4px;
}

.capa-pick-pastas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.capa-pick-pasta {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 12px;
    border-radius: 10px;
    background: var(--color-bg-01, #2946540d);
    cursor: pointer;
    transition: 0.15s;
}

.capa-pick-pasta:hover {
    background: #2946541a;
    transform: translateY(-1px);
}

.capa-pick-pasta svg {
    width: 20px;
    height: 20px;
    fill: #f5b94d;
    flex: 0 0 auto;
}

.capa-pick-pasta-nome {
    flex: 1;
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.capa-pick-pasta-qtd {
    font-size: 11px;
    opacity: 0.55;
}

.capa-pick-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
    gap: 10px;
}

.capa-pick-item {
    aspect-ratio: 1 / 1;
    border-radius: 10px;
    background-color: var(--color-bg-01, #2946540d);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    cursor: pointer;
    border: 2px solid transparent;
    transition: 0.15s;
}

.capa-pick-item:hover {
    border-color: var(--color-text, #294654);
    transform: scale(1.03);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
}

.capa-pick-vazio {
    text-align: center;
    margin-top: 28px;
    opacity: 0.6;
    font-size: 14px;
}

.capa-pick-loader {
    display: flex;
    justify-content: center;
    padding: 18px;
}

.capa-pick-spin {
    width: 26px;
    height: 26px;
    border: 3px solid var(--color-bg-01, #2946540d);
    border-top-color: var(--color-text, #294654);
    border-radius: 50%;
    animation: capaPickSpin 0.7s linear infinite;
}

@keyframes capaPickSpin {
    to {
        transform: rotate(360deg);
    }
}

/* Telas medias/pequenas: ocupa mais a tela e reduz colunas/paddings */
@media (max-width: 640px) {
    .capa-pick {
        width: 94vw;
        height: 84vh;
        padding: 16px 14px;
    }

    .capa-pick-head {
        padding-right: 30px;
        gap: 10px;
    }

    .capa-pick-title {
        font-size: 16px;
        width: 100%;
    }

    .capa-pick-tools {
        gap: 8px;
    }

    .capa-pick-search {
        max-width: none;
    }

    .capa-pick-ordenar {
        flex: 0 0 auto;
    }

    .capa-pick-pastas {
        grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
        gap: 8px;
    }

    .capa-pick-grid {
        grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
        gap: 8px;
    }
}

@media (max-width: 400px) {
    .capa-pick-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .capa-pick-pastas {
        grid-template-columns: 1fr 1fr;
    }
}

.espaco-item.atv {
    background: #ffffff14;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco.atv {
    background: #2946540d;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco.atv .titulo {
    opacity: 1;
    width: calc(100% - 75px);
    font-weight: 600;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco .icon .icon-open-close {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    background: #e4e4e4;
    display: grid;
    align-items: center;
    opacity: 0;
    transition: 0.2s;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco .icon .icon-open-close svg {
    width: 9px;
    margin: auto;
    transition: 0.2;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco:hover .icon .icon-open-close {
    opacity: 1;
}

.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item:hover {
    background: #00000014;
}

.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item.atv {
    background: #2946540d;
    color: rgb(0 0 0);
    fill: rgb(0 0 0);
}

.btn-novo-espaco {
    padding: 6px 10px;
    border-radius: 5px;
    margin-left: -7px;
    margin-top: 4px;
    opacity: 0.3;
    font-weight: 500;
    cursor: pointer;
    transition: 0.3s;
}

.btn-novo-espaco svg {
    width: 13px;
    float: left;
    margin-right: 15px;
}

.btn-novo-espaco .txt {
    float: left;
    font-size: 14px;
    line-height: 14px;
    letter-spacing: -0.015em;
    text-wrap: balance;
}

.btn-novo-espaco:hover {
    opacity: 1;
}

.espaco-item.open .espaco-listas {
    display: block !important;
}

.espaco-item.open .hdr-espaco .icon .icon-open-close svg {
    transform: rotate(90deg);
}

.m-t-btns-configs {
    float: right;
    display: none;
}

.m-t-btns-configs .t-btn {
    float: left;
    width: 16px;
    height: 16px;
    display: grid;
    align-items: center;
    border-radius: 5px;
    cursor: pointer;
    transition: 0.3s;
    margin-right: 4px;
}

.m-t-btns-configs .t-btn svg {
    width: 10px;
    margin: auto;
}

.m-t-btns-configs .t-btn:hover {
    background: #ffffff1a;
}

.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item:hover .m-t-btns-configs,
.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco:hover .m-t-btns-configs,
.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco.atv .m-t-btns-configs,
.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item.atv .m-t-btns-configs {
    display: block !important;
}

.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco .m-t-btns-configs {
    margin-top: 2px;
}

.contant-criar-tarefa {
    max-width: 520px;
    padding: 14px;
}

.dropdown-default.t-menu-opcoes::after {
    display: none;
}

.dropdown-default.t-menu-opcoes .it-bt {
    padding: 3px 7px;
    opacity: 0.8;
    cursor: pointer;
    border-radius: 8px;
    transition: 0.3s;
    font-weight: 400;
}

.dropdown-default.t-menu-opcoes .it-bt:hover {
    background: #0000000a;
}

.dropdown-default.t-menu-opcoes .it-bt .txt {
    float: left;
    width: calc(100% - 13px);
    padding: 0px 0px 0px 10px;
}

.dropdown-default.t-menu-opcoes .it-bt svg {
    width: 11px;
    height: 11px;
    float: left;
    margin: 5px 0px 0px 0px;
}

.dropdown-default.t-menu-opcoes .divisao {
    width: 100%;
    display: block;
    border-top: 1px solid #00000012;
    margin: 8px 0px;
}

.dropdown-default.t-menu-opcoes h4 {
    font-size: 13px;
    padding: 2px 0px 0px 7px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    font-weight: 600;
}

.contant-criar-tarefa h3 {
    font-size: 28px;
    padding: 2px 0px 10px 3px;
}

.item-post.tarefa .lst-membros-all .item .thumb-user {
    height: 28px;
    width: 28px;
}

.t-menu-opcoes {
    background-color: #ffffff;
    font-size: 14px;
    padding: 12px 8px;
    width: 178px;
}

/* ===== Dropdown "Criar novo" (estilo ClickUp) ===== */
.dropdown-default.t-criar-novo {
    width: 268px;
    padding: 8px;
    border-radius: 14px;
    box-shadow: 0 10px 38px -8px rgba(0, 0, 0, .22), 0 3px 9px -3px rgba(0, 0, 0, .1);
    border: 1px solid #00000010;
}

.dropdown-default.t-criar-novo .cn-titulo {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #9499a3;
    padding: 4px 8px 8px 8px;
}

.dropdown-default.t-menu-opcoes.t-criar-novo .it-bt {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 8px;
    border-radius: 10px;
    opacity: 1;
    cursor: pointer;
    transition: background .15s ease;
}

.dropdown-default.t-menu-opcoes.t-criar-novo .it-bt:hover {
    background: #f3f5f8;
}

.dropdown-default.t-criar-novo .cn-ico {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.dropdown-default.t-menu-opcoes.t-criar-novo .it-bt .cn-ico svg {
    float: none;
    width: 17px;
    height: 17px;
    margin: 0;
}

.dropdown-default.t-criar-novo .cn-info {
    min-width: 0;
    line-height: 1.25;
}

.dropdown-default.t-criar-novo .cn-nome {
    font-size: 14px;
    font-weight: 600;
    color: #1f2430;
}

.dropdown-default.t-criar-novo .cn-desc {
    font-size: 12px;
    font-weight: 400;
    color: #9499a3;
    margin-top: 1px;
}

.dropdown-default.t-menu-opcoes.t-criar-novo .divisao {
    margin: 6px 8px;
}

/* Cores dos icones */
.dropdown-default.t-criar-novo .cor-conteudo {
    background: #e9f1ff;
}

.dropdown-default.t-criar-novo .cor-conteudo svg {
    fill: #2f6bff;
}

.dropdown-default.t-criar-novo .cor-tarefa {
    background: #e7f8ee;
}

.dropdown-default.t-criar-novo .cor-tarefa svg {
    fill: #18a957;
}

.dropdown-default.t-criar-novo .cor-lote {
    background: #f3ecff;
}

.dropdown-default.t-criar-novo .cor-lote svg {
    fill: #8a3ffc;
}

.dropdown-default.t-criar-novo .cor-perfil {
    background: #fff0e6;
}

.dropdown-default.t-criar-novo .cor-perfil svg {
    fill: #ff7a1a;
}

.t-editando-title {
    border-radius: 7px;
    padding: 0px 0px 0px 30px;
    position: absolute;
    top: 0px;
    left: 0px;
    border: 1px solid;
    font-size: 13px;
    width: 100%;
    line-height: 28px;
    overflow: hidden;
    height: 28px;
}

.t-editando-title .ipt:focus {
    outline: none;
}

.t-editando-title .ipt {
    background: #fff;
    position: absolute;
    height: 28px;
    top: -1px;
    right: 0px;
    width: calc(100% - 29px);
    overflow: hidden;
    white-space: nowrap;
}

.hdr-espaco .t-editando-title {
    height: 31px;
}

.hdr-espaco .t-editando-title .ipt {
    line-height: 31px;
    width: calc(100% - 38px);
}

.editar-espaco {
    padding: 0px;
}

.editar-espaco .group-campo {
    float: left;
    padding: 0px 14px 21px 0px;
}

.editar-espaco .group-campo label {
    opacity: 0.7;
    font-size: 13px;
}

.editar-espaco .group-campo input {
    float: right;
    width: calc(100% - 41px);
    border: 1px solid #00000030;
    color: #000000;
    background: #00000000;
    padding: 0px 8px;
    height: 37px;
    border-radius: 7px;
}

.icone-espaco-edit {
    float: left;
    font-size: 22px;
    background: #ffffff36;
    color: #fff;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    align-items: center;
    display: grid;
    text-align: center;
    font-weight: 600;
    position: relative;
    cursor: pointer;
}

.editar-espaco .group-campo .ipt-prop-atual {
    border: 1px solid #00000040;
    border-radius: 6px;
    padding: 4px 7px;
    cursor: pointer;
    position: relative;
}

.editar-espaco .group-campo .ipt-prop-atual .thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    float: left;
    margin: 1px 0px 0px 0px;
    border: 0px;
}

.editar-espaco .group-campo .ipt-prop-atual .nome {
    float: left;
    width: calc(100% - 50px);
    padding-left: 11px;
    line-height: 26px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.editar-espaco .group-campo.last {
    padding-right: 0px;
}

.editar-espaco .ftr .btn,
.editar-lista .ftr .btn {
    float: right;
}

.editar-espaco .ftr .btn-salvar,
.editar-lista .ftr .btn-salvar {
    background: #000000;
    color: #ffffff;
    font-size: 14px;
    font-weight: 500;
    padding: 5px 9px;
    border-radius: 7px;
    cursor: pointer;
}

.editar-espaco .group-mebros-box {
    clear: both;
    padding: 10px 13px;
    border: 1px solid #0000001f;
    border-radius: 18px;
    margin-bottom: 0px;
    cursor: pointer;
    position: relative;
}

.editar-espaco .group-mebros-box label {
    opacity: 0.7;
    font-size: 13px;
    margin: 0px 0px 4px 0px;
}

.editar-espaco .group-mebros-box .lst-membros .item {
    float: left;
    border: 2px solid #ffffff0f;
    border-radius: 50%;
    margin: 0px 5px 5px 0px;
}

.editar-espaco .group-mebros-box .lst-membros .item .thumb {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
}

.editar-espaco .group-mebros-box .ico-bt {
    width: 25px;
    position: absolute;
    right: 7px;
    top: calc(50% - 13px);
    opacity: 0.5;
}

.dropdown-default.t-select-itens {
    width: 233px;
    top: 37px;
    left: 0px;
    position: absolute !important;
    padding: 9px 11px;
    width: 100%;
    /* max-height: 500px; */
    overflow: auto;
}

.dropdown-default.t-select-itens .it-item {
    width: 100%;
    padding: 4px 9px;
    border-radius: 6px;
    cursor: pointer;
}

.dropdown-default.t-select-itens .thumb {
    float: left;
    border: 2px solid #ffffff0f;
    border-radius: 50%;
    margin: 0px 5px 5px 0px;
    width: 30px;
    height: 30px;
    background-size: cover;
    background-position: center;
}

.dropdown-default.t-select-itens .txt {
    float: left;
    font-size: 14px;
    padding-left: 6px;
    line-height: 23px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.dropdown-default.t-select-itens::after {
    opacity: 0 !important;
}

.dropdown-default.t-select-itens .it-item:hover {
    background: #3a3a3a17;
}

.dropdown-default.t-select-cores {
    position: absolute !important;
    top: 41px;
    left: 0px;
    width: 217px;
    padding: 9px;
}

.dropdown-default.t-select-cores .it-cor {
    float: left;
    padding: 3px;
    border: 3px solid #00000000;
    border-radius: 50%;
    margin: 0px;
    cursor: pointer;
}

.dropdown-default.t-select-cores .it-cor .thumb {
    width: 20px;
    height: 20px;
    border-radius: 50%;
}

.dropdown-default.t-select-cores .it-cor.atv {
    border-color: #fff;
}

.btn-item-tarefa-open .status {
    border-radius: 6px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    max-width: 120px;
}

.contant-lista-estrutura .estrutura-lista .group {
    padding-bottom: 30px;
    padding-top: 15px;
}

.contant-lista-estrutura.tarefa table tr td:last-child,
.contant-lista-estrutura.tarefa table tr th:last-child {
    padding-right: 0;
    padding-top: 3px;
    padding-bottom: 3px;
}

.contant-lista-estrutura.tarefa table tr td:first-child,
.contant-lista-estrutura.tarefa table tr th:first-child {
    padding-left: 4px;
}

/* A PASTILHA DE STATUS, no tratamento flat.
   A cor vem inline (window.statusPaleta): saturada no texto e no icone, a mesma
   esmaecida no fundo. Aqui fica so a forma - pilula inteira e respiro em volta
   do icone, que o retangulo de raio 7 nao dava. */
.contant-lista-estrutura .estrutura-lista .titulo-group {
    height: auto;
    padding: 4px 9px 4px 6px;
    /* Levemente arredondado, como sempre foi. A pilula inteira mudava o peso
       da pastilha no quadro - o que a cor flat pedia era so mais respiro. */
    border-radius: 7px;
}

.titulo-group .st-icon {
    float: left;
    margin: -0.5px 0px 0px 0px;
}

.titulo-group .txt {
    float: left;
    padding-left: 5px;
    padding-right: 1px;
    line-height: 13px;
    font-size: 11px;
    text-transform: uppercase;
    font-weight: 600;
    max-width: 180px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.type-quadro {
    overflow: auto;
    max-width: 100% !important;
}

.type-calendario {
    overflow: auto;
    max-width: 100% !important;
}

.type-calendario .estrutura-lista {
    padding-top: 37px !important;
    padding-left: 0px;
    padding-right: 0px;
    overflow: hidden;
}

.type-calendario .estrutura-lista #cal-body {
    height: calc(100vh - 138px - var(--cal-cab-h, 0px));
}

.type-quadro .estrutura-lista {
    display: flex;
    flex-direction: row;
    gap: 10px;
    overflow-y: auto;
    /* height: calc(100vh - 0px); */
}

.type-quadro .estrutura-lista .group {
    width: 265px;
    min-width: 264px;
    float: left;
    display: inline-block;
    padding-top: 0px;
    padding-bottom: 0px;
}

.type-quadro .estrutura-lista .titulo-group {
    margin: 0px;
}

/* Cartao de CONTEUDO no quadro. O cartao de TAREFA (.qd-card) e governado
   inteiro pelo bloco "QUADRO DE TAREFAS" no fim deste arquivo - por isso sai
   daqui, em vez de disputar com `background: none !important`. */
.type-quadro .conteudo-item:not(.qd-card) {
    padding: 10px 10px;
    border: 1px solid #00000017;
    margin-top: 5px;
    border-radius: 9px;
    transition: 0.3s;
    min-height: 58px;
    cursor: pointer;
    position: relative;
    color: #000;
    background: none !important;
}

.type-quadro .conteudo-item:not(.qd-card):hover {
    border-color: #00000030;
}

.type-quadro .conteudo-item .titulo {
    font-size: 14px;
    line-height: 17px;
    padding-bottom: 4px;
    font-weight: 500;
}

.type-quadro .conteudo-item .lst-membros-all .item-mais {
    font-size: 9px;
    width: 21px;
    height: 21px;
    margin-top: -7px;
    position: relative;
    opacity: 0.9;
    margin-left: 2px;
}

.type-quadro .lst-conteudos-quad {
    background: #ffffff12;
    padding: 0px 6px;
    max-height: calc(100vh - 169px);
    overflow: auto;
    position: relative;
    transition: opacity 0.3s ease;
}

.type-quadro .conteudo-quad.drag-forbidden {
    opacity: 0.2;
}

.type-quadro .conteudo-quad.over {
    outline: 2px dashed #007bff;
    border-radius: 8px;
}

.type-quadro .hdr-lst-quad {
    background: #ffffff12;
    padding: 6px 6px 0px 6px;
    border-radius: 10px 10px 0px 0px;
}

.container-inicio {
    padding: 15px 20px;
    padding-top: 34px;
}

/* A BARRA DE MODOS E O TOPO DO BLOCO, NAO UMA PASTILHA FLUTUANDO SOBRE ELE.
 *
 * Ela e `absolute` dentro de `.header-pagina` (que e `relative` dentro de um
 * ancestral `fixed`), entao nao rola junto com a lista - ate ai, certo. O que
 * estava errado eram duas coisas que so aparecem quando a lista rola:
 *
 *   . LARGURA DE CONTEUDO. Sem `left/right`, um elemento absoluto encolhe para
 *     o tamanho do que tem dentro: 292px sobre um bloco de 1322. Os outros
 *     1030px ficavam descobertos e as linhas passavam POR FORA da barra.
 *   . FUNDO A 39%. `#fcfcfc63` com `blur(8px)` deixava o texto das linhas
 *     legivel ATRAVES da barra. Somado ao item acima, a mesma linha aparecia
 *     borrada atras das abas e nitida ao lado delas.
 *
 * Agora ela ocupa a largura inteira do cabecalho - que e a mesma do bloco da
 * lista - e o fundo e opaco, vindo do token, entao os dois temas seguem juntos
 * sem uma regra por tema. O `blur` sai: sobre fundo opaco ele so custa GPU.
 *
 * ! O `padding-left` acompanha o do `.header-pagina` (14px). Com os 10px
 *    antigos as abas nasciam 4px a esquerda do titulo - desalinhadas justamente
 *    com o elemento com que mais dividem o olho. */
.opcoes-exibicao {
    clear: both;
    position: absolute;
    /* ENCAIXA NA CAIXA INTERNA DO CARTAO, nao por cima dela.
     *
     * O cartao da lista e o proprio scroller `.centraliza`: borda de 1px e raio
     * de 22px, ocupando 267..1591 - exatamente a mesma caixa do
     * `.header-pagina` que ancora esta barra. Entao `top/left/right: 0`
     * cobriam a borda dos lados e quadravam os cantos arredondados do topo.
     *
     * Deslocar 1px em cada lado deixa a borda do cartao aparecendo, e o raio
     * interno (22 - 1 = 21px) acompanha a curva dela nos dois cantos de cima.
     * A base fica reta porque a barra continua dentro do cartao. */
    top: 52px;
    left: 1px;
    right: 1px;
    z-index: 5;
    padding: 9px 13px 0px;
    background-color: var(--color-bg);
    border-radius: 21px 21px 0 0;
    border-bottom: 1px solid var(--color-border);

    /* Flex com `gap` no lugar de float + `margin-right` por item: com seis abas
       (Lista, Quadro, Calendario, Metricas, Atividades, Documentos) a margem
       por item somava largura demais e a ultima encostava na borda.
       `align-items: flex-end` alinha os sublinhados numa linha so mesmo com
       rotulos de alturas diferentes. */
    display: flex;
    align-items: flex-end;
    gap: 20px;

    /* Em tela estreita as abas rolam na horizontal em vez de quebrar linha - a
       barra tem altura fixa e uma segunda linha vazaria por cima da lista. */
    overflow-x: auto;
    scrollbar-width: none;
}

.opcoes-exibicao::-webkit-scrollbar {
    display: none;
}

/* O clearfix era para o float que nao existe mais; como filho de um flex ele
   viraria um item vazio e o `gap` abriria um vao fantasma no fim da fila. */
.opcoes-exibicao::after {
    content: none;
}

/* AS ABAS DE MODO, no dialeto de abas do sistema.
 *
 * Eram tres quadradinhos coloridos (#353535, #3e63dd, #ff6100) com o glifo em
 * branco: tres cores fortes lado a lado que nao codificavam nada - o azul nao
 * queria dizer "quadro" nem o laranja "calendario" - e competiam com as cores
 * dos status, que ali ao lado SIM significam alguma coisa.
 *
 * Passam ao mesmo padrao do Workflow e da dashboard: sublinhado embaixo da aba
 * ativa, icone monocromatico herdando a tinta do texto. A cor volta a ser
 * informacao em vez de enfeite, e o estado ativo se le pelo contraste, nao pela
 * matiz. Flex no lugar de float - os `.btn-exibicao` sao irmaos numa linha. */
.opcoes-exibicao .btn-exibicao {
    float: none;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    padding: 3px 1px 9px;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    /* encosta na borda da barra */
    /* 72%, e nao 45%. A 45% a aba inativa lia como DESATIVADA - e ela nao
       esta: e so a que nao esta aberta. O estado ativo ja se distingue por
       peso 600 mais o sublinhado; escurecer as outras nao acrescenta
       informacao, so tira legibilidade de cinco alvos clicaveis. */
    color: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    cursor: pointer;
    transition: color .12s ease, border-color .12s ease;
}

.opcoes-exibicao .btn-exibicao:last-child {
    margin-right: 0;
}

.opcoes-exibicao .btn-exibicao:hover {
    color: var(--color-text-01);
}

.opcoes-exibicao .btn-exibicao.atv {
    color: var(--color-text-01);
    border-bottom-color: var(--color-text-01);
    cursor: default;
}

.opcoes-exibicao .btn-exibicao:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
    border-radius: 5px;
}

.opcoes-exibicao .btn-exibicao .opcao {
    display: flex;
    align-items: center;
    gap: 7px;
}

.opcoes-exibicao .btn-exibicao .opcao .txt {
    float: none;
    padding: 0;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 16px;
    white-space: nowrap;
}

.opcoes-exibicao .btn-exibicao.atv .opcao .txt {
    font-weight: 600;
}

/* O icone herda a tinta da aba - `fill: currentColor` e o que faz o estado
   ativo/inativo valer para ele tambem, sem uma regra por estado. */
.opcoes-exibicao .btn-exibicao .opcao svg {
    width: 14px;
    height: 14px;
    float: none;
    flex: 0 0 14px;
    background: none;
    fill: currentColor;
    padding: 0;
    border-radius: 0;
}

.btn-add-tarefa-quad {
    background: #ffffff12;
    padding: 12px 5px 13px 12px;
    border-radius: 0px 0px 10px 10px;
    cursor: pointer;
    opacity: 1;
}

.btn-add-tarefa-quad svg {
    width: 10px;
    float: left;
    opacity: 0.7;
}

.btn-add-tarefa-quad .txt {
    font-size: 12px;
    line-height: 10px;
    padding: 0px 0px 0px 4px;
    float: left;
    opacity: 0.7;
}

.btn-add-conteudo-quad {
    background: #ffffff12;
    padding: 12px 5px 13px 12px;
    border-radius: 0px 0px 10px 10px;
    cursor: pointer;
    opacity: 1;
}

.btn-add-conteudo-quad svg {
    width: 10px;
    float: left;
    opacity: 0.7;
}

.btn-add-conteudo-quad .txt {
    font-size: 12px;
    line-height: 10px;
    padding: 0px 0px 0px 4px;
    float: left;
    opacity: 0.7;
}

.type-quadro .conteudo-item .perfil .img {
    width: 19px;
    height: 19px;
    background-size: cover;
    border-radius: 6px;
    float: left;
    font-size: 9px;
}

.type-quadro .inf-txt {
    display: none !important;
}

.type-quadro .conteudo-item .perfil .nome {
    float: left;
    font-size: 12px;
    color: #00000099;
    font-weight: 400;
    padding: 0px 0px 0px 5px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    width: calc(100% - 59px);
}

.type-quadro .conteudo-item .data span {
    font-weight: 400;
    font-size: 14px;
}

.type-quadro .conteudo-item .data {
    width: 100%;
    font-weight: 600;
    font-size: 14px;
    line-height: 15px;
    padding: 8px 0px 2px 0px;
    clear: both;
}

.type-quadro .conteudo-item .membros {
    position: absolute;
    right: 5px;
    top: 12px;
    width: 28px;
}

.type-quadro .conteudo-item .membros .lst-membros-all {
    padding: 0px;
    margin-top: 6px;
}

.type-quadro .conteudo-item .membros .lst-membros-all .item {
    margin-right: 0px;
    margin-top: -6px;
}

.type-quadro .conteudo-item .membros .lst-membros-all .item .thumb-user {
    font-size: 10px;
}

.type-quadro .conteudo-item .tipo {
    display: table;
    border-radius: 5px;
    padding: 0px 6px;
    border: 0px solid #0000002e;
    margin: 3px 0px 1px 0px;
    font-weight: 500;
    font-size: 12px;
    background: #77777714;
    float: left;
}

.type-quadro .conteudo-item .codigo {
    opacity: 0.6;
    float: left;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    /* width: 100%; */
    font-size: 10px;
    margin: 7.4px 0px 0px 5px;
    line-height: 8px;
}

.type-lista .hidden-type-list {
    display: none;
}

.container-criar .campo-style-02 .dropdown2 {
    /* max-height: 310px; */
    overflow: auto;
}

.contant-equipes-home {
    padding: 15px 20px;
    padding-top: 24px;
}

.custom-scroll {
    overflow: auto;
    scrollbar-width: thin;
    scrollbar-color: #999 #0000;
}

.custom-scroll::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

.custom-scroll::-webkit-scrollbar-track {
    background: transparent;
}

.custom-scroll::-webkit-scrollbar-thumb {
    background-color: rgba(155, 155, 155, 0.4);
    border-radius: 8px;
    transition: background 0.3s ease;
}

.custom-scroll::-webkit-scrollbar-thumb:hover {
    background-color: rgba(155, 155, 155, 0.6);
}

.contant-espaco-dash {
    padding: 60px 20px 20px 21px;
}

.editar-lista {
    padding: 0px 0px;
}

.editar-lista .ftr {
    padding: 8px 14px 9px 14px;
    border-top: 1px solid #00000014;
    background: #00000008;
}

.editar-lista h2 {
    font-size: 19px;
    padding: 12px 35px 10px 14px;
    border-bottom: 1px solid #00000017;
    margin: 0px;
}

.editar-lista .estrutura-list-status-edit .col {
    float: left;
}

.editar-lista .estrutura-list-status-edit .menu-status {
    padding: 21px 0px 0px 15px;
}

.editar-lista .estrutura-list-status-edit .menu-status h3 {
    font-size: 12px;
    font-weight: 300;
    opacity: 0.5;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status {
    border-left: 1px solid #ffffff14;
    min-height: 112px;
    padding: 15px 20px 10px 20px;
    overflow: auto;
    max-height: calc(100vh - 145px);
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item {
    border: 1px solid #00000029;
    border-radius: 6px;
    margin-bottom: 6px;
    font-size: 14px;
    text-transform: uppercase;
    height: 37px;
    transition: 0.3s;
    position: relative;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status label {
    font-size: 12px;
    opacity: 0.5;
    padding: 4px 0px 6px 0px;
    margin: 0;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .titulo {
    float: left;
    width: calc(100% - 81px);
    font-size: 13px;
    line-height: 33px;
    background: #00000000;
    border: 0px;
    color: #000000;
    padding-left: 5px;
    text-transform: uppercase;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .drag {
    width: 21px;
    height: 36px;
    padding: 7px 0px 0px 5px;
    opacity: 0.5;
    float: left;
    cursor: grab;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .drag svg {
    width: 17px;
    height: 20px;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .btn-plus {
    float: right;
    width: 25px;
    padding: 10px 0px 0px 0px;
    cursor: pointer;
    height: 35px;
    position: relative;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .btn-plus svg {
    width: 12px;
    height: 14px;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .st-icon {
    float: left;
    padding: 6px 4px;
    cursor: pointer;
    border-radius: 5px;
    margin: 4px 0px 0px 0px;
    transition: 0.3s;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .st-icon:hover {
    background: #ffffff0a;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item:hover {
    border-color: #00000054;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.edit .ico-new-plus {
    display: none;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.edit .bt-enter {
    display: none;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.new {
    border-style: dashed;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.new .st-icon {
    display: none;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.new .btn-plus {
    opacity: 0;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.new .drag {
    opacity: 0;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.new .titulo {
    width: calc(100% - 106px);
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .bt-enter {
    float: right;
    fill: #000;
    color: #000;
    background: #fff;
    border-radius: 5px;
    margin: 7px 5px 0px 0px;
    padding: 0px 2px 0px 5px;
    height: 20px;
    cursor: pointer;
    display: none;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .bt-enter svg {
    width: 17px;
    height: 14px;
    margin: 5px 0px 0px 0px;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .bt-enter .txt {
    float: left;
    font-weight: 500;
    text-transform: capitalize;
    font-size: 11px;
    line-height: 21px;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.new .ico-new-plus {
    width: 22px;
    float: left;
    margin: 11px 0px 0px 0px;
    opacity: 0.4;
    padding-right: 6px;
    padding-left: 5px;
}

.dropdown-default.t-status-opcoes {
    position: absolute !important;
    top: 34px;
    right: -2px;
    width: 217px;
    padding: 9px;
}

.t-status-opcoes:after {
    display: none;
}

.t-status-opcoes .it {
    padding: 6px 8px;
    border-radius: 8px;
    cursor: pointer;
    transition: 0.3s;
}

.t-status-opcoes .it .txt {
    float: left;
    font-size: 14px;
    line-height: 15px;
    text-transform: math-auto;
    padding: 0px 0px 0px 8px;
}

.t-status-opcoes .it svg {
    float: left;
    opacity: 0.5;
}

.t-status-opcoes .it:hover {
    background: #ffffff0f;
}

.t-status-opcoes .it.bt-excluir {
    fill: #e83a3a;
    color: #e83a3a;
}

.t-status-opcoes .it.bt-excluir svg {
    opacity: 1;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.new.in-focus .ico-new-plus {
    display: none !important;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.new.in-focus .st-icon {
    display: block !important;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.deleted {
    display: none;
}

.editar-lista .estrutura-list-status-edit .infos-txt {
    font-size: 12px;
    padding: 0px 23px 0px 0px;
    opacity: 0.9;
    font-weight: 300;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .lst .item.dragging {
    opacity: 0.8;
    cursor: grabbing;
    z-index: 9999;
    position: relative;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .lst .item.forbidden {
    cursor: not-allowed;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .lst.over {
    border-color: #444;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .lst .placeholder {
    opacity: 0.4;
    transform: none !important;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .lst .item[data-id="0"] .drag,
.editar-lista .estrutura-list-status-edit .lst-edicao-status .lst .item[data-id="1"] .drag {
    opacity: 0.2;
    cursor: no-drop;
}

.lst-finalizado .dropdown-default {
    top: -50px !important;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .lst .item[data-id="0"] .st-icon,
.editar-lista .estrutura-list-status-edit .lst-edicao-status .lst .item[data-id="1"] .st-icon {
    pointer-events: none;
}

.item-post.tarefa .btn-t-plus {
    width: 28px;
    position: fixed;
    top: 9px;
    right: 319px;
    opacity: 1;
    transition: 0.3s;
    height: 40px;
    display: grid;
    align-items: center;
    padding: 0px 4px 0px 10px;
    cursor: pointer;
    z-index: 999;
}

.item-post.tarefa .btn-t-plus:hover {
    opacity: 1;
}

.type-quadro .lst-membros-all {
    float: right;
    padding: 0px 8px 0px 0px;
}

.type-quadro .lst-membros-all .thumb {
    width: 22px;
    height: 22px;
}

.type-quadro .datas {
    float: left;
    opacity: 0.8;
    margin-top: -2px;
}

.type-quadro .datas .data {
    padding: 0px;
    font-size: 11px;
    font-weight: 300;
    margin-top: 2px;
}

.type-quadro .datas .data span {
    font-size: 11px;
    opacity: 0.7;
}

/* Editor de blocos: estilos no bloco "EDITOR DE BLOCOS v2" no fim do arquivo. */

.editar-popuo-v3 {
    padding: 0px;
}

.editar-popuo-v3 h2 {
    font-size: 19px;
    padding: 27px 0px 5px 20px;
}

.editar-popuo-v3 .sub-titulo {
    opacity: 0.6;
    font-size: 13px;
    margin-bottom: 21px;
    padding: 0px 20px;
}

.editar-popuo-v3 .ftr {
    clear: both;
    border-top: 1px solid #0000000d;
    padding: 10px 20px 11px 0px;
    background: #0000000a;
}

.editar-popuo-v3 .ftr .btn-salvar {
    background: #000000;
    color: #ffffff;
    font-size: 14px;
    font-weight: 500;
    padding: 6px 13px;
    border-radius: 10px;
    cursor: pointer;
    float: right;
}

.editar-popuo-v3 .contant-default {
    padding: 0px 20px 20px 20px;
}

.ipt-v3 {
    border: 1px solid var(--color-border);
    border-radius: 10px;
    margin-bottom: 6px;
    position: relative;
}

.ipt-v3 label {
    margin: 0px;
    padding: 16px 0px 9px 12px;
    width: 100%;
    font-size: 13px;
    line-height: 10px;
    opacity: 0.8;
}

.ipt-v3 input,
.ipt-v3 .dropdown-selected {
    width: 100%;
    height: 33px;
    background: #00000000;
    border: 0px;
    padding: 0px 0px 12px 12px;
    color: #111111;
    /* display: grid; */
    align-items: center;
    cursor: pointer;
}

.ipt-v3 .dropdown-selected::after {
    content: "\25BE";
    font-size: 19px;
    color: #555;
    margin-left: 8px;
    pointer-events: none;
    display: inline-block;
    vertical-align: middle;
    position: absolute;
    right: 11px;
    top: 17px;
    font-family: arial;
}

.icon-espaco-g .icon-espaco {
    float: left;
    font-size: 12px;
    background: #ffffff36;
    color: #fff;
    width: 20px;
    height: 20px;
    border-radius: 5px;
    margin-right: 7px;
    align-items: center;
    display: grid;
    text-align: center;
    font-weight: 600;
}

.icon-espaco-g .txt {
    float: left;
    line-height: 20px !important;
}

.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item.atv .hdr-lista .titulo,
.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item:hover .hdr-lista .titulo {
    width: calc(100% - 56px);
    font-weight: 600;
}

.ipt-espaco-icone-edit .icone-espaco-edit {
    float: left;
    margin: 14px 0px 0px 13px;
    color: #fff;
}

.ipt-espaco-icone-edit .txt {
    float: left;
    width: calc(100% - 50px);
}

.ipt-espaco-icone-edit .txt label {
    margin-bottom: -6px;
}

.ipt-espaco-icone-edit .txt input {
    margin-bottom: 4px;
}

/* CHECKBOX DO SISTEMA - a caixa e desenhada pelo :before, mas quem ocupa
   espaco no layout e o INPUT.

   `appearance: none` zera as dimensoes intrinsecas do checkbox, e o quadrado
   de 17px vem de um `:before` ABSOLUTO - que esta fora do fluxo e nao empurra
   nada. Resultado: o input media 0 de largura e o desenho passava por cima do
   que viesse depois. Num `display:flex` com gap, o rotulo comecava a 8px de um
   elemento de largura zero e ficava embaixo do quadrado - era o "checkbox
   acavalando o texto" visto em varios pontos do sistema (dropdown de Estilos
   do Studio, opcoes de perfil, listas de selecao).

   As tres linhas abaixo dao ao input exatamente a caixa que ele ja desenhava.
   O `:before` e o `:checked:after` NAO mudam de posicao de proposito: mexer
   neles moveria o quadrado 1-2px em todos os checkboxes do sistema, e o que
   esta errado aqui e o espaco ocupado, nao o desenho.

   Regras especificas que ja definem width/height (`.wsf-campo-check`,
   `.checklist-item`...) continuam vencendo por especificidade. */
input[type=checkbox] {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    cursor: pointer;
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    /* em linha flex, nao encolhe ate sumir */
    vertical-align: middle;
    /* em linha de texto, centraliza com o rotulo */
}

input[type=checkbox]:before {
    content: "";
    display: block;
    position: absolute;
    width: 17px;
    height: 17px;
    top: -2px;
    left: -1px;
    background-color: #ffffff;
    border: 1px solid #000000;
    border-radius: 6px;
}

input[type=checkbox]:checked:before {
    content: "";
    display: block;
    position: absolute;
    background-color: #000000;
}

input[type=checkbox]:checked:after {
    content: "";
    display: block;
    width: 5px;
    height: 10px;
    border: solid #ffffff;
    border-width: 0 2px 2px 0;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
    position: absolute;
    top: 0px;
    left: 5px;
}

.configs-lista-tarefas {
    padding: 3px 0px 15px 0px;
}

.configs-lista-tarefas .it {
    float: left;
    position: relative;
    margin-right: 3px;
}

.configs-lista-tarefas .it svg {
    width: 12px;
    height: 10px;
    margin: 0px 0px 0px 0px;
    float: left;
    opacity: 0.8;
    position: relative;
    z-index: 9;
}

.configs-lista-tarefas .it label {
    font-size: 12px;
    margin: 1px 0px 0px 4px;
    line-height: 9px;
    float: left;
    opacity: 0.8;
}

.configs-lista-tarefas .it .n-preenchido {
    background: #000;
    color: #fff;
    fill: #fff;
    border: 1px solid #2c2c2c;
    border-radius: 8px;
    cursor: pointer;
    position: relative;
}

.configs-lista-tarefas .it .n-preenchido .datepicker-datetime {
    position: absolute;
    left: 0px;
    width: 100%;
    height: 100%;
    opacity: 0;
    z-index: 2;
    cursor: pointer;
}

.configs-lista-tarefas .it .n-preenchido .open {
    padding: 6.2px 6px 7.2px 6px;
}

.bt-select-responsavel .n-preenchido .i-item {
    float: left;
    margin: 2.2px 2px 2px 2px;
}

.bt-select-responsavel .n-preenchido .i-item .thumb {
    width: 20px;
    height: 20px;
    margin: 0px;
}

.ipt-espaco-lista .dropdown-selected .lef {
    float: left;
    width: fit-content;
}

.ipt-espaco-lista .dropdown-selected .lef.lista {
    line-height: 20px;
    padding-left: 4px;
}

.group .conteudo-quad {
    background: #ffffff0f;
    border-radius: 13px;
    border: 1px solid #00000012;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}

.menu-sistema .menu-top-h {
    position: absolute;
    width: 100%;
    background: #ffffff;
    z-index: 3;
    height: 52px;
    /* border-bottom: solid 1px var(--color-border); */
    display: flex;
    align-items: center;
    padding: 0px 10px;
}

.t-select-espaco-lista .itens-select {
    padding: 5px 0px 14px 25px;
}

.t-select-espaco-lista .itens-select .item-select {
    font-size: 14px;
    padding: 2px 7px;
    border-radius: 7px;
    opacity: 0.8;
    transition: 0.3s;
    cursor: pointer;
}

.t-select-espaco-lista .itens-select .item-select:hover {
    background-color: #00000010;
}

.bt-select-responsavel .dropdown-default {
    min-width: 235px;
}

.bt-select-responsavel .dropdown-default .it-item {
    opacity: 0.8;
}

.bt-select-responsavel .dropdown-default .it-item:hover,
.bt-select-responsavel .dropdown-default .it-item.atv,
.bt-select-responsavel .dropdown-default .it-item.atv .ck {
    opacity: 1;
}

.bt-select-responsavel .dropdown-default .it-item .txt {
    width: calc(100% - 44px);
}

.bt-select-responsavel .dropdown-default .it-item .thumb {
    width: 24px;
    height: 24px;
    margin-bottom: 0px;
}

.bt-select-responsavel .dropdown-default .it-item .ck {
    float: right;
    margin-top: 4px;
    width: 15px;
    height: 15px;
    opacity: 0;
}

.bt-data .btn-limpar {
    display: none;
    z-index: 9;
    fill: #fff;
    margin-left: 4px !important;
    cursor: pointer;
}

.group .hdr-group .total {
    float: left;
    font-size: 11px;
    opacity: 0.6;
    padding: 3px 0px 0px 7px;
    font-weight: 500;
}

.info-arquivado {
    background: #a3a3a336;
    padding: 20px;
    border-radius: 10px;
    width: fit-content;
}

.info-arquivado .txt {
    float: left;
}

.info-arquivado .desarquivar {
    float: left;
    padding: 0px 0px 0px 20px;
    text-decoration: underline;
    cursor: pointer;
}

.grid-feed {
    padding: 2px 2px !important;
}

.grid-feed .midia-item {
    width: calc(33.3% - 3.2px) !important;
    margin: 1px !important;
    border-radius: 0px !important;
    float: left;
    background-size: cover;
    background-position: center;
}

.grid-feed .midia-item img {
    width: 100%;
}

.editar-espaco-pessoas .lst-membros .item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 5px;
    transition: 0.3s;
    cursor: pointer;
    border-top: 1px solid #66666638;
}

/* Neutraliza o clearfix .clear::after dentro do flex (evita gap fantasma). */
.editar-espaco-pessoas .lst-membros .item::after {
    display: none;
}

.editar-espaco-pessoas .lst-membros .item .thumb {
    flex: 0 0 30px;
    width: 30px;
    height: 30px;
    background-size: contain;
    border-radius: 50%;
}

.editar-espaco-pessoas .lst-membros .item .txt {
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    padding: 0px;
    font-size: 14px;
}

.editar-espaco-pessoas .lst-membros .item .btn-plus {
    flex: 0 0 auto;
    padding: 5px;
    margin: 0px;
    background: #ffffff0d;
    border-radius: 6px;
}

.editar-espaco-pessoas .lst-membros .item .btn-plus svg {
    width: 11px;
}

.editar-popuo-v3 .sub-titulo strong {
    background: #8989892e;
    padding: 3px 7px;
    border-radius: 8px;
    font-weight: 600;
}

.box-pessoas-inserir {
    position: relative;
    margin-bottom: 21px;
}

.box-pessoas-inserir .mail {
    border: 1px solid #666;
    background: #00000000;
    width: 100%;
    height: 40px;
    padding: 0px 207px 0px 10px;
    border-radius: 8px;
    font-size: 14px;
}

.box-pessoas-inserir .custom-select-wrapper {
    width: 115px;
    margin-top: -35px;
    margin-right: 86px;
    background: #00000000;
    position: relative;
    cursor: pointer;
}

.box-pessoas-inserir .custom-select-wrapper select {
    padding: 0px;
    height: 31px;
    border: 0px;
}

.box-pessoas-inserir .btn-nova-pessoa {
    float: right;
    padding: 4px 10px;
    margin-top: -35px;
    margin-right: 4px;
    background: #666;
    cursor: pointer;
    position: relative;
}

.editar-espaco-pessoas .lst-membros .item .txt .nome {
    line-height: 12px;
    padding: 2px 0px 3px 0px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.editar-espaco-pessoas .lst-membros .item .txt .email {
    line-height: 12px;
    font-weight: 200;
    opacity: 0.6;
    font-size: 11px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.editar-espaco-pessoas .lst-membros .item .info-membro {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    text-align: right;
    line-height: 1.25;
}

.editar-espaco-pessoas .lst-membros .item .permissao-txt {
    font-size: 12px;
    font-weight: 200;
    opacity: 0.7;
    padding: 0px;
    white-space: nowrap;
}

.item-post .group-left-01 {
    float: left;
    width: 310px;
    padding: 14px 0px 0px 0px;
}

#edit-popup .edicao-page-comentarios .lst-comentarios .box-add-comentario {
    /* padding: 9px 10px 0px 13px; */
    border-radius: 10px;
    margin-bottom: 14px;
}

/* ===== Bloco de atividades/comentarios DENTRO do #edit-popup =====
   O mesmo HTML (.edicao-page-comentarios) e reaproveitado no .popup-delta e inline.
   Por isso estes ajustes ficam ESCOPADOS em #edit-popup para nao afetar os outros usos.
   Objetivo: centralizar a coluna (cabecalho + campo + historico), alinhar as abas
   Geral/Comentarios e dar respiros consistentes - corrige a sobra de espaco a direita. */
#edit-popup .edicao-page-comentarios .topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    /* max-width: 520px; */
    margin: 0 auto;
}

#edit-popup .edicao-page-comentarios .topo h1 {
    float: none;
}

#edit-popup .edicao-page-comentarios .topo .selection-state {
    margin-left: auto;
}

#edit-popup .edicao-page-comentarios .lst-comentarios {
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
}

.item-post.conteudo .dropdown-default {
    top: 28px;
    right: 0px;
}

.item-post .tabs-tipos-arquivos {
    clear: both;
    padding: 0px 0px 7px 0px;
}

.item-post .tabs-tipos-arquivos .bt-it {
    font-size: 13px;
    opacity: 0.6;
    float: left;
    margin-right: 7px;
    cursor: pointer;
    background: #66666600;
    padding: 1px 5px 1px 2px;
    border-radius: 6px;
    transition: 0.3s;
    font-weight: 450;
}

.item-post .tabs-tipos-arquivos .bt-it.atv {
    opacity: 1;
    cursor: initial;
    font-weight: 600;
}

.item-post .tabs-tipos-arquivos .bt-it:not(.atv):hover {
    opacity: 1;
}

.item-post.conteudo .midia {
    display: none;
    padding-bottom: 8px;
}

.item-post.conteudo .midia.atv {
    display: block;
}

div:where(.swal2-container) div:where(.swal2-html-container) {
    font-size: 14px !important;
}

.item-post .redes-ativas label {
    margin: 0px;
    padding: 0px 0px 0px 0px;
    font-size: 13px;
    display: block;
    color: #000000b3;
    height: 18px;
    font-weight: 500;
}

.item-status .st-icon {
    float: left;
}

.item-status .st-txt {
    float: left;
    padding-left: 7px;
    padding-right: 1px;
    font-size: 12px;
    text-transform: uppercase;
    max-width: 180px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    line-height: 14px;
    width: calc(100% - 18px);
    display: block;
    height: 12px;
}

.item-status .ck {
    display: block !important;
    float: right !important;
    height: 14px !important;
    width: 14px !important;
    border-radius: 100px;
}

.item-status {
    transition: 0.3s;
}

.item-status:hover {
    background: #b3b3b329;
}

.item-post .group-actions-status {
    /* border: 1px solid var(--color-border); */
    border-radius: 0px 0px 10px 0px;
    float: left;
    padding: 0 0px 0px 16px;
    margin-left: -11px;
    height: 29px;
    /* background: #767e9a1f; */
    display: flex;
    align-items: center;
}

.item-post .group-actions-status .btn {
    font-size: 12px;
    padding: 2px 7px 2px 3px;
    color: #000;
    float: left;
    cursor: pointer;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    font-weight: 600;
}

.item-post .group-actions-status .btn svg {
    width: 10px;
    float: left;
    margin: 4px 1px 0px 0px;
}

.contant-criar-conteudo .campo-style-02 {
    border: 0px;
}

.arquivos-it {
    display: none;
}

.arquivos-it.atv {
    display: block;
}

.item-post.conteudo .t-upload {
    display: none;
}

.item-post.conteudo .midias-tarefas {
    padding: 0px;
}

.item-post.conteudo .midias-tarefas .midia-item {
    margin-top: -8px;
}

.item-post .btn-upload,
.item-post .btn-open-editor,
.item-post .btn-gerar-ia {
    font-size: 12px;
    /* background: #66666614; */
    /* box-shadow: 0px 0px 3px #00000045; */
    font-weight: 550;
    padding: 3px 7px;
    border-radius: 8px;
    width: fit-content;
    cursor: pointer;
    opacity: 0.9;
    margin-top: 6px;
    margin-left: 2px;
    box-shadow: 0 0.5px 6px -2px rgb(0 0 0 / 18%), 0 2px 4px -1px rgb(0 0 0 / 11%);
}

.item-post .btn-gerar-ia {
    opacity: 1;
    display: flex;
    align-items: center;
    gap: 2px;
    margin-top: 8px;
}

.item-post .btn-gerar-ia::before {
    content: "";
    width: 11px;
    height: 11px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.4 5.6L20 10l-5.6 2.4L12 18l-2.4-5.6L4 10l5.6-2.4L12 2z'/></svg>") center/contain no-repeat;
    mask: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'><path d='M12 2l2.4 5.6L20 10l-5.6 2.4L12 18l-2.4-5.6L4 10l5.6-2.4L12 2z'/></svg>") center/contain no-repeat;
}

.item-post .linha-acoes-midia {
    display: inline-flex;
}

.item-post .btn-info-midia {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin-top: 6px;
    margin-left: 4px;
    color: #9aa0a6;
    opacity: 0.7;
    cursor: help;
    transition: opacity .2s, color .2s;
}

.item-post .btn-info-midia:hover {
    opacity: 1;
    color: #2563eb;
}

.item-post .btn-info-midia svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
    display: block;
}

/* Aviso de formato de imagem incompativel com o TikTok e aviso de limite de
   midias do carrossel (Instagram) - mesma pele, mesma mecanica.
   Renderizado sempre que a regra estourar, mas so visivel com a rede ligada
   (classe .atv) - o toggle da rede liga/desliga sem re-render.
   Vive numa coluna ESTREITA (aba de midia do popup), por isso e compacto e usa
   flex-wrap: o botao desce para a segunda linha em vez de espremer o texto
   numa coluna de poucas palavras. */
.item-post .aviso-midia-tiktok,
.item-post .aviso-midia-carrossel,
.item-post .aviso-midia-mistura {
    display: none;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px 8px;
    margin-bottom: 10px;
    padding: 7px 10px;
    border: 1px solid #f0e0b6;
    border-radius: 8px;
    background: #fdf9ef;
    box-sizing: border-box;
    font-size: 12px;
    line-height: 1.4;
    color: #8a6520;
}

.item-post .aviso-midia-tiktok.atv,
.item-post .aviso-midia-carrossel.atv,
.item-post .aviso-midia-mistura.atv {
    display: flex;
}

.item-post .aviso-midia-tiktok .ico,
.item-post .aviso-midia-carrossel .ico,
.item-post .aviso-midia-mistura .ico {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    fill: #c9911c;
}

.item-post .aviso-midia-tiktok .txt,
.item-post .aviso-midia-carrossel .txt,
.item-post .aviso-midia-mistura .txt {
    flex: 1 1 auto;
    min-width: 0;
}

.item-post .aviso-midia-tiktok .txt b,
.item-post .aviso-midia-carrossel .txt b,
.item-post .aviso-midia-mistura .txt b {
    font-weight: 600;
}

.item-post .aviso-midia-tiktok .btn-converter-jpg,
.item-post .aviso-midia-carrossel .btn-desativar-instagram {
    flex: 0 0 auto;
    margin-left: auto;
    padding: 3px 9px;
    border-radius: 6px;
    background: #111;
    color: #fff;
    font-size: 11.5px;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: opacity .2s;
}

.item-post .aviso-midia-tiktok .btn-converter-jpg:hover,
.item-post .aviso-midia-carrossel .btn-desativar-instagram:hover {
    opacity: .82;
}

.item-post .aviso-midia-tiktok.carregando .btn-converter-jpg {
    opacity: .6;
    pointer-events: none;
}

.estudio-conteudo-modal {
    position: fixed;
    inset: 0;
    z-index: 99;
    display: flex;
    align-items: center;
    justify-content: center;
}

.estudio-conteudo-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    cursor: pointer;
}

.estudio-conteudo-modal-box {
    position: relative;
    z-index: 1;
    width: 96vw;
    height: 92vh;
    background: var(--color-bg);
    border-radius: 12px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    border: 1px solid var(--color-border);
}

.estudio-conteudo-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px;
    border-bottom: 1px solid var(--color-border);
    flex-shrink: 0;
}

.estudio-conteudo-modal-titulo {
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text-01);
}

.estudio-conteudo-modal-close {
    background: transparent;
    border: none;
    color: #888;
    font-size: 24px;
    line-height: 1;
    cursor: pointer;
}

.estudio-conteudo-modal-close:hover {
    color: var(--color-text-01);
}

/* Minimizar (doca do rodape): colado ao X, a direita. */
.estudio-conteudo-modal-min {
    margin-left: auto;
    margin-right: 6px;
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    border-radius: 9px;
    background: transparent;
    color: #888;
    cursor: pointer;
}

.estudio-seletor-perfil+.estudio-conteudo-modal-min {
    margin-left: 0;
}

.estudio-conteudo-modal-min:hover {
    color: var(--color-text-01);
    background: var(--glass-realce);
}

.estudio-conteudo-modal-body {
    position: relative;
    flex: 1;
    overflow: auto;
    padding: 0 16px;
}

.estudio-conteudo-modal-body .chatgpt-image-layout {
    min-height: 0;
    height: 100%;
}

.estudio-conteudo-modal-body .floating-input-wrapper {
    /* position: fixed; */
    left: calc(50% - 350px);
    /* bottom: 27px; */
    z-index: 5;
}

.chatgpt-image-layout .arte-item.arte-item-vinculada::after {
    content: "";
    position: absolute;
    left: 8px;
    bottom: 8px;
    background: #16a34a;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 7px;
    border-radius: 999px;
    z-index: 4;
}

.midia-item:hover .expand,
.midia-item:hover .t-expand {
    opacity: 1 !important;
}

.lst-midias-01 {
    padding: 58px 20px 30px 20px;
    display: grid;
}

.lst-midias-01 .grupo {
    clear: both;
    padding-top: 20px;
}

.lst-midias-01 .item {
    float: left;
    max-width: 14.27%;
    padding: 4px;
}

.lst-midias-01 .item .img {
    aspect-ratio: 4 / 5;
    background-size: contain;
    /* background-size: cover; */
    background-position: center;
    background-repeat: no-repeat;
    background-color: #f0f0f0;
    border-radius: 6px;
}

.lst-midias-01 .titulo-grupo {
    font-size: 15px;
    font-weight: 300;
    text-transform: capitalize;
    opacity: 0.7;
}

.lst-galerias-01 .galeria {
    float: left;
    padding: 0px 16px 16px 0px;
}

.lst-galerias-01 .galeria .ccenter {
    /* background: #66666661; */
    border-radius: 12px;
    position: relative;
    overflow: hidden;
    border: 1px solid #28282833;
    transition: 0.3s;
    cursor: pointer;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}

.lst-galerias-01 .galeria .ccenter:hover {
    border-color: #fff;
    background: #8d8d8d00;
    border: 1px solid #282828c4;
}

.lst-galerias-01 .galeria .galeria-header {
    /* position: absolute; */
    top: 0px;
    left: 0px;
    /* width: 100%; */
    /* height: 100%; */
    background: #ffffff00;
    /* background: linear-gradient(to left, rgb(30 30 30 / 80%) 0%, rgb(29 29 29 / 95%) 100%); */
    z-index: 1;
    padding: 9px 0px 4px 11px;
    /* backdrop-filter: blur(2px); */
    -webkit-backdrop-filter: blur(90px);
}

.lst-galerias-01 .galeria .galeria-header .galeria-titulo {
    margin-bottom: 0px;
    font-size: 23px;
    width: 100%;
}

.lst-galerias-01 .galeria .galeria-header .galeria-titulo .txt {
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    padding: 0px 9px 0px 0px;
    line-height: 28px;
    font-size: 15px;
    font-weight: 500;
}

.lst-galerias-01 .galeria .galeria-header .galeria-titulo .img {
    width: 37px;
    height: 37px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    border-radius: 50%;
    margin: 3px 0px 0px 0px;
    background-color: #2f2f2fd1;
}

.lst-galerias-01 .galeria .galeria-header .galeria-ver-todos {
    font-size: 13px;
    color: #fff;
    opacity: 0.6;
    font-weight: 300;
}

.lst-galerias-01 .galeria .galeria-midias .item {
    float: left;
    max-width: 33.33%;
    padding: 0px;
}

.lst-galerias-01 .galeria .galeria-midias .item .img {
    aspect-ratio: 4 / 3.7;
    background-size: cover;
    background-position: center;
    background-color: #131313;
}

.contant-midias-home .center-galerias-control {
    padding: 95px 20px 20px 20px;
}

.contant-midias-home .center-galerias-control .box-ultimas-midias {
    padding-bottom: 55px;
    padding-top: 32px;
    position: relative;
}

.center-galerias-control h4 {
    font-size: 17px;
    font-weight: 400;
    padding: 7px 0px 11px 0px;
    margin: 0px;
    opacity: 0.6;
    display: block;
    width: 100%;
    clear: both;
}

.contant-midias-home .center-galerias-control .perfil-armazenamento-usando {
    margin-top: 0px;
    float: right;
    padding: 0px 17px 0px 0px;
    text-align: right;
    position: absolute;
    top: 16px;
    right: 1px;
}

.contant-midias-home .center-galerias-control .perfil-armazenamento-usando label {
    margin: 0px;
    font-size: 9px;
    line-height: 7px;
    /* text-transform: uppercase; */
    font-weight: 200;
    opacity: 0.6;
    line-height: 12px;
}

.contant-midias-home .center-galerias-control .perfil-armazenamento-usando .valor {
    font-size: 13px;
    font-weight: 500;
    line-height: 12px;
    margin: 3px 0px 0px 0px;
}

.lst-midias-last-01 .galeria-midia-item .img {
    aspect-ratio: 4 / 5;
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    background-color: #e7e7e7;
    /* border-radius: 8px; */
    border-radius: 6px;
}

.lst-midias-last-01 .galeria-midia-item {
    float: left;
    width: 100%;
    padding: 0px;
    overflow: hidden;
    position: relative;
}

.contant-midias-home .btn-voltar {
    float: left;
    background: #66666600;
    line-height: 12px;
    padding: 17px 0px;
    padding-right: 8px;
    cursor: pointer;
}

.contant-midias-home .btn-voltar svg {
    width: 20px;
}

.contant-midias-home .galeria-item {
    display: none;
}

.contant-midias-home .galeria-item.atv {
    display: block;
}

.box-armazenamentoo {
    margin-bottom: 18px;
    padding: 14px 13px;
    border-radius: 14px;
    width: fit-content;
    min-width: 350px;
    border: 1px solid rgb(133 133 133 / 13%);
    float: left;
    background: #88888808;
}

.box-armazenamentoo h4 {
    margin: 0px;
    font-size: 14px;
    padding: 0px;
}

.box-armazenamentoo .armazenamento-total {
    float: left;
    padding: 13px 0px 0px 16px;
}

.box-armazenamentoo .armazenamento-total .valor,
.box-armazenamentoo .armazenamento-total .valor2 {
    font-size: 19px;
    font-weight: 500;
    float: left;
}

.galeria-midia-item {
    position: relative;
    border: 2px solid #0064e000;
}

.galeria-midia-item .info::after {
    content: "";
    clear: both;
    display: block;
}

.galeria-midia-item .info {
    font-size: 9px;
    position: absolute;
    bottom: 5px;
    left: 6px;
    padding: 1px 4px;
    border-radius: 5px;
    text-transform: uppercase;
    font-weight: 500;
    background: #1b1b1b73;
    color: #fff;
    z-index: 2;
}

.galeria-midia-item .extensao {
    float: left;
    font-weight: 700;
}

.galeria-midia-item .peso {
    float: left;
    padding-left: 6px;
}

.donut-chart {
    position: relative;
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: conic-gradient(var(--cor-progresso) calc(var(--percent) * 1%), #9797973d 0);
    display: flex;
    align-items: center;
    justify-content: center;
}

.donut-chart::before {
    content: '';
    position: absolute;
    width: 54px;
    height: 54px;
    background: #ffffff;
    border-radius: 50%;
    z-index: 1;
}

.donut-chart .percent-text {
    position: relative;
    z-index: 2;
    font-size: 12px;
    font-weight: bold;
    color: #000000;
}

#grafico-armazenamento {
    float: left;
}

.center-galerias-control .group-control-menu .box-menu {
    float: left;
    padding: 13px 0px 0px 19px;
    font-size: 13px;
}

.center-galerias-control .group-control-menu .box-menu .btn-menu {
    cursor: pointer;
    opacity: 0.7;
    transition: 0.3s;
    font-weight: 300;
    padding: 2px 0px;
}

.center-galerias-control .group-control-menu .box-menu .btn-menu:hover {
    opacity: 1;
}

.galeria-midia-item .t-expand {
    position: absolute;
    width: 100%;
    height: 100%;
    background: #2020209e;
    display: grid;
    align-items: center;
    transition: 0.3s;
    opacity: 0;
    cursor: pointer;
    border-radius: 6px;
}

.galeria-midia-item .t-expand svg {
    width: 33px;
    margin: auto;
    fill: #fff;
}

.galeria-midia-item:hover .t-expand {
    opacity: 1;
}

.midias-header .title-section {
    width: calc(100% - 100px);
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
    float: left;
}

.midias-header .select-itens {
    float: right;
}

.midias-header .select-itens .bt {
    padding: 16px 0px 16px 0px;
    cursor: pointer;
    font-size: 14px;
}

.midias-header .select-itens .bt.bt-selecionar-itens {
    display: none;
}

.midias-header .select-itens .bt.bt-cancelar-itens {
    display: none;
}

.center-galeria-images.em-selecao {
    position: relative;
    user-select: none;
}

.center-galeria-images.em-selecao .galeria-midia-item {
    transition: 0.3s;
}

.center-galeria-images.em-selecao .galeria-midia-item .t-expand {
    display: none;
}

.center-galeria-images.em-selecao .galeria-midia-item:hover {
    border: 2px solid #0064e0;
}

.center-galeria-images.em-selecao .galeria-midia-item.selected {
    border: 2px solid #0064e0;
}

.center-galeria-images.em-selecao .galeria-midia-item .selected-icon {
    position: absolute;
    top: 7px;
    left: 7px;
    z-index: 1;
    width: 20px;
    height: 20px;
    background: #0064e0;
    border-radius: 50%;
    display: grid;
    align-items: center;
}

.center-galeria-images.em-selecao .galeria-midia-item .selected-icon svg {
    width: 11px;
    height: 10px;
    margin: auto;
}

.selection-box {
    position: absolute;
    border: 2px dashed #007bff;
    background-color: rgba(0, 123, 255, 0.2);
    pointer-events: none;
    z-index: 9999;
}

.galeria-midias-controle-popup {
    display: none;
    position: fixed;
    top: 57px;
    right: 10px;
    z-index: 3;
    backdrop-filter: blur(90px);
    -webkit-backdrop-filter: blur(90px);
    padding: 5px 9px;
    border-radius: 22px;
    overflow: hidden;
    font-size: 14px;
    background: #ffffff8a;
    box-shadow: 0px 2px 11px #0000003b;
}

.galeria-midias-controle-popup .total-selected {
    float: left;
    font-weight: 500;
    margin-top: 0.5px;
}

.galeria-midias-controle-popup .total-selected-peso {
    float: left;
    font-size: 10px;
    opacity: 0.7;
    padding: 4px 7px 0px 0px;
}

.galeria-midias-controle-popup .bt {
    float: left;
    padding: 3px 3px;
    margin-left: 7px;
    cursor: pointer;
    opacity: 0.7;
    transition: 0.3s;
}

.galeria-midias-controle-popup .bt:hover {
    opacity: 1;
}

.galeria-midias-controle-popup .bt svg {
    width: 16px;
}

.lst-galerias-01 .galeria .galeria-header .galeria-titulo .icon {
    width: 20px;
    height: 20px;
    font-size: 15px;
    font-weight: 500;
    text-transform: uppercase;
    text-align: center;
    line-height: 21px;
    border-radius: 6px;
    color: #fff;
}

.contant-midias-home .center-galerias-control .box-ultimas-midias .owl-nav {
    position: absolute;
    right: 5px;
    top: -41px;
}

.contant-midias-home .center-galerias-control .box-ultimas-midias .owl-nav button {
    width: 32px;
    height: 32px;
    border: 1px solid #6666668f;
    border-radius: 50%;
    margin-right: 10px;
}

.contant-midias-home .center-galerias-control .box-ultimas-midias .owl-nav button.disabled {
    opacity: 0.5;
}

.contant-midias-home .center-galerias-control .box-ultimas-midias .owl-nav button span {
    font-size: 25px;
    line-height: 0px;
    display: block;
    margin: auto;
    margin-top: -1.5px;
}

.assinatura-etapa {
    display: none;
}

.assinatura-etapa.atv {
    display: block;
}

.lst-planos-select .item {
    border: 1px solid #00000017;
    border-radius: 22px;
    padding: 22px 18px;
    margin-bottom: 11px;
    position: relative;
    /* background: #ffffff1c; */
}

.lst-planos-select .item .ttl {
    font-size: 28px;
    font-weight: 600;
    line-height: 27px;
    margin-bottom: 10px;
}

.lst-planos-select .item .bt-continuar {
    position: absolute;
    right: 17px;
    top: 17px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.3s;
    background: #000000e3;
    color: #ffffff;
    fill: #ffffff;
    padding: 3px 10px;
    border-radius: 100px;
}

.lst-planos-select .item .bt-continuar:hover {
    background: #000;
    color: #fff
}

.lst-planos-select .item .bt-continuar svg {
    width: 15px;
    height: 15px;
    margin-left: 5px;
    margin-top: -2px;
}

.lst-planos-select .item .vantagem {
    padding: 0px 0px 0px 0px;
}

.lst-planos-select .item .vantagem label {
    font-size: 12px;
    font-weight: 400;
    float: left;
    width: calc(100% - 80px);
}

.lst-planos-select .item .vantagem p {
    font-size: 14px;
    margin: 0px;
    float: right;
    font-weight: 500;
}

.lst-planos-select .item .vantagem.valor p {
    font-weight: 500;
    float: initial;
    clear: both;
    font-size: 16px;
    padding-top: 4px;
}

.lst-planos-select .item .btn-mais-vantagens {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    font-weight: 600;
    width: fit-content;
    margin: 12px 0px 8px 0px;
    padding: 7px 14px;
    color: #2563eb;
    background: linear-gradient(135deg, rgba(37, 99, 235, .10), rgba(124, 58, 237, .10));
    border: 1px solid rgba(37, 99, 235, .18);
    border-radius: 100px;
    cursor: pointer;
    transition: 0.25s;
}

.lst-planos-select .item .btn-mais-vantagens svg {
    width: 15px;
    height: 15px;
}

.lst-planos-select .item .btn-mais-vantagens:hover {
    color: #fff;
    background: linear-gradient(115deg, #2563eb 0%, #6366f1 48%, #22d3ee 100%);
    border-color: transparent;
    box-shadow: 0 6px 16px rgba(37, 99, 235, .28);
}

.hrd-popup {
    padding: 9px 23px 21px 0px;
}

.hrd-popup .description {
    font-size: 13px;
    opacity: 0.6;
}

.hrd-popup .bt-voltar {
    text-transform: uppercase;
    font-size: 11px;
    letter-spacing: 2px;
    margin-bottom: 6px;
    opacity: 0.7;
    cursor: pointer;
    transition: 0.3s;
    width: fit-content;
    padding: 2px 1px;
}

.hrd-popup .bt-voltar:hover {
    opacity: 1;
}

.hrd-popup .bt-voltar svg {
    width: 12px;
    float: left;
    margin: 2px 6px 0px 0px;
}

.hrd-popup .bt-voltar::after {
    clear: both;
    content: "";
}

.bkd-custon-01::after {
    background: radial-gradient(50.5% 50.5% at 42.13% -2.5%, rgb(0 140 215 / 27%) 0%, rgba(38, 229, 255, 0) 100%), radial-gradient(44.5% 44.5% at 66.37% -4.67%, rgb(0 70 215 / 51%) 0%, rgba(255, 207, 38, 0) 100%);
    opacity: .2;
    position: absolute;
    width: 100%;
    height: 349px;
    pointer-events: none;
    z-index: -1;
    content: "";
    top: 0px;
    right: 0px;
}

/* Firefox */
* {
    scrollbar-width: thin;
    /* "auto" | "thin" */
    scrollbar-color: #e3e3e340 #1a1a1a00;
    /* polegar e trilha */
}

/* Chrome, Edge, Safari, Opera */
*::-webkit-scrollbar {
    width: 5px;
    /* largura da barra */
}

*::-webkit-scrollbar-track {
    background: #1a1a1a00;
    /* trilha transparente */
}

*::-webkit-scrollbar-thumb {
    background-color: #e3e3e340;
    /* cor do scroll */
    border-radius: 4px;
    /* cantos arredondados */
    border: 0px solid transparent;
}

.confg-armazenamento .armazenamento-extra-container {
    margin-bottom: 13px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    /* border: 1px solid #ffffff21; */
    /* background: #ffffff12; */
    padding: 30px 17px;
    border-radius: 17px;
}

.confg-armazenamento .armazenamento-unidade {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-bottom: 9px;
}

.confg-armazenamento .btn-unidade {
    padding: 6px 24px;
    border: 1px solid #1c88fd42;
    border-radius: 28px;
    background: #ffffff00;
    color: #1c88fd;
    font-weight: bold;
    cursor: pointer;
    transition: all 0.2s ease;
}

.confg-armazenamento .btn-unidade.active {
    background: #1c88fd;
    color: white;
}

.confg-armazenamento .armazenamento-range {
    width: 100%;
    appearance: none;
    height: 6px;
    border-radius: 4px;
    outline: none;
    cursor: pointer;
    background: linear-gradient(to right, #1c88fd 0%, #1c88fd 0%, #848484 0%, #848484 100%);
}

.confg-armazenamento .armazenamento-range::-webkit-slider-thumb {
    appearance: none;
    width: 20px;
    height: 20px;
    background: #1c88fd;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
}

.confg-armazenamento .armazenamento-info {
    text-align: center;
    font-size: 14px;
    padding-bottom: 0px;
}

.confg-armazenamento .armazenamento-preco {
    margin-top: 5px;
    font-weight: bold;
}

.confg-armazenamento .armazenamento-valor {
    font-size: 25px;
    font-weight: 600;
}

.confg-armazenamento .armazenamento-preco {
    font-size: 13px;
    font-weight: 300;
}

.assinatura-etapa.confg-ia-creditos.atv {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    align-content: center;
    min-height: 380px;
}

.assinatura-etapa.confg-ia-creditos .hrd-popup {
    float: none;
    width: 44%;
    padding-right: 26px;
    box-sizing: border-box;
}

.assinatura-etapa.confg-ia-creditos .plano-nome {
    width: fit-content;
    padding: 4px 0px;
    margin-bottom: 14px;
    font-size: 13px;
    font-weight: 400;
}

.assinatura-etapa.confg-ia-creditos .plano-nome strong {
    text-decoration: underline;
    font-weight: 600;
}

.confg-ia-creditos .armazenamento-extra-container {
    width: 56%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 14px;
    padding: 30px 24px;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    background: rgba(28, 136, 253, 0.04);
}

.confg-ia-creditos .armazenamento-range {
    width: 100%;
    appearance: none;
    height: 6px;
    border-radius: 4px;
    outline: none;
    cursor: pointer;
    background: linear-gradient(to right, #1c88fd 0%, #1c88fd 0%, #848484 0%, #848484 100%);
}

.confg-ia-creditos .armazenamento-range::-webkit-slider-thumb {
    appearance: none;
    width: 20px;
    height: 20px;
    background: #1c88fd;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
}

.confg-ia-creditos .armazenamento-info {
    text-align: center;
    font-size: 14px;
}

.confg-ia-creditos .armazenamento-valor {
    font-size: 25px;
    font-weight: 600;
}

.confg-ia-creditos .armazenamento-preco {
    margin-top: 5px;
    font-size: 13px;
    font-weight: 300;
}

.confg-ia-creditos .ftr-popup {
    width: 100%;
    float: none;
}

.ftr-popup {
    padding: 15px 0px 0px 0px;
    width: 100%;
    float: left;
}

.ftr-popup .bt {
    width: calc(50% - 5px);
    margin-right: 5px;
    float: left;
    background: #7979794a;
    padding: 9px 20px;
    text-align: center;
    border-radius: 29px;
    font-weight: 600;
    cursor: pointer;
}

.ftr-popup .bt.bt-proximo {
    background: #000000;
    color: #ffffff;
}

.bts-select-style-1 {
    padding: 0px 0px 0px 8px;
}

.bts-select-style-1 .bt {
    float: left;
    font-size: 13px;
    border: 1px solid #66666645;
    padding: 3px 11px;
    border-radius: 100px;
    margin-left: 5px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.3s;
}

.bts-select-style-1 .bt:hover {
    border-color: #fff;
}

.bts-select-style-1 .bt.atv {
    border-color: #fff;
    background: #fff;
    color: #000;
}

.bts-select-mult-style-1 {
    padding: 18px 12px;
}

.bts-select-mult-style-1 .status-btn {
    float: left;
    font-size: 13px;
    padding: 3px 6px;
    border-radius: 16px;
    margin: 5px 4px 0px 0px;
    font-weight: 500;
    opacity: 0.4;
    cursor: pointer;
}

.bts-select-mult-style-1 .status-btn.atv {
    opacity: 1;
}

.grade-perfil-display .filtros h5 {
    font-size: 19px;
    border: 0px;
    padding: 0px 0px 0px 7px;
}

.grade-perfil-display .filtros label {
    font-size: 16px;
    display: block;
    font-weight: 500;
    padding: 0px 3px;
}

.assinatura-etapa.confg-armazenamento .plano-nome {
    width: fit-content;
    padding: 4px 0px;
    margin-bottom: 14px;
    font-size: 13px;
    font-weight: 400;
}

.assinatura-etapa.confg-armazenamento .plano-nome strong {
    text-decoration: underline;
    font-weight: 600;
}

.assinatura-etapa .hrd-popup {
    float: left;
    width: 40%;
}

.assinatura-etapa .lst-planos-select {
    float: left;
    width: 60%;
}

.box-fatura-itens {
    float: left;
    width: 60%;
    border: 1px solid #00000014;
    padding: 0px 0px;
    border-radius: 18px;
    overflow: hidden;
}

.box-fatura-itens .ft-item {
    width: 100%;
    font-size: 13px;
    padding: 7px 0px;
    border-bottom: 1px solid var(--color-border);
    width: calc(100% - 24px);
    margin-left: 12px;
    margin-top: 0px !important;
}

.box-fatura-itens .ft-item .left {
    float: left;
    width: 70%;
}

.box-fatura-itens .ft-item .right {
    float: left;
    width: 30%;
}

.box-fatura-itens .ft-item:last-child {
    border-bottom: 0px;
}

.assinatura-etapa .contant-right {
    float: right;
    width: 60%;
}

.cartao .form-group {
    position: relative;
    border: 1px solid rgb(0 0 0 / 0%);
    height: 55px;
    margin-top: 10px;
    border-radius: 10px;
    padding: 0px 0px;
    background-color: rgb(0 0 0 / 5%);
    margin-bottom: 0px;
}

.cartao .form-label {
    position: absolute;
    left: 7px;
    top: 16px;
    color: rgb(0 0 0 / 39%);
    z-index: 10;
    transition: transform 150ms ease-out, font-size 150ms ease-out;
    background-color: rgba(0, 0, 0, 0);
    padding: 0px 6px;
    font-size: 13px;
}

.cartao .form-input {
    position: relative;
    padding: 19px 0px 0px 0;
    height: 45px;
    width: 100%;
    outline: 0;
    border: 0;
    transition: box-shadow 150ms ease-out;
    background-color: rgba(0, 0, 0, 0);
    max-width: calc(100% - 39px);
    float: left;
    color: #000000;
    font-size: 15px;
    padding-left: 15px;
}

.cartao .form-group svg {
    position: absolute;
    right: 9px;
    top: 5px;
    width: 23px;
    height: 20px;
    fill: rgba(255, 255, 255, 0.34);
    margin: 10px 0px 0px 0px;
}

.cartao .plano-escolhido {
    text-align: left;
    margin-top: 17px;
    padding: 13px 13px;
    border-radius: 13px;
    position: relative;
    border: 1px solid #0000001f;
}

.cartao .plano-escolhido .valor {
    font-size: 14px;
}

.cartao .plano-escolhido .nome {
    font-size: 12px;
    margin-top: 4px;
    color: rgb(0 0 0 / 40%);
}

.cartao .plano-escolhido .btn-trocar {
    position: absolute;
    right: 13px;
    top: calc(50% - 11px);
    color: rgb(0 0 0);
    cursor: pointer;
    opacity: 0.6;
    font-size: 13px;
}

.cartao .info-pagto {
    text-align: left;
    font-size: 11px;
    margin: 11px 3px 0px 4px;
    color: rgb(0 0 0 / 76%);
}

.cartao .form-group.focused {
    border-color: #fff;
}

.cartao .focused .form-label {
    transform: translateY(-70%);
    font-size: 0.75em;
}

.cartao .btn-what {
    width: 25px !important;
    height: 25px !important;
    border: 1px solid rgba(255, 255, 255, 0.23);
    padding: 6px !important;
    border-radius: 50%;
    margin-top: 8px !important;
    cursor: pointer;
    z-index: 99;
}

.forma-de-pagamento-cartao-preencher h3 {
    font-size: 34px;
}

.box-assinatura-sucesso {
    text-align: center;
    padding-top: 20px;
}

.box-assinatura-sucesso h5 {
    opacity: 0.5;
}

.box-assinatura-sucesso .icon {
    width: 200px;
    height: 200px;
    padding: 36px;
    border: 10px dotted #ffffff0f;
    margin: auto;
    margin-top: 20px;
    display: block;
}

.box-assinatura-sucesso .ftr-popup {
    margin-top: 10px;
    padding-bottom: 18px;
}

.form-group.failed {
    border-color: #ff0000c4 !important;
}

.resultado-boleto #linhaDigitavel {
    margin: 0px 0px 7px 0px;
    color: #fff;
    border: 0px;
    background: #86868614;
    border-radius: 8px;
}

.resultado-boleto .btn-principal-01 {
    text-decoration: none;
    padding: 10px 20px;
    margin: auto;
    display: block;
    float: initial;
    color: #ffffff;
    background: #000000;
}

.resultado-boleto h3 {
    text-align: center;
}

.resultado-boleto h5 {
    font-size: 13px;
    font-weight: 400;
    margin-bottom: 36px;
    opacity: 0.7;
    text-align: center;
}

.boleto-linha-digitavel-box {
    text-align: center;
}

/* ====================================================================
   Minha assinatura - view do usuario (redesign painel de billing)
   Usa tokens (--color-*) para funcionar em light e dark mode.
==================================================================== */
.contant-assinatura-user .display {
    color: var(--color-text-01);
}

.contant-assinatura-user h3 {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 22px;
}

/* ---- Navegacao lateral ---- */
.contant-assinatura-user .left-contant {
    float: left;
    width: 178px;
    padding-right: 20px;
}

.contant-assinatura-user .left-contant .bt-menu {
    display: flex;
    align-items: center;
    gap: 9px;
    font-size: 14px;
    font-weight: 500;
    color: var(--color-text-01);
    opacity: 0.62;
    padding: 9px 11px;
    margin-bottom: 3px;
    border-radius: 10px;
    cursor: pointer;
    transition: 0.18s;
}

.contant-assinatura-user .left-contant .bt-menu svg {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
}

.contant-assinatura-user .left-contant .bt-menu:hover {
    opacity: 0.92;
    background: var(--color-hover-01);
}

.contant-assinatura-user .left-contant .bt-menu.atv {
    opacity: 1;
    font-weight: 600;
    background: var(--color-bg-01);
}

.contant-assinatura-user .left-contant .bt-menu.hidden {
    display: none;
}

.contant-assinatura-user .right-contant {
    float: left;
    width: calc(100% - 178px);
}

.contant-assinatura-user .item-contant {
    display: none;
}

.contant-assinatura-user .item-contant.atv {
    display: block;
}

/* ---- Alerta de fatura em aberto ---- */
.contant-assinatura-user .ass-alerta-fatura {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 15px;
    margin-bottom: 18px;
    border: 1px solid rgba(245, 158, 11, 0.38);
    background: rgba(245, 158, 11, 0.1);
    border-radius: 13px;
}

.contant-assinatura-user .ass-alerta-fatura svg {
    width: 21px;
    height: 21px;
    flex: 0 0 21px;
    color: #f59e0b;
}

.contant-assinatura-user .ass-alerta-fatura .ass-alerta-txt strong {
    display: block;
    font-size: 14px;
    font-weight: 600;
}

.contant-assinatura-user .ass-alerta-fatura .ass-alerta-txt span {
    font-size: 12.5px;
    opacity: 0.7;
}

.contant-assinatura-user .visualizar-boleto {
    margin-left: auto;
    background: #f59e0b;
    color: #fff;
    font-size: 12.5px;
    font-weight: 600;
    padding: 7px 14px;
    border-radius: 100px;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: 0.18s;
}

.contant-assinatura-user .visualizar-boleto:hover {
    filter: brightness(0.95);
}

/* ---- Hero do plano ---- */
.contant-assinatura-user .nome-assinatura {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 18px;
    padding: 20px;
    margin-bottom: 22px;
    border: 1px solid var(--color-border);
    border-radius: 17px;
    background:
        radial-gradient(125% 150% at 100% 0%, rgba(28, 136, 253, 0.16) 0%, rgba(28, 136, 253, 0) 55%),
        var(--color-bg-01);
}

.contant-assinatura-user .nome-assinatura .hero-badge {
    display: inline-block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    opacity: 0.5;
    margin-bottom: 6px;
}

.contant-assinatura-user .nome-assinatura .hero-plano {
    margin: 0;
    font-size: 30px;
    line-height: 1.04;
    font-weight: 700;
}

.contant-assinatura-user .nome-assinatura .hero-extra {
    display: block;
    margin-top: 8px;
    font-size: 13px;
    font-weight: 500;
    opacity: 0.68;
}

.contant-assinatura-user .nome-assinatura .hero-acoes {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 11px;
    flex: 0 0 auto;
}

.contant-assinatura-user .nome-assinatura .hero-status {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.4px;
    text-transform: uppercase;
    padding: 4px 11px;
    border-radius: 100px;
    white-space: nowrap;
}

.contant-assinatura-user .nome-assinatura .bt {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 13px;
    font-weight: 600;
    padding: 9px 17px;
    border-radius: 100px;
    cursor: pointer;
    white-space: nowrap;
    transition: 0.18s;
}

.contant-assinatura-user .nome-assinatura .bt:hover {
    opacity: 0.88;
}

/* ---- Secoes e cards ---- */
.contant-assinatura-user .assinatura-secao {
    margin-bottom: 20px;
}

.contant-assinatura-user .secao-titulo {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    opacity: 0.42;
    margin-bottom: 10px;
}

.contant-assinatura-user .assinatura-cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.contant-assinatura-user .ass-card {
    position: relative;
    padding: 15px 16px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg);
    transition: 0.18s;
}

.contant-assinatura-user .ass-card:hover {
    border-color: rgba(28, 136, 253, 0.4);
}

.contant-assinatura-user .ass-card .ass-card-ico {
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: var(--color-bg-01);
    margin-bottom: 11px;
}

.contant-assinatura-user .ass-card .ass-card-ico svg {
    width: 17px;
    height: 17px;
    opacity: 0.72;
}

.contant-assinatura-user .ass-card label {
    display: block;
    font-size: 12px;
    font-weight: 500;
    opacity: 0.55;
    margin: 0 0 4px;
}

.contant-assinatura-user .ass-card .valor {
    font-size: 15.5px;
    font-weight: 600;
    line-height: 1.3;
}

.contant-assinatura-user .ass-card .valor .sub {
    display: block;
    margin-top: 3px;
    font-size: 12px;
    font-weight: 400;
    opacity: 0.52;
}

/* Botao "Alterar" no canto do card */
.contant-assinatura-user .ass-card .bt-alterar,
.contant-assinatura-user .pg-dados .bt-alterar,
.contant-assinatura-user .armazenamento .bt,
.contant-assinatura-user .ia-creditos .bt {
    position: absolute;
    top: 13px;
    right: 13px;
    font-size: 12px;
    font-weight: 600;
    color: #1c88fd;
    background: rgba(28, 136, 253, 0.1);
    padding: 4px 11px;
    border-radius: 100px;
    cursor: pointer;
    transition: 0.18s;
}

.contant-assinatura-user .ass-card .bt-alterar:hover,
.contant-assinatura-user .pg-dados .bt-alterar:hover,
.contant-assinatura-user .armazenamento .bt:hover,
.contant-assinatura-user .ia-creditos .bt:hover {
    background: rgba(28, 136, 253, 0.2);
}

/* Cards de uso com barra de progresso */
.contant-assinatura-user .uso-card .uso-valor {
    font-size: 16px;
    font-weight: 700;
    margin-bottom: 9px;
}

.contant-assinatura-user .uso-card .uso-valor span {
    font-size: 12.5px;
    font-weight: 400;
    opacity: 0.55;
}

.contant-assinatura-user .uso-card .uso-bar {
    height: 7px;
    border-radius: 100px;
    background: var(--color-bg-01);
    overflow: hidden;
}

.contant-assinatura-user .uso-card .uso-bar>span {
    display: block;
    height: 100%;
    border-radius: 100px;
    background: linear-gradient(90deg, #1c88fd, #3aa0ff);
    transition: width 0.4s ease;
}

.contant-assinatura-user .uso-card .uso-bar.alto>span {
    background: linear-gradient(90deg, #f59e0b, #ef4444);
}

.contant-assinatura-user .uso-card .uso-sub {
    display: block;
    margin-top: 9px;
    font-size: 11.5px;
    opacity: 0.5;
}

/* Cancelar assinatura */
.contant-assinatura-user .btn-cancelar-assinatura {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    font-size: 13px;
    font-weight: 500;
    color: #ef4444;
    opacity: 0.82;
    cursor: pointer;
    transition: 0.18s;
}

.contant-assinatura-user .btn-cancelar-assinatura svg {
    width: 16px;
    height: 16px;
}

.contant-assinatura-user .btn-cancelar-assinatura:hover {
    opacity: 1;
}

/* ---- Aba Faturas ---- */
.table-design-01 {
    width: 100%;
    color: var(--color-text-01);
    border-collapse: collapse;
}

.table-design-01 th {
    border-top: 0;
    font-size: 11.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    opacity: 0.5;
    padding: 8px 6px;
    text-align: left;
}

.table-design-01 td {
    font-size: 13px;
    padding: 12px 6px;
    border-top: 1px solid var(--color-border);
}

.status-design-01 {
    display: inline-block;
    width: max-content;
    padding: 3px 9px;
    border-radius: 100px;
    text-transform: uppercase;
    font-size: 10px;
    font-weight: 700;
    color: #fff;
}

.box-fatura-fechada {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    padding: 16px 18px;
    margin-bottom: 20px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg-01);
}

.box-fatura-fechada .ttl {
    width: 100%;
    font-size: 15px;
    font-weight: 700;
    margin-bottom: 2px;
}

.box-fatura-fechada .left-fatura-fechada .valor {
    font-size: 18px;
    font-weight: 700;
}

.box-fatura-fechada .left-fatura-fechada .vencimento {
    font-size: 12.5px;
    opacity: 0.65;
}

.box-fatura-fechada .right-fatura-fechada {
    margin-left: auto;
}

.box-fatura-fechada .right-fatura-fechada .bt-pagar {
    display: inline-block;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 100px;
    cursor: pointer;
    transition: 0.18s;
}

.box-fatura-fechada .right-fatura-fechada .bt-pagar:hover {
    color: var(--color-btn-text-01);
    opacity: 0.88;
}

/* Motivo da ultima falha de cobranca do cartao */
.box-fatura-fechada .left-fatura-fechada .fatura-falha-motivo {
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.35;
    color: #c0392b;
    max-width: 460px;
}

/* Botao secundario (Trocar cartao) ao lado do principal */
.box-fatura-fechada .right-fatura-fechada .bt-pagar.bt-pagar-sec {
    background: transparent;
    color: var(--color-text-01, inherit);
    border: 1px solid var(--color-border);
    margin-left: 8px;
}

/* Formulario de troca de cartao no popup */
.form-trocar-cartao {
    padding: 4px 2px 2px;
}

.form-trocar-cartao label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    opacity: 0.7;
    margin: 12px 0 4px;
}

.form-trocar-cartao input {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-bg-01);
    color: inherit;
    font-size: 14px;
}

.form-trocar-cartao .tc-linha {
    display: flex;
    gap: 10px;
}

.form-trocar-cartao .tc-linha>div {
    flex: 1;
}

.form-trocar-cartao .bt-trocar-cartao-enviar {
    display: inline-block;
    margin-top: 18px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    padding: 11px 22px;
    font-size: 14px;
    font-weight: 600;
    border-radius: 100px;
    cursor: pointer;
}

/* Icone de cupom na linha da fatura */
.fatura-cupom-ico {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin-left: 5px;
    color: #8b5cf6;
    cursor: help;
}

/* Linha da fatura clicavel */
.lstFaturas .fatura-row {
    transition: background 0.15s;
}

.lstFaturas .fatura-row:hover {
    background: var(--color-bg-01);
}

.fatura-valor-cell {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
}

.fatura-row-chevron {
    font-style: normal;
    opacity: 0.4;
    font-size: 16px;
}

/* Modal de detalhes da fatura */
.fatura-detalhe .fd-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin: 6px 0 12px;
}

.fatura-detalhe .fd-status {
    font-size: 12.5px;
    font-weight: 700;
    padding: 5px 12px;
    border-radius: 100px;
}

.fatura-detalhe .fd-total {
    font-size: 20px;
    font-weight: 700;
}

.fatura-detalhe .fd-cupom {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: #8b5cf6;
    background: rgba(139, 92, 246, 0.08);
    border: 1px solid rgba(139, 92, 246, 0.25);
    border-radius: 10px;
    padding: 9px 12px;
    margin-bottom: 10px;
}

.fatura-detalhe .fd-falha {
    font-size: 12.5px;
    color: #c0392b;
    background: rgba(192, 57, 43, 0.07);
    border-radius: 10px;
    padding: 9px 12px;
    margin-bottom: 10px;
}

.fatura-detalhe .fd-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px 14px;
    margin-bottom: 16px;
}

.fatura-detalhe .fd-grid>div {
    display: flex;
    flex-direction: column;
}

.fatura-detalhe .fd-grid span {
    font-size: 11.5px;
    opacity: 0.6;
}

.fatura-detalhe .fd-grid strong {
    font-size: 13.5px;
}

.fatura-detalhe .fd-grid strong.fd-pago {
    color: #10b981;
}

.fatura-detalhe .fd-sub {
    font-size: 13px;
    margin: 6px 0 8px;
    opacity: 0.75;
}

.fatura-detalhe .fd-comp {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.fatura-detalhe .fd-comp td {
    padding: 7px 0;
    border-bottom: 1px solid var(--color-border);
}

.fatura-detalhe .fd-comp td:last-child {
    text-align: right;
    white-space: nowrap;
}

.fatura-detalhe .fd-comp .fd-subtotal td {
    font-weight: 600;
}

.fatura-detalhe .fd-comp .fd-desc td {
    color: #8b5cf6;
}

.fatura-detalhe .fd-comp .fd-total-row td {
    font-size: 15px;
    font-weight: 700;
    border-bottom: none;
    padding-top: 10px;
}

.fatura-detalhe .fd-link {
    margin-top: 14px;
}

.fatura-detalhe .fd-link a {
    color: #2563eb;
    font-size: 13px;
}

/* ====================================================================
   Menu lateral acompanhando o scroll (desktop)
   O popup inteiro rola dentro de #edit-popup .contant (overflow:auto) e o
   conteudo das abas ficou alto (detalhamento + extrato); com o menu no topo
   do fluxo o usuario perdia a navegacao ao rolar. sticky funciona porque
   nenhum ancestral entre .left-contant e o scroller tem overflow definido.
   Sem background de proposito: a coluna da esquerda e exclusiva do menu (o
   conteudo flutua na direita), entao nada passa por baixo dele e o degrade
   decorativo do .bkd-custon-01 continua aparecendo.
   No mobile (<=600px) o menu ja vira uma barra horizontal, entao fica de fora.
==================================================================== */
@media (min-width: 601px) {

    .contant-assinatura-user .left-contant {
        position: sticky;
        top: 8px;
        z-index: 2;
    }
}

/* ====================================================================
   Detalhamento do valor da renovacao (card largo dentro de "Cobranca")
==================================================================== */
.contant-assinatura-user .ass-renovacao {
    grid-column: 1 / -1;
    padding: 0;
    overflow: hidden;
}

.contant-assinatura-user .ass-renovacao .rnv-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 15px 16px 13px;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

.contant-assinatura-user .ass-renovacao .rnv-topo-txt {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.contant-assinatura-user .ass-renovacao .rnv-topo-txt .ass-card-ico {
    margin-bottom: 0;
    background: var(--color-bg);
}

.contant-assinatura-user .ass-renovacao .rnv-topo-txt label {
    margin: 0;
    font-size: 12.5px;
    opacity: 0.62;
}

.contant-assinatura-user .ass-renovacao .rnv-total {
    font-size: 25px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

.contant-assinatura-user .ass-renovacao .rnv-total span {
    font-size: 13px;
    font-weight: 500;
    opacity: 0.5;
}

.contant-assinatura-user .ass-renovacao .rnv-itens {
    padding: 4px 16px 6px;
}

.contant-assinatura-user .ass-renovacao .rnv-item {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 0;
    border-bottom: 1px solid var(--color-border);
    font-size: 13.5px;
}

.contant-assinatura-user .ass-renovacao .rnv-item-nome {
    font-weight: 500;
    min-width: 0;
}

.contant-assinatura-user .ass-renovacao .rnv-item-nome em {
    display: block;
    margin-top: 2px;
    font-style: normal;
    font-size: 12px;
    opacity: 0.52;
}

.contant-assinatura-user .ass-renovacao .rnv-item-valor {
    font-weight: 600;
    white-space: nowrap;
}

.contant-assinatura-user .ass-renovacao .rnv-subtotal {
    opacity: 0.72;
}

.contant-assinatura-user .ass-renovacao .rnv-desconto .rnv-item-valor {
    color: #8b5cf6;
}

.contant-assinatura-user .ass-renovacao .rnv-total-linha {
    border-bottom: none;
    padding-top: 12px;
    font-size: 15px;
}

.contant-assinatura-user .ass-renovacao .rnv-total-linha .rnv-item-nome,
.contant-assinatura-user .ass-renovacao .rnv-total-linha .rnv-item-valor {
    font-weight: 700;
}

.contant-assinatura-user .ass-renovacao .rnv-aviso {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 16px 14px;
    padding: 9px 12px;
    border-radius: 10px;
    font-size: 12.5px;
    color: #8b5cf6;
    background: rgba(139, 92, 246, 0.08);
    border: 1px solid rgba(139, 92, 246, 0.25);
}

.contant-assinatura-user .ass-renovacao .rnv-aviso svg {
    flex: 0 0 14px;
}

.contant-assinatura-user .ass-renovacao .rnv-rodape {
    padding: 11px 16px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
    font-size: 12.5px;
    opacity: 0.68;
}

/* ====================================================================
   Aba "Pagamento"
==================================================================== */
.contant-assinatura-user .pg-cartao-wrap {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
}

.contant-assinatura-user .pg-cartao {
    flex: 0 0 260px;
    padding: 16px 18px;
    border-radius: 14px;
    color: #fff;
    background: linear-gradient(135deg, #1f2937, #0f172a 60%, #1c88fd);
}

.contant-assinatura-user .pg-cartao-chip {
    width: 32px;
    height: 23px;
    border-radius: 5px;
    margin-bottom: 22px;
    background: linear-gradient(135deg, #fde68a, #d97706);
    opacity: 0.9;
}

.contant-assinatura-user .pg-cartao-num {
    font-size: 17px;
    font-weight: 600;
    letter-spacing: 1.5px;
}

.contant-assinatura-user .pg-cartao-rodape {
    display: flex;
    justify-content: space-between;
    gap: 10px;
    margin-top: 14px;
    font-size: 11.5px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.8;
}

.contant-assinatura-user .pg-cartao-acoes {
    flex: 1 1 240px;
}

.contant-assinatura-user .pg-cartao-acoes p {
    margin: 0 0 12px;
    font-size: 12.5px;
    opacity: 0.62;
    line-height: 1.45;
}

/* .bt-pagar so tem estilo dentro de .box-fatura-fechada; aqui ele e reaproveitado
   fora daquele bloco, entao precisa da propria regra. */
.contant-assinatura-user .pg-cartao-acoes .bt-pagar {
    display: inline-block;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 100px;
    cursor: pointer;
    transition: 0.18s;
}

.contant-assinatura-user .pg-cartao-acoes .bt-pagar:hover {
    opacity: 0.88;
}

.contant-assinatura-user .pg-dados {
    position: relative;
    padding: 6px 16px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg);
}

.contant-assinatura-user .pg-dados-linha {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--color-border);
}

.contant-assinatura-user .pg-dados-linha:last-child {
    border-bottom: none;
}

.contant-assinatura-user .pg-dados-linha svg {
    width: 17px;
    height: 17px;
    flex: 0 0 17px;
    opacity: 0.45;
}

.contant-assinatura-user .pg-dados-linha span {
    display: block;
    font-size: 11.5px;
    opacity: 0.55;
}

.contant-assinatura-user .pg-dados-linha strong {
    font-size: 13.5px;
    font-weight: 600;
}

.contant-assinatura-user .pg-nota {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 12px;
    font-size: 12px;
    opacity: 0.6;
    line-height: 1.45;
}

.contant-assinatura-user .pg-nota svg {
    width: 15px;
    height: 15px;
    flex: 0 0 15px;
    margin-top: 1px;
}

.contant-assinatura-user .pg-vazio {
    padding: 16px;
    border: 1px dashed var(--color-border);
    border-radius: 14px;
    font-size: 13px;
    opacity: 0.65;
}

/* Banner de assinatura de cortesia (StatusID 5) */
.contant-assinatura-user .pg-cortesia {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px 16px;
    border: 1px solid rgba(34, 197, 94, 0.3);
    background: rgba(34, 197, 94, 0.08);
    border-radius: 14px;
}

.contant-assinatura-user .pg-cortesia svg {
    width: 19px;
    height: 19px;
    flex: 0 0 19px;
    margin-top: 1px;
    color: #16a34a;
}

.contant-assinatura-user .pg-cortesia strong {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 3px;
}

.contant-assinatura-user .pg-cortesia span {
    font-size: 12.5px;
    opacity: 0.7;
    line-height: 1.45;
}

/* ====================================================================
   Aba "Creditos de IA"
==================================================================== */
.contant-assinatura-user .ia-resumo {
    padding: 15px 16px;
}

.contant-assinatura-user .ia-marcas {
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 4px 16px;
    background: var(--color-bg);
}

.contant-assinatura-user .ia-marca {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--color-border);
}

.contant-assinatura-user .ia-marca:last-child {
    border-bottom: none;
}

.contant-assinatura-user .ia-marca-img {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
}

/* Fallback de iniciais do htmlAvatarPerfil (marca sem foto de rede/logo). */
.contant-assinatura-user .ia-marca-img.avatar-perfil-letra {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    color: var(--color-text-01);
    opacity: 0.75;
}

.contant-assinatura-user .ia-marca-txt {
    flex: 1 1 auto;
    min-width: 0;
}

.contant-assinatura-user .ia-marca-txt strong {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    margin-bottom: 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contant-assinatura-user .ia-marca-bar {
    height: 6px;
    border-radius: 100px;
    background: var(--color-bg-01);
    overflow: hidden;
}

.contant-assinatura-user .ia-marca-bar>span {
    display: block;
    height: 100%;
    border-radius: 100px;
    background: linear-gradient(90deg, #1c88fd, #3aa0ff);
}

.contant-assinatura-user .ia-marca-qtd {
    flex: 0 0 auto;
    font-size: 15px;
    font-weight: 700;
    white-space: nowrap;
}

.contant-assinatura-user .ia-marca-qtd span {
    display: block;
    font-size: 11.5px;
    font-weight: 400;
    opacity: 0.55;
    text-align: right;
}

/* Linha de ESPACO (aba Armazenamento): sem avatar, usa icone no mesmo box. */
.contant-assinatura-user .ia-marca-img.ia-marca-ico {
    display: flex;
    align-items: center;
    justify-content: center;
}

.contant-assinatura-user .ia-marca-img.ia-marca-ico svg {
    width: 16px;
    height: 16px;
    opacity: 0.6;
}

/* Nome de arquivo longo nao pode esticar a tabela. */
.contant-assinatura-user .arq-nome {
    max-width: 260px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Formulario de cadastro em modo "dados de cobranca": as duas etapas de uma vez. */
.usuario-cadastro-mais.todas-etapas .etapa-item {
    display: block;
}

/* ---- Responsivo ---- */
@media (max-width: 600px) {

    .contant-assinatura-user .left-contant,
    .contant-assinatura-user .right-contant {
        float: none;
        width: 100%;
        padding-right: 0;
    }

    .contant-assinatura-user .left-contant {
        display: flex;
        gap: 6px;
        margin-bottom: 16px;
        /* 4 abas nao cabem lado a lado numa tela estreita: vira barra rolavel. */
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    .contant-assinatura-user .left-contant .bt-menu {
        flex: 0 0 auto;
        white-space: nowrap;
    }

    .contant-assinatura-user .assinatura-cards {
        grid-template-columns: 1fr;
    }

    .contant-assinatura-user .ass-renovacao .rnv-topo {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .contant-assinatura-user .pg-cartao {
        flex: 1 1 100%;
    }

    .contant-assinatura-user .nome-assinatura {
        flex-direction: column;
        align-items: flex-start;
    }

    .contant-assinatura-user .nome-assinatura .hero-acoes {
        flex-direction: row;
        align-items: center;
        align-self: stretch;
        justify-content: space-between;
        margin-top: 4px;
    }
}

.group-lista-pai {
    border: 1px solid var(--color-border);

    border-radius: 14px;
    margin-bottom: 14px;
    /* box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03); */
}

.estrutura-lista.quadro-agrupado .group-lista-pai {
    border: 0px solid var(--color-border);
}

.group-lista-pai .hdr-lista-pai {
    padding: 11px 11px;
    /* background: #86868617; */
    border-radius: 8px 8px 0px 0px;
    /* border-bottom: 1px solid #ffffff14; */
}

.group-lista-pai .hdr-lista-pai h2 {
    font-size: 22px;
    font-weight: 600;
    float: left;
    margin: 0px;
}

.group-lista-pai .hdr-lista-pai .total-lista {
    font-size: 12px;
    opacity: 0.5;
    margin: 0px;
    float: left;
    padding: 5.5px 0px 0px 7px;
}

.group-lista-pai .hdr-lista-pai .sub-pai {
    opacity: 0.7;
    font-size: 12px;
    font-weight: 550;
}

.group-lista-pai .conteudo-lista-status {
    padding: 0px 11px 0px 11px;
}

.estrutura-lista.quadro-agrupado .group-lista-pai .conteudo-lista-status {
    padding-left: 0px;
}

.popup-delta .item-post.tarefa .lst-membros-all {
    width: 100%;
    padding: 3px 0px 0px 0px;
}

.box-plano-armazenamento-atual {
    background: #66666630;
    padding: 15px;
    border-radius: 10px;
    border: 1px solid #82828236;
    margin: 0px 0px 13px 0px;
}

.box-plano-armazenamento-atual h5 {
    font-size: 16px;
    margin: 0px;
}

.box-plano-armazenamento-atual .armazenamento {
    font-size: 40px;
    font-weight: 600;
}

.box-fatura-itens label {
    text-transform: uppercase;
    font-size: 13px;
    font-weight: 600;
    margin-top: 19px;
    opacity: 0.5;
    width: calc(100% - 24px);
    margin-left: 12px;
}

.box-fatura-itens .resumo-fim {
    border-top: 1px solid #ffffff0a;
    margin-top: 18px;
    /* background: #ffffff0d; */
    padding: 8px 0px;
}

.contant-assinatura-new .uso {
    padding: 10px 2px 0px 2px;
    /* background: #6666661c; */
    border-radius: 7px;
    margin-top: 10px;
    font-size: 13px;
    text-align: left;
}

.contant-calendario-home {
    padding: 0px 0px 0px 0px;
}

/* Popup "Ver todas as funcionalidades" - padrao visual do site (sitev2) */
#edit-popup-mini .contant .boxpop:has(.view-funcionalidades) {
    max-width: 600px;
    overflow: hidden;
}

.view-funcionalidades {
    padding: 0;
}

.view-funcionalidades .vf-topo {
    padding: 26px 26px 20px 26px;
    text-align: center;
    background: radial-gradient(120% 120% at 50% -10%, rgba(37, 99, 235, .10), transparent 60%), #fff;
    border-bottom: 1px solid #00000010;
}

.view-funcionalidades .vf-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: #2563eb;
    padding: 5px 12px;
    border-radius: 100px;
    background: linear-gradient(135deg, rgba(37, 99, 235, .10), rgba(124, 58, 237, .10));
    margin-bottom: 14px;
}

.view-funcionalidades .vf-eyebrow svg {
    width: 14px;
    height: 14px;
}

.view-funcionalidades .vf-topo h1 {
    font-size: 24px;
    line-height: 1.2;
    font-weight: 700;
    margin: 0;
    color: #11141c;
}

.view-funcionalidades .vf-grad {
    background: linear-gradient(115deg, #2563eb 0%, #6366f1 48%, #22d3ee 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

.view-funcionalidades .vf-sub {
    font-size: 13.5px;
    line-height: 1.5;
    color: #5b6472;
    margin: 10px auto 0 auto;
    max-width: 420px;
}

.view-funcionalidades .vf-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 22px 22px 8px 22px;
}

.view-funcionalidades .vf-card {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px;
    border: 1px solid #00000012;
    border-radius: 16px;
    background: #fff;
    transition: 0.25s;
}

.view-funcionalidades .vf-card:hover {
    border-color: rgba(37, 99, 235, .25);
    box-shadow: 0 8px 22px rgba(20, 30, 60, .08);
    transform: translateY(-2px);
}

.view-funcionalidades .vf-ico {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 11px;
    display: grid;
    place-items: center;
    color: #2563eb;
    background: linear-gradient(135deg, rgba(37, 99, 235, .12), rgba(124, 58, 237, .12));
}

.view-funcionalidades .vf-ico svg {
    width: 20px;
    height: 20px;
}

.view-funcionalidades .vf-card-body h3 {
    font-size: 14px;
    font-weight: 700;
    margin: 1px 0 0 0;
    color: #11141c;
    line-height: 1.25;
}

.view-funcionalidades .vf-card-body p {
    font-size: 12px;
    line-height: 1.4;
    color: #5b6472;
    margin: 4px 0 0 0;
}

.view-funcionalidades .vf-rodape {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin: 14px 22px 24px 22px;
    padding: 12px;
    font-size: 12.5px;
    font-weight: 600;
    color: #2563eb;
    background: linear-gradient(135deg, rgba(37, 99, 235, .07), rgba(124, 58, 237, .07));
    border-radius: 12px;
}

.view-funcionalidades .vf-rodape svg {
    width: 16px;
    height: 16px;
}

@media (max-width: 480px) {
    .view-funcionalidades .vf-grid {
        grid-template-columns: 1fr;
    }
}

.container-meus-perfis {
    padding-bottom: 35px;
    padding-top: 53px;
    padding-left: 15px;
    padding-right: 15px;
}

.not-redes {
    font-size: 10px;
    opacity: 0.5;
    margin-top: 4px;
}

.menu-itens-style-02 {
    padding: 0px 0px 0px 0px;
    float: left;
}

.menu-itens-style-02 .item {
    float: left;
    padding: 2px 9px;
    font-size: 13px;
    /* background: #66666659; */
    margin-right: 3px;
    border-radius: 100px;
    cursor: pointer;
    border: 1px solid #66666629;
}

.menu-itens-style-02 .item.atv {
    background: #ffffff;
    color: #000;
    font-weight: 600;
    cursor: initial;
    border-color: #000;
}

.empty-center-aviso {
    font-size: 12px;
    color: #666;
    text-align: center;
    padding: 30px;
}

.perfil-lst-item .bt-opcoes {
    display: none;
}

.perfil-lst-item:hover .bt-opcoes {
    display: block;
    position: absolute;
    right: 6px;
    top: 6px;
    background: #6666662e;
    padding: 1px 6px;
    border-radius: 7px;
    cursor: pointer;
}

.perfil-lst-item .bt-opcoes svg {
    width: 15px;
}

.btn-cancelar-assinatura {
    font-size: 12px;
    padding: 2px 1px;
    margin: 0px;
    text-decoration: underline;
    opacity: 0.7;
    cursor: pointer;
    float: initial;
    width: fit-content;
    clear: both;
    display: block;
    margin-top: 50px;
}

.btn-plus-m {
    /* position: absolute; */
    right: 12px;
    top: 12px;
    opacity: 1;
    cursor: pointer;
    transition: 0.3s;
    border-radius: 9px;
    margin-left: 3px;
    background: none !important;
}

.btn-plus-m svg {
    width: 13px;
    float: left;
    fill: #000000;
    margin-left: 5px;
}

.btn-plus-m:hover {
    opacity: 1;
}

.btn-plus-m .txt {
    float: left;
    font-size: 13px;
    line-height: 24px;
    color: #000000;
    font-weight: 550;
}

.btn-perfil-m {
    padding: 7px 5px;
    opacity: 0.6;
    cursor: pointer;
    transition: 0.3s;
    position: relative;
}

.btn-perfil-m svg {
    width: 14px;
    height: 14px;
}

.btn-perfil-m:hover {
    opacity: 1;
}

.btn-notificacao-m {
    /* position: absolute; */
    /* right: 88px; */
    /* top: 14px; */
    padding: 7px 5px;
    opacity: 0.6;
    cursor: pointer;
    transition: 0.3s;
    margin-right: 3px;
    position: relative;
}

.btn-notificacao-m svg {
    width: 14px;
    height: 14px;
}

.btn-notificacao-m:hover {
    opacity: 1;
}

.t-menu-notificacoes {
    max-width: 290px;
    /* position: fixed !important; */
    left: 19px !important;
    bottom: 61px !important;
    max-height: calc(100% - 116px);
    overflow: hidden;
    padding: 0px;
    top: initial !important;
    right: initial !important;
}

.t-menu-notificacoes h4 {
    font-size: 13px;
    margin: 0px;
}

.t-menu-notificacoes .header-popup {
    padding: 11px 0px 9px 12px;
    margin: 0px;
    /* Flutua sobre a lista: o conteudo rola por baixo do titulo e das
       pilulas, sem a borda seca onde a lista comecava */
    position: absolute;
    top: 0px;
    left: 0px;
    right: 0px;
    z-index: 2;
}

/* Um desfoque so para titulo + pilulas (sem tinta), sumindo para baixo pela
   mascara. No ::before para a mascara nao apagar o texto. */
.t-menu-notificacoes .header-popup::before {
    content: '';
    position: absolute;
    left: 0px;
    right: 0px;
    top: 0px;
    height: 84px;
    z-index: -1;
    pointer-events: none;
    -webkit-backdrop-filter: blur(12px) saturate(160%);
    backdrop-filter: blur(12px) saturate(160%);
    -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 62%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 0%, #000 62%, transparent 100%);
}

.t-menu-notificacoes .header-popup .selection-state {
    position: absolute;
    top: 35px;
    left: 0px;
    width: 100%;
    padding: 0px 11px;
    z-index: 2;
}

.t-menu-notificacoes .header-popup .selection-state .btn-state {
    float: left;
    font-size: 12px;
    margin-right: 6px;
    font-weight: 500;
    padding: 2px 10px;
    border-bottom: 1px solid #ffffff00;
    cursor: pointer;
    border-radius: 100px;
    background: #ededed;
    opacity: 0.8;
}

.t-menu-notificacoes .header-popup .selection-state .btn-state.atv {
    opacity: 1;
    background: #000000;
    color: #fff;
}

.t-menu-notificacoes .lst-notificacoes {
    padding: 7px;
    font-size: 12px;
    max-height: calc(100vh - 110px);
    overflow: auto;
    padding-top: 26px;
    position: relative;
    z-index: 1;
}

.t-menu-notificacoes .lst-notificacoes .zero {
    opacity: 0.5;
    font-weight: 300;
    padding: 10px 4px;
    /* text-align: center; */
}

.t-menu-notificacoes::after {
    display: none;
}

.t-menu-notificacoes .lst-notificacoes .item {
    padding: 8px 7px;
    /* border-top: 1px solid #6666662b; */
    position: relative;
    cursor: pointer;
    transition: 0.3s;
    border-radius: 11px;
}

.t-menu-notificacoes .lst-notificacoes .item .icon {
    width: 35px;
    /* float: left; */
    height: max-content;
    position: absolute;
    top: calc(50% - 13.5px);
}

.t-menu-notificacoes .lst-notificacoes .item .icon .img {
    width: 25px;
    height: 25px;
    border-radius: 100px;
    background-size: cover;
    background-position: center;
}

.t-menu-notificacoes .lst-notificacoes .item .contexto {
    /* float: left; */
    /* width: calc(100% - 35px); */
    min-height: 25px;
    padding-left: 36px;
    padding-right: 3px;
}

.t-menu-notificacoes .lst-notificacoes .item .contexto .ttl {
    font-weight: 500;
    font-size: 13px;
    line-height: 16px;
    margin-bottom: 5px;
}

.t-menu-notificacoes .lst-notificacoes .item .contexto .msg {
    font-size: 12px;
    opacity: 0.7;
    font-weight: 300;
    line-height: 15px;
    margin-bottom: 1px;
}

.t-menu-notificacoes .lst-notificacoes .item .contexto .dt {
    font-size: 9px;
    opacity: 0.4;
    font-weight: 300;
    text-align: right;
}

.t-menu-notificacoes .lst-notificacoes .item.new::after {
    content: "";
    display: block;
    position: absolute;
    right: 6px;
    top: calc(50% - 4px);
    width: 8px;
    height: 8px;
    background: #0064e0;
    box-shadow: 0px 0px 7px #0064e0;
    border-radius: 100px;
}

.t-menu-notificacoes .lst-notificacoes .item:hover {
    background: #6666661f;
}

.t-menu-notificacoes .btn-close {
    position: absolute;
    right: 0px;
    top: 0px;
    padding: 11px 16px;
    cursor: pointer;
    z-index: 3;
}

.t-menu-notificacoes .btn-close svg {
    width: 11px;
}

/* Sininho: mutar / desmutar o som das notificacoes (cabecalho do popup) */
.t-menu-notificacoes .btn-som-notificacao {
    position: absolute;
    right: 42px;
    top: 0px;
    padding: 11px 8px;
    cursor: pointer;
    opacity: 0.5;
    transition: opacity 0.2s, transform 0.15s;
    z-index: 3;
}

.t-menu-notificacoes .btn-som-notificacao:hover {
    opacity: 1;
}

.t-menu-notificacoes .btn-som-notificacao:active {
    transform: scale(0.88);
}

.t-menu-notificacoes .btn-som-notificacao svg {
    width: 15px;
    height: 15px;
    display: block;
}

.t-menu-notificacoes .btn-som-notificacao.som-mutado {
    opacity: 0.85;
}

.btn-notificacao-m .total {
    display: none;
}

.btn-notificacao-m.atv {
    opacity: 1;
}

.btn-notificacao-m.atv .total {
    background-color: #2556f5ff;
    color: #fff;
    display: block;
    width: 16px;
    height: 11px;
    font-size: 7px;
    border-radius: 4px;
    position: absolute;
    top: 2px;
    right: -1px;
    padding: 0px;
    line-height: 11px;
    text-align: center;
}

.t-menu-notificacoes .lst-notificacoes h3 {
    font-size: 14px;
    margin: 12px 0px 2px 6px;
}

.edicao-convite-espaco .txt {
    font-size: 14px;
    padding: 13px 0px 0px 0px;
}

.edicao-convite-espaco .actions {
    padding: 31px 0px 0px 0px;
}

.edicao-convite-espaco .actions .btn {
    background: #666;
    color: #fff;
    width: calc(50% - 4px);
    font-weight: 600;
    border-radius: 26px;
    cursor: pointer;
}

.edicao-convite-espaco .actions .btn.sim {
    background: #fff;
    color: #000;
    margin-right: 3px;
}

.edicao-convite-espaco .actions .btn.nao {
    background: #534444;
    color: #ff4545;
}

.bx-perfil-rede-conectada {
    margin: auto;
    width: fit-content;
    padding: 0px 0px 20px 0px;
    display: flex;
}

.bx-perfil-rede-conectada .img {
    width: 35px;
    height: 35px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    float: left;
    border: 1px solid #66666666;
}

.bx-perfil-rede-conectada .nome {
    float: left;
    /* max-width: calc(100% - 40px); */
    padding: 6px 0px 0px 8px;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

.criar-tarefa .btn-status-tarefa .txt {
    width: fit-content;
    max-width: 200px;
}

.lst-notificacoes .tag {
    color: #000;
    background: #66666638;
    padding: 7px 5px 6px 5px;
    margin: 0;
    display: block;
    float: initial;
    width: fit-content;
    text-transform: uppercase;
    font-weight: 400;
    line-height: 3px;
    font-size: 8px;
    margin-bottom: 4px;
    letter-spacing: 1px;
    opacity: 0.7;
}

.tarefas-geral .btn-add-tarefa-quad {
    display: none;
}

.tarefas-geral .lst-conteudos-quad {
    max-height: calc(100vh - 130px) !important;
    padding-bottom: 6px;
}

.contant-criar-conteudo .centraliza {
    padding: 7px 18px 10px 18px;
}

.contant-criar-conteudo .ipt2-col.local-agendamento {
    width: calc(30% - 6px);
    margin-right: 6px;
}

.contant-criar-conteudo .ipt2-col.local-agendamento,
.contant-criar-conteudo .ipt2-col.tipo-agendamento,
.contant-criar-conteudo .ipt2-col.data-agendamento,
.contant-criar-conteudo .ipt2-col.local-tipo-agendamento {
    border: 1px solid var(--color-border);
    padding: 8px;
    border-radius: 10px;
    margin-bottom: 16px;
    font-size: 15px;
}

.contant-criar-conteudo .ipt2-col.data-agendamento input.datepicker.form-control {
    margin-bottom: 0px;
    padding-bottom: 0px;
    height: 28px;
    font-size: 15px;
    padding-left: 2px;
}

.hdr-group-perfil {
    padding: 10px 0px 11px 8px;
}

.hdr-group-perfil .img-perfil {
    width: 35px;
    height: 35px;
    background-size: cover;
    border-radius: 13px;
    float: left;
    border: 1px solid #9b9b9b36;
    background-clip: padding-box;
    opacity: 1;
}

.hdr-group-perfil h2 {
    margin: 0px;
    float: left;
    padding: 5px 0px 0px 6px;
    font-size: 22px;
}

.hdr-group-perfil .total-perfil {
    float: left;
    opacity: 0.6;
    padding: 0px 0px;
    margin: 11px 0px 0px 9px;
}

.espaco-usuario-alterar-permissao select {
    border: 1px solid #666;
    border-radius: 7px;
}

#edit-popup-mini .editar-popuo-v3 {
    width: 100% !important;
}

.espaco-usuario-alterar-permissao {
    padding: 15px;
}

.espaco-usuario-alterar-permissao .descricao {
    font-size: 12px;
    padding: 7px 0px 13px 0px;
    opacity: 0.8;
    font-weight: 300;
}

.tag-rede-conectada {
    background: #11b511;
    color: #fff;
    font-size: 11px !important;
    text-transform: uppercase;
    width: fit-content;
    margin: auto;
    padding: 5px 11px 4px 11px;
    font-weight: 600;
    border-radius: 23px;
}

.dropdown-contant .lbel::after,
.data-agendamento .lbel::after {
    display: inline-block;
    margin-left: .255em;
    vertical-align: .255em;
    content: "";
    border-top: .3em solid;
    border-right: .3em solid transparent;
    border-bottom: 0;
    border-left: .3em solid transparent;
}

.box-view-perfil-open .btns-mais {
    margin-left: auto;
}

.box-view-perfil-open .btns-mais .btn {
    padding: 5px;
}

.box-view-perfil-open .btns-mais .btn svg {
    width: 13px;
}

.box-view-perfil-open .btns-mais .btn:hover {
    opacity: 1;
}

.cursor-pointer {
    cursor: pointer;
    opacity: 0.8;
    transition: 0.3s;
}

.cursor-pointer:hover {
    opacity: 1;
}

.text-dinamic-all {
    /* box-sizing: content-box; */
    overflow: hidden;
}

.edicao-page-comentarios .topo .selection-state {
    padding: 0px 0px 0px 0px;
    display: flex;
    margin-left: auto;
}

.edicao-page-comentarios .topo .selection-state .btn-state {
    float: left;
    font-size: 13px;
    margin-right: 0px;
    font-weight: 500;
    cursor: pointer;
    opacity: 0.8;
    padding: 4px 10px 4px 10px;
    border-bottom: 0px solid rgba(255, 255, 255, 0);
    border-radius: 9px;
    background: rgb(237 237 237 / 0%);
}

.edicao-page-comentarios .topo .selection-state .btn-state.atv {
    opacity: 1;
    color: rgb(0 0 0);
    /* background: rgb(129 129 129 / 11%); */
    font-weight: 600;
    border: 1px solid #000000a1;
}

.edicao-page-comentarios .topo .bottom-mask {
    background-image: linear-gradient(to bottom, #ffffff 0%, #ffffff 50%, rgb(0 0 0 / 0%) 100%);
    display: block;
    width: 100%;
    height: 7px;
    clear: both;
    display: none;
}

.edicao-popup>.edicao-page-comentarios>.topo>.bottom-mask {
    clear: both;
    height: 0;
    opacity: 0;
}

.edicao-popup>.edicao-page-comentarios>.topo>.selection-state {
    margin-right: 25px;
}

.edicao-popup .topo::after {
    clear: both;
    display: block;
    content: "";
}

.container-atividades .atividades-lst .info-zero {
    font-size: 12px;
    text-align: center;
    font-weight: 300;
    opacity: 0.6;
}

.midia-uni .owl-carousel {
    border-radius: 10px;
    overflow: hidden;
}

.header-pagina .header-style-01,
.header-pagina .header-style-01 {
    clear: both;
    position: fixed;
    top: 63px;
    display: flex;
    align-items: center;
    margin: 0px;
    padding: 0px 0px 0px 8px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

.header-pagina .header-style-01 .item,
.header-pagina .header-style-01 .item {
    padding-top: 0px;
}

.container-meus-perfis .lst-perfis {
    clear: both;
    padding-top: 17px;
    display: flex;
    flex-wrap: wrap;
}

.sem-conteudo {
    font-size: 13px;
    font-weight: 300;
    opacity: 0.5;
}

.container-meus-perfis.planejamentos {
    padding-top: 0px;
    padding-left: 0px;
    padding-right: 0px;
}

.col-item-perfil .info-right {
    float: left;
    padding: 0px 0px 0px 9px;
    font-size: 18px;
    font-weight: 500;
    color: #000;
    max-width: calc(100% - 51px);
    position: relative;
    z-index: 2;
}

.col-item-perfil .info-right .nome {
    float: initial;
    width: auto;
    max-width: 100%;
    height: auto;
    padding: 0px 0px 0px 0px !important;
    font-weight: 600;
}

.col-item-perfil .info-right .redes {
    line-height: 14px;
}

.col-item-perfil .info-right .redes svg {
    margin-right: 1px;
    margin-left: 1px;
    width: 11px !important;
    height: 11px !important;
}

.nenhuma-rede {
    font-size: 11px;
    color: #666;
}

.dashboard-header .agrupador-perfis {
    float: right;
    padding: 15px 0px 15px 0px;
    position: relative;
    cursor: pointer;
}

.dashboard-header .agrupador-perfis .selecionado {
    float: left;
    font-weight: 450;
}

.dashboard-header .agrupador-perfis svg {
    width: 20px;
    transform: rotate(270deg);
    opacity: 0.5;
    float: right;
    margin: -0.6px 0px 0px 3px;
}

.dropdown-default.filtro-grupo {
    top: 49px !important;
}

.local-tipo-agendamento {
    max-width: 182px;
    width: auto;
    padding-right: 22px;
    padding-left: 0px;
}

.dropdown-hibrido {
    width: 210px !important;
    padding: 0px !important;
}

.hibrido-container {
    display: flex;
    width: 100%;
}

.hibrido-container .col-canais,
.hibrido-container .col-tipos {
    flex: 1;
    /* max-height: 250px; */
    overflow-y: auto;
    padding-top: 13px;
    padding-bottom: 9px;
}

.hibrido-container .col-canais {
    padding-left: 4px;
}

.hibrido-container .titulo-coluna {
    padding: 12px 16px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #888888;
    font-weight: 600;
    border-bottom: 1px solid #f0f0f0;
    position: sticky;
    top: 0;
    z-index: 2;
}

.hibrido-container .it-canal,
.hibrido-container .it-tipo-filho {
    padding: 3px 11px;
    font-size: 14px;
    cursor: pointer;
    transition: all 0.2s ease;
    border-left: 1.6px solid transparent;
    opacity: 0.8;
    position: relative;
    line-height: 20px;
    font-weight: 400;
}

.hibrido-container .it-canal:hover,
.hibrido-container .it-tipo-filho:hover {
    opacity: 1;
    border-color: #ffffff6e;
}

.hibrido-container .it-canal.atv,
.hibrido-container .it-tipo-filho.atv {
    border-color: #000000;
    opacity: 1;
    font-weight: 700;
}

.hibrido-footer {
    padding: 6px 13px;
    border-top: 1px solid var(--color-border);
    display: flex;
    justify-content: flex-end;
    background: #00000008;
    border-radius: 0px 0px 12px 12px;
}

.hibrido-footer .btn-hibrido-ok {
    background-color: #000;
    color: #fff;
    border: none;
    border-radius: 100px;
    padding: 4px 12px;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.3px;
    cursor: pointer;
    opacity: 0.9;
    transition: 0.3s;
    width: 100%;
}

.hibrido-footer .btn-hibrido-ok:hover {
    opacity: 1;
}

.hibrido-footer .btn-hibrido-ok:active {
    transform: scale(0.97);
}

.hibrido-container .ttl {
    font-size: 12px;
    padding: 0px 0px 4px 11px;
    opacity: 0.4;
}

.hibrido-container .col-tipos {
    background: #f9f9fb;
    padding-left: 10px;
}

.hibrido-container .it-canal.atv::after {
    position: absolute;
    display: block;
    pointer-events: none;
    border: solid transparent;
    content: '';
    height: 0;
    width: 0;
    right: -25px;
    top: 0px;
    transform: rotate(45deg);
    z-index: -1;
    background: #f9f9fb;
    width: 30px;
    height: 30px;
    border-radius: 3px;
}

.menu-itens-style-01::-webkit-scrollbar {
    display: none;
}

.btn-open-planejamento {
    float: left;
    background: #698ba60a;
    border: 1px solid #0000002b;
    padding: 5px 10px;
    font-size: 12px;
    border-radius: 8px;
    cursor: pointer;
    /* clear: both; */
    margin: 0px 35px 6px 4px;
    float: right;
}

.fc .fc-daygrid-day.fc-day-today .fc-daygrid-day-frame {
    border-color: #fff;
}

.fc .fc-daygrid-day-frame {
    border: 1px solid #ffffff14;
    border-radius: 9px;
    padding: 7px;
}

thead tr th {
    font-weight: 300;
}

.theme-switch {
    position: absolute;
    width: 128px;
    height: 29px;
    border-radius: 40px;
    cursor: pointer;
    display: flex;
    align-items: center;
    transition: background-color 0.4s ease;
    box-sizing: border-box;
    padding: 5px;
    font-family: sans-serif;
    user-select: none;
    top: 12px;
    right: 14px;
    border: 1px solid var(--color-border);
}

.switch-handle {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    position: absolute;
    display: flex;
    justify-content: center;
    align-items: center;
    transition: left 0.4s ease, transform 0.4s ease;
    left: 5px;
    background: #ffffff24;
}

.switch-text {
    font-size: 10px;
    font-weight: 500;
    position: absolute;
    transition: opacity 0.4s ease;
    letter-spacing: 0.5px;
}

.theme-switch .text-day {
    left: 11px;
    color: #222222;
    opacity: 0;
}

.theme-switch.text-night {
    right: 12px;
    color: #ffffff;
    opacity: 1;
}

.theme-switch .icon {
    width: 10px;
    height: 10px;
    position: absolute;
    transition: opacity 0.4s ease, transform 0.4s ease;
}

.theme-switch[data-state="1"] .icon.sun {
    opacity: 0;
    transform: rotate(-90deg);
    width: 10px;
    height: 10px;
}

.theme-switch[data-state="1"] .icon.moon {
    opacity: 1;
    transform: rotate(0);
    width: 10px;
    height: 10px;
}

.theme-switch .text-night {
    padding-left: 26px;
}

.theme-switch[data-state="0"] {
    border: 1px solid #00000017;
}

.theme-switch[data-state="0"] .switch-handle {
    left: calc(100% - 25px);
    background: #927f7524;
}

.theme-switch[data-state="0"] .text-day {
    opacity: 1;
}

.theme-switch[data-state="0"] .text-night {
    opacity: 0;
}

.theme-switch[data-state="0"] .icon.moon {
    opacity: 0;
    transform: rotate(90deg);
    width: 10px;
    height: 10px;
}

.theme-switch[data-state="0"] .icon.sun {
    opacity: 1;
    transform: rotate(0);
}

.t-menu-geral-m div.it-bt .txt {
    font-weight: 550;
}

#planejamento-contant,
.view-planejamento {
    transition: padding 0.1s ease-in-out;
    /* transition: width 0.1s ease-in-out, height 0.3s ease-in-out; */
}

.box-assinatura-container {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 19px;
    padding: 0px;
    border-radius: 12px;
    margin: 0px 0px 20px 0px;
    transition: box-shadow 0.3s ease, transform 0.3s ease;
    width: fit-content;
}

.box-assinatura-container .info-plano {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin-top: 2px;
}

.box-assinatura-container .info-plano .label-plano {
    font-size: 9px;
    line-height: 6px;
    font-weight: 600;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.box-assinatura-container .info-plano .nome-plano {
    font-size: 15px;
    font-weight: 700;
    color: #1a1a1a;
    line-height: 15px;
}

.box-assinatura-container .acoes-plano {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.box-assinatura-container .acoes-plano .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 8px 15px;
    font-size: 12px;
    font-weight: 600;
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.2s ease-in-out;
    text-decoration: none;
    margin-top: 0px;
    border: 1px solid var(--glass-borda) !important;
    box-shadow: var(--glass-brilho), var(--glass-sombra), 0 40px 90px -30px rgba(0, 0, 0, .08) !important;
}

.box-assinatura-container .acoes-plano .btn-primary {
    background-color: #00000000;
    color: #2563eb;
    border: 1px solid #8c8c8c45;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.box-assinatura-container .acoes-plano .btn-primary:hover {
    box-shadow: 0 4px 6px -1px rgba(37, 99, 235, 0.2);
}

.box-assinatura-container .acoes-plano .btn-segundario {
    background-color: transparent;
    color: #0f172a;
    border: 1px solid #cbd5e1;
}

.box-assinatura-container .acoes-plano .btn-segundario:hover {
    border-color: #64748b;
}

.group-itens-box .lst-listas .item {
    border-top: 1px solid;
    border-color: var(--color-border);
    padding: 5px 2px;
}

.group-itens-box .lst-listas .item .txt {
    float: left;
}

.group-itens-box .lst-listas .item .btn-plus {
    float: right;
    width: 16px;
    height: 16px;
    padding: 4px 0px;
}

.group-itens-box .lst-listas .item .btn {
    float: right;
    padding: 0px 7px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.group-itens-box .lst-listas .item .btn.btn-excluir {
    color: red;
}

.contant-criar-conteudo .ipt2-col {
    border: 0px;
}

.select-perfis {
    border: 1px solid var(--color-border) !important;
    float: initial;
}

.contant-criar-conteudo .ipt2-col.local-tipo-agendamento {
    max-width: calc(50% - 5px);
    width: 100%;
    margin-right: 5px;
}

.contant-criar-conteudo .ipt2-col.data-agendamento {
    width: 100%;
    max-width: 50%;
}

.box-cupom {
    margin: 15px 0px 0px 0px;
}

.box-cupom label {
    font-size: 13px;
    margin-bottom: 3px;
    font-weight: 400;
}

.box-cupom .cupom-container input {
    font-size: 13px;
    border: 0px;
    background: none;
    height: 30px;
    border-radius: 8px;
    padding: 0px 7px;
    width: calc(100% - 90px);
    float: left;
    border: 1px solid var(--color-border);
}

.box-cupom .cupom-container .aplicar-cupom {
    font-size: 13px;
    /* background: #efefef; */
    float: left;
    padding: 5px 6px;
    border-radius: 9px;
    margin-left: 2px;
    font-weight: 600;
    cursor: pointer;
}

.menu-sistema .usuario .btn-edit {
    float: right;
    padding: 7px 6px 7px 6px;
    margin-right: 6px;
    margin-top: 1px;
    border-radius: 7px;
    cursor: pointer;
    transition: 0.3s;
}

.menu-sistema .usuario .btn-edit:hover {
    background: #a6a6a624;
}

.menu-sistema .usuario .btn-edit svg {
    width: 12px;
}

.usuario-img .sigla {
    font-size: 10px;
    text-align: center;
    color: #82828294;
    font-weight: 500;
}

.lst-membros-all .item:has(+ .btn-add-membro) {
    margin-right: 0px;
}

.dropdown-default.tarefa-prioridade {
    left: 0px;
    top: 29px;
    max-width: 200px;
    padding: 10px;
}

.dropdown-default.tarefa-prioridade .ttl {
    font-size: 12px;
    padding: 3px 0px 7px 1px;
    opacity: 0.5;
}

.dropdown-default.tarefa-prioridade .lst-prioridade .st-item {
    display: flex;
    padding: 7px 7px;
    transition: 0.3s;
    border-radius: 8px;
    cursor: pointer;
}

.dropdown-default.tarefa-prioridade .lst-prioridade .st-item:hover {
    background: #d3d3d33b;
}

.dropdown-default.tarefa-prioridade .lst-prioridade .st-item .st-icon {
    width: 15px;
}

.dropdown-default.tarefa-prioridade .lst-prioridade .st-item .st-txt {
    font-size: 14px;
    line-height: 14px;
    padding-left: 10px;
}

.item-post.tarefa .parametros .item .valor.prioridade,
.item-post.tarefa .edicao .parametros .item .valor.data {
    display: flex;
    align-items: center;
}

.item-post.tarefa .parametros .item .valor.prioridade .selecionado .st-icon {
    width: 15px;
}

.item-post.tarefa .parametros .item .valor.prioridade .selecionado {
    display: flex;
}

.item-post.tarefa .parametros .item .valor.prioridade .selecionado .txt {
    font-size: 14px;
    line-height: 15px;
    padding-left: 6px;
}

.prioridade-box {
    display: flex;
}

.prioridade-box .st-icon {
    width: 13px;
}

.prioridade-box .txt {
    font-size: 13px;
    line-height: 13px;
    padding-left: 6px;
}

#lst-posts .item-post:focus,
#lst-posts .item-post:focus-within,
#lst-posts .item-post:hover {
    z-index: 8;
}

.box-resumo-itens {
    position: relative;
    z-index: 2;
    display: block;
    clear: both;
    padding-top: 1px;
}

.box-resumo-itens .item {
    display: flex;
    font-size: 11px;
    margin: 0px;
    background: #9f9f9f1f;
    border-radius: 6px;
    padding: 0px 5px;
    width: fit-content;
    float: left;
    margin: 3px 3px 0px 0px;
}

.box-resumo-itens .item label {
    margin: 0px;
}

.box-resumo-itens .item .numero {
    font-weight: 600;
    padding: 0px 0px 0px 0px;
    margin: 0px 3px 0px 0px;
}

.header-topo .thumb-user {
    width: 32px;
    height: 32px;
    font-size: 11px;
}

.placeholder {
    opacity: 0.4;
    transform: none !important;
    transform: rotate(-2deg);
}

.planejamento-item {
    border: 1px solid var(--color-border);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    position: relative;
    overflow: hidden;
    padding: 14px;
    border-radius: 12px;
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
    transition: 0.2s;
}

.planejamento-item:hover {
    border-color: #66666699;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04);
    transform: translateY(-2px);
}

.planejamento-item .img {
    width: 50px;
    height: 50px;
    background-size: cover;
    position: relative;
    border-radius: 50%;
    float: left;
    border: 2px solid #cdcdcd29;
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
}

.planejamento-item .nome {
    margin-top: -1px !important;
}

.header-topo .mask,
.planejamento-item .mask {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    background: #ffffffe6;
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    border-radius: 14px;
}

.header-topo .mask {
    backdrop-filter: blur(15px) !important;
    -webkit-backdrop-filter: blur(15px) !important;
}

.header-topo .image-background,
.planejamento-item .image-background {
    background-size: cover;
    background-position: center;
    position: absolute;
    left: 6px;
    top: 6px;
    width: calc(100% - 12px);
    height: calc(100% - 12px);
    z-index: 0;
}

.container-meus-planejamentos {
    padding: 20px;
}

.container-meus-planejamentos .lst-perfis {
    grid-template-columns: repeat(3, 1fr);
    display: grid;
    gap: 15px;
}

/* =========================================
   BI DASHBOARD - ESTILO PROFISSIONAL
========================================= */
.contant-metrica-perfil-conteudo.bi-dashboard {
    padding: 20px;
    border-radius: 12px;
}

/* ===== Tabs Geral / Publicacoes - underline minimalista =====
   Um unico acento (sublinhado em gradiente que cresce); texto monocromatico
   em tinta primaria. Sem trilho/pilula/sombra - tema-agnostico. */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-metricas {
    display: inline-flex;
    gap: 26px;
    margin: 0 0 22px 0;
    padding: 0;
    border: none;
    background: none;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-metricas button {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border: none;
    background: none;
    padding: 6px 2px 11px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -0.1px;
    color: inherit;
    opacity: 0.45;
    cursor: pointer;
    transition: opacity 0.16s ease;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-metricas button svg {
    width: 16px;
    height: 16px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-metricas button::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, #2563eb, #7c3aed);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.22s cubic-bezier(0.4, 0, 0.2, 1);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-metricas button:hover {
    opacity: 0.8;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-metricas button.ativo {
    opacity: 1;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-metricas button.ativo::after {
    transform: scaleX(1);
}

/* Clique de mouse nao deve deixar borda/anel; teclado (focus-visible) mantem. */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-metricas button:focus {
    outline: none;
    box-shadow: none;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-metricas button:focus-visible {
    outline: 2px solid color-mix(in srgb, #2563eb 50%, transparent);
    outline-offset: 3px;
    border-radius: 4px;
}

/* ===== Toolbar de publicacoes ===== */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacoes-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 16px;
    font-size: 13px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-count {
    font-size: 14px;
    font-weight: 700;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-ordenar {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    opacity: 0.75;
    font-weight: 500;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacoes-toolbar select {
    height: 38px;
    padding: 0 12px;
    border-radius: 9px;
    border: 1px solid var(--color-border);
    background: none;
    color: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

/* ===== Cards de publicacoes (grid responsivo) ===== */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacoes-lista {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(430px, 1fr));
    gap: 14px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item {
    display: flex;
    gap: 14px;
    padding: 14px;
    background: rgba(130, 130, 130, 0.05);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 28px -16px rgba(0, 0, 0, 0.35);
    border-color: color-mix(in srgb, #2563eb 30%, var(--color-border));
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-midia {
    position: relative;
    flex: 0 0 132px;
    aspect-ratio: 1 / 1;
    border-radius: 12px;
    overflow: hidden;
    background: rgba(130, 130, 130, 0.14);
    display: flex;
    align-items: center;
    justify-content: center;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-midia img,
.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-midia video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-sem-midia {
    color: inherit;
    opacity: 0.45;
    font-size: 11px;
}

/* Badge de plataforma - cor da marca + logo */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-plataforma {
    position: absolute;
    top: 7px;
    left: 7px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 8px 3px 6px;
    border-radius: 100px;
    font-size: 10.5px;
    font-weight: 700;
    color: #fff;
    background: rgba(0, 0, 0, 0.7);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.25);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-plataforma[data-net="facebook"] {
    background: #1877F2;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-plataforma[data-net="instagram"] {
    background: linear-gradient(135deg, #feda75, #d62976 48%, #962fbf 85%);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-plataforma[data-net="tiktok"] {
    background: #111;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-plataforma[data-net="linkedin"] {
    background: #0A66C2;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-plataforma[data-net="youtube"] {
    background: #FF0000;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-plat-logo {
    width: 12px;
    height: 12px;
    display: inline-flex;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-plat-logo svg {
    width: 100%;
    height: 100%;
    fill: #fff;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-data {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    opacity: 0.6;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-pub-data-ic {
    width: 13px;
    height: 13px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-legenda {
    font-size: 13px;
    line-height: 1.45;
    opacity: 0.75;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-metricas {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(84px, 1fr));
    gap: 8px;
    margin-top: auto;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-mini-kpi {
    background: rgba(130, 130, 130, 0.1);
    border-radius: 10px;
    padding: 8px 10px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-mini-kpi small {
    font-size: 10.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.2px;
    opacity: 0.55;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-mini-kpi strong {
    display: block;
    font-size: 16px;
    font-weight: 700;
    margin-top: 2px;
}

@media (max-width: 700px) {
    .contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacoes-lista {
        grid-template-columns: 1fr;
    }

    .contant-metrica-perfil-conteudo.bi-dashboard .bi-publicacao-item .bi-pub-midia {
        flex-basis: 104px;
    }
}

/* HEADER INSTAGRAM STYLE */
.contant-metrica-perfil-conteudo.bi-dashboard .ig-header {
    display: flex;
    align-items: center;
    gap: 18px;
    margin-bottom: 26px;
    padding: 20px 0px;
    border-radius: 16px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .ig-avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background-color: #9c9c9c29;
    display: flex;
    /* align-items: center; */
    justify-content: center;
    font-size: 35px;
    color: #fff;
    flex-shrink: 0;
    font-weight: bold;
    border: 2px solid #66666647;
    background-clip: padding-box;
}

.contant-metrica-perfil-conteudo.bi-dashboard .ig-info h2 {
    font-size: 30px;
    margin: 0 0 10px 0;
    font-weight: 600;
}

.contant-metrica-perfil-conteudo.bi-dashboard .ig-stats {
    display: flex;
    gap: 25px;
    font-size: 14px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .ig-stats strong {
    font-size: 15px;
}

/* FILTROS E ABAS */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-filters-panel {
    display: flex;
    flex-wrap: wrap;
    gap: 14px;
    margin-bottom: 25px;
    align-items: center;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-filters-panel #btndownloadgridmetricas {
    margin-left: auto;
}

/* ===== Seletor de periodo (botao + dropdown estilo Meta/GA) ===== */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo {
    position: relative;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-btn {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    height: 42px;
    padding: 0 14px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    background: none;
    color: inherit;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    transition: border-color 0.18s, box-shadow 0.18s;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-btn .bi-ic-cal {
    width: 17px;
    height: 17px;
    color: #2563eb;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-btn .bi-ic-chev {
    width: 15px;
    height: 15px;
    opacity: 0.55;
    transition: transform 0.18s;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo.aberto .bi-ic-chev {
    transform: rotate(180deg);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo.aberto .bi-periodo-btn {
    border-color: color-mix(in srgb, #2563eb 55%, transparent);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.14);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-menu {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    z-index: 40;
    min-width: 234px;
    padding: 8px;
    border-radius: 14px;
    border: 1px solid var(--color-border);
    background: #ffffff;
    box-shadow: 0 18px 44px -14px rgba(0, 0, 0, 0.28);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo.aberto .bi-periodo-menu {
    display: block;
    animation: biMenuIn 0.14s ease;
}

@keyframes biMenuIn {
    from {
        opacity: 0;
        transform: translateY(-6px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-presets {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-preset {
    display: flex;
    align-items: center;
    justify-content: space-between;
    text-align: left;
    border: none;
    background: none;
    color: inherit;
    padding: 9px 12px;
    border-radius: 9px;
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.14s, color 0.14s;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-preset:hover {
    background: rgba(37, 99, 235, 0.08);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-preset.ativo {
    background: color-mix(in srgb, #2563eb 12%, transparent);
    color: #2563eb;
    font-weight: 700;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-preset.ativo::after {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #2563eb;
    flex: 0 0 auto;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-sep {
    height: 1px;
    background: var(--color-border);
    margin: 6px 4px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-custom {
    display: none;
    margin-top: 6px;
    padding: 10px;
    border-radius: 10px;
    background: rgba(127, 127, 127, 0.07);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-custom.aberto {
    display: block;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-cf {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-cf label {
    width: 28px;
    margin: 0;
    font-size: 12px;
    font-weight: 600;
    opacity: 0.7;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-cf input {
    flex: 1;
    min-width: 0;
    height: 36px;
    padding: 0 10px;
    border-radius: 8px;
    border: 1px solid var(--color-border);
    background: none;
    color: inherit;
    font-size: 13px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-custom-aplicar {
    width: 100%;
    height: 38px;
    margin-top: 2px;
    border: none;
    border-radius: 9px;
    background: linear-gradient(135deg, #2563eb, #4f7ef0);
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    cursor: pointer;
    transition: filter 0.15s;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-custom-aplicar:hover {
    filter: brightness(1.06);
}

/* ===== Chips de rede (quais redes puxam os dados) ===== */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat-cap {
    font-size: 12px;
    font-weight: 600;
    opacity: 0.55;
    margin-right: 2px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 13px 7px 10px;
    margin: 0;
    border-radius: 100px;
    border: 1.5px solid var(--color-border);
    background: rgba(138, 138, 138, 0.08);
    color: #78808e;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    user-select: none;
    opacity: 0.7;
    transition: 0.18s;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat[data-net="facebook"] {
    --net: #1877F2;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat[data-net="instagram"] {
    --net: #E1306C;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat[data-net="tiktok"] {
    --net: #ff2b55;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat[data-net="linkedin"] {
    --net: #0A66C2;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat[data-net="youtube"] {
    --net: #FF0000;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat input {
    display: none;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat-logo {
    width: 18px;
    height: 18px;
    display: inline-flex;
    color: #9aa0a6;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat-logo svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat-nome {
    line-height: 1;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat-check {
    width: 0;
    overflow: hidden;
    display: inline-flex;
    align-items: center;
    transition: width 0.18s;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat-check svg {
    width: 14px;
    height: 14px;
    color: var(--net);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat:has(input:checked) {
    opacity: 1;
    color: var(--net);
    border-color: color-mix(in srgb, var(--net) 55%, transparent);
    background: color-mix(in srgb, var(--net) 12%, transparent);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat:has(input:checked) .bi-plat-logo {
    color: var(--net);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat:has(input:checked) .bi-plat-check {
    width: 15px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat-todas {
    height: 34px;
    padding: 0 14px;
    border-radius: 100px;
    border: 1.5px dashed var(--color-border);
    background: none;
    color: inherit;
    opacity: 0.7;
    font-size: 12.5px;
    font-weight: 700;
    cursor: pointer;
    transition: 0.18s;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-plat-todas:hover {
    opacity: 1;
    border-color: color-mix(in srgb, #2563eb 45%, transparent);
    color: #2563eb;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-semanas {
    display: flex;
    gap: 8px;
    overflow: auto;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-semanas button {
    border: none;
    padding: 6px 12px;
    border-radius: 6px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s;
    font-size: 12px;
    background: none;
    color: #666;
    border: 1px solid var(--color-border);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-tabs-semanas button.ativo {
    background: #000;
    color: #fff;
}

/* ALERTAS E TITULOS */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-alert {
    background: #fffaf0;
    border-left: 4px solid #dd6b20;
    color: #c05621;
    padding: 15px;
    border-radius: 6px;
    margin-bottom: 20px;
    font-size: 14px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-section-title {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: -0.2px;
    margin: 0 0 15px 0;
    text-transform: none;
    min-width: 240px;
    display: flex;
    align-items: center;
    gap: 11px;
}

/* Chip de icone (substitui os emojis dos titulos de secao) */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-sec-ico {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    box-shadow: 0 4px 10px -3px rgba(37, 99, 235, 0.45);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-sec-ico svg {
    width: 17px;
    height: 17px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-sec-ico.ico-blue {
    background: linear-gradient(135deg, #2563eb, #60a5fa);
    box-shadow: 0 4px 10px -3px rgba(37, 99, 235, 0.5);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-sec-ico.ico-pink {
    background: linear-gradient(135deg, #db2777, #f472b6);
    box-shadow: 0 4px 10px -3px rgba(219, 39, 119, 0.5);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-sec-ico.ico-violet {
    background: linear-gradient(135deg, #7c3aed, #a78bfa);
    box-shadow: 0 4px 10px -3px rgba(124, 58, 237, 0.5);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-sec-ico.ico-teal {
    background: linear-gradient(135deg, #0d9488, #2dd4bf);
    box-shadow: 0 4px 10px -3px rgba(13, 148, 136, 0.5);
}

/* Icone pequeno inline em titulos de card (cidades/paises/mapa) */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-card-title {
    display: flex;
    align-items: center;
    gap: 8px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-ct-ico {
    display: inline-flex;
    flex: 0 0 auto;
    color: #2563eb;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-ct-ico svg {
    width: 16px;
    height: 16px;
}

/* GRIDS */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-grid {
    display: grid;
    gap: 9px !important;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-grid-2 {
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
}

/* CARDS */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-card {
    padding: 15px;
    border-radius: 16px;
    border: 1px solid var(--color-border);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}

/* KPIs - faixa de gradiente no topo + leve elevacao no hover (visual 2026) */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-card[data-metrica]:not(.bi-chart-container) {
    position: relative;
    overflow: hidden;
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-card[data-metrica]:not(.bi-chart-container)::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #2563eb, #7c3aed 55%, #db2777);
    opacity: 0.9;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-card[data-metrica]:not(.bi-chart-container):hover {
    transform: translateY(-2px);
    box-shadow: 0 14px 26px -14px rgba(37, 99, 235, 0.4), 0 4px 10px -6px rgba(0, 0, 0, 0.15);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-card-title {
    font-size: 13px;
    margin-bottom: 1px;
    font-weight: 500;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-card-body {
    display: flex;
    align-items: baseline;
    gap: 10px;
    align-items: center;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-card-value {
    font-size: 28px;
    font-weight: 700;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-badge {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 3px 8px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: -0.1px;
    white-space: nowrap;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-badge.bi-up {
    background: linear-gradient(135deg, #dcfce7, #bbf7d0);
    color: #15803d;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-badge.bi-down {
    background: linear-gradient(135deg, #fee2e2, #fecaca);
    color: #b91c1c;
}

/* CHARTS (Protegidos) */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-chart-container {
    display: flex;
    flex-direction: column;
    min-height: 350px !important;
    height: 350px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-chart-grande {
    min-height: 400px !important;
    height: 400px;
    margin-bottom: 20px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-chart-container canvas {
    flex: 1;
    width: 100% !important;
    min-height: 250px !important;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-mapa-container {
    height: 400px;
    width: 100%;
    border-radius: 8px;
}

/* Mapa do Brasil (choropleth SVG proprio) */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-mapa-container.bi-mapa-brasil {
    position: relative;
    height: auto;
    padding: 6px 0;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-svg-brasil {
    display: block;
    width: 100%;
    max-width: 460px;
    height: auto;
    margin: 0 auto;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-brasil-hint {
    text-align: center;
    font-size: 12px;
    opacity: 0.5;
    margin-bottom: 4px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-svg-brasil path {
    transition: opacity 0.15s ease;
    cursor: pointer;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-svg-brasil path:hover {
    opacity: 0.82;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-svg-brasil path.sel {
    stroke: #2563eb;
    stroke-width: 1.6;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-mapa-tip em {
    display: block;
    font-style: normal;
    opacity: 0.5;
    font-size: 11px;
    margin-top: 2px;
}

/* Drop (popover) do estado: silhueta + ranking de cidades */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-brasil-drop {
    position: absolute;
    z-index: 8;
    width: 236px;
    max-width: calc(100% - 16px);
    padding: 12px;
    border-radius: 14px;
    background: #ffffff;
    border: 1px solid var(--color-border);
    box-shadow: 0 18px 44px -14px rgba(0, 0, 0, 0.3);
    animation: biMenuIn 0.14s ease;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-head {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-sil {
    width: 38px;
    height: 38px;
    flex: 0 0 auto;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-tit {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-tit b {
    font-size: 14px;
    font-weight: 700;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-tit span {
    font-size: 11.5px;
    opacity: 0.6;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-x {
    border: none;
    background: none;
    color: inherit;
    opacity: 0.5;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    padding: 0 2px;
    align-self: flex-start;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-x:hover {
    opacity: 1;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-lista {
    display: flex;
    flex-direction: column;
    gap: 8px;
    max-height: 214px;
    overflow: auto;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-cid {
    display: grid;
    grid-template-columns: 1fr 46px auto;
    align-items: center;
    gap: 8px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-cid-nome {
    font-size: 12.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-cid-bar {
    height: 6px;
    border-radius: 100px;
    background: rgba(130, 130, 130, 0.16);
    overflow: hidden;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-cid-bar i {
    display: block;
    height: 100%;
    border-radius: 100px;
    background: linear-gradient(90deg, #60a5fa, #2563eb);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-cid-val {
    font-size: 12px;
    font-weight: 700;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-drop-vazio {
    font-size: 12.5px;
    opacity: 0.6;
    padding: 6px 2px;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-mapa-tip {
    position: absolute;
    z-index: 6;
    pointer-events: none;
    padding: 7px 10px;
    border-radius: 9px;
    font-size: 12px;
    line-height: 1.35;
    white-space: nowrap;
    background: rgba(20, 20, 22, 0.96);
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.12);
    box-shadow: 0 8px 22px -8px rgba(0, 0, 0, 0.5);
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-mapa-tip b {
    display: block;
    font-weight: 700;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-mapa-tip span {
    opacity: 0.7;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-mapa-vazio {
    text-align: center;
    padding: 40px 20px;
    font-size: 13px;
    opacity: 0.55;
}

.contant-metrica-perfil-conteudo .bi-filter-group.bi-plataformas {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
}

/* MOBILE */
@media (max-width: 768px) {
    .contant-metrica-perfil-conteudo.bi-dashboard .ig-header {
        flex-direction: column;
        text-align: center;
    }

    .contant-metrica-perfil-conteudo.bi-dashboard .bi-grid-2 {
        grid-template-columns: 1fr;
    }
}

.facebook.atv {
    fill: #1877F2 !important;
}

.instagram.atv {
    fill: #e4405f !important;
}

.youtube.atv {
    fill: #ff0808 !important;
}

.linkedin.atv {
    fill: #0e76a8 !important;
}

.hdr-btns-grade {
    float: initial;
    clear: both;
    padding: 13px 0px 0px 0px;
}

.dash-blocos> :nth-child(even) {
    padding-right: 0px;
}

.dash-bloco-info .ls-totais .t-it .btn-open-close {
    padding: 8px;
    float: left;
    margin-right: 5px;
    border-radius: 8px;
    cursor: pointer;
    margin-left: 11px;
}

.dash-bloco-info .ls-totais .t-it .btn-open-close svg {
    width: 8px;
}

.dropdown-default.filtro-grupo.perfis {
    padding: 8px !important;
    border-radius: 12px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08), 0 1px 4px rgba(0, 0, 0, 0.04);
    min-width: 260px;
    border: 1px solid var(--color-border, #e5e7eb);
    margin-top: 8px;
    z-index: 1000;
}

.dropdown-default.filtro-grupo.perfis h4 {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: #8c9096;
    font-weight: 600;
    padding: 8px 12px 6px 12px;
    margin: 0;
    user-select: none;
}

.dropdown-default.filtro-grupo.perfis .it-bt {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 12px;
    margin-bottom: 2px;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.2s ease, color 0.2s ease;
    color: #2a2e34;
    position: relative;
    border: none;
}

.dropdown-default.filtro-grupo.perfis .it-bt:hover {
    background-color: #f3f4f6;
}

.dropdown-default.filtro-grupo.perfis .it-bt.ativo {
    background-color: #ebf5ff;
    color: #2563eb;
    font-weight: 600;
}

.dropdown-default.filtro-grupo.perfis .it-bt .txt {
    font-size: 13.5px;
    flex-grow: 1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0px;
    margin: 0px;
}

.dropdown-default.filtro-grupo.perfis .it-bt .opcoes-item {
    display: flex;
    align-items: center;
    gap: 4px;
    opacity: 1;
    transform: translateX(5px);
    transition: opacity 0.2s ease, transform 0.2s ease;
}

.dropdown-default.filtro-grupo.perfis .it-bt:hover .opcoes-item {
    opacity: 1;
    transform: translateX(0);
}

.dropdown-default.filtro-grupo.perfis .it-bt .btn-ico-default {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 6px;
    background-color: transparent;
    transition: background-color 0.2s ease;
    cursor: pointer;
}

.dropdown-default.filtro-grupo.perfis .it-bt .btn-ico-default svg {
    width: 14px;
    height: 14px;
    fill: #9ca3af;
    transition: fill 0.2s ease;
    margin: 0px;
}

.dropdown-default.filtro-grupo.perfis .it-bt .btn-ico-default:hover {
    background-color: #e5e7eb;
}

.dropdown-default.filtro-grupo.perfis .it-bt .btn-editar-grupo-perfil:hover svg {
    fill: #2563eb;
}

.dropdown-default.filtro-grupo.perfis .it-bt .btn-deletar-grupo-perfil:hover svg {
    fill: #ef4444;
}

.dropdown-default.filtro-grupo.perfis .divisao {
    height: 1px;
    background-color: var(--color-border);
    margin: 6px 0;
}

.dropdown-default.filtro-grupo.perfis .btn-criar-grupo-perfis {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 10px;
    color: #6b7280;
    font-weight: 500;
}

.dropdown-default.filtro-grupo.perfis .btn-criar-grupo-perfis svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
    margin: 0px;
}

.dropdown-default.filtro-grupo.perfis .btn-criar-grupo-perfis:hover {
    color: #2563eb;
    background-color: #ebf5ff;
}

/* ESTILOS DO POPUP DE GRUPO */
#edit-popup .form-grupo {
    padding: 0 !important;
}

#edit-popup .header-popup {
    padding: 24px 32px 20px 32px;
    border-bottom: 1px solid #f3f4f6;
    background: #fff;
    border-radius: 12px 12px 0 0;
}

#edit-popup .header-popup .titulo {
    font-size: 20px;
    font-weight: 600;
    color: #111827;
    margin: 0;
}

#info-acesso-usuarios {
    background-color: #f8fafc !important;
    border: 1px solid #e2e8f0;
    border-radius: 8px !important;
    padding: 16px !important;
    font-size: 13px;
    color: #475569;
}

#edit-popup .chosen-container-multi .chosen-choices {
    background-image: none !important;
    background-color: #ffffff00 !important;
    border: 1px solid #d1d5db !important;
    border-radius: 8px !important;
    padding: 4px 6px !important;
    box-shadow: none !important;
    transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
    min-height: 40px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 4px !important;
    cursor: text !important;
    border-color: var(--color-border) !important;
}

#edit-popup .chosen-container-active .chosen-choices {
    border-color: #3b82f6 !important;
    box-shadow: 0 0 0 3px rgba(59, 130, 246, 0.1) !important;
}

#edit-popup .chosen-container-multi .chosen-choices li.search-choice {
    background-image: none !important;
    background-color: #f3f4f6 !important;
    border: none !important;
    border-radius: 6px !important;
    box-shadow: none !important;
    color: #374151 !important;
    padding: 6px 24px 6px 10px !important;
    margin: 2px 4px 2px 0px !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    display: flex !important;
    align-items: center !important;
    position: relative !important;
}

#edit-popup .chosen-container-multi .chosen-choices li.search-choice .search-choice-close {
    top: 50% !important;
    transform: translateY(-50%) !important;
    right: 6px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 14px !important;
    opacity: 0.5 !important;
    transition: opacity 0.2s ease !important;
}

#edit-popup .chosen-container-multi .chosen-choices li.search-choice .search-choice-close:hover {
    opacity: 1 !important;
}

#edit-popup .chosen-container-multi .chosen-choices li.search-choice .search-choice-close::before {
    font-size: 16px !important;
    line-height: 1 !important;
    color: #374151 !important;
    font-weight: 600 !important;
}

#edit-popup .chosen-container-multi .chosen-choices li.search-field {
    margin: 0 !important;
    padding: 0 !important;
}

#edit-popup .chosen-container-multi .chosen-choices li.search-field input[type="text"] {
    height: 28px !important;
    padding: 0 6px !important;
    margin: 0 !important;
    font-family: inherit !important;
    font-size: 14px !important;
    color: #111827 !important;
}

#edit-popup .chosen-container .chosen-drop {
    border: 1px solid #e5e7eb !important;
    border-radius: 8px !important;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1) !important;
    margin-top: 4px !important;
    background: #fff !important;
}

#edit-popup .chosen-container .chosen-results {
    padding: 6px !important;
    margin: 0 !important;
}

#edit-popup .chosen-container .chosen-results li.active-result {
    padding: 8px 12px !important;
    border-radius: 6px !important;
    font-size: 13px !important;
    color: #374151 !important;
    transition: background-color 0.2s ease, color 0.2s ease !important;
}

#edit-popup .chosen-container .chosen-results li.highlighted {
    background-image: none !important;
    background-color: #ebf5ff !important;
    color: #2563eb !important;
    font-weight: 500 !important;
}

.chosen-container-multi .chosen-choices {
    border-radius: 7px;
    padding: 10px !important;
    background-image: none !important;
}

.group-campo label {
    margin: 0px;
    padding: 3px 0px 1px 0px;
    font-size: 14px;
}

.dash-bloco-info .ls-totais .t-it {
    flex-wrap: wrap;
}

.dash-inner-items {
    width: 100%;
    margin-top: 0px;
    padding-top: 8px;
    display: none;
}

.dash-inner-items .inner-item {
    display: flex;
    align-items: center;
    padding: 7px 8px;
    border-radius: 7px;
    cursor: pointer;
    font-size: 13px;
    color: var(--color-text, #333);
    transition: all 0.2s ease;
    border: 1px solid transparent;
    width: calc(100% - 19px);
    margin: auto;
}

.dash-inner-items .inner-item:hover {
    background-color: var(--color-hover-01);
}

.dash-inner-items .inner-item .status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 12px;
    flex-shrink: 0;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.8);
}

.dash-inner-items .inner-item .item-titulo {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 500;
    height: 15px;
    line-height: 16px;
}

.dash-bloco-info .ls-totais .t-it .btn-open-close.open {
    transform: rotate(90deg);
}

.dash-bloco-info .ls-totais .t-it .btn-open-close:hover,
.dash-bloco-info .ls-totais .t-it:hover .btn-open-close {
    background: var(--color-hover-01);
}

.editarPerfis .menu-secundario-01 {
    padding-bottom: 15px;
}

.color-btn {
    background-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.color-text {
    color: var(--color-text-01);
}

.menu-fixado-perfis {
    position: fixed;
    left: 0px;
    top: 52px;
    height: calc(100% - 50px);
    width: 46px;
    background: var(--color-bg);
    /* padding: 0px 0px 0px 3px; */
    /* background: #f1f1f1; */
}

.menu-fixado-perfis .lst {
    padding: 3px 0px 60px 0px;
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    /* Barra escondida por padrão, aparece no hover (regra abaixo). */
    scrollbar-width: thin;
    scrollbar-color: transparent transparent;
    /* border-right: solid 1px var(--color-border); */
}

/* Scroll aparece ao passar o mouse — mesmo padrão do restante do sistema. */
.menu-fixado-perfis .lst:hover {
    scrollbar-color: rgba(155, 155, 155, 0.4) transparent;
}

.menu-fixado-perfis .lst::-webkit-scrollbar {
    width: 4px;
}

.menu-fixado-perfis .lst::-webkit-scrollbar-track {
    background: transparent;
}

.menu-fixado-perfis .lst::-webkit-scrollbar-thumb {
    background-color: transparent;
    border-radius: 4px;
    transition: background 0.3s ease;
}

.menu-fixado-perfis .lst:hover::-webkit-scrollbar-thumb {
    background-color: rgba(155, 155, 155, 0.4);
}

.menu-fixado-perfis .lst:hover::-webkit-scrollbar-thumb:hover {
    background-color: rgba(155, 155, 155, 0.6);
}

.menu-fixado-perfis .lst .it {
    position: relative;
    cursor: pointer;
    width: 28px;
    height: 28px;
    background-size: cover;
    border-radius: 10px;
    display: block;
    margin: auto;
    margin-bottom: 3px;
    border: 1px solid var(--color-border);
    background-clip: padding-box;
    background-position: center;
    /* opacity: 0.8; */
    transition: 0.2s;
    display: flex;
    font-size: 11px;
}

.menu-fixado-perfis .lst .it:hover {
    opacity: 1;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -2px rgba(0, 0, 0, 0.04);
    transform: translateX(1px);
    transform: translateX(1px) scale(1.1);
}

.menu-fixado-perfis .lst .it.atv::after {
    content: "";
    display: block;
    position: absolute;
    left: -18px;
    top: calc(50% - 11px);
    width: 12px;
    height: 21px;
    background: #0064e0;
    box-shadow: 0px 0px 7px #0064e0;
    border-radius: 100px;
}

/* Arrastar para reordenar perfis na sidebar */
.menu-fixado-perfis .lst .it.it-perfil {
    cursor: grab;
}

.menu-fixado-perfis .lst .it.it-perfil:active {
    cursor: grabbing;
}

.menu-fixado-perfis .lst .it.dragging {
    opacity: 0.4;
}

/* Espaco-alvo (clone) vira um slot pontilhado, sem foto e sem o traco de ativo */
.menu-fixado-perfis .lst .it.placeholder {
    background-image: none !important;
    background-color: var(--color-border);
    border: 1px dashed var(--color-text-light, #9aa0a6);
    opacity: 0.6;
    transform: none !important;
    box-shadow: none !important;
}

.menu-fixado-perfis .lst .it.placeholder::after {
    display: none !important;
}

.menu-fixado-perfis .lst .it.item-svg {
    display: grid;
    align-items: center;
}

.menu-fixado-perfis .lst .it.item-svg svg {
    width: 12px;
    margin: auto;
    opacity: 0.4;
}

.menu-fixado-perfis .lst .it.atv svg {
    opacity: 1;
}

.menu-fixado-perfis .lst .it:hover svg {
    opacity: 1;
}

/* BOX FATURA */
.invoice-alert {
    margin-bottom: 28px;
    width: 100%;
    max-width: 530px;
}

.invoice-alert .content {
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 12px;
    border-radius: 18px;
    background: linear-gradient(180deg, rgba(255, 106, 0, .16) 0%, rgba(255, 106, 0, .10) 100%);
    border: 1px solid rgba(255, 106, 0, .30);
    backdrop-filter: blur(10px);
    overflow: hidden;
    transition: 0.3s;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
    position: relative;
}

.invoice-alert .content::before {
    content: "";
}

.invoice-alert .info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.invoice-alert .top {
    display: flex;
    align-items: center;
    gap: 12px;
}

.invoice-alert .top h3 {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
}

.invoice-alert .status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 1px 7px;
    border-radius: 999px;
    background: rgba(255, 153, 0, .14);
    border: 1px solid rgba(255, 153, 0, .20);
    color: #ffb347;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .5px;
}

.invoice-alert .info p {
    margin: 0;
    font-size: 13px;
}

.invoice-alert .action {
    position: static;
    padding: 9px 0px 0px 0px;
}

.invoice-alert .btn {
    padding: 0 20px;
    border-radius: 12px;
    border: none;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    transition: all .22s ease;
}

.invoice-alert .close {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    cursor: pointer;
    transition: all .2s ease;
    position: absolute;
    top: 0px;
    right: 0px;
    display: grid;
    align-items: center;
    text-align: center;
    font-size: 15px;
    opacity: .2;
}

.invoice-alert .close:hover {
    opacity: 1;
}

.invoice-alert .btn-primary {
    background: linear-gradient(180deg, #ff7a1a 0%, #ff5c00 100%);
    color: #fff;
    box-shadow: 0 8px 18px rgba(255, 106, 0, .30);
    padding: 3px 10px;
    border-radius: 6px;
}

.invoice-alert .btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px rgba(255, 106, 0, .38);
}

/* ---- Niveis de urgencia do alerta de fatura (escalona conforme o prazo) ---- */
/* INFO (azul) - fatura pendente, ainda com folga */
.invoice-alert.lvl-info .content {
    background: linear-gradient(180deg, rgba(37, 99, 235, .14) 0%, rgba(37, 99, 235, .08) 100%);
    border-color: rgba(37, 99, 235, .30);
}

.invoice-alert.lvl-info .status {
    background: rgba(37, 99, 235, .14);
    border-color: rgba(37, 99, 235, .22);
    color: #2563eb;
}

.invoice-alert.lvl-info .btn-primary {
    background: linear-gradient(180deg, #3b82f6 0%, #2563eb 100%);
    box-shadow: 0 8px 18px rgba(37, 99, 235, .30);
}

/* WARN (laranja) - vence hoje/amanha: mantem o visual laranja padrao */
.invoice-alert.lvl-warn .status {
    color: #ff8c1a;
}

/* DANGER (vermelho) - fatura vencida */
.invoice-alert.lvl-danger .content {
    background: linear-gradient(180deg, rgba(239, 68, 68, .16) 0%, rgba(239, 68, 68, .09) 100%);
    border-color: rgba(239, 68, 68, .32);
}

.invoice-alert.lvl-danger .status {
    background: rgba(239, 68, 68, .14);
    border-color: rgba(239, 68, 68, .24);
    color: #ef4444;
}

.invoice-alert.lvl-danger .btn-primary {
    background: linear-gradient(180deg, #f05252 0%, #dc2626 100%);
    box-shadow: 0 8px 18px rgba(220, 38, 38, .30);
}

/* CRITICAL (vermelho forte + pulso) - perto do bloqueio */
.invoice-alert.lvl-critical .content {
    background: linear-gradient(180deg, rgba(220, 38, 38, .22) 0%, rgba(220, 38, 38, .12) 100%);
    border-color: rgba(220, 38, 38, .45);
    animation: invoiceAlertPulse 1.8s ease-in-out infinite;
}

.invoice-alert.lvl-critical .status {
    background: rgba(220, 38, 38, .18);
    border-color: rgba(220, 38, 38, .35);
    color: #dc2626;
}

.invoice-alert.lvl-critical .btn-primary {
    background: linear-gradient(180deg, #ef4444 0%, #b91c1c 100%);
    box-shadow: 0 8px 18px rgba(185, 28, 28, .38);
}

@keyframes invoiceAlertPulse {

    0%,
    100% {
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 0 0 0 rgba(220, 38, 38, .35);
    }

    50% {
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, .05), 0 0 0 6px rgba(220, 38, 38, 0);
    }
}

.menu-sistema .itens.atv {
    display: block;
}

.menu-planejamento {
    overflow: hidden !important;
    padding: 0px !important;
}

.hdr-perfil {
    /* --hdr-cor-rgb: 0 0 0;
    --hdr-cor-a: 0;
    padding: 16px 12px 7px;
    margin-bottom: 0px;
    background-size: 93% 93%;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
    background-clip: padding-box;
    border-radius: 20px 20px 0px 0px;
    overflow: hidden; */

    --hdr-cor-rgb: 0 0 0;
    --hdr-cor-a: 0;
    padding: 12px;
    margin-bottom: 0px;
    background-size: 90% 96%;
    background-position: center center;
    background-repeat: no-repeat;
    position: relative;
    background-clip: padding-box;
    border-radius: 20px 20px 0px 0px;
    overflow: hidden;
}

.hdr-perfil label {
    margin: 0px;
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: 2px;
    line-height: 9px;
    margin-bottom: 2px;
    position: relative;
    z-index: 1;
    opacity: 0.6;
}

.hdr-perfil h2 {
    font-size: 18px;
    line-height: 21px;
    font-weight: 600;
    text-align: center;
    position: relative;
    z-index: 1;
    text-wrap: balance;
}

.hdr-perfil .lst-membros-all {
    float: left;
    padding: 0px 0px 0px 4px;
    position: relative;
    z-index: 1;
    margin-top: 8px;
    width: 100%;
    height: 25px;
}

.hdr-perfil .lst-membros-all .item .thumb {
    width: 26px;
    height: 26px;
}

.menu-planejamento .nice-scroll {
    padding: 11px 7px 60px 14px;
    position: absolute;
    width: 100%;
    /* Quem rolava era o plugin nicescroll (removido em 09/10/2026); sem
       overflow proprio o menu da marca era cortado pelo pai. */
    overflow-y: auto;
    overscroll-behavior: contain;
}

/* Os dois trilhos de abas vivem dentro da .pl-barra (ver o bloco do cabecalho
   de contexto no fim do arquivo) e quem da eixo e espacamento e a barra. Este
   seletor tem 2 IDs + classe e ganhava de qualquer reset la de baixo - por
   isso o zero mora aqui. Quem joga a troca de visao para a ponta direita e o
   space-between da barra, NAO um margin-left:auto: em coluna (celular) a
   margem automatica mataria o stretch e deixaria o trilho torto na direita. */
#htmlSessaoAtual div.view-planejamento #sessoes-planejamento,
#htmlSessaoAtual div.view-planejamento #menu-exbicao {
    margin: 0px;
    padding: 0px;
}

.hdr-perfil .perfil-img {
    cursor: pointer;
    width: 70px;
    height: 70px;
    background-size: cover;
    border-radius: 23px;
    border: 1px solid var(--color-border);
    background-clip: padding-box;
    background-position: center;
    margin: auto;
    margin-top: 10px;
    margin-bottom: 6px;
    position: relative;
    z-index: 1;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03);
}

.hdr-perfil .mask {
    /* backdrop-filter: blur(35px) !important;
    -webkit-backdrop-filter: blur(15px) !important;
    /background-image: linear-gradient(to bottom, #f8f8f8 0%, #ffffffe6 50%, rgb(255 255 255) 100%);
    background-image: linear-gradient(to bottom, rgb(var(--hdr-cor-rgb) / var(--hdr-cor-a)) 0%, rgb(var(--hdr-cor-rgb) / 0) 50%), linear-gradient(to bottom, #f8f8f8 0%, #fffffff5 50%, rgb(255 255 255) 100%);
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 0; */

    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
    background-image: linear-gradient(to bottom, #f8f8f8db 0%, #ffffffe6 50%, rgb(255 255 255) 100%);
    -webkit-backdrop-filter: var(--glass-filtro-forte);
    backdrop-filter: var(--glass-filtro-forte);
}

.flatpickr-monthSelect-month:hover {
    background: #9191912b !important;
}

.view-planejamento #cal-body {
    height: auto !important;
}

.view-planejamento .custom-calendar .cal-header {
    margin-left: 0px;
    padding-left: 8px;
}

/* TOPO DO CALENDARIO FIXO NO PLANEJAMENTO DIRETO. Aqui quem rola e a pagina
   (.centraliza), entao o .cal-header (Mensal/Semanal + Datas/Direcionamentos)
   gruda no topo e o cabecalho dos dias (.cal-cab, calendario.css) gruda logo
   abaixo dele (--cal-topo = os 50px do .cal-header).
   O #lst-posts tem overflow-y:auto sem altura: nao rola nada, mas por ser
   conteiner de rolagem prenderia os dois stickies nele. */
.view-planejamento .custom-calendar {
    --cal-topo: 50px;
}

.view-planejamento .custom-calendar .cal-header {
    position: sticky;
    top: 0;
    z-index: 96;
    background: var(--color-bg);
}

/* O calendario vai ate a borda da moldura, como na Agenda: o recuo do eixo
   (--pl-eixo) do #lst-posts deixava uma faixa vazia dos dois lados, por onde
   os cartoes apareciam passando ao lado do topo fixo. O recuo continua so no
   .cal-header, para os botoes seguirem alinhados com a .pl-barra de cima. */
.view-planejamento #lst-posts:has(> .custom-calendar) {
    overflow: visible;
    padding-left: 0;
    padding-right: 0;
}

.view-planejamento #lst-posts .custom-calendar .cal-header {
    padding-left: calc(var(--pl-eixo, 15px) + 8px);
}

/* Aqui o #cal-body nao rola na vertical: a calha reservada para a barra
   (scrollbar-gutter, calendario.css) virava um vao vazio na direita com
   barra de rolagem classica. Sem calha nos dois, as colunas seguem iguais. */
.view-planejamento #cal-body,
.view-planejamento .custom-calendar .cal-cab {
    scrollbar-gutter: auto;
}

.view-planejamento .contant-metrica-perfil-conteudo.bi-dashboard {
    padding: 8px 15px 0px 15px;
}

.view-planejamento .lst-midias-01 {
    padding: 0px 0px 0px 0px
}

.menu-planejamento .hdr-perfil .redes-conectadas {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 1;
    display: flex;
    gap: 6px;
}

.menu-planejamento .hdr-perfil .redes-conectadas svg {
    width: 11px;
    height: 11px;
}

.header-pagina.planejamento-inicio .btn-abrir-calendario {
    position: relative;
    display: inline-block;
    cursor: pointer;
}

#btn-abrir-calendario {
    position: relative;
    cursor: pointer;
}

#btn-abrir-calendario input {
    opacity: 0;
    height: 0px;
    width: 0px;
    position: absolute;
    left: 0px;
    bottom: 0px;
}

.header-pagina.planejamento-inicio {
    display: flex;
    align-items: center;
    gap: 3px;
}

.header-pagina.planejamento-inicio h1 {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding-right: 10px;
}

.header-pagina.planejamento-inicio .btn-mudar-mes {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 27px;
    height: 27px;
    border-radius: 11px;
    background: var(--color-bg-01);
}

.header-pagina.planejamento-inicio .btns {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 4px;
}

.header-pagina.planejamento-inicio .btns .btn-sec {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    border-radius: 11px;
    font-size: 14px;
    color: inherit;
    background: var(--color-bg-01);
    opacity: 0.85;
    cursor: pointer;
    transition: 0.3s;
}

.header-pagina.planejamento-inicio .btns .btn-sec:hover {
    opacity: 1;
    color: #007bff;
}

.header-pagina.planejamento-inicio .btns .btn-sec svg {
    flex-shrink: 0;
}

.chatgpt-image-layout {
    height: 100%;
    min-height: calc(100vh - 60px);
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
    display: flex;
    flex-direction: column;
}

.header-pagina.studio-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.header-pagina.studio-header h2 {
    font-size: 16px;
    font-weight: 600;
    margin: 0;
}

.chatgpt-image-layout .header-right {
    display: flex;
    gap: 16px;
    display: none;
}

.chatgpt-image-layout .estudio-resultado {
    flex: 1;
    padding: 0px;
    /* A barra de input (.floating-input-wrapper) e position:fixed e cobre o rodape
       do scroll. Reservamos espaco igual a altura dela (medida via JS em
       --estudio-input-h) para que as ultimas geracoes, os skeletons do scroll e a
       linha em branco obrigatoria fiquem SEMPRE visiveis acima da barra. */
    padding-bottom: var(--estudio-input-h, 220px);
    position: relative;
    z-index: 1;
}

.chatgpt-image-layout .estudio-acoes-extras {
    display: flex;
    justify-content: flex-end;
    padding: 6px 4px 10px;
    display: none;
}

.chatgpt-image-layout .estudio-acoes-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: transparent;
    border: 1px dashed rgba(255, 255, 255, 0.18);
    color: #c9d1ff;
    font-size: 12px;
    padding: 6px 10px;
    border-radius: 999px;
    cursor: pointer;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.chatgpt-image-layout .estudio-acoes-link:hover {
    background: rgba(255, 255, 255, 0.06);
    color: #fff;
    border-color: rgba(255, 255, 255, 0.32);
}

.chatgpt-image-layout .estudio-acoes-link svg {
    flex: 0 0 14px;
}

/* Botao "Editar com IA" dentro das midias do post (jpg/png). Mesma familia dos
   demais .bt (remover/download), so com cor de destaque pra IA. */
.midia-item .btn-editar-ia {
    color: #ffffff;
    position: absolute;
    bottom: 5px;
    left: 5px;
}

.midia-item .btn-editar-ia:hover {
    color: #fff;
}

/* ===================================================================
   MOBILE - area de clique maior nos botoes sobre a midia
   Objetivo: facilitar o toque sem aumentar o icone (ele fica do mesmo
   tamanho). Em touch nao existe :hover, entao os botoes tambem precisam
   ficar sempre visiveis. Os .t-expand (galeria/anexos) ja cobrem 100%
   do item, entao nao entram aqui.
   =================================================================== */
@media (hover: none),
(pointer: coarse) {

    /* sem :hover no touch -> manter visiveis */
    .item-post .expand,
    .midia-item .bt {
        opacity: 1 !important;
    }

    /* alvo de toque transparente ampliado; o icone/botao nao muda de tamanho */
    .item-post .expand::after,
    .midia-item .bt:not(.btn-alterar-capa)::after {
        content: '';
        position: absolute;
        inset: -10px;
    }

    /* folga no cluster superior-direito p/ os alvos ampliados nao se
       sobreporem (baixar a direita, remover ao lado) */
    .midia-item .btn-download {
        top: 6px;
        right: 6px;
    }

    .midia-item .btn-remover {
        top: 6px;
        right: 52px;
    }
}

.chatgpt-image-layout .artes-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1px;
}

@media (max-width: 1200px) {
    .chatgpt-image-layout .artes-grid {
        grid-template-columns: repeat(3, 1fr);
    }
}

@media (max-width: 768px) {
    .chatgpt-image-layout .artes-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

.chatgpt-image-layout .arte-item {
    aspect-ratio: 1/1;
    overflow: hidden;
    box-shadow: 0 0 0 1px var(--color-border);
}

.chatgpt-image-layout .arte-item img,
.chatgpt-image-layout .arte-item .img-placeholder {
    /* width: 100%; */
    height: 100%;
    object-fit: cover;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #555;
    margin: auto;
}

.chatgpt-image-layout .arte-item.arte-item-vazio {
    background: transparent;
}

.chatgpt-image-layout .arte-item.arte-item-vazio .img-placeholder {
    background: transparent;
    border: none;
}

.chatgpt-image-layout .arte-item-loading .img-placeholder.shimmer {
    position: relative;
    background: linear-gradient(135deg, #1a1a1d2e 0%, #23232747 50%, #1a1a1d70 100%);
    overflow: hidden;
}

.chatgpt-image-layout .arte-item-loading .shimmer-bar {
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.04) 35%, rgba(255, 255, 255, 0.10) 50%, rgba(255, 255, 255, 0.04) 65%, transparent 100%);
    animation: studio-shimmer 1.6s ease-in-out infinite;
}

@keyframes studio-shimmer {
    0% {
        left: -100%;
    }

    100% {
        left: 100%;
    }
}

.chatgpt-image-layout .arte-item-loading .img-placeholder.shimmer::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.02);
    animation: studio-pulse 2.4s ease-in-out infinite;
}

@keyframes studio-pulse {

    0%,
    100% {
        opacity: 0.4;
    }

    50% {
        opacity: 1;
    }
}

.floating-input-wrapper {
    position: fixed;
    bottom: 30px;
    left: calc(50% - 220px);
    right: 0;
    display: flex;
    justify-content: center;
    /* pointer-events: none; */
    z-index: 9;
    max-width: 700px;
}

.input-bar {
    background-color: #ffffffc7;
    border-radius: 25px;
    padding: 10px 11px;
    width: 100%;
    max-width: 800px;
    box-shadow: 0 4px 20px rgb(0 0 0 / 8%);
    pointer-events: auto;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: solid 1px var(--color-border);
}

.input-actions-left {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-right: 16px;
    padding-top: 6px;
}

.icon-btn {
    background: transparent;
    border: none;
    color: var(--color-text-01);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: 0.2s;
    opacity: 0.7;
}

.icon-btn:hover {
    color: var(--color-text-01);
    opacity: 1;
}

.input-main {
    width: 100%;
    display: block;
}

.input-main input[type="text"] {
    background: transparent;
    border: none;
    color: #a0a0a0;
    font-size: 12px;
    outline: none;
    width: 100%;
}

.input-main textarea {
    background: transparent;
    border: none;
    color: var(--color-text-01);
    font-size: 14px;
    height: 24px;
    width: 100%;
    padding: 10px 0px 10px 0px;
    max-height: 130px;
    overflow: auto;
    border-bottom: solid 1px #8d8d8d0d;
}

.input-main textarea::placeholder {
    color: #888;
}

.estudio-perfil-info {
    /* background: var(--color-bg); */
    padding: 15px 20px 15px 20px;
}

.estudio-perfil-skeleton {
    color: #888;
    font-size: 13px;
}

.estudio-perfil-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 5px;
}

.estudio-perfil-item .lbl {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #888;
    margin-bottom: 2px;
}

.estudio-perfil-item .val {
    font-size: 13px;
    color: var(--color-text-01);
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    align-items: center;
}

.estudio-cor-chip {
    display: inline-block;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--color-border);
}

.estudio-cor-chip.secundaria {
    width: 20px;
    height: 20px;
}

.estudio-perfil-item .logos {
    flex-wrap: wrap;
}

.estudio-logo-mini {
    width: 29px;
    height: 29px;
    border-radius: 8px;
    overflow: hidden;
    background: #9a9a9a26;
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
}

.estudio-logo-mini img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.estudio-empty {
    color: #888;
    font-size: 12px;
    font-style: italic;
}

/* Dropdown de Estilos */
.estudio-dropdown-estilos {
    min-width: 260px;
    padding: 12px 14px;
}

.estudio-dropdown-estilos h4 {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--color-text-01);
}

.estudio-dropdown-estilos .bloco-estilo {
    margin-bottom: 12px;
}

.estudio-dropdown-estilos .bloco-estilo:last-child {
    margin-bottom: 0;
}

.estudio-dropdown-estilos .lbl {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #888;
    margin-bottom: 6px;
}

.estudio-dropdown-estilos .opt {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    color: var(--color-text-01);
    cursor: pointer;
}

.estudio-dropdown-estilos .bloco-estilo .hint {
    font-size: 11px;
    color: #888;
    margin-top: 4px;
    line-height: 1.4;
}

.estudio-dropdown-estilos select {
    width: 100%;
    padding: 6px 8px;
    border-radius: 6px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    color: var(--color-text-01);
}

/* Miniaturas dos logos no dropdown de Estilos */
.estudio-logos-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.estudio-logo-thumb {
    width: 48px;
    height: 48px;
    border-radius: 8px;
    overflow: hidden;
    background: #8c8c8c30;
    border: 2px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: border-color 0.15s ease, transform 0.15s ease;
    box-sizing: border-box;
}

.estudio-logo-thumb:hover {
    border-color: #888;
    transform: scale(1.04);
}

.estudio-logo-thumb.atv {
    border-color: #2f8aff;
    box-shadow: 0 0 0 2px rgba(47, 138, 255, 0.25);
}

.estudio-logo-thumb img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    pointer-events: none;
}

/* Anexos */
.icon-btn {
    position: relative;
}

.icon-btn .contador-anexos {
    position: absolute;
    top: -4px;
    right: -4px;
    background: #fff;
    color: #000;
    font-size: 10px;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    border-radius: 8px;
    padding: 0 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.estudio-creditos-saldo {
    position: absolute;
    bottom: 100%;
    left: 0;
    right: 0;
    margin-bottom: 10px;
    display: flex;
    justify-content: center;
    pointer-events: none;
}

.estudio-creditos-pill {
    pointer-events: auto;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(231, 231, 236, 0.85);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(0, 0, 0, 0.06);
    box-shadow: 0 4px 20px rgb(0 0 0 / 10%);
    border-radius: 20px;
    padding: 7px 14px;
    font-size: 12.5px;
    color: var(--color-text-01);
    max-width: 92%;
}

.estudio-creditos-pill .ico {
    display: inline-flex;
    width: 18px;
    height: 18px;
    color: #1c88fd;
    flex: 0 0 auto;
}

.estudio-creditos-pill .info {
    display: flex;
    flex-direction: column;
    gap: 3px;
    line-height: 1.1;
}

.estudio-creditos-pill .info b {
    font-weight: 700;
}

.estudio-creditos-pill .barra {
    width: 110px;
    height: 5px;
    border-radius: 4px;
    background: rgba(0, 0, 0, 0.12);
    overflow: hidden;
}

.estudio-creditos-pill .barra>i {
    display: block;
    height: 100%;
    border-radius: 4px;
    background: linear-gradient(90deg, #1c88fd, #5eb0ff);
    transition: width .35s ease;
}

.estudio-creditos-pill .estudio-creditos-link {
    color: #1c88fd;
    cursor: pointer;
    font-weight: 600;
    white-space: nowrap;
}

/* Estado esgotado / sem assinatura */
.estudio-creditos-pill.bloqueado {
    border-color: rgba(224, 83, 61, .35);
}

.estudio-creditos-pill.bloqueado .ico {
    color: #e0533d;
}

.estudio-creditos-pill.bloqueado .barra>i {
    background: #e0533d;
}

.estudio-creditos-pill.bloqueado .estudio-creditos-link {
    color: #e0533d;
}

#btn-estudio-gerar.disabled {
    opacity: .4;
    pointer-events: none;
    filter: grayscale(.3);
}

.estudio-credito-card {
    width: 100%;
    min-width: 0;
}

.ia-creditos-inclusos {
    /* display: flex; */
    align-items: center;
    gap: 7px;
    background: rgba(28, 136, 253, .08);
    border: 1px solid rgba(28, 136, 253, .2);
    border-radius: 10px;
    padding: 9px 12px;
    margin-top: 10px;
    font-size: 13px;
    color: var(--color-text);
}

.ia-creditos-inclusos .ico {
    color: #1c88fd;
    display: inline-flex;
    flex: 0 0 auto;
    display: block;
}

.ia-creditos-total {
    display: block;
    font-size: 12px;
    opacity: .7;
    margin-top: 2px;
}

.estudio-regerar-aviso {
    background: rgba(224, 83, 61, .08);
    border: 1px solid rgba(224, 83, 61, .3);
    color: #e0533d;
    border-radius: 12px;
    padding: 10px 12px;
    font-size: 13px;
    margin: 6px 0 12px;
}

.estudio-regerar-aviso .estudio-creditos-link {
    color: #e0533d;
    cursor: pointer;
    font-weight: 700;
    text-decoration: underline;
}

.estudio-regerar-submit.disabled {
    opacity: .45;
    pointer-events: none;
    filter: grayscale(.3);
}

.estudio-anexos-preview {
    display: flex;
    /* flex-wrap: wrap; */
    gap: 8px;
    padding: 0 14px;
    position: absolute;
    top: -60px;
    left: 0px;
    z-index: 9;
}

.estudio-anexo-item {
    position: relative;
    /* width: 56px; */
    height: 56px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--color-border);
    background: #1a1a1d;
    z-index: 999;
}

.estudio-anexo-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.estudio-anexo-remover {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: none;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    font-size: 14px;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
}

.estudio-anexo-remover:hover {
    background: #e63946;
}

.estudio-regerar-modal .estudio-modal-content {
    max-width: 720px;
    width: 92%;
    max-height: 88vh;
    overflow-y: auto;
}

.estudio-regerar-corpo {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 18px;
    margin-top: 14px;
}

@media (max-width: 600px) {
    .estudio-regerar-corpo {
        grid-template-columns: 1fr;
    }
}

.estudio-regerar-preview {
    width: 100%;
    aspect-ratio: 4 / 6;
    border-radius: 10px;
    overflow: hidden;
    background: #f3f3f3;
    border: 1px solid var(--color-border);
    display: grid;
    align-items: center;
}

.estudio-regerar-preview img {
    width: 100%;
    /* height: 100%; */
    object-fit: contain;
}

.estudio-regerar-form {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.estudio-regerar-lbl {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: #888;
    margin-top: 4px;
}

.estudio-regerar-textarea {
    width: 100%;
    background: rgba(0, 0, 0, 0.03);
    border: 1px solid var(--color-border);
    color: var(--color-text-01);
    border-radius: 6px;
    padding: 8px 10px;
    font-size: 13px;
    outline: none;
    resize: vertical;
    font-family: inherit;
}

.estudio-regerar-textarea:focus {
    border-color: rgba(0, 0, 0, 0.25);
}

.estudio-regerar-toggle {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    color: var(--color-text-01);
    cursor: pointer;
    margin-top: 4px;
}

.estudio-regerar-anexos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.estudio-regerar-anexo-item {
    position: relative;
    width: 56px;
    height: 56px;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--color-border);
}

.estudio-regerar-anexo-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.estudio-regerar-anexo-item .rm {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    border: none;
    font-size: 12px;
    cursor: pointer;
    line-height: 1;
    padding: 0;
}

.estudio-regerar-anexo-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(0, 0, 0, 0.04);
    color: #555;
    border: 1px solid var(--color-border);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 12px;
    cursor: pointer;
    width: fit-content;
}

.estudio-regerar-anexo-btn:hover {
    color: var(--color-text-01);
    background: rgba(0, 0, 0, 0.08);
}

.estudio-regerar-acoes {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--color-border);
}

.estudio-regerar-cancelar,
.estudio-regerar-submit {
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    border: none;
    transition: 0.15s;
}

.estudio-regerar-cancelar {
    background: transparent;
    color: #666;
    border: 1px solid var(--color-border);
}

.estudio-regerar-cancelar:hover {
    color: var(--color-text-01);
    border-color: rgba(0, 0, 0, 0.3);
}

.estudio-regerar-submit {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.estudio-regerar-submit:hover {
    opacity: 0.88;
}

.estudio-regerar-submit:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* Modal ADD-SLIDES */
.estudio-addslides-hint {
    color: #888;
    font-size: 12px;
    margin: 6px 0 12px;
}

.estudio-addslides-cards {
    display: flex;
    flex-direction: row;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 8px;
}

.estudio-modal-actions {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-bottom: 12px;
    position: absolute;
    right: 47px;
    top: 18px;
}

.estudio-modal-add-slides {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(0, 0, 0, 0.06);
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.15s;
}

.estudio-modal-add-slides:hover {
    background: rgba(0, 0, 0, 0.1);
}

/* Toolbar dentro de cada slide do modal de carrossel
   (mover esq / editar / mover dir / remover) */
.estudio-modal-slide {
    position: relative;
}

.estudio-modal-slide-toolbar {
    position: absolute;
    top: 28px;
    right: 8px;
    display: inline-flex;
    gap: 4px;
    opacity: 0.9;
    transition: opacity 0.15s;
    z-index: 3;
}

.estudio-modal-slide:hover .estudio-modal-slide-toolbar,
.estudio-modal-slide:focus-within .estudio-modal-slide-toolbar {
    opacity: 1;
}

.estudio-modal-slide-toolbar .esmt-btn {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: rgba(15, 15, 18, 0.78);
    color: #fff;
    border: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, transform 0.1s;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    padding: 0;
}

.estudio-modal-slide-toolbar .esmt-btn:hover {
    background: #fff;
    color: #111;
}

.estudio-modal-slide-toolbar .esmt-btn:active {
    transform: scale(0.92);
}

.estudio-modal-slide-toolbar .esmt-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

.estudio-modal-slide-toolbar .esmt-btn:disabled:hover {
    background: rgba(15, 15, 18, 0.78);
    color: #fff;
}

.estudio-modal-slide-toolbar .esmt-remove:hover {
    background: #e63946;
    color: #fff;
}

.estudio-modal-slide.is-capa::before {
    content: "";
    position: absolute;
    inset: 24px 0 0 0;
    border-radius: 8px;
    pointer-events: none;
    box-shadow: 0 0 0 2px rgba(47, 138, 255, 0.35);
    z-index: 1;
}

.estudio-modal-slide[draggable="true"] {
    cursor: grab;
}

.estudio-modal-slide[draggable="true"]:active {
    cursor: grabbing;
}

.estudio-modal-slide.dragging {
    opacity: 0.4;
}

#estudio-modal-slides {
    min-height: 80px;
}

@media (hover: none) {
    .estudio-modal-slide-toolbar {
        opacity: 0.95;
        transform: none;
    }
}

.estudio-modal-slide-regen {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px;
    border: 1px dashed var(--color-border);
    border-radius: 10px;
    background: var(--color-hover-01);
    position: relative;
    width: 400px !important;
}

.estudio-modal-slide-regen .estudio-regen-cabec {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text);
    opacity: 0.85;
}

.estudio-regen-comparativo {
    display: grid;
    grid-template-columns: 1fr 24px 1fr;
    align-items: center;
    gap: 0px;
}

.estudio-regen-lado {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.estudio-regen-titulo {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text);
    opacity: 0.7;
    text-align: center;
}

.estudio-regen-lado .estudio-regen-img {
    width: 100%;
    /* aspect-ratio: 1 / 1; */
    border-radius: 8px;
    overflow: hidden;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.estudio-regen-lado .estudio-regen-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.estudio-regen-lado .placeholder {
    font-size: 12px;
    color: var(--color-text);
    opacity: 0.6;
}

.estudio-regen-lado .placeholder.erro {
    color: #d6363b;
    opacity: 1;
}

.estudio-regen-lado-vazio .estudio-regen-img {
    opacity: 0.5;
    background-image: linear-gradient(45deg, var(--color-border) 25%, transparent 25%), linear-gradient(-45deg, var(--color-border) 25%, transparent 25%);
    background-size: 12px 12px;
    background-position: 0 0, 6px 0;
}

.estudio-regen-seta {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text);
    opacity: 0.5;
}

.estudio-regen-acoes {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
}

.estudio-regen-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 14px;
    border-radius: 6px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.estudio-regen-btn:hover:not(:disabled) {
    background: var(--color-hover-01);
}

.estudio-regen-btn:disabled {
    opacity: 0.45;
    cursor: not-allowed;
}

.estudio-regen-rejeitar:hover:not(:disabled) {
    border-color: #d6363b;
    color: #d6363b;
}

.estudio-regen-aceitar {
    background: #2da94f;
    border-color: #2da94f;
    color: #fff;
}

.estudio-regen-aceitar:hover:not(:disabled) {
    background: #258a40;
    border-color: #258a40;
}

.estudio-modal-slide-regen.estudio-regen-processando {
    opacity: 0.55;
    pointer-events: none;
}

@media (max-width: 640px) {
    .estudio-regen-comparativo {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
    }

    .estudio-regen-seta {
        transform: rotate(90deg);
    }
}

/* ============== HOVER ACTIONS no item de arte (Studio Criativo) ============== */
.chatgpt-image-layout .arte-item {
    position: relative;
}

.estudio-arte-acoes {
    position: absolute;
    top: 8px;
    right: 8px;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    max-width: calc(100% - 16px);
    gap: 6px;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity 0.15s ease, transform 0.15s ease;
    z-index: 5;
    pointer-events: none;
}

.chatgpt-image-layout .arte-item:hover .estudio-arte-acoes,
.chatgpt-image-layout .arte-item:focus-within .estudio-arte-acoes {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
}

.estudio-arte-acoes .ea-btn {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    border: none;
    background: rgba(15, 15, 18, 0.78);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.15s, color 0.15s, transform 0.1s;
    padding: 0;
}

.estudio-arte-acoes .ea-btn:hover {
    background: rgba(255, 255, 255, 0.95);
    color: #111;
}

.estudio-arte-acoes .ea-btn:active {
    transform: scale(0.94);
}

.estudio-arte-acoes .ea-delete:hover {
    background: #e63946;
    color: #fff;
}

.chatgpt-image-layout .arte-item.arte-item-excluindo {
    opacity: 0.45;
    pointer-events: none;
}

@media (hover: none) {
    .estudio-arte-acoes {
        opacity: 0.85;
        transform: none;
        pointer-events: auto;
    }
}

.estudio-topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin: 0 0 8px 0;
}

.estudio-tipo-tabs {
    display: inline-flex;
    gap: 4px;
    padding: 3px;
    border-radius: 999px;
    border: 1px solid var(--color-border);
}

/* Trigger do dropdown de Modo (Arte / Imagem) - herda visual de .model-selector */
#estudio-btn-modo .estudio-modo-icone {
    flex: 0 0 auto;
    margin-right: 2px;
}

/* Dropdown do Modo de geracao - segue o padrao do dropdown de Estilos */
.estudio-dropdown-modo {
    min-width: 280px;
    max-width: 320px;
    padding: 12px 14px;
}

.estudio-dropdown-modo h4 {
    margin: 0 0 10px;
    font-size: 13px;
    color: var(--color-text-01);
}

.estudio-modo-lista {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.estudio-modo-opcao {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    background: transparent;
    cursor: pointer;
    transition: 0.15s;
}

.estudio-modo-opcao:hover {
    background: rgb(19 19 19 / 4%);
}

.estudio-modo-opcao.atv {
    background: rgb(19 19 19 / 5%);
    border-color: var(--color-text-01);
}

.estudio-modo-opcao-icone {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-01);
    opacity: 0.7;
}

.estudio-modo-opcao.atv .estudio-modo-opcao-icone {
    opacity: 1;
}

.estudio-modo-opcao-texto {
    flex: 1 1 auto;
    min-width: 0;
}

.estudio-modo-opcao-titulo {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-01);
    margin-bottom: 2px;
}

.estudio-modo-opcao-desc {
    font-size: 11px;
    line-height: 1.4;
    color: #888;
}

.estudio-modo-opcao-check {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--color-text-01);
    opacity: 0;
    transition: 0.15s;
}

.estudio-modo-opcao.atv .estudio-modo-opcao-check {
    opacity: 1;
}

/* Carrossel em modo imagem: oculta os campos "Texto na arte do slide X". */
.estudio-carrossel-slides.modo-imagem .estudio-slide-texto {
    display: none;
}

/* Em modo imagem o texto da arte some, mas o "contexto" do slide
   continua util (tratamento do produto/cena por slide). */
/* Toolbar acima dos slides (aparece so quando o Studio foi aberto a partir de um post) */
.estudio-carrossel-toolbar {
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0 0 8px 0;
}

.estudio-carrossel-toolbar .hint {
    font-size: 11px;
    color: #888;
    line-height: 1.4;
}

/* Overlay de loading da IA que separa o conteudo em slides */
.estudio-carrossel-ia-loading {
    opacity: 0.4;
    pointer-events: none;
}

.estudio-ia-overlay {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    margin: 0 0 8px 0;
    border-radius: 10px;
    background: rgb(19 19 19 / 5%);
    color: var(--color-text-01);
    font-size: 12px;
}

.estudio-ia-overlay .estudio-ia-msg {
    flex: 1 1 auto;
}

.estudio-ia-spinner {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid rgb(19 19 19 / 15%);
    border-top-color: var(--color-text-01);
    animation: estudio-ia-spin 0.7s linear infinite;
}

@keyframes estudio-ia-spin {
    to {
        transform: rotate(360deg);
    }
}

.estudio-tipo-tab {
    background: transparent;
    color: #777;
    border: none;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 999px;
    cursor: pointer;
    letter-spacing: 0.2px;
    transition: 0.15s;
}

.estudio-tipo-tab:hover {
    color: var(--color-text-01);
}

.estudio-tipo-tab.atv {
    background: rgb(19 19 19 / 5%);
    color: var(--color-text-01);
}

.estudio-carrossel-panel {
    margin: 0 0 8px 0;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.estudio-carrossel-slides {
    display: flex;
    flex-direction: row;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    padding-bottom: 6px;
    scroll-behavior: smooth;
    scrollbar-width: thin;
    scrollbar-color: rgba(0, 0, 0, 0.2) transparent;
}

.estudio-carrossel-slides::-webkit-scrollbar {
    height: 6px;
}

.estudio-carrossel-slides::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.18);
    border-radius: 3px;
}

.estudio-carrossel-slides::-webkit-scrollbar-track {
    background: transparent;
}

#estudio-carrossel-contexto {
    background: transparent;
    border: none;
    color: var(--color-text-01);
    font-size: 14px;
    width: 100%;
    height: 24px;
    outline: none;
    padding: 4px 2px;
}

#estudio-carrossel-contexto::placeholder {
    color: #888;
}

.estudio-slide-card {
    background: rgba(0, 0, 0, 0.04);
    border-radius: 10px;
    padding: 10px;
    border: 1px solid var(--color-border);
    flex: 0 0 auto;
    width: 200px;
    min-height: 130px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.estudio-slide-hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
}

.estudio-slide-hdr .num {
    color: #aaa;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.estudio-slide-remover {
    background: transparent;
    border: none;
    color: #888;
    cursor: pointer;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    font-size: 16px;
    line-height: 1;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.estudio-slide-remover:hover {
    background: rgba(230, 57, 70, 0.18);
    color: #ff7a85;
}

.btn-anexar-slide {
    color: #666;
    cursor: pointer;
    border-radius: 6px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    padding: 4px 6px;
    background: rgba(0, 0, 0, 0.04);
}

.btn-anexar-slide:hover {
    color: var(--color-text-01);
    background: rgba(0, 0, 0, 0.08);
}

.estudio-slide-texto,
.estudio-slide-contexto {
    width: 100%;
    background: transparent;
    border: 1px solid var(--color-border);
    border-radius: 6px;
    color: var(--color-text-01);
    font-size: 13px;
    padding: 6px 8px;
    outline: none;
    resize: none;
    height: 60px;
    font-family: inherit;
}

.estudio-slide-contexto {
    height: 70px;
    margin-top: 6px;
    font-size: 12px;
    color: #555;
}

.estudio-slide-texto:focus,
.estudio-slide-contexto:focus {
    border-color: rgba(0, 0, 0, 0.22);
}

.estudio-slide-texto::placeholder,
.estudio-slide-contexto::placeholder {
    color: #888;
}

.estudio-slide-foot {
    display: flex;
    justify-content: flex-start;
}

.estudio-slide-anexo-preview {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11px;
    color: #aaa;
    position: relative;
}

.estudio-slide-anexo-preview img {
    width: 36px;
    height: 36px;
    object-fit: cover;
    border-radius: 6px;
}

.estudio-slide-anexo-preview .rm {
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    border: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
    padding: 0;
}

.estudio-slide-anexo-preview .rm:hover {
    background: #e63946;
}

.estudio-slide-anexo-preview .nome {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.estudio-slide-add {
    flex: 0 0 auto;
    width: 110px;
    min-height: 130px;
    border: 1px dashed rgba(0, 0, 0, 0.2);
    background: transparent;
    color: #777;
    border-radius: 10px;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    transition: 0.15s;
    padding: 10px;
}

.estudio-slide-add:hover {
    border-color: rgba(0, 0, 0, 0.45);
    color: var(--color-text-01);
    background: rgba(0, 0, 0, 0.03);
}

.estudio-slide-add .plus {
    font-size: 28px;
    line-height: 1;
}

.estudio-slide-add .lbl {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.estudio-dropzone-overlay {
    position: absolute;
    inset: 0;
    background: rgba(15, 15, 18, 0.78);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border: 2px dashed rgba(255, 255, 255, 0.35);
    border-radius: 12px;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 50;
    pointer-events: none;
}

.estudio-dropzone-overlay.atv {
    display: flex;
}

.chatgpt-image-layout {
    position: relative;
}

.estudio-dropzone-inner {
    color: #fff;
    text-align: center;
    pointer-events: none;
}

.estudio-dropzone-inner svg {
    opacity: 0.85;
    margin-bottom: 8px;
}

.estudio-dropzone-inner p {
    font-size: 16px;
    font-weight: 600;
    margin: 0;
    letter-spacing: 0.2px;
}

.estudio-foco-select {
    width: 100%;
    background: rgba(0, 0, 0, 0.04);
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    border-radius: 6px;
    padding: 6px 8px;
    font-size: 13px;
    outline: none;
    margin-top: 4px;
}

.estudio-foco-select option {
    background: var(--color-bg);
    color: var(--color-text-01);
}

.chatgpt-image-layout .arte-item-carrossel {
    cursor: pointer;
}

.estudio-carrossel-mask {
    position: absolute;
    inset: 0;
    z-index: 4;
    border-radius: inherit;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(15, 15, 18, 0.55);
    opacity: 0;
    transition: opacity 0.15s ease;
    pointer-events: none;
}

.chatgpt-image-layout .arte-item-carrossel:hover .estudio-carrossel-mask,
.chatgpt-image-layout .arte-item-carrossel:focus-within .estudio-carrossel-mask {
    opacity: 1;
}

.estudio-carrossel-editar-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.95);
    color: #111;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.2px;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35);
    transform: translateY(6px);
    transition: transform 0.15s ease;
}

.chatgpt-image-layout .arte-item-carrossel:hover .estudio-carrossel-editar-btn,
.chatgpt-image-layout .arte-item-carrossel:focus-within .estudio-carrossel-editar-btn {
    transform: translateY(0);
}

.arte-item-em-geracao .estudio-carrossel-mask {
    display: none;
}

.estudio-badge-carrossel {
    position: absolute;
    bottom: 8px;
    left: 8px;
    background: rgba(0, 0, 0, 0.75);
    color: #fff;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.3px;
}

.arte-item-gerando-overlay {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
    border-radius: inherit;
    overflow: hidden;
    background: linear-gradient(135deg, rgba(15, 15, 18, 0.18) 0%, rgba(47, 138, 255, 0.10) 50%, rgba(15, 15, 18, 0.18) 100%);
    animation: estudio-gerando-pulse 1.8s ease-in-out infinite;
}

.arte-item-gerando-overlay::before {
    content: "";
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, 0.18) 50%, transparent 100%);
    animation: estudio-gerando-shimmer 1.6s linear infinite;
}

.arte-item-gerando-overlay::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: linear-gradient(90deg, transparent 0%, #2f8aff 30%, #6ab0ff 50%, #2f8aff 70%, transparent 100%);
    animation: estudio-gerando-bar 1.4s linear infinite;
}

@keyframes estudio-gerando-pulse {

    0%,
    100% {
        opacity: 0.75;
    }

    50% {
        opacity: 1;
    }
}

@keyframes estudio-gerando-shimmer {
    0% {
        left: -100%;
    }

    100% {
        left: 100%;
    }
}

@keyframes estudio-gerando-bar {
    0% {
        transform: translateX(-100%);
    }

    100% {
        transform: translateX(100%);
    }
}

.arte-item-em-geracao .estudio-arte-acoes {
    z-index: 5;
}

.arte-item-em-geracao .estudio-badge-carrossel {
    z-index: 4;
}

.estudio-modal {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
}

.estudio-modal-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.7);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    cursor: pointer;
}

.estudio-modal-content {
    position: relative;
    background: var(--color-bg);
    border-radius: 12px;
    padding: 24px;
    max-width: 90vw;
    max-height: 85vh;
    overflow: auto;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
    border: 1px solid var(--color-border);
}

.estudio-modal-close {
    position: absolute;
    top: 12px;
    right: 12px;
    background: transparent;
    border: none;
    color: #888;
    font-size: 24px;
    cursor: pointer;
    line-height: 1;
}

.estudio-modal-close:hover {
    color: var(--color-text-01);
}

.estudio-modal-titulo {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-text-01);
    margin-bottom: 16px;
}

.estudio-modal-slides {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    padding-bottom: 12px;
}

.estudio-modal-slide {
    flex-shrink: 0;
    width: 300px;
}

.estudio-modal-slide .num {
    font-size: 11px;
    text-transform: uppercase;
    color: #888;
    margin-bottom: 6px;
    letter-spacing: 0.5px;
}

.estudio-modal-slide img {
    width: 100%;
    border-radius: 8px;
    display: block;
}

.estudio-modal-slide .placeholder {
    width: 100%;
    aspect-ratio: 1/1;
    background: #f3f3f3;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #777;
    font-size: 13px;
}

.estudio-modal-slide .placeholder.erro {
    color: #e63946;
}

/* =========================================================================
   STUDIO CRIATIVO DE IA - RESPONSIVO (celular / tablet)
   No desktop a barra de input flutuante usa um offset (left: calc(50% - 220px))
   calibrado para a sidebar do menu. No mobile o conteudo e full-width
   (#htmlSessaoAtual vira 100% em <=990px), entao esse offset jogava a barra pra
   fora da tela. Aqui centralizamos a barra full-width e damos alvos de toque
   maiores. Tudo escopado em media query - o desktop fica intacto.
   ========================================================================= */
@media (max-width: 990px) {

    /* Barra de input centralizada e dentro da tela (pagina e modal) */
    .floating-input-wrapper,
    .estudio-conteudo-modal-body .floating-input-wrapper {
        left: 0;
        right: 0;
        max-width: 100%;
        padding: 0 10px;
        box-sizing: border-box;
        bottom: 14px;
        bottom: max(14px, env(safe-area-inset-bottom));
    }

    /* Mantem a barra com largura agradavel (nao estica numa faixa unica em tablet).
       position:relative ancora os filhos absolutos (seta de enviar, saldo de
       creditos, preview de anexos) na PROPRIA barra - senao eles ancoram no
       wrapper full-width e a seta de enviar se descola pra borda da tela. */
    .input-bar {
        max-width: 640px;
        position: relative;
    }

    /* Header do Studio no contexto geral: seletor de marca ocupa a linha toda
       abaixo do titulo, em vez de espremer ao lado. */
    .studio-header-geral {
        align-items: flex-start;
    }

    .studio-header-geral .estudio-seletor-perfil {
        width: 100%;
        flex: 1 1 100%;
    }
}

/* Telas estreitas (celular) */
@media (max-width: 560px) {

    /* font-size >= 16px evita o auto-zoom irritante do iOS ao focar nos campos */
    .input-main textarea,
    #estudio-carrossel-contexto {
        font-size: 16px;
    }

    /* Linha de acoes mais compacta; padding-right reserva espaco p/ a seta de
       enviar (que e position:absolute no canto inferior direito da barra). */
    .input-actions-left {
        gap: 8px;
        padding-right: 46px;
    }

    .estudio-topbar {
        flex-wrap: wrap;
        gap: 6px;
    }

    /* Dropdowns de Estilos / Modo nao podem estourar a largura da viewport */
    .estudio-dropdown-estilos,
    .estudio-dropdown-modo {
        min-width: 0;
        max-width: calc(100vw - 24px);
    }

    /* Identidade da marca: respiro lateral menor */
    .estudio-perfil-info {
        padding: 12px 14px;
    }

    /* Cards de slide do carrossel um pouco mais estreitos p/ caber 1.5 na tela */
    .estudio-slide-card {
        width: 170px;
    }
}

/* Afasta o titulo do Studio do botao-hamburguer (fixo no topo-esquerdo no mobile) */
@media (max-width: 900px) {
    .header-pagina.studio-header {
        padding-left: 52px;
        flex-wrap: wrap;
        row-gap: 6px;
    }
}

.visual-section-block {
    margin-bottom: 30px;
    padding-bottom: 25px;
    border-bottom: 1px solid var(--color-border);
}

.visual-section-block:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.visual-section-block h3 {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 4px;
    margin-top: 0px;
    color: var(--color-text);
}

.visual-section-block p.info {
    font-size: 13px;
    color: #6b7280;
    margin-bottom: 15px;
    margin-top: 0px;
}

/* ============================================================
   FOTO DO PERFIL (aba Visual) - escolha da origem da imagem
   que identifica o perfil em todo o sistema. Estilo ClickUp/Wix:
   pre-visualizacao a esquerda + grade de cards selecionaveis.
 ============================================================ */
.perfil-foto-block .perfil-foto-layout {
    display: flex;
    gap: 24px;
    align-items: stretch;
}

.perfil-foto-preview {
    flex: 0 0 200px;
    width: 200px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 16px;
    padding: 28px 20px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg-01);
}

.pf-avatar-grande {
    width: 142px;
    height: 142px;
    border-radius: 35px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    border: 4px solid var(--color-bg);
    outline: 1px solid var(--color-border);
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
}

.pf-avatar-grande-ini {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-text-01);
    color: var(--color-bg);
    font-weight: 700;
    font-size: 48px;
    letter-spacing: 1px;
}

.pf-preview-cap {
    font-size: 11px;
    font-weight: 700;
    color: var(--ap-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    text-align: center;
}

.perfil-foto-origens {
    flex: 1 1 auto;
    min-width: 0;
}

.pf-grupo+.pf-grupo {
    margin-top: 20px;
}

.pf-grupo-titulo {
    font-size: 11.5px;
    font-weight: 700;
    color: var(--ap-muted);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 11px;
}

.pf-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(106px, 1fr));
    gap: 10px;
}

.pf-card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    padding: 15px 8px 11px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg);
    cursor: pointer;
    text-align: center;
    transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.pf-card:hover {
    border-color: var(--ap-faint);
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
}

.pf-card.atv {
    border-color: var(--ap-fill);
    background: var(--ap-soft);
    box-shadow: none;
}

.pf-card-media {
    position: relative;
}

.pf-card-thumb {
    width: 58px;
    height: 58px;
    border-radius: 16px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    border: 1px solid var(--color-border);
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
}

.pf-card-thumb-ini {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-text-01);
    color: var(--color-bg);
    font-weight: 700;
    font-size: 19px;
}

.pf-card-badge {
    position: absolute;
    right: -4px;
    bottom: -4px;
    width: 23px;
    height: 23px;
    border-radius: 50%;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
}

.pf-card-badge svg {
    width: 13px;
    height: 13px;
}

.pf-card-badge.pf-ig svg {
    fill: #e1306c;
}

.pf-card-badge.pf-fb svg {
    fill: #1877f2;
}

.pf-card-badge.pf-tk svg {
    fill: var(--color-text-01);
}

.pf-card-badge.pf-auto svg {
    fill: var(--color-text-01);
}

.pf-card-nome {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-text-01);
    line-height: 1.15;
}

.pf-card-desc {
    font-size: 10.5px;
    color: var(--ap-muted);
    line-height: 1.1;
}

.pf-check {
    position: absolute;
    top: 7px;
    right: 7px;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: var(--ap-fill);
    display: none;
    align-items: center;
    justify-content: center;
    box-shadow: none;
}

.pf-check svg {
    width: 12px;
    height: 12px;
    fill: var(--ap-fill-text);
}

.pf-card.atv .pf-check {
    display: flex;
}

.pf-vazio {
    grid-column: 1 / -1;
    font-size: 12.5px;
    color: var(--ap-muted);
    padding: 16px;
    border: 1px dashed var(--color-border);
    border-radius: 12px;
    text-align: center;
    line-height: 1.4;
}

/* Tablets / iPad e janelas estreitas: preview vira faixa horizontal no topo,
   cards continuam em grade fluida. */
@media (max-width: 820px) {
    .perfil-foto-block .perfil-foto-layout {
        flex-direction: column;
        align-items: stretch;
        gap: 18px;
    }

    .perfil-foto-preview {
        flex: 0 0 auto;
        width: 100%;
        flex-direction: row;
        justify-content: center;
        gap: 20px;
        padding: 20px;
    }

    .pf-avatar-grande {
        width: 120px;
        height: 120px;
    }

    .pf-avatar-grande-ini {
        font-size: 42px;
    }
}

/* Celular: cards menores para caber 3+ por linha sem apertar. */
@media (max-width: 480px) {
    .perfil-foto-preview {
        flex-direction: column;
        gap: 12px;
        padding: 18px;
    }

    .pf-avatar-grande {
        width: 104px;
        height: 104px;
    }

    .pf-cards {
        grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
        gap: 8px;
    }

    .pf-card {
        padding: 12px 6px 9px;
    }

    .pf-card-thumb,
    .pf-card-thumb-ini {
        width: 50px;
        height: 50px;
    }
}

/* Paleta de cores, Elementos de Apoio e afins da aba Visual: o estilo vive no
   bloco "ABA VISUAL - IDENTIDADE DA MARCA", escopado em .editarPerfis. */

.sobre-painel {
    display: none;
}

.sobre-painel.sobre-painel-ativo {
    display: block;
}

.menu-sobre-perfil {
    margin-bottom: 15px;
    border-bottom: 1px solid var(--color-border);
    padding-bottom: 0;
}

.popup-show-limit-window {
    max-height: calc(-200px + 100vh);
    overflow: auto;
    border-bottom: 1px solid var(--color-border);
    display: block;
}

.chips-col {
    margin-bottom: 4px;
}

.chips-grupo {
    padding: 14px 16px 16px 16px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg-01);
    margin-bottom: 8px;
}

.chips-titulo {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.6px;
    text-transform: uppercase;
    opacity: 0.45;
    margin-bottom: 12px;
}

.chips-lista {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.chip {
    display: inline-flex;
    align-items: center;
    padding: 5px 13px;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    user-select: none;
    transition: all 0.18s ease;
    background: var(--color-bg);
    color: var(--color-text);
    opacity: 0.65;
}

.chip:hover {
    opacity: 1;
    border-color: #3b82f6;
    color: #3b82f6;
    transform: translateY(-1px);
}

.chip.atv {
    background: #3b82f6;
    border-color: #3b82f6;
    color: #fff;
    opacity: 1;
    box-shadow: 0 4px 12px rgba(59, 130, 246, 0.30);
    transform: translateY(-1px);
}

.chip.atv:hover {
    background: #2563eb;
    border-color: #2563eb;
    color: #fff;
}

.view-planejamento .totais-desc-conteudos .totais-desc-item .total {
    font-size: 25px;
    line-height: 23px;
}

/* ============================================================
   STUDIO CRIATIVO
 ============================================================ */
.estudio-arte-acoes .ea-use {
    width: auto;
    padding: 0 12px;
    border-radius: 16px;
    gap: 4px;
    background: #2563eb;
    color: #fff;
}

.estudio-arte-acoes .ea-use:hover {
    background: #1d4ed8;
    color: #fff;
}

.estudio-arte-acoes .ea-use .ea-use-lbl {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.2px;
}

.estudio-usar-modal .estudio-usar-content {
    width: 520px;
    max-width: 90vw;
    padding: 28px 28px 24px;
}

.estudio-usar-modal .estudio-usar-preview {
    display: flex;
    justify-content: center;
    margin: 8px 0 18px;
}

.estudio-usar-modal .estudio-usar-preview img {
    max-width: 240px;
    max-height: 240px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    object-fit: cover;
    background: #f5f5f7;
}

.estudio-usar-modal .estudio-usar-pergunta {
    font-size: 14px;
    color: var(--color-text);
    margin-bottom: 12px;
    font-weight: 500;
}

.estudio-usar-modal .estudio-usar-opcoes {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.estudio-usar-modal .estudio-usar-opc {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
    padding: 14px 16px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    cursor: pointer;
    text-align: left;
    color: var(--color-text-01);
    transition: border-color 0.15s, background 0.15s, transform 0.05s;
}

.estudio-usar-modal .estudio-usar-opc:hover {
    border-color: #2563eb;
    background: var(--color-hover-01);
}

.estudio-usar-modal .estudio-usar-opc:active {
    transform: scale(0.99);
}

.estudio-usar-modal .estudio-usar-opc.is-loading {
    opacity: 0.6;
    cursor: wait;
}

.estudio-usar-opc .estudio-usar-opc-icone {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: rgba(37, 99, 235, 0.1);
    color: #2563eb;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 6px;
}

.estudio-usar-opc .estudio-usar-opc-titulo {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-01);
}

.estudio-usar-opc .estudio-usar-opc-desc {
    font-size: 12px;
    color: var(--color-text);
    line-height: 1.4;
}

.estudio-usar-modal[data-step="lista"] .estudio-usar-content {
    width: 560px;
}

.estudio-usar-voltar,
.estudio-usar-voltar-lista {
    position: absolute;
    top: 16px;
    left: 16px;
    background: transparent;
    border: none;
    color: var(--color-text);
    display: inline-flex;
    align-items: center;
    gap: 4px;
    cursor: pointer;
    font-size: 13px;
    padding: 4px 6px;
    border-radius: 6px;
}

.estudio-usar-voltar:hover,
.estudio-usar-voltar-lista:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.estudio-usar-modal[data-step="lista"] .estudio-modal-titulo,
.estudio-usar-modal[data-step="modo-midia"] .estudio-modal-titulo {
    margin-top: 18px;
    text-align: center;
}

.estudio-usar-lista {
    max-height: 60vh;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding-right: 4px;
}

.estudio-usar-lista-loading,
.estudio-usar-lista-vazia {
    text-align: center;
    padding: 30px 10px;
    color: var(--color-text);
    font-size: 14px;
}

.estudio-usar-lista-vazia-sub {
    margin-top: 6px;
    font-size: 12px;
    color: var(--color-text);
    opacity: 0.8;
}

.estudio-usar-post {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    cursor: pointer;
    text-align: left;
    width: 100%;
    transition: border-color 0.15s, background 0.15s;
}

.estudio-usar-post:hover {
    border-color: #2563eb;
    background: var(--color-hover-01);
}

.estudio-usar-post.is-loading {
    opacity: 0.6;
    cursor: wait;
}

.estudio-usar-post-thumb {
    width: 56px;
    height: 62px;
    border-radius: 8px;
    overflow: hidden;
    flex-shrink: 0;
    background: #87878742;
    display: flex;
    align-items: center;
    justify-content: center;
}

.estudio-usar-post-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.estudio-usar-post-sem-img {
    color: #b5b5bd;
}

.estudio-usar-post-info {
    flex: 1;
    min-width: 0;
}

.estudio-usar-post-titulo {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-01);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.estudio-usar-post-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 4px;
}

.estudio-usar-post-tag {
    font-size: 11px;
    padding: 2px 7px;
    border-radius: 999px;
    background: rgb(145 145 145 / 35%);
}

.estudio-usar-post-legenda {
    color: var(--color-text-01);
    font-size: 12px;
    margin-top: 4px;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.select-perfis .campo-style-02.dropdown-contant {
    position: relative;
}

.select-perfis .dropdown2 {
    padding: 0;
    overflow: hidden;
    width: 100%;
    min-width: 250px;
    border-radius: 13px;
    box-shadow: 0 12px 28px rgba(20, 40, 70, 0.16);
    top: calc(100% + 6px);
    left: 0;
}

/* item atualmente selecionado */
.select-perfis .dropdown2 .it.it-ativo {
    background: #e7f1fc;
    color: #007bff;
    font-weight: 600;
}

.select-perfis .dropdown2 .it.it-ativo::after {
    content: "";
    margin-left: auto;
    width: 6px;
    height: 11px;
    border: solid #007bff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    margin-bottom: 3px;
    flex: 0 0 auto;
}

.select-perfis .dropdown-busca {
    position: relative;
    padding: 9px;
    border-bottom: 1px solid #eef2f6;
    background: #fff;
}

.select-perfis .dropdown-busca .ic-busca {
    position: absolute;
    left: 20px;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: 15px;
    fill: #9aa7b4;
    /* a base do .dropdown-generico esmaece o icone via opacity porque usa a
       cor do texto; aqui o cinza ja e o tom final, entao nao esmaece de novo */
    opacity: 1;
    pointer-events: none;
}

.select-perfis .dropdown-busca-input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #e6ebf1;
    border-radius: 8px;
    padding: 9px 10px 9px 36px;
    font-size: 14px;
    color: #2b3a4b;
    background: #fbfcfe;
    outline: none;
    transition: border-color 0.2s, box-shadow 0.2s;
}

.select-perfis .dropdown-busca-input:focus {
    border-color: #007bff;
    box-shadow: 0 0 0 3px #007bff1f;
    background: #fff;
}

.select-perfis .dropdown-lista {
    max-height: 264px;
    overflow-y: auto;
    padding: 6px;
}

.select-perfis .dropdown2 .it {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 10px;
    opacity: 1;
    font-size: 14px;
    font-weight: 500;
    color: #2b3a4b;
    transition: background 0.18s;
}

.select-perfis .dropdown2 .it:hover {
    background: #f1f6fd;
    opacity: 1;
}

.select-perfis .dropdown2 .it .img {
    width: 32px;
    height: 32px;
    margin: 0;
    float: none;
    flex: 0 0 auto;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: #dce3ec;
    border: 1px solid #00000010;
}

.select-perfis .dropdown-vazio {
    padding: 18px 10px;
    text-align: center;
    color: #9aa7b4;
    font-size: 13.5px;
}

.select-perfis .selecionado {
    display: flex;
    align-items: center;
    gap: 8px;
}

.select-perfis .selecionado .img {
    width: 24px;
    height: 24px;
    margin: 0;
    float: none;
    flex: 0 0 auto;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: #dce3ec;
}

/* scrollbar discreta da lista */
.select-perfis .dropdown-lista::-webkit-scrollbar {
    width: 8px;
}

.select-perfis .dropdown-lista::-webkit-scrollbar-thumb {
    background: #d4dde7;
    border-radius: 8px;
    border: 2px solid #fff;
}

.contant-espaco-usuario-acesso-listas {
    padding: 18px 20px 0px 20px;
}

.contant-espaco-usuario-acesso-listas h4 {
    font-size: 17px;
    margin: 0 0 4px 0;
}

.contant-espaco-usuario-acesso-listas .descricao {
    opacity: 0.6;
    font-size: 13px;
    margin-bottom: 16px;
}

.contant-espaco-usuario-acesso-listas .acesso-listas-opcoes .opt-acesso {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    padding: 7px 0;
    cursor: pointer;
}

.contant-espaco-usuario-acesso-listas .acesso-listas-itens {
    margin: 6px 0 4px 0;
    max-height: 230px;
    overflow-y: auto;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 6px 10px;
}

.contant-espaco-usuario-acesso-listas .item-lista-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    padding: 6px 0;
    cursor: pointer;
}

.contant-espaco-usuario-acesso-listas .acesso-listas-itens .vazio {
    opacity: 0.6;
    font-size: 13px;
    padding: 8px 0;
}

.contant-espaco-usuario-acesso-listas .ftr {
    clear: both;
    border-top: 1px solid var(--color-border);
    padding: 12px 0px 12px 0px;
    margin-top: 14px;
}

.contant-espaco-usuario-acesso-listas .ftr .btn-salvar {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 14px;
    font-weight: 500;
    padding: 6px 13px;
    border-radius: 10px;
    cursor: pointer;
    float: right;
}

.editar-espaco-pessoas .lst-membros .item .acesso-info {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 400;
    opacity: 0.7;
    white-space: nowrap;
}

.editar-espaco-pessoas .lst-membros .item .acesso-info .ico-edit {
    width: 10px;
    height: 10px;
    fill: currentColor;
    opacity: 0.85;
    flex: 0 0 auto;
}

.editar-espaco-pessoas .lst-membros .item .acesso-info.restrito {
    color: #b9791b;
    opacity: 1;
    cursor: pointer;
}

.editar-espaco-pessoas .lst-membros .item .acesso-info.total:not(.nao-clicavel) {
    cursor: pointer;
}

.editar-espaco-pessoas .lst-membros .item .acesso-info.nao-clicavel {
    opacity: 0.5;
}

.editar-espaco-pessoas .lst-membros .item .acesso-info:not(.nao-clicavel):hover {
    opacity: 1;
    text-decoration: underline;
}

.editar-espaco-pessoas .convite-titulo {
    display: block;
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 7px;
}

.editar-espaco-pessoas .box-convite-espaco {
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 6px 6px 6px 12px;
    margin-bottom: 22px;
}

.editar-espaco-pessoas .box-convite-espaco .box-pessoas-inserir {
    position: static;
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
}

.editar-espaco-pessoas .box-convite-espaco .box-pessoas-inserir .mail {
    flex: 1 1 auto;
    min-width: 0;
    border: 0;
    background: transparent;
    height: 38px;
    padding: 0;
    font-size: 14px;
}

.editar-espaco-pessoas .box-convite-espaco .box-pessoas-inserir .custom-select-wrapper {
    position: static;
    flex: 0 0 auto;
    width: auto;
    margin: 0;
    padding: 0 10px;
    border-left: 1px solid var(--color-border);
}

.editar-espaco-pessoas .box-convite-espaco .box-pessoas-inserir .custom-select-wrapper select {
    border: 0;
    height: 32px;
    font-size: 13px;
    padding: 0;
    cursor: pointer;
    background: transparent;
}

.editar-espaco-pessoas .box-convite-espaco .box-pessoas-inserir .btn-nova-pessoa {
    position: static;
    float: none;
    margin: 0;
    flex: 0 0 auto;
    padding: 8px 16px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.editar-espaco-pessoas .box-convite-espaco .box-acesso-convite {
    margin: 6px 0 0 0;
    padding: 10px 6px 4px 0;
    border-top: 1px solid var(--color-border);
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.editar-espaco-pessoas .box-convite-espaco .acesso-convite-label {
    font-size: 12px;
    opacity: 0.7;
}

.editar-espaco-pessoas .box-convite-espaco .box-acesso-convite .custom-select-wrapper {
    position: static;
    width: auto;
    margin: 0;
    flex: 0 0 auto;
}

.editar-espaco-pessoas .box-convite-espaco .box-acesso-convite .custom-select-wrapper select {
    border: 1px solid var(--color-border);
    border-radius: 8px;
    height: 32px;
    font-size: 13px;
    padding: 0 8px;
    cursor: pointer;
    background: transparent;
}

.editar-espaco-pessoas .box-convite-espaco .acesso-convite-listas {
    flex: 1 1 100%;
    margin-top: 2px;
    max-height: 170px;
    overflow-y: auto;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    padding: 4px 10px;
}

.item-lista-check {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    padding: 6px 0;
    cursor: pointer;
}

.contant-espaco-usuario-acesso-listas.somente-leitura .item-lista-check {
    opacity: 0.85;
    cursor: default;
}

.contant-espaco-usuario-acesso-listas .acesso-resumo {
    font-size: 14px;
    padding: 6px 0 4px 0;
}

/* =========================================================================
   SKELETON LOADING 
   ========================================================================= */
.plan-skeleton {
    width: 100%;
}

.plan-skeleton .sk {
    position: relative;
    overflow: hidden;
    display: inline-block;
    background: var(--sk-base);
    border-radius: 6px;
    vertical-align: middle;
}

.plan-skeleton .sk::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent 0%, var(--sk-glow) 50%, transparent 100%);
    animation: sk-shimmer 1.4s ease-in-out infinite;
}

@keyframes sk-shimmer {
    100% {
        transform: translateX(100%);
    }
}

.plan-skeleton .sk-l {
    height: 13px;
    border-radius: 5px;
}

.plan-skeleton .sk-header-baixo {
    padding: 3px 3px 22px 3px;
    border-bottom: 1px solid var(--color-border);
}

.plan-skeleton .sk-header-baixo::after {
    content: "";
    display: block;
    clear: both;
}

.plan-skeleton .sk-col-obj {
    float: left;
    width: 60%;
    padding: 20px 0 0 0;
}

.plan-skeleton .sk-col-datas {
    float: left;
    width: 40%;
    padding: 20px 0 0 23px;
}

.plan-skeleton .sk-h5 {
    height: 16px;
    margin-bottom: 12px;
}

.plan-skeleton .sk-obj-item {
    margin-bottom: 12px;
}

.plan-skeleton .sk-obj-item .sk-obj-data {
    display: block;
    margin-bottom: 7px;
}

.plan-skeleton .sk-obj-item .sk-obj-txt {
    display: block;
}

.plan-skeleton .sk-data-item {
    margin-bottom: 9px;
}

.plan-skeleton .sk-data-item::after {
    content: "";
    display: block;
    clear: both;
}

.plan-skeleton .sk-data-d {
    float: left;
    width: 60px;
}

.plan-skeleton .sk-data-t {
    float: left;
    margin-left: 9px;
}

/* Barra de controle: os dois trilhos de abas na mesma linha (conjunto a
   esquerda, visao a direita) - mesmo arranjo da tela pronta. */
.plan-skeleton .sk-barra {
    display: flex;
    align-items: center;
    padding: 16px 0 12px 0;
}

/* Esquerda = texto grande (sem caixa); direita = trilho contornado. As duas
   marcas do skeleton tem formas diferentes porque os controles tambem tem. */
.plan-skeleton .sk-tab {
    height: 21px;
    border-radius: 6px;
}

.plan-skeleton .sk-tab-rig {
    height: 32px;
    border-radius: 10px;
    margin-left: auto;
}

/* Faixa de resumo: cartao com a linha de leitura em cima e a barra de status
   na largura inteira embaixo. */
.plan-skeleton .sk-totais-desc {
    box-sizing: border-box;
    padding: 14px 16px 15px 16px;
    margin-bottom: 14px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
}

.plan-skeleton .sk-tot-top {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 14px;
}

.plan-skeleton .sk-grafics {
    display: flex;
    gap: 18px;
}

.plan-skeleton .sk-graf-item {
    display: flex;
    align-items: center;
    gap: 6px;
}

.plan-skeleton .sk-graf-num {
    width: 78px;
    height: 30px;
    border-radius: 7px;
}

.plan-skeleton .sk-graf-ico {
    width: 13px;
    height: 13px;
    border-radius: 4px;
}

.plan-skeleton .sk-graf-lbl {
    width: 54px;
    height: 11px;
}

.plan-skeleton .sk-meta {
    width: 148px;
    height: 14px;
    margin-left: auto;
}

.plan-skeleton .sk-status-bar {
    display: block;
    width: 100%;
    height: 10px;
    border-radius: 100px;
    background: var(--sk-base);
    position: relative;
    overflow: hidden;
}

.plan-skeleton .sk-status-bar::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent 0%, var(--sk-glow) 50%, transparent 100%);
    animation: sk-shimmer 1.4s ease-in-out infinite;
}

.plan-skeleton .sk-legenda {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin-top: 12px;
}

.plan-skeleton .sk-leg-item {
    height: 11px;
}

.plan-skeleton .sk-cal {
    margin: 0 -15px;
}

.plan-skeleton .sk-cal-header {
    padding: 0 8px 12px 8px;
}

.plan-skeleton .sk-cal-view {
    width: 70px;
    height: 18px;
    border-radius: 6px;
    margin-right: 14px;
}

.plan-skeleton .sk-cal-weekdays,
.plan-skeleton .sk-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
    padding: 0 8px;
}

.plan-skeleton .sk-cal-weekdays {
    margin-bottom: 6px;
}

.plan-skeleton .sk-cal-wd {
    height: 12px;
    width: 60%;
    margin: 0 auto;
    border-radius: 5px;
}

.plan-skeleton .sk-cal-cell {
    height: 96px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    padding: 8px;
    box-sizing: border-box;
}

.plan-skeleton .sk-cal-cell .sk-cal-num {
    width: 20px;
    height: 14px;
    border-radius: 5px;
}

/* ====================================================================
   PAINEL DA PESSOA (modal central estilo ClickUp) - minimalista
   ==================================================================== */
/* Largura confortavel quando o modal central exibe o painel da pessoa */
#edit-popup .contant .boxpop:has(.painel-pessoa) {
    width: 720px;
    max-width: 95vw;
    border-radius: 18px;
}

.painel-pessoa {
    width: 100%;
    padding: 6px 6px 12px 6px;
    color: var(--color-text-01);
    display: flex;
    flex-direction: column;
    max-height: 86vh;
}

.painel-pessoa.pp-loading {
    padding: 26px 20px;
    display: block;
}

/* Cabecalho - avatar grande quadrado + nome + status (inspirado no print) */
.painel-pessoa .pp-hdr {
    display: flex;
    flex: 0 0 auto;
    align-items: flex-start;
    gap: 16px;
    padding: 18px 18px 20px 18px;
    border-bottom: 1px solid var(--color-border);
}

.painel-pessoa .pp-avatar {
    width: 80px;
    height: 80px;
    border-radius: 18px;
    background: var(--color-btn-bg-01);
    background-size: cover;
    background-position: center;
    color: var(--color-btn-text-01);
    font-weight: 600;
    font-size: 30px;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.painel-pessoa .pp-hdr-infs {
    min-width: 0;
    padding-top: 4px;
}

.painel-pessoa .pp-nome {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.15;
    letter-spacing: -.01em;
    display: flex;
    align-items: center;
    gap: 8px;
}

.painel-pessoa .pp-voce {
    font-size: 11px;
    font-weight: 600;
    color: var(--color-btn-bg-01);
    background: var(--color-hover-01);
    padding: 2px 8px;
    border-radius: 20px;
    text-transform: none;
}

.painel-pessoa .pp-sub {
    font-size: 13px;
    color: color-mix(in srgb, var(--color-text-01) 48%, transparent);
    margin-top: 6px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.painel-pessoa .pp-status {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
    margin-top: 10px;
}

.painel-pessoa .pp-status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 1.6px solid color-mix(in srgb, var(--color-text-01) 34%, transparent);
    box-sizing: border-box;
}

.painel-pessoa .pp-info {
    padding: 12px 4px;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 4px;
}

.painel-pessoa .pp-info-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 7px 4px;
    font-size: 13.5px;
    color: color-mix(in srgb, var(--color-text-01) 72%, transparent);
}

.painel-pessoa .pp-ico {
    color: color-mix(in srgb, var(--color-text-01) 34%, transparent);
    flex: 0 0 auto;
}

.painel-pessoa .pp-info-row span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Cabecalho de secao (ex.: Pendencias) */
.painel-pessoa .pp-secao-hdr {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-text-01);
    padding: 10px 4px 2px 4px;
}

/* Abas */
.painel-pessoa .pp-tabs {
    display: flex;
    flex: 0 0 auto;
    gap: 16px;
    padding: 0 10px;
    border-bottom: 1px solid var(--color-border);
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
}

.painel-pessoa .pp-tabs::-webkit-scrollbar {
    display: none;
}

.painel-pessoa .pp-tab {
    flex: 0 0 auto;
    font-size: 13px;
    color: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    font-weight: 500;
    padding: 9px 0;
    cursor: pointer;
    white-space: nowrap;
    border-bottom: 2px solid transparent;
    transition: color .2s;
}

.painel-pessoa .pp-tab:hover {
    color: var(--color-text-01);
}

.painel-pessoa .pp-tab.atv {
    color: var(--color-text-01);
    font-weight: 600;
    border-color: var(--color-text-01);
}

/* Corpo / panes */
.painel-pessoa .pp-body {
    padding: 6px 8px;
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
}

.painel-pessoa .pp-pane {
    display: none;
    width: 100%;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 4px;
}

.painel-pessoa .pp-pane.atv {
    display: block;
}

/* Abas que hospedam o feed de atividades (linha do tempo) */
.painel-pessoa .pp-pane.pp-feed {
    padding: 0 2px;
}

/* Remove o padding-top de 62px (era p/ o header fixo do menu-geral) dentro do popup */
.painel-pessoa .pp-feed .estrutura-atividades-lst-01 {
    padding-top: 6px;
}

.painel-pessoa .pp-feed .estrutura-atividades-lst-01 .item {
    margin-bottom: 4px;
}

.painel-pessoa .pp-feed .pre-loading {
    padding-top: 0 !important;
    padding-bottom: 10px !important;
}

/* Grupos (Atrasados / Hoje / Amanha, blocos) */
.painel-pessoa .pp-grupo {
    margin-top: 14px;
}

.painel-pessoa .pp-grupo-hdr {
    font-size: 12px;
    font-weight: 600;
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
    text-transform: uppercase;
    letter-spacing: .03em;
    margin-bottom: 7px;
    padding: 0 2px;
}

.painel-pessoa .pp-grupo-hdr span {
    color: color-mix(in srgb, var(--color-text-01) 34%, transparent);
    margin-left: 3px;
}

.painel-pessoa .pp-grupo-atrasado {
    color: #e0444b;
}

/* Item (linha de post/tarefa) */
.painel-pessoa .pp-item {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 9px 9px;
    border-radius: 10px;
    cursor: pointer;
    transition: background .15s;
}

.painel-pessoa .pp-item:hover {
    background: var(--color-bg-01);
}

/* Icone de status (anel com %) reaproveitado do sistema, alinhado no item */
.painel-pessoa .pp-item .st-icon {
    flex: 0 0 auto;
    margin-top: 2px;
}

.painel-pessoa .pp-item-body {
    flex: 1;
    min-width: 0;
}

.painel-pessoa .pp-item-titulo {
    font-size: 13.5px;
    font-weight: 500;
    color: var(--color-text-01);
    line-height: 1.3;
    display: flex;
    align-items: center;
    gap: 6px;
}

.painel-pessoa .pp-flag {
    width: 7px;
    height: 7px;
    border-radius: 2px;
    flex: 0 0 auto;
}

.painel-pessoa .pp-item-meta {
    font-size: 11.5px;
    color: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    margin-top: 3px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.painel-pessoa .pp-tag {
    background: var(--color-border);
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
    border-radius: 5px;
    padding: 1px 5px;
    margin-right: 6px;
    font-size: 10.5px;
    font-weight: 600;
}

.painel-pessoa .pp-item-data {
    font-size: 11.5px;
    color: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    white-space: nowrap;
    flex: 0 0 auto;
    padding-top: 1px;
}

.painel-pessoa .pp-item-data.pp-atraso {
    color: #e0444b;
    font-weight: 600;
}

/* Relacionados: perfis em grid + espacos em lista */
.painel-pessoa .pp-rel-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.painel-pessoa .pp-rel {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 9px;
    border-radius: 10px;
    background: var(--color-bg-01);
    text-decoration: none;
    color: var(--color-text-01);
    transition: background .15s;
}

.painel-pessoa .pp-rel:hover {
    background: var(--color-border);
}

.painel-pessoa .pp-rel-img {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background: var(--color-border) center/cover no-repeat;
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.painel-pessoa .pp-rel-cor {
    width: 12px;
    height: 12px;
    border-radius: 4px;
    flex: 0 0 auto;
}

.painel-pessoa .pp-rel-nome {
    font-size: 13px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    flex: 1;
}

.painel-pessoa .pp-rel-espaco {
    margin-bottom: 7px;
}

.painel-pessoa .pp-rel-sub {
    font-size: 11px;
    color: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    flex: 0 0 auto;
}

/* Vazio */
.painel-pessoa .pp-vazio {
    text-align: center;
    font-size: 13px;
    color: color-mix(in srgb, var(--color-text-01) 48%, transparent);
    padding: 34px 18px;
}

/* ================= ABA PRODUTIVIDADE ================= */
.painel-pessoa .pp-prod-cont {
    padding: 6px 2px 10px;
}

.painel-pessoa .pp-prod-topo {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    padding: 6px 2px 12px;
}

.painel-pessoa .pp-prod-periodo {
    display: flex;
    align-items: center;
    gap: 4px;
}

.painel-pessoa .pp-prod-nav {
    width: 26px;
    height: 26px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    border-radius: 7px;
    cursor: pointer;
    color: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    font-size: 16px;
    line-height: 1;
}

.painel-pessoa .pp-prod-nav:hover {
    background: var(--color-bg-01);
}

.painel-pessoa .pp-prod-periodo-lbl {
    min-width: 96px;
    text-align: center;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--color-text-01);
}

.painel-pessoa .pp-prod-toggle {
    display: inline-flex;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    overflow: hidden;
}

.painel-pessoa .pp-prod-modo {
    border: 0;
    background: var(--color-bg);
    padding: 5px 12px;
    font-size: 12.5px;
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
    cursor: pointer;
}

.painel-pessoa .pp-prod-modo.atv {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.painel-pessoa .pp-prod-config {
    margin-left: auto;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    border-radius: 8px;
    padding: 5px 11px;
    font-size: 12.5px;
    color: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    cursor: pointer;
}

.painel-pessoa .pp-prod-config:hover {
    background: var(--color-bg-01);
    color: var(--color-text-01);
}

.painel-pessoa .pp-prod-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin-bottom: 14px;
}

.painel-pessoa .pp-prod-card {
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 12px 14px;
    background: var(--color-bg-01);
}

.painel-pessoa .pp-prod-card-num {
    font-size: 22px;
    font-weight: 700;
    color: var(--color-text-01);
    line-height: 1.1;
}

.painel-pessoa .pp-prod-card-lbl {
    font-size: 11.5px;
    color: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    margin-top: 3px;
}

.painel-pessoa .pp-prod-card.ok .pp-prod-card-num {
    color: #047857;
}

.painel-pessoa .pp-prod-card.warn .pp-prod-card-num {
    color: #b45309;
}

.painel-pessoa .pp-prod-bloco {
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 12px 14px;
    margin-bottom: 14px;
}

.painel-pessoa .pp-prod-bloco-hdr {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    margin-bottom: 10px;
}

.painel-pessoa .pp-prod-canvas-wrap {
    position: relative;
    height: 170px;
}

.painel-pessoa .pp-prod-grid2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.painel-pessoa .pp-prod-vazio {
    color: color-mix(in srgb, var(--color-text-01) 48%, transparent);
    font-size: 12.5px;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 60px;
}

.painel-pessoa .pp-prod-bar-row {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
}

.painel-pessoa .pp-prod-bar-lbl {
    width: 38%;
    font-size: 12.5px;
    color: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.painel-pessoa .pp-prod-bar-track {
    flex: 1;
    height: 8px;
    background: var(--color-border);
    border-radius: 5px;
    overflow: hidden;
}

.painel-pessoa .pp-prod-bar-fill {
    height: 100%;
    background: var(--color-btn-bg-01);
    border-radius: 5px;
}

.painel-pessoa .pp-prod-bar-val {
    width: 32px;
    text-align: right;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-text-01);
}

/* Ranking equipe */
.painel-pessoa .pp-prod-rk-row {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 6px 0;
}

.painel-pessoa .pp-prod-rk-row.atual {
    background: var(--color-hover-01);
    border-radius: 8px;
    padding: 6px 8px;
    margin: 0 -8px;
}

.painel-pessoa .pp-prod-rk-pos {
    width: 18px;
    font-size: 12px;
    color: color-mix(in srgb, var(--color-text-01) 48%, transparent);
    font-weight: 600;
    text-align: center;
}

.painel-pessoa .pp-prod-rk-img {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--color-border);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 600;
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
    flex: 0 0 auto;
}

.painel-pessoa .pp-prod-rk-nome {
    width: 30%;
    font-size: 12.5px;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.painel-pessoa .pp-prod-rk-track {
    flex: 1;
    height: 8px;
    background: var(--color-border);
    border-radius: 5px;
    overflow: hidden;
}

.painel-pessoa .pp-prod-rk-fill {
    display: block;
    height: 100%;
    background: color-mix(in srgb, var(--color-btn-bg-01) 45%, transparent);
    border-radius: 5px;
}

.painel-pessoa .pp-prod-rk-row.atual .pp-prod-rk-fill {
    background: var(--color-btn-bg-01);
}

.painel-pessoa .pp-prod-rk-val {
    width: 32px;
    text-align: right;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-text-01);
}

@media (max-width: 560px) {
    .painel-pessoa .pp-prod-cards {
        grid-template-columns: repeat(2, 1fr);
    }

    .painel-pessoa .pp-prod-grid2 {
        grid-template-columns: 1fr;
    }
}

/* ============ CONFIG: responsaveis por status ============ */
#edit-popup-medium .cfg-resp {
    padding: 4px 2px;
}

#edit-popup-medium .cfg-resp-hdr h3 {
    font-size: 17px;
    font-weight: 700;
    color: #1f2330;
    margin: 0 0 4px;
}

#edit-popup-medium .cfg-resp-hdr p {
    font-size: 12.5px;
    color: #8a909c;
    line-height: 1.45;
    margin: 0 0 14px;
}

#edit-popup-medium .cfg-resp-tabs {
    display: flex;
    gap: 6px;
    border-bottom: 1px solid #eceef1;
    margin-bottom: 12px;
}

#edit-popup-medium .cfg-resp-tab {
    font-size: 12.5px;
    color: #8a909c;
    font-weight: 500;
    padding: 8px 10px;
    cursor: pointer;
    border-bottom: 2px solid transparent;
}

#edit-popup-medium .cfg-resp-tab.atv {
    color: #1f2330;
    font-weight: 600;
    border-bottom-color: #2563eb;
}

#edit-popup-medium .cfg-resp-seletor {
    margin-bottom: 12px;
}

#edit-popup-medium .cfg-resp-escopo-select {
    width: 100%;
    border: 1px solid #e3e6eb;
    border-radius: 8px;
    padding: 9px 11px;
    font-size: 13px;
    color: #1f2330;
    background: #fff;
}

#edit-popup-medium .cfg-resp-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 9px 4px;
    border-bottom: 1px solid #f3f4f6;
}

#edit-popup-medium .cfg-resp-status-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    padding-top: 3px;
}

#edit-popup-medium .cfg-resp-status {
    display: inline-block;
    padding: 3px 10px;
    border-radius: 20px;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    max-width: 150px;
    overflow: hidden;
    text-overflow: ellipsis;
}

#edit-popup-medium .cfg-resp-ctx {
    font-size: 11px;
    color: #9aa0ac;
}

#edit-popup-medium .cfg-resp-pick {
    position: relative;
    margin-left: auto;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    justify-content: flex-end;
    max-width: 62%;
}

#edit-popup-medium .cfg-resp-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    background: #eef1f6;
    border-radius: 16px;
    padding: 3px 7px 3px 4px;
    font-size: 12px;
    color: #1f2330;
}

#edit-popup-medium .cfg-resp-chip-x {
    cursor: pointer;
    color: #9aa0ac;
    font-size: 14px;
    line-height: 1;
    padding: 0 1px;
}

#edit-popup-medium .cfg-resp-chip-x:hover {
    color: #dc2626;
}

#edit-popup-medium .cfg-resp-add {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px dashed #c7ccd6;
    border-radius: 50%;
    color: #6b7280;
    cursor: pointer;
    font-size: 16px;
    line-height: 1;
    flex: 0 0 auto;
}

#edit-popup-medium .cfg-resp-add:hover {
    border-color: #2563eb;
    color: #2563eb;
}

#edit-popup-medium .cfg-resp-herda {
    color: #9aa0ac;
    font-style: italic;
    font-size: 12px;
}

#edit-popup-medium .cfg-resp-defina {
    color: #9aa0ac;
    font-size: 12px;
}

#edit-popup-medium .cfg-resp-dd-vazio {
    padding: 14px 12px;
    text-align: center;
    color: #9aa0ac;
    font-size: 12.5px;
}

#edit-popup-medium .cfg-resp-img {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: #eceef1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 600;
    color: #6b7280;
}

/* Tambem serve o painel de marcar do EDITOR DE CARGO (.cfg-resp-dd-rec), que
   abre aqui dentro. Por isso saiu do #fff cravado: no dark virava uma caixa
   branca dentro do popup escuro. */
#edit-popup-medium .cfg-resp-dd {
    position: absolute;
    top: calc(100% + 4px);
    right: 0;
    width: 230px;
    background: var(--eq-surface, #fff);
    border: 1px solid var(--eq-border-strong, #e3e6eb);
    border-radius: 10px;
    box-shadow: var(--eq-shadow, 0 14px 36px rgba(0, 0, 0, .16));
    z-index: 30;
    overflow: hidden;
    text-align: left;
}

#edit-popup-medium .cfg-resp-dd-busca {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--eq-border, #eceef1);
    padding: 9px 11px;
    font-size: 13px;
    background: transparent;
    color: var(--eq-text, #1f2330);
    outline: 0;
}

#edit-popup-medium .cfg-resp-dd-lista {
    max-height: 230px;
    overflow-y: auto;
    padding: 4px 0;
}

#edit-popup-medium .cfg-resp-dd-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 11px;
    font-size: 13px;
    color: #1f2330;
    cursor: pointer;
}

#edit-popup-medium .cfg-resp-dd-item:hover {
    background: #f5f6f8;
}

#edit-popup-medium .cfg-resp-vazio {
    text-align: center;
    color: #9aa0ac;
    font-size: 12.5px;
    padding: 26px 12px;
}

/* ================================================================ */
/* GRADE DO FEED - tela (menu da marca) e popup (.grade-feed-popup)  */
/* Monocromatica: o unico colorido e dado (status, capas, avatar).   */
/* Hierarquia: cabecalho > barra (visao | filtrar, datas) > roteiro  */
/* fixo a esquerda + previa centralizada a direita.                  */
/* ================================================================ */
.grade-feed-header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 14px;
}

.grade-feed-header .grade-feed-header-right {
    display: flex;
    align-items: center;
    gap: 8px;
}

.grade-feed-header .title-section {
    display: flex;
    align-items: baseline;
    padding-top: 0px !important;
    letter-spacing: -.02em;
}

.grade-feed-header .grade-feed-mes-label {
    margin-left: 10px;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
    color: var(--color-text-01, #111);
    opacity: .45;
    text-transform: capitalize;
}

.grade-feed-navmes {
    display: inline-flex;
    align-items: stretch;
    height: 32px;
    padding: 2px;
    gap: 2px;
    border-radius: 10px;
    background: var(--color-hover-01);
    transition: opacity .15s;
}

.grade-feed-navmes .navmes-btn,
.grade-feed-navmes .navmes-hoje {
    min-width: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01, #111);
    cursor: pointer;
    transition: background .15s, opacity .15s;
}

.grade-feed-navmes .navmes-hoje {
    padding: 0 10px;
    font-size: 12.5px;
    font-weight: 550;
}

.grade-feed-navmes .navmes-btn:hover,
.grade-feed-navmes .navmes-hoje:hover {
    background: var(--gf-seg-ativo);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .08);
}

.grade-feed-navmes .navmes-hoje.atual {
    opacity: .35;
    pointer-events: none;
}

.grade-feed-navmes .navmes-btn svg {
    fill: currentColor;
}

.grade-feed-navmes.gf-nav-off {
    opacity: .35;
    pointer-events: none;
}

/* ---- Botoes da grade (outline discreto; ativo = tinta) ---- */
.gf-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 34px;
    padding: 0 13px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01, #111);
    font-size: 13px;
    font-weight: 550;
    line-height: 1;
    text-decoration: none;
    white-space: nowrap;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

.gf-btn:hover,
.gf-btn.aberto {
    background: var(--color-hover-01);
    color: var(--color-text-01, #111);
    text-decoration: none;
}

.gf-btn.atv {
    background: var(--gf-tinta, var(--color-btn-bg-01));
    border-color: var(--gf-tinta, var(--color-btn-bg-01));
    color: var(--gf-tinta-txt, var(--color-btn-text-01));
}

.gf-btn:disabled {
    opacity: .4;
    pointer-events: none;
}

.gf-btn svg {
    flex-shrink: 0;
}

.grade-feed-header .gf-btn {
    height: 32px;
    font-size: 12.5px;
}

.gf-ico-btn {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01, #111);
    opacity: .6;
    cursor: pointer;
    transition: background .15s, opacity .15s;
}

.gf-ico-btn:hover,
.gf-ico-btn.copiado {
    background: var(--color-hover-01);
    opacity: 1;
}

.gf-ico-btn svg:not([fill="none"]) {
    fill: currentColor;
}

.grade-feed-navmes button:focus,
.gf-btn:focus,
.gf-ico-btn:focus,
.gf-pilula:focus,
.gf-segmented .tab:focus {
    outline: none;
}

.grade-feed-navmes button:focus-visible,
.gf-btn:focus-visible,
.gf-ico-btn:focus-visible,
.gf-pilula:focus-visible,
.gf-segmented .tab:focus-visible {
    outline: 2px solid var(--color-text-01, #111);
    outline-offset: 2px;
}

/* ---- Tela ---- */
.grade-feed-view {
    --gf-muted: color-mix(in srgb, var(--color-text-01, #111) 50%, transparent);
    --gf-panel: color-mix(in srgb, var(--color-text-01, #111) 2%, var(--color-bg, #fff));
    --gf-tinta: var(--color-btn-bg-01, #000);
    --gf-tinta-txt: var(--color-btn-text-01, #fff);
    --gf-radius: 16px;
    --gf-ease: cubic-bezier(.16, 1, .3, 1);
    /* Gutter igual ao do cabecalho (.header-pagina = 0 14px) e ao planejamento. */
    padding: 6px 15px 64px;
}

/* Barra: visao a esquerda, acoes a direita */
.gf-barra {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-bottom: 20px;
}

.gf-barra-dir {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.gf-filtro-ativo:empty {
    display: none;
}

/* Filtro ativo: pilula de tinta com X */
.gf-pilula {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 34px;
    max-width: 260px;
    padding: 0 10px 0 13px;
    border: 0;
    border-radius: 10px;
    background: var(--gf-tinta);
    color: var(--gf-tinta-txt);
    font-size: 12.5px;
    font-weight: 550;
    cursor: pointer;
    animation: glass-entra var(--glass-entra-dur, .22s) var(--glass-ease, ease);
}

.gf-pilula span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gf-pilula svg {
    flex-shrink: 0;
    opacity: .7;
}

.gf-pilula:hover svg {
    opacity: 1;
}

/* Seletor de visao: trilho + pastilha que desliza (gradeFeedMoverIndicador) */
.gf-segmented {
    position: relative;
    display: inline-flex;
    max-width: 100%;
    padding: 3px;
    gap: 2px;
    border-radius: 12px;
    background: var(--color-hover-01);
}

.gf-segmented.gf-single {
    display: none;
}

.gf-segmented .tab {
    position: relative;
    z-index: 1;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 30px;
    padding: 0 14px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    font-size: 13px;
    font-weight: 550;
    line-height: 1;
    color: var(--color-text-01, #111);
    opacity: .55;
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
    transition: opacity .16s ease;
}

.gf-segmented .tab svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    flex-shrink: 0;
}

.gf-segmented .tab:hover:not(.atv) {
    opacity: .85;
}

.gf-segmented .tab.atv {
    opacity: 1;
}

.gf-segmented .tab.hidden {
    display: none;
}

.gf-seg-indicator {
    position: absolute;
    top: 3px;
    bottom: 3px;
    left: 0;
    width: 0;
    border-radius: 9px;
    background: var(--gf-seg-ativo);
    box-shadow: 0 1px 3px rgba(0, 0, 0, .1), 0 0 0 .5px rgba(0, 0, 0, .06);
    transition: transform .32s cubic-bezier(.32, .72, 0, 1), width .32s cubic-bezier(.32, .72, 0, 1);
    z-index: 0;
    pointer-events: none;
}

/* ---- Popover do filtro (vidro: bloco "1. Menus, dropdowns e popovers") ---- */
.gf-pop {
    position: fixed;
    z-index: 100000;
    width: 300px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 6px;
    border-radius: 16px;
    background: var(--glass-opaco, var(--color-bg, #fff));
    color: var(--color-text-01, #111);
}

.gf-pop-sec+.gf-pop-sec {
    margin-top: 4px;
    padding-top: 4px;
    border-top: 1px solid var(--color-border);
}

.gf-pop-rot {
    padding: 8px 10px 4px;
    font-size: 11px;
    font-weight: 550;
    color: var(--color-text-01, #111);
    opacity: .45;
}

.gf-pop-it {
    display: grid;
    grid-template-columns: 18px minmax(0, 1fr) auto 16px;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-height: 34px;
    padding: 6px 10px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: inherit;
    text-align: left;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.gf-pop-it:hover,
.gf-pop-it:focus-visible {
    background: var(--glass-realce, var(--color-hover-01));
    outline: none;
}

.gf-pop-ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: .65;
}

.gf-pop-ic svg:not([fill="none"]) {
    fill: currentColor;
}

.gf-pop-dot {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.gf-pop-txt {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.gf-pop-txt small {
    display: block;
    margin-top: 1px;
    font-size: 11px;
    font-weight: 400;
    line-height: 1.35;
    white-space: normal;
    opacity: .55;
}

.gf-pop-status {
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .02em;
}

.gf-pop-num {
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    opacity: .5;
}

.gf-pop-ok {
    display: inline-flex;
    opacity: 0;
}

.gf-pop-it.atv {
    font-weight: 600;
}

.gf-pop-it.atv .gf-pop-ok,
.gf-pop-it.atv .gf-pop-ic {
    opacity: 1;
}

/* ---- Espaco de trabalho ---- */
.grade-feed-workspace {
    display: flex;
    align-items: flex-start;
    gap: 28px;
}

/* Roteiro: fixo na rolagem (sticky na .centraliza da tela e no .contant do
   popup), com rolagem propria por dentro. */
.gf-lista {
    flex: 0 0 320px;
    width: 320px;
    position: sticky;
    top: 16px;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 96px);
    border: 1px solid var(--color-border);
    border-radius: var(--gf-radius);
    background: var(--gf-panel);
    overflow: hidden;
}

.gf-lista-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 8px 10px 16px;
    border-bottom: 1px solid var(--color-border);
}

.gf-lista-title {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -.01em;
    color: var(--color-text-01, #111);
}

.gf-lista-count {
    margin-left: 7px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    color: var(--gf-muted);
}

.gf-lista-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 6px;
}

.gf-lista-empty {
    padding: 40px 18px;
    text-align: center;
    font-size: 12.5px;
    color: var(--gf-muted);
}

.gf-lista-row {
    display: grid;
    grid-template-columns: 20px 40px minmax(0, 1fr) 14px;
    align-items: center;
    gap: 10px;
    padding: 7px 10px 7px 4px;
    border-radius: 11px;
    cursor: pointer;
    position: relative;
    transition: background .14s;
}

.gf-lista-row:hover,
.gf-lista-row.gf-sync {
    background: var(--color-hover-01);
}

.gf-lista-row:focus {
    outline: none;
}

.gf-lista-row:focus-visible {
    box-shadow: inset 0 0 0 2px var(--color-text-01, #111);
}

.gf-row-num {
    font-size: 11px;
    font-weight: 550;
    font-variant-numeric: tabular-nums;
    color: var(--gf-muted);
    text-align: right;
}

.gf-row-thumb {
    position: relative;
    width: 40px;
    height: 50px;
    border-radius: 7px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-hover-01);
    overflow: hidden;
    flex-shrink: 0;
}

.gf-row-thumb-vazio {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--gf-muted);
}

.gf-row-thumb-vazio svg {
    fill: currentColor;
}

.gf-row-multi {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 15px;
    height: 15px;
    border-radius: 4px;
    background: rgba(0, 0, 0, .5);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
}

.gf-row-multi svg {
    fill: currentColor;
    width: 9px;
    height: 9px;
}

.gf-row-main {
    min-width: 0;
}

.gf-row-title {
    font-size: 13px;
    font-weight: 550;
    color: var(--color-text-01, #111);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Acima do titulo: selo "Atrasado" e/ou "Tema / Objetivo" (fallback) */
.gf-row-eyebrow {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-bottom: 3px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .06em;
    line-height: 1.2;
    text-transform: uppercase;
    color: var(--gf-muted);
}

.gf-row-flag {
    color: var(--color-text-01, #111);
}

.gf-row-title.gf-row-title-obj {
    font-weight: 500;
    opacity: .82;
}

.gf-row-title.gf-row-title-vazio {
    font-weight: 500;
    font-style: italic;
    color: var(--gf-muted);
}

.gf-row-sub {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 3px;
    font-size: 11.5px;
    color: var(--gf-muted);
    white-space: nowrap;
    overflow: hidden;
}

.gf-row-tipo {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.gf-row-tipo svg {
    fill: currentColor;
    flex-shrink: 0;
}

.gf-row-data {
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
}

/* Coluna da direita: status (dado) e, embaixo, o cadeado de quem e fixo */
.gf-row-lado {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
}

.gf-row-status {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--gf-status, #c9ccd1);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--gf-status, #c9ccd1) 20%, transparent);
}

/* Vazio de 3+ dias entre dois conteudos (cadencia a vista) */
.gf-lista-gap {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 10px 3px 34px;
    font-size: 10.5px;
    font-weight: 500;
    color: var(--gf-muted);
}

.gf-lista-gap::before,
.gf-lista-gap::after {
    content: "";
    flex: 1;
    border-top: 1px dashed var(--color-border);
}

.gf-filtrando .gf-lista-gap {
    display: none;
}

/* Skeleton do roteiro */
.gf-lista-row.skeleton {
    cursor: default;
    grid-template-columns: 40px 1fr;
    pointer-events: none;
}

.gf-lista-row.skeleton .gf-row-thumb {
    animation: feedSkeletonShimmer 1.4s linear infinite;
    background: linear-gradient(90deg, var(--color-hover-01) 0%, rgba(127, 127, 127, .06) 50%, var(--color-hover-01) 100%);
    background-size: 200% 100%;
}

.gf-lista-row.skeleton .sk-line {
    display: block;
    height: 9px;
    margin: 4px 0;
    border-radius: 5px;
    background: var(--color-hover-01);
}

.gf-lista-row.skeleton .sk-line.lg {
    width: 80%;
}

.gf-lista-row.skeleton .sk-line.sm {
    width: 45%;
}

/* ---- Previa (centralizada no espaco que sobra) ---- */
.gf-preview {
    flex: 1 1 auto;
    min-width: 0;
}

.gf-preview-in {
    max-width: 620px;
    margin: 0 auto;
}

.gf-ig-profile {
    display: flex;
    align-items: center;
    gap: 18px;
    padding: 2px 2px 18px;
}

.gf-ig-avatar {
    width: 68px;
    height: 68px;
    border-radius: 50%;
    flex-shrink: 0;
    position: relative;
    background-size: cover;
    background-position: center;
    background-color: var(--color-hover-01);
    box-shadow: 0 0 0 1px var(--color-border);
}

.gf-ig-avatar.avatar-perfil-letra {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 600;
    color: var(--color-text-01, #111);
}

.gf-ig-meta {
    min-width: 0;
    flex: 1;
}

.gf-ig-handle {
    font-size: 18px;
    font-weight: 550;
    letter-spacing: -.02em;
    line-height: 1.15;
    color: var(--color-text-01, #111);
    word-break: break-word;
}

.gf-ig-nome {
    margin-top: 2px;
    font-size: 13px;
    color: var(--gf-muted);
}

.gf-ig-numbers {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 16px;
    margin-top: 8px;
    font-size: 13px;
    color: var(--gf-muted);
}

.gf-ig-numbers b {
    margin-right: 2px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--color-text-01, #111);
}

/* Regra de reordenar, junto da previa */
.gf-dica {
    display: flex;
    align-items: center;
    gap: 7px;
    margin: 0 2px 12px;
    font-size: 12px;
    line-height: 1.45;
    color: var(--gf-muted);
}

.gf-dica svg {
    flex-shrink: 0;
}

.gf-dica:empty {
    display: none;
}

/* Grade 3 colunas, proporcao 3:4 do perfil do Instagram. Cantos so no
   conjunto (como no app); o realce e por dentro (::after), entao nao corta. */
.grade-feed-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 3px;
    width: 100%;
    border-radius: 14px;
    overflow: hidden;
    isolation: isolate;
}

.feed-post-item {
    position: relative;
    aspect-ratio: 3 / 4;
    overflow: hidden;
    background: var(--color-hover-01);
    cursor: pointer;
    user-select: none;
}

.feed-post-item::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 4;
    pointer-events: none;
    box-shadow: inset 0 0 0 0 transparent;
    transition: box-shadow .16s;
}

.feed-post-item:focus {
    outline: none;
}

.feed-post-item:focus-visible::after,
.feed-post-item.gf-sync::after {
    box-shadow: inset 0 0 0 2px var(--color-text-01, #111), inset 0 0 0 3px var(--color-bg, #fff);
}

.feed-post-item .thumb {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    background-color: var(--color-hover-01);
    transition: filter .2s;
}

.feed-post-item.local:hover .thumb {
    filter: brightness(.92);
}

.feed-post-item .thumb-vazio {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    font-size: 11px;
    font-weight: 500;
    color: var(--gf-muted, #9aa0ac);
}

.feed-post-item .thumb-vazio svg {
    width: 18px;
    height: 18px;
}

.feed-post-item .grip,
.feed-post-item .feed-trava {
    position: absolute;
    top: 8px;
    left: 8px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 7px;
    background: rgba(0, 0, 0, .45);
    color: #fff;
    z-index: 2;
}

/* Pegador (movel) e cadeado (fixo) so no hover: com o mes andando, quase
   tudo vira passado e um cadeado em cada card poluia a previa. */
.feed-post-item .grip,
.feed-post-item .feed-trava {
    opacity: 0;
    transition: opacity .15s;
}

.feed-post-item .grip {
    pointer-events: none;
}

.feed-post-item.travado:hover .feed-trava,
.feed-post-item.travado:focus-visible .feed-trava {
    opacity: 1;
}

.feed-post-item .grip svg {
    fill: currentColor;
}

.feed-post-item .overlay-bottom {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding: 24px 9px 8px;
    background: linear-gradient(to top, rgba(0, 0, 0, .6), transparent);
    color: #fff;
    font-size: 10.5px;
    font-weight: 500;
    opacity: 0;
    transition: opacity .15s;
    pointer-events: none;
}

/* A data tem prioridade; quem encurta e a pilula de status. */
.feed-post-item .overlay-bottom .data {
    flex-shrink: 0;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.feed-post-item:hover .overlay-bottom,
.feed-post-item:focus-visible .overlay-bottom,
.gf-datas-on .feed-post-item .overlay-bottom,
.grade-feed-grid.reorder-on .feed-post-item.local:not(.forbidden):hover .grip {
    opacity: 1;
}

.feed-post-item.rede {
    cursor: default;
}

.feed-post-item .feed-status-pill {
    flex-shrink: 1;
    min-width: 0;
    padding: 2px 6px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Indicador de tipo (topo-direito, como no Instagram) */
.feed-post-item .feed-tipo-ic {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 2;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .5));
}

.feed-post-item .feed-tipo-ic svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

.feed-post-item.sem-midia .feed-tipo-ic {
    color: var(--color-text-01, #111);
    filter: none;
    opacity: .5;
}

/* Publicado no Instagram */
.feed-post-item .feed-rede-tag {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 7px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .45);
    color: #fff;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
}

/* Arraste */
.grade-feed-grid.reorder-on .feed-post-item.local:not(.forbidden) {
    cursor: grab;
}

.grade-feed-grid .feed-post-item.dragging {
    opacity: .3;
}

.grade-feed-grid .feed-post-item.placeholder {
    opacity: 1 !important;
    background: var(--color-hover-01);
}

.grade-feed-grid .feed-post-item.placeholder::after {
    box-shadow: inset 0 0 0 2px var(--color-text-01, #111);
}

.grade-feed-grid .feed-post-item.placeholder .thumb {
    background: var(--color-hover-01) !important;
}

.grade-feed-grid .feed-post-item.placeholder>.thumb>* {
    display: none;
}

.grade-feed-grid .feed-post-item.reordenando::after {
    animation: feedReorderPulse .7s ease;
}

@keyframes feedReorderPulse {

    0%,
    60% {
        box-shadow: inset 0 0 0 3px var(--color-text-01, #111);
    }

    100% {
        box-shadow: inset 0 0 0 0 transparent;
    }
}

.feed-post-item.skeleton {
    cursor: default;
}

.feed-post-item.skeleton .thumb {
    background: linear-gradient(90deg, var(--color-hover-01) 0%, rgba(127, 127, 127, .06) 50%, var(--color-hover-01) 100%);
    background-size: 200% 100%;
    animation: feedSkeletonShimmer 1.4s linear infinite;
}

@keyframes feedSkeletonShimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.grade-feed-empty {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 64px 24px;
    border-radius: 14px;
    background: var(--gf-panel, var(--color-hover-01));
    text-align: center;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--gf-muted, #9aa0ac);
}

.grade-feed-empty b {
    font-size: 14px;
    font-weight: 550;
    color: var(--color-text-01, #111);
}

.grade-feed-empty .gf-vazio-ic {
    display: inline-flex;
    margin-bottom: 4px;
    opacity: .35;
}

.grade-feed-empty .gf-vazio-ic svg {
    width: 26px;
    height: 26px;
    fill: var(--color-text-01, #111);
}

.grade-feed-empty .gf-btn {
    margin-top: 10px;
}

.gf-hidden {
    display: none !important;
}

.estudio-conteudo-modal .header-pagina,
.estudio-conteudo-modal .header-pagina.airstudio-header {
    display: none;
}

.estudio-conteudo-modal .estudio-perfil-info {
    padding-top: 15px;
}

/* ---------------------------------------------------------------- */
/* Studio criativo no contexto geral (menu + popup do "Novo")       */
/* Seletor de perfil/marca no topo, antes de gerar.                 */
/* ---------------------------------------------------------------- */
.studio-header-geral {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 14px;
}

.estudio-seletor-perfil {
    width: 260px;
    flex: 0 0 auto;
}

.estudio-seletor-perfil .ipt2-col {
    padding: 0;
    width: 100%;
    float: none;
}

/* Remove a borda externa do .ipt2-col.select-perfis (tem !important) - fica so
   a borda do .campo-style-02, evitando o efeito de "borda dupla". */
.estudio-seletor-perfil .ipt2-col.select-perfis {
    border: 0 !important;
}

/* Nao deixa o rotulo nem o texto "Selecione um perfil" quebrarem em 2 linhas */
.estudio-seletor-perfil .lbel {
    white-space: nowrap;
}

.estudio-seletor-perfil .selecionado {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 8px 10px;
}

/* Seletor dentro do cabecalho do popup grande */
.estudio-conteudo-modal-head .estudio-seletor-perfil {
    margin-left: auto;
    margin-right: 14px;
}

.estudio-perfil-vazio {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 18px;
    margin-top: 4px;
    border: 1px dashed var(--color-border);
    border-radius: 12px;
    color: var(--color-text-02, #8a93a3);
    font-size: 13px;
    background: var(--color-bg-02, rgba(127, 127, 127, .04));
}

.estudio-perfil-vazio svg {
    flex-shrink: 0;
    color: var(--color-primary, #2f6bff);
}

/* ================================================================ */
/* BUSCA GLOBAL                                                     */
/* ---------------------------------------------------------------- */
/* Modal central acionado por #btn-busca-global ou Ctrl+K.          */
/* Variaveis CSS herdadas garantem suporte automatico ao dark.css.  */
/* ================================================================ */
/* Botao de lupa ao lado do logo Airpost */
#btn-busca-global {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-left: auto;
    border-radius: 6px;
    cursor: pointer;
    opacity: 0.55;
    transition: opacity 0.15s, background 0.15s;
    vertical-align: middle;
}

#btn-busca-global:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

#btn-busca-global svg {
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
}

/* Modal */
#modal-busca-global {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: none;
}

#modal-busca-global.atv {
    display: block;
}

#modal-busca-global .bg-mask {
    position: absolute;
    inset: 0;
    background: rgb(0 0 0 / 9%);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}

#modal-busca-global .bg-box {
    position: relative;
    width: 92%;
    max-width: 640px;
    margin: 8vh auto 0;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.25);
    overflow: hidden;
    animation: bg-pop-in 0.16s ease-out;
}

@keyframes bg-pop-in {
    from {
        transform: translateY(-8px);
        opacity: 0;
    }

    to {
        transform: translateY(0);
        opacity: 1;
    }
}

/* Header com input */
#modal-busca-global .bg-header {
    display: flex;
    align-items: center;
    padding: 14px 16px;
    border-bottom: 1px solid var(--color-border);
    gap: 12px;
}

#modal-busca-global .bg-header .ic-busca {
    width: 16px;
    height: 16px;
    fill: var(--color-text-01);
    opacity: 0.5;
    flex-shrink: 0;
}

#modal-busca-global #bg-input {
    flex: 1;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--color-text-01);
    font-size: 15px;
    font-family: inherit;
    padding: 4px 0;
}

#modal-busca-global #bg-input::placeholder {
    color: var(--color-text-01);
    opacity: 0.4;
}

#modal-busca-global .bg-loading {
    width: 16px;
    height: 16px;
    display: none;
    flex-shrink: 0;
}

#modal-busca-global .bg-loading.atv {
    display: block;
}

#modal-busca-global .bg-loading .sp {
    width: 14px;
    height: 14px;
    border: 2px solid var(--color-border);
    border-top-color: var(--color-text-01);
    border-radius: 50%;
    animation: bg-spin 0.7s linear infinite;
}

@keyframes bg-spin {
    to {
        transform: rotate(360deg);
    }
}

#modal-busca-global .bg-close {
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    cursor: pointer;
    opacity: 0.5;
    flex-shrink: 0;
}

#modal-busca-global .bg-close:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

#modal-busca-global .bg-close svg {
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
}

/* Body */
#modal-busca-global .bg-body {
    max-height: 60vh;
    min-height: 80px;
    overflow-y: auto;
}

#modal-busca-global .bg-empty {
    padding: 28px 20px;
    text-align: center;
    color: var(--color-text-01);
    opacity: 0.5;
    font-size: 13px;
}

/* Voltar para todos os resultados (modo ver-mais) */
#modal-busca-global .bg-back {
    padding: 10px 16px;
    font-size: 12px;
    cursor: pointer;
    color: var(--color-text-01);
    opacity: 0.6;
    border-bottom: 1px solid var(--color-border);
}

#modal-busca-global .bg-back:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Secoes */
#modal-busca-global .bg-section {
    padding: 6px 0 4px;
    border-bottom: 1px solid var(--color-border);
}

#modal-busca-global .bg-section:last-child {
    border-bottom: 0;
}

#modal-busca-global .bg-section-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 8px 16px 4px;
}

#modal-busca-global .bg-section-head h4 {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--color-text-01);
    opacity: 0.5;
    margin: 0;
    font-weight: 600;
}

#modal-busca-global .bg-count {
    display: inline-block;
    margin-left: 4px;
    opacity: 0.7;
    font-weight: 400;
}

#modal-busca-global .bg-ver-mais {
    font-size: 11px;
    color: var(--color-text-01);
    opacity: 0.55;
    cursor: pointer;
    text-transform: none;
    letter-spacing: 0;
}

#modal-busca-global .bg-ver-mais:hover {
    opacity: 1;
    text-decoration: underline;
}

/* Linhas de resultado */
#modal-busca-global .bg-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 16px;
    cursor: pointer;
    transition: background 0.1s;
}

#modal-busca-global .bg-row.foco,
#modal-busca-global .bg-row:hover {
    background: var(--color-hover-01);
}

#modal-busca-global .bg-img {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-01);
    overflow: hidden;
}

#modal-busca-global .bg-img-letra {
    background-color: var(--color-bg-01);
    color: var(--color-text-01);
    opacity: 0.8;
}

#modal-busca-global .bg-img-espaco {
    border-radius: 6px;
    color: #fff;
    font-weight: 600;
    font-size: 13px;
    opacity: 1;
}

#modal-busca-global .bg-img-espaco .bg-img-letra-inner {
    color: #fff;
    line-height: 1;
}

#modal-busca-global .bg-img-tarefa {
    border-radius: 6px;
}

#modal-busca-global .bg-img-tarefa svg {
    width: 14px;
    height: 14px;
    fill: #fff;
}

#modal-busca-global .bg-txt {
    flex: 1;
    min-width: 0;
}

#modal-busca-global .bg-tit {
    font-size: 13.5px;
    color: var(--color-text-01);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    line-height: 1.3;
}

#modal-busca-global .bg-tit mark {
    background: rgba(255, 213, 79, 0.45);
    color: inherit;
    padding: 0 1px;
    border-radius: 2px;
}

#modal-busca-global .bg-sub {
    font-size: 11.5px;
    color: var(--color-text-01);
    opacity: 0.55;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Documentos v12: trecho do TEXTO onde o termo apareceu (busca no conteudo). */
#modal-busca-global .bg-trecho {
    font-size: 12px;
    line-height: 1.4;
    color: var(--color-text-01);
    opacity: 0.72;
    margin-top: 3px;
    overflow: hidden;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

#modal-busca-global .bg-trecho mark {
    background: rgb(250 204 21 / 40%);
    color: inherit;
    border-radius: 3px;
    padding: 0 1px;
}

/* Footer com dicas de teclado */
#modal-busca-global .bg-footer {
    display: flex;
    gap: 14px;
    padding: 8px 16px;
    border-top: 1px solid var(--color-border);
    font-size: 11px;
    color: var(--color-text-01);
    opacity: 0.55;
}

#modal-busca-global .bg-footer kbd {
    display: inline-block;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    padding: 1px 5px;
    font-family: inherit;
    font-size: 10px;
    margin: 0 2px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
}

/* ---------- Barra de escopo (dropdown: Geral  Espaco/Lista ou Perfil) ---------- */
#modal-busca-global .bg-escopo-bar {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 16px;
    border-bottom: 1px solid var(--color-border);
}

#modal-busca-global .bg-escopo-lbl {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    color: var(--color-text-01);
    opacity: 0.45;
    flex-shrink: 0;
}

#modal-busca-global .bg-escopo {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 8px 4px 6px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    cursor: pointer;
    font-size: 12.5px;
    color: var(--color-text-01);
    background: var(--color-bg);
    transition: background 0.12s, border-color 0.12s;
    max-width: 320px;
    min-width: 0;
}

#modal-busca-global .bg-escopo:hover {
    background: var(--color-hover-01);
}

#modal-busca-global .bg-escopo.atv {
    border-color: var(--color-primary, #2563eb);
}

#modal-busca-global .bg-escopo .bg-escopo-ic {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
}

#modal-busca-global .bg-escopo .bg-escopo-ic>svg {
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
    opacity: 0.6;
}

/* Mini-icone (avatar/cor) dentro do trigger */
#modal-busca-global .bg-escopo-mini {
    width: 18px;
    height: 18px;
    border-radius: 5px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 700;
    color: #fff;
    overflow: hidden;
}

#modal-busca-global .bg-escopo-mini-letra {
    background-color: var(--color-bg-01);
    color: var(--color-text-01);
}

#modal-busca-global .bg-escopo .bg-escopo-txt {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#modal-busca-global .bg-escopo .bg-escopo-caret {
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
    opacity: 0.5;
    flex-shrink: 0;
}

/* ---------- Painel do dropdown de escopo ---------- */
#modal-busca-global .bg-escopo-pop {
    position: absolute;
    z-index: 5;
    display: none;
    width: 280px;
    max-width: calc(100% - 16px);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 10px;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.22);
    overflow: hidden;
}

#modal-busca-global .bg-escopo-pop.atv {
    display: block;
}

/* Libera o overflow do box enquanto o dropdown esta aberto (box e overflow:hidden). */
#modal-busca-global .bg-box.escopo-aberto {
    overflow: visible;
}

#modal-busca-global .bg-escopo-voltar {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 12px;
    border-bottom: 1px solid var(--color-border);
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-text-01);
}

#modal-busca-global .bg-escopo-voltar:hover {
    background: var(--color-hover-01);
}

#modal-busca-global .bg-escopo-voltar-ic {
    display: inline-flex;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

#modal-busca-global .bg-escopo-voltar-ic svg {
    width: 16px;
    height: 16px;
    fill: var(--color-text-01);
    opacity: 0.7;
}

#modal-busca-global .bg-escopo-voltar-tit {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#modal-busca-global .bg-escopo-busca {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    outline: 0;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-family: inherit;
    padding: 9px 12px;
}

#modal-busca-global .bg-escopo-busca::placeholder {
    color: var(--color-text-01);
    opacity: 0.4;
}

#modal-busca-global .bg-escopo-lista {
    max-height: 260px;
    overflow-y: auto;
    padding: 4px 0;
}

#modal-busca-global .bg-escopo-opt {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 12px;
    cursor: pointer;
}

#modal-busca-global .bg-escopo-opt:hover {
    background: var(--color-hover-01);
}

#modal-busca-global .bg-escopo-img {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text-01);
    overflow: hidden;
}

#modal-busca-global .bg-escopo-img-cor {
    border-radius: 6px;
    color: #fff;
}

#modal-busca-global .bg-escopo-img-cor svg {
    width: 14px;
    height: 14px;
    fill: #fff;
}

#modal-busca-global .bg-escopo-img-generico {
    border-radius: 6px;
}

#modal-busca-global .bg-escopo-img-generico svg {
    width: 15px;
    height: 15px;
    fill: var(--color-text-01);
    opacity: 0.6;
}

#modal-busca-global .bg-escopo-opt-txt {
    flex: 1;
    min-width: 0;
}

#modal-busca-global .bg-escopo-opt-nome {
    display: block;
    font-size: 13px;
    color: var(--color-text-01);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#modal-busca-global .bg-escopo-opt-sub {
    display: block;
    font-size: 11px;
    color: var(--color-text-01);
    opacity: 0.5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#modal-busca-global .bg-escopo-seta {
    display: inline-flex;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

#modal-busca-global .bg-escopo-seta svg {
    width: 16px;
    height: 16px;
    fill: var(--color-text-01);
    opacity: 0.35;
}

#modal-busca-global .bg-escopo-check {
    display: inline-flex;
    width: 16px;
    height: 16px;
    flex-shrink: 0;
}

#modal-busca-global .bg-escopo-check svg {
    width: 16px;
    height: 16px;
    fill: var(--color-primary, #2563eb);
}

#modal-busca-global .bg-escopo-vazio {
    padding: 18px 12px;
    text-align: center;
    font-size: 12px;
    color: var(--color-text-01);
    opacity: 0.5;
}

/* Responsivo - em telas pequenas o modal ocupa quase tudo */
@media (max-width: 600px) {
    #modal-busca-global .bg-box {
        margin-top: 4vh;
        width: 96%;
        max-width: none;
    }

    #modal-busca-global .bg-body {
        max-height: 70vh;
    }

    #modal-busca-global .bg-footer {
        display: none;
    }
}

/* ============================================================
   EQUIPES - bloco na tela de Pessoas + modal #edit-popup +
   sub-popups #edit-popup-medium (adicionar perfil, adicionar
   membro, acesso por perfil). Design ClickUp moderno: cards
   limpos, transicoes suaves, tipografia hierarquica, foco em
   acessibilidade. Dark overrides em dark.css.
   ============================================================ */
/* ---------- Variaveis de tema (escopadas) ----------
   Os --eq-* NAO tem mais paleta propria: sao um alias dos tokens do sistema
   (--color-*). Era a causa raiz de a tela de Equipes parecer "de outro app":
   a paleta antiga era Tailwind cravada (#2563eb / #e5e7eb / #111827 / #6b7280),
   desligada do resto do produto e do site. Agora:
     - a TINTA (--color-text-01) manda em titulo, aba ativa, dots e barra;
     - o azul virou --eq-acento, usado com parcimonia (serie destacada, glow);
     - texto secundario e translucidez da MESMA tinta (funciona nos 2 temas),
       nunca cor fixa -> o dark segue de graca, sem override por token.
   Ver o kit premium em .marcas-tela / .contant-equipes-home no fim do arquivo. */
.contant-equipes-home,
.equipe-tela,
.pessoa-tela,
.equipe-header,
#edit-popup .edicao-equipe,
#edit-popup .dash-drill-popup,
#edit-popup-medium .sub-popup,
#edit-popup-medium .conteudo {
    /* Tinta e superficies (aliases do sistema) */
    --eq-bg: var(--color-bg);
    --eq-bg-soft: var(--color-bg-01);
    --eq-bg-mute: var(--color-hover-01);
    --eq-border: var(--color-border);
    --eq-border-strong: color-mix(in srgb, var(--color-text-01) 22%, transparent);
    --eq-text: var(--color-text-01);
    --eq-text-2: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    --eq-text-3: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    --eq-text-4: color-mix(in srgb, var(--color-text-01) 38%, transparent);

    /* "Primario" = a tinta. Mantido com o nome antigo para nao quebrar
       as ~200 regras que ja usam var(--eq-pri). */
    --eq-pri: var(--color-text-01);
    --eq-pri-h: var(--color-text-01);
    --eq-pri-bg: var(--color-bg-01);
    --eq-pri-bg-2: var(--color-hover-01);

    /* SUPERFICIE ELEVADA (popover, dropdown, campo, linha de lista).
       --eq-bg e o fundo da TELA e no dark ele e preto PURO: usar isso numa
       janela flutuante faz o popover sumir contra a tela, e dentro do
       #edit-popup-medium (fundo #26272a) faz o campo virar um buraco preto.
       Mesma razao de --uc-surface / --up-surface no dark.css. */
    --eq-surface: var(--color-bg);

    /* Acento: so serie destacada de grafico, foco e glow do botao primario */
    --eq-acento: #2563eb;

    /* Semanticas - usadas apenas em estado (atraso/parado/ok), nunca em chrome */
    --eq-suc: #0f9d63;
    --eq-suc-bg: color-mix(in srgb, #0f9d63 12%, transparent);
    --eq-suc-txt: #0f9d63;
    --eq-warn: #b26a00;
    --eq-warn-bg: color-mix(in srgb, #b26a00 12%, transparent);
    --eq-warn-txt: #b26a00;
    --eq-dng: #d92d20;
    --eq-dng-bg: color-mix(in srgb, #d92d20 12%, transparent);

    /* Forma e movimento (kit premium) */
    --eq-radius: 16px;
    --eq-radius-sm: 12px;
    --eq-radius-xs: 8px;
    --eq-ease: cubic-bezier(.16, 1, .3, 1);
    --eq-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
    --eq-glow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

/* ---------- Bloco "Equipes" na tela Pessoas ---------- */
.h-equipes {
    margin-bottom: 32px;
}

.hdr-bloco-pagina {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.hdr-bloco-pagina .ttl h5 {
    font-size: 17px;
    font-weight: 600;
    margin: 0 0 2px;
    color: var(--eq-text);
}

.hdr-bloco-pagina .ttl-desc {
    font-size: 13px;
    color: var(--eq-text-3);
    line-height: 1.4;
}

.bt-bloco {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: var(--eq-pri);
    color: #fff;
    border-radius: var(--eq-radius-sm);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    border: none;
    transition: background 0.15s, transform 0.05s;
    white-space: nowrap;
}

.bt-bloco:hover {
    background: var(--eq-pri-h);
}

.bt-bloco:active {
    transform: translateY(1px);
}

.bt-bloco svg {
    width: 14px;
    height: 14px;
    fill: #fff;
}

.lst-equipes-cards {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Listagem de equipes - uma equipe por linha (thumbs de perfis e membros + resumo) */
.equipe-row {
    display: flex;
    align-items: center;
    gap: 18px;
    background: var(--eq-bg);
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius);
    padding: 14px 18px;
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.equipe-row:hover {
    border-color: var(--eq-pri);
    box-shadow: 0 4px 14px rgba(37, 99, 235, 0.08);
}

.eqr-main {
    flex: 1;
    min-width: 0;
}

.eqr-ttl-line {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}

.eqr-nome {
    font-size: 15px;
    font-weight: 600;
    color: var(--eq-text);
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.eqr-tag-dono {
    font-size: 10px;
    font-weight: 600;
    color: var(--eq-pri);
    background: var(--eq-pri-bg-2);
    padding: 2px 8px;
    border-radius: 10px;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.eqr-grupos {
    display: flex;
    gap: 22px;
    flex-wrap: wrap;
}

.eqr-grupo {
    display: flex;
    align-items: center;
    gap: 8px;
}

.eqr-lbl {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--eq-text-4);
}

.eqr-stack {
    display: flex;
    align-items: center;
}

.eqr-av,
.eqr-logo,
.eqr-mais {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    margin-left: -7px;
    border: 2px solid var(--eq-bg);
    background-size: cover;
    background-position: center;
    background-color: var(--eq-bg-mute);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    color: var(--eq-text-3);
}

.eqr-logo {
    border-radius: 7px;
}

.eqr-stack> :first-child {
    margin-left: 0;
}

.eqr-mais {
    background: var(--eq-bg-soft);
}

.eqr-vazio {
    color: var(--eq-text-4);
    font-size: 13px;
}

.eqr-stats {
    display: flex;
    gap: 16px;
}

.eqr-stat {
    text-align: center;
    min-width: 46px;
}

.eqr-stat b {
    display: block;
    font-size: 17px;
    font-weight: 700;
    color: var(--eq-text);
    line-height: 1.1;
}

.eqr-stat span {
    font-size: 10px;
    color: var(--eq-text-4);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.eqr-stat.is-dng b {
    color: var(--eq-dng, #dc2626);
}

.eqr-acoes {
    flex-shrink: 0;
}

.equipe-row .bt-card {
    background: var(--eq-pri);
    color: #fff;
    border-radius: 8px;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: filter 0.15s;
}

.equipe-row .bt-card:hover {
    filter: brightness(1.06);
}

@media (max-width: 760px) {
    .equipe-row {
        flex-wrap: wrap;
        gap: 12px;
    }

    .eqr-stats {
        order: 3;
        width: 100%;
        justify-content: space-between;
    }
}

.empty-equipes {
    grid-column: 1 / -1;
    text-align: center;
    padding: 48px 24px;
    border: 1px dashed var(--eq-border);
    border-radius: var(--eq-radius);
    color: var(--eq-text-3);
}

.empty-equipes svg {
    width: 42px;
    height: 42px;
    fill: var(--eq-border-strong);
    margin-bottom: 12px;
}

.empty-equipes .empty-ttl {
    font-size: 15px;
    font-weight: 600;
    color: var(--eq-text-2);
    margin-bottom: 4px;
}

.empty-equipes .empty-desc {
    font-size: 13px;
    margin-bottom: 16px;
}

.empty-equipes .bt-bloco {
    display: inline-block;
}

/* ---------- Modal principal (#edit-popup) ---------- */
#edit-popup .edicao-equipe {
    padding: 15px;
    width: 100%;
    max-width: 760px;
}

/* ================= EQUIPE EM TELA CHEIA ================= */
.equipe-tela {
    width: 100%;
    padding: 13px;
    /* limpa o header-pagina fixo (padrao do sistema) */
}

.equipe-tela .bt-voltar-equipes {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 7px 12px 7px 8px;
    border: 1px solid var(--eq-border, #e5e7eb);
    border-radius: 8px;
    background: var(--eq-bg, #fff);
    color: var(--eq-text-2, #374151);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
}

.equipe-tela .bt-voltar-equipes:hover {
    background: var(--eq-bg-mute, #f3f4f6);
    color: var(--eq-text, #111827);
}

.equipe-tela .bt-voltar-equipes svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

/* O mesmo .edicao-equipe usado no popup, agora ocupando a largura da tela */
.equipe-tela .edicao-equipe {
    width: 100%;
    /* max-width: 1080px; */
    margin: 0 auto;
    padding: 0px;
}

/* ---- Aba Acessos: matriz pessoa  perfil ---- */
.equipe-acessos-wrap {
    overflow-x: auto;
    border: 1px solid var(--eq-border, #e5e7eb);
    border-radius: 12px;
}

.equipe-acessos {
    border-collapse: collapse;
    width: 100%;
    min-width: 520px;
}

.equipe-acessos th,
.equipe-acessos td {
    border-bottom: 1px solid var(--eq-border, #e5e7eb);
    padding: 10px 12px;
    text-align: center;
}

.equipe-acessos thead th {
    position: sticky;
    top: 0;
    background: var(--eq-bg-soft, #fafafa);
    font-size: 12px;
    font-weight: 600;
    color: var(--eq-text-3, #6b7280);
    vertical-align: bottom;
}

.equipe-acessos .th-pessoa,
.equipe-acessos .td-pessoa {
    text-align: left;
    position: sticky;
    left: 0;
    background: var(--eq-bg, #fff);
    z-index: 1;
    white-space: nowrap;
}

.equipe-acessos thead .th-pessoa {
    background: var(--eq-bg-soft, #fafafa);
    z-index: 2;
}

.equipe-acessos .th-perfil .ac-perfil-logo,
.equipe-acessos .td-pessoa .ac-pessoa-img {
    display: inline-block;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--eq-bg-mute, #f3f4f6);
    vertical-align: middle;
    text-align: center;
    line-height: 26px;
    font-size: 10px;
    font-weight: 600;
    color: var(--eq-text-3, #6b7280);
    overflow: hidden;
}

.equipe-acessos .th-perfil .ac-perfil-nome {
    display: block;
    margin-top: 4px;
    font-size: 11px;
    max-width: 90px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.equipe-acessos .td-pessoa .ac-pessoa-nome {
    margin-left: 8px;
    font-size: 13px;
    color: var(--eq-text, #111827);
    vertical-align: middle;
}

.equipe-acessos .ac-tag-admin {
    font-size: 10px;
    background: var(--eq-pri-bg, #eff6ff);
    color: var(--eq-pri, #2563eb);
    border-radius: 10px;
    padding: 1px 6px;
    margin-left: 4px;
}

/* =============================================================================
   A CELULA DA MATRIZ DE ACESSO  (.ac-cel)
   -----------------------------------------------------------------------------
   ! O QUE ESTAVA QUEBRADO, para nao voltar:

   A celula tinha 22x22px, o JS escrevia a SIGLA do nivel dentro dela ("EA",
   "E", "V", "C", "D") e este CSS desenhava um TIQUE por cima, num `::after`
   posicionado no meio da mesma caixa. As duas coisas ocupavam o mesmo espaco:
   o que aparecia era um "EA" atravessado por um risco branco. Nem sigla nem
   tique - so um borrao que ninguem conseguia ler.

   E mesmo lido, "EA" nao significa nada para quem usa o produto.

   AGORA: a celula e uma PASTILHA com a palavra ("Admin", "Editor", "Ver",
   "Cliente", "Dono"), o tique nao existe mais, e cada nivel tem cor propria -
   a matriz e feita para varredura ("quem e admin de que?"), e cor responde isso
   sem ler. A celula DESLIGADA mostra um "+" fraco: e a unica pista de que ali
   cabe um clique.

   As superficies saem de `color-mix` sobre a COR DO NIVEL, nunca de um literal
   claro: no escuro um `#dbeafe` viraria uma mancha clara sobre fundo escuro,
   com texto ilegivel. Foi assim que a versao anterior deste kit quebrou.
   ========================================================================== */

/* As quatro cores de nivel. Em `:root` porque o menu de escolha e um popover
   plantado no <body> - escopado na tela de equipe, ele abriria sem cor. Os
   valores do tema escuro estao em dark.css, e sao os MESMOS matizes clareados:
   trocar de matiz faria o mesmo nivel parecer outro ao virar o tema. */
:root {
    --ac-admin: #7c3aed;
    --ac-editor: #2563eb;
    --ac-cliente: #b26a00;
    --ac-dono: #0f9d63;
    /* Vermelho de acao destrutiva. Global pelo mesmo motivo: "Remover acesso"
       vive no popover, que e filho do <body>. */
    --ac-perigo: #d92d20;
}

/* ! A PASTILHA NAO E ESCOPADA EM `.equipe-acessos`, e isso e proposital: a
   LEGENDA (fora da tabela) e o menu de niveis (um popover no <body>) mostram a
   MESMA pastilha. Escopada, a legenda herdaria so a cor e nasceria sem forma -
   e a ponte visual entre "o que Admin significa" e "onde a pessoa e Admin" e
   justamente a pastilha ser identica nos dois lugares. */
.ac-cel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 58px;
    height: 24px;
    padding: 0 9px;
    border-radius: 100px;
    border: 1px solid var(--eq-border-strong, #d1d5db);
    background: transparent;
    color: color-mix(in srgb, var(--eq-text, #111827) 34%, transparent);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1;
    cursor: pointer;
    user-select: none;
    white-space: nowrap;
    transition: background .14s ease, border-color .14s ease, color .14s ease;
}

/* Desligada: tracejada e apagada. O tracejado e o mesmo sinal de "vazio" que o
   quadro de status usa, entao a leitura ja esta aprendida no produto. */
.ac-cel:not(.on) {
    border-style: dashed;
    font-weight: 500;
}

.ac-cel:not(.on):hover {
    border-color: var(--eq-pri, #2563eb);
    color: var(--eq-pri, #2563eb);
    background: color-mix(in srgb, var(--eq-pri, #2563eb) 8%, transparent);
}

/* --- as quatro cores de nivel + a do dono ---------------------------------
   ADMIN e a mais forte porque e a que precisa ser notada numa varredura: dar
   admin sem querer e o erro caro desta tela. VER e CLIENTE sao os mais fracos -
   sao leitura, e ninguem audita uma matriz procurando quem so olha.

   Cada nivel aparece DUAS VEZES aqui: `.ac-cel.n-X` pinta a pastilha,
   `.ac-nivel-dot.n-X` pinta a bolinha do menu de niveis. A bolinha precisa da
   propria regra porque nao e uma `.ac-cel` - e o menu que mostra a cor ANTES
   do clique e o que faz o resultado ser previsivel. */
.ac-cel.on {
    border-color: transparent;
}

/* ! AS CORES SAO TOKENS, e nao literais nas regras - dark.css troca so os
   quatro valores. E preciso que sejam GLOBAIS (`:root`, logo acima do kit da
   matriz) e nao escopados nos `--eq-*`: o menu de niveis e um popover plantado
   no <body>, fora de qualquer ancestral da tela de equipe. Escopado, ele
   nasceria sem cor nenhuma. */
.ac-cel.n-admin,
.ac-nivel-dot.n-admin {
    background: color-mix(in srgb, var(--ac-admin) 16%, transparent);
    border-color: color-mix(in srgb, var(--ac-admin) 34%, transparent);
    color: var(--ac-admin);
}

.ac-cel.n-editor,
.ac-nivel-dot.n-editor {
    background: color-mix(in srgb, var(--ac-editor) 14%, transparent);
    border-color: color-mix(in srgb, var(--ac-editor) 30%, transparent);
    color: var(--ac-editor);
}

/* VER e o unico que nao tem cor propria, e e de proposito: "so enxerga" e a
   ausencia de poder, e derivar da tinta o mantem neutro nos dois temas. */
.ac-cel.n-ver,
.ac-nivel-dot.n-ver {
    background: color-mix(in srgb, var(--eq-text, #111827) 8%, transparent);
    border-color: color-mix(in srgb, var(--eq-text, #111827) 18%, transparent);
    color: color-mix(in srgb, var(--eq-text, #111827) 62%, transparent);
}

.ac-cel.n-cliente,
.ac-nivel-dot.n-cliente {
    background: color-mix(in srgb, var(--ac-cliente) 14%, transparent);
    border-color: color-mix(in srgb, var(--ac-cliente) 32%, transparent);
    color: var(--ac-cliente);
}

/* DONO nao e um nivel que se concede: e um fato da marca. Por isso ele nao
   tem hover, nao tem cursor de acao e usa a cor "concluido" do produto - o
   mesmo verde de Aprovado, que ja significa "isto esta resolvido". */
.ac-cel.n-dono,
.ac-nivel-dot.n-dono {
    background: color-mix(in srgb, var(--ac-dono) 14%, transparent);
    border-color: color-mix(in srgb, var(--ac-dono) 32%, transparent);
    color: var(--ac-dono);
}

.ac-cel.ac-dono {
    cursor: default;
}

.ac-cel.on:hover {
    filter: brightness(1.06);
}

.ac-cel.ac-dono:hover {
    filter: none;
}

.ac-cel.saving {
    opacity: 0.5;
    pointer-events: none;
}

/* --- a LEGENDA -----------------------------------------------------------
   Fica ACIMA da tabela e nao num tooltip: a duvida ("o que e Admin?") aparece
   enquanto a pessoa varre a matriz, e um tooltip exige saber onde parar o mouse
   para descobrir algo que ela ainda nao sabe que existe.

   Grade em vez de linha: com cinco itens em uma fila, os textos ficam com
   larguras diferentes e as pastilhas param de se alinhar - e sao as pastilhas
   que ligam a legenda a tabela. */
.ac-legenda {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
    gap: 8px 16px;
    align-items: start;
    padding: 13px 15px;
    margin-bottom: 14px;
    border: 1px solid var(--eq-border, #e5e7eb);
    border-radius: 12px;
    background: var(--eq-bg-soft, #fafafa);
}

.ac-legenda-rot {
    grid-column: 1 / -1;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--eq-text-3, #6b7280);
}

.ac-leg-item {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    min-width: 0;
}

.ac-leg-cel {
    cursor: default;
    flex-shrink: 0;
    margin-top: 1px;
}

.ac-leg-txt {
    min-width: 0;
}

.ac-leg-txt b {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: var(--eq-text, #111827);
}

.ac-leg-txt i {
    display: block;
    font-style: normal;
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--eq-text-3, #6b7280);
}

/* ==================================================================
   RESPONSAVEIS POR STATUS  (aba da tela de equipe)
   ------------------------------------------------------------------
   UMA REGRA = (Status, Usuario, Tipo, Canal). Na tela: uma linha por
   status, um CHIP por pessoa. O chip carrega o recorte dela num badge
   que tambem E o botao de editar (abre o painel de marcar).

   Tudo em token --eq-* / --color-*: o dark segue sozinho, como manda
   o kit desta tela (ver o bloco que declara os --eq-*).
   ================================================================== */
#htmlSessaoAtual .cfg-resp-lista {
    display: flex;
    flex-direction: column;
}

#htmlSessaoAtual .cfg-resp-row {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 10px 2px;
    border-top: 1px solid var(--eq-border, #eceef1);
    transition: background 0.12s;
}

#htmlSessaoAtual .cfg-resp-row:first-child {
    border-top: 0;
}

#htmlSessaoAtual .cfg-resp-row:hover {
    background: var(--eq-bg-mute, #f5f6f8);
}

/* o status usa o .eq-status/.eq-dot do kit (bolinha + texto). A pilula
   colorida cheia gritava mais que os responsaveis, que sao o assunto da
   linha - e a interface do sistema e monocromatica. */
#htmlSessaoAtual .cfg-resp-status-wrap {
    flex: 0 0 auto;
    width: 180px;
    padding-top: 5px;
    overflow: hidden;
}

#htmlSessaoAtual .cfg-resp-status-wrap .eq-status {
    max-width: 100%;
}

#htmlSessaoAtual .cfg-resp-pick {
    position: relative;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

/* enquanto a linha grava, ela para de aceitar clique (o re-render vem do
   servidor e um segundo clique mandaria uma lista ja desatualizada) */
#htmlSessaoAtual .cfg-resp-row.salvando .cfg-resp-pick {
    opacity: 0.5;
    pointer-events: none;
}

/* Gravar repinta SO esta linha (nao recarrega a aba), entao nada mais
   avisaria que deu certo: um realce curto faz o papel do reload. */
#htmlSessaoAtual .cfg-resp-row.atualizada {
    animation: cfgRespPisca 0.6s ease;
}

@keyframes cfgRespPisca {
    from {
        background: var(--eq-bg-mute, #eef1f6);
    }

    to {
        background: transparent;
    }
}

/* ---- CHIP = uma pessoa no status ---- */
#htmlSessaoAtual .cfg-resp-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 6px 3px 4px;
    border: 1px solid var(--eq-border, #eceef1);
    border-radius: 16px;
    background: var(--eq-bg-mute, #eef1f6);
    font-size: 12px;
    color: var(--eq-text, #1f2330);
    transition: border-color 0.12s, background 0.12s;
}

#htmlSessaoAtual .cfg-resp-chip-nome {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 150px;
}

/* pessoa com recorte: fundo limpo + borda solida separa "faz tudo" de
   "faz uma fatia" sem cor de acento (a tinta ja e o sinal do sistema) */
#htmlSessaoAtual .cfg-resp-chip.com-recorte {
    border-color: var(--eq-border-strong, #c7ccd6);
    background: transparent;
}

#htmlSessaoAtual .cfg-resp-chip.editando {
    border-color: var(--eq-pri, #2563eb);
}

/* chip parcial (nao esta em todas as marcas da equipe) */
#htmlSessaoAtual .cfg-resp-equipe .cfg-resp-chip.parcial {
    opacity: 0.6;
    border-style: dashed;
}

/* chip herdado (modo por marca): o que vem do Geral, apagado */
#htmlSessaoAtual .cfg-resp-chip.herdado {
    opacity: 0.7;
    border: 1px dashed var(--eq-border-strong, #d1d5db);
    background: transparent;
}

#htmlSessaoAtual .cfg-resp-img {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--eq-bg-mute, #dfe3e9);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 700;
    color: var(--eq-text-3, #6b7280);
}

#htmlSessaoAtual .cfg-resp-chip-x {
    cursor: pointer;
    color: var(--eq-text-4, #9aa0ac);
    font-size: 14px;
    line-height: 1;
    padding: 0 1px;
    flex: 0 0 auto;
}

#htmlSessaoAtual .cfg-resp-chip-x:hover {
    color: var(--eq-dng, #dc2626);
}

/* ---- badge do recorte: alvo de EDITAR ---- */
/* CONTORNO, nao tinta cheia: o badge repete em toda linha/chip e um bloco
   solido roubava a cena do nome, que e quem a pessoa procura. A borda solida
   ja separa "tem recorte" do "vale para tudo" (tracejado apagado). */
#htmlSessaoAtual .cfg-resp-rec {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    max-width: 190px;
    min-width: 0;
    padding: 1px 4px 1px 8px;
    border-radius: 11px;
    border: 1px solid var(--eq-pri, #2563eb);
    background: transparent;
    color: var(--eq-pri, #2563eb);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
    cursor: pointer;
}

/* o texto precisa de caixa PROPRIA: text-overflow nao age sobre no de texto
   solto dentro de um inline-flex - era isso que cortava o rotulo a seco */
#htmlSessaoAtual .cfg-resp-rec .rec-txt,
.popup-cargo-editor .cargo-st-rec .rec-txt {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#htmlSessaoAtual .cfg-resp-rec .cfg-resp-rec-seta {
    fill: currentColor;
    flex: 0 0 auto;
    opacity: 0.75;
}

/* "todos" e o estado NEUTRO (vale para o status inteiro): fica apagado
   para o olho pousar primeiro nos recortes, que sao a excecao */
#htmlSessaoAtual .cfg-resp-rec.vazio {
    background: transparent;
    color: var(--eq-text-4, #9aa0ac);
    font-weight: 500;
    border: 1px dashed var(--eq-border-strong, #d1d5db);
    padding: 1px 3px 1px 6px;
}

#htmlSessaoAtual .cfg-resp-rec:not(.vazio):hover {
    background: var(--eq-pri, #2563eb);
    color: var(--eq-surface, #fff);
}

#htmlSessaoAtual .cfg-resp-rec.vazio:hover {
    background: transparent;
    color: var(--eq-text-2, #4b5563);
    border-color: var(--eq-text-4, #9aa0ac);
}

/* ---- origem: regra que veio de CARGO ----
   O selo de cargo e o unico jeito de o gestor saber por que aquela pessoa esta
   ali sem ninguem ter cadastrado nada naquele status. Chip do cargo perde o "x"
   (e so-leitura); o painel dele oferece ajustar no cargo ou destacar. */
#htmlSessaoAtual .cfg-resp-cargo {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    max-width: 130px;
    padding: 1px 7px 1px 5px;
    border-radius: 11px;
    background: var(--eq-bg-soft, #f3f4f6);
    border: 1px solid var(--eq-border, #eceef1);
    color: var(--eq-text-3, #6b7280);
    font-size: 10.5px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    cursor: pointer;
}

#htmlSessaoAtual .cfg-resp-cargo-ico {
    width: 11px;
    height: 11px;
    fill: currentColor;
    flex: 0 0 auto;
    opacity: 0.7;
}

#htmlSessaoAtual .cfg-resp-cargo:hover {
    border-color: var(--eq-border-strong, #c7ccd6);
    color: var(--eq-text, #1f2330);
}

/* automatico = borda pontilhada: nada ali foi digitado naquela linha */
#htmlSessaoAtual .cfg-resp-chip.do-cargo {
    border-style: dotted;
    border-color: var(--eq-border-strong, #c7ccd6);
    background: transparent;
}

.cfg-resp-dd-cargo .cfg-resp-cargo-box {
    padding: 12px 13px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.cfg-resp-dd-cargo .cfg-resp-cargo-box b {
    font-size: 13px;
    color: var(--eq-text, #1f2330);
}

.cfg-resp-dd-cargo .cfg-resp-cargo-box span {
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--eq-text-3, #6b7280);
}

.cfg-resp-cargo-destacar {
    font-size: 12px;
    color: var(--eq-text-3, #6b7280);
    cursor: pointer;
    padding: 6px 2px;
}

.cfg-resp-cargo-destacar:hover {
    color: var(--eq-text, #1f2330);
    text-decoration: underline;
}

.cfg-resp-cargo-ir {
    padding: 7px 14px;
    border-radius: 8px;
    background: var(--color-btn-bg-01, #1f2330);
    color: var(--color-btn-text-01, #fff);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.cfg-resp-cargo-ir:hover {
    opacity: 0.9;
}

/* ---- recorte na linha do status, no editor de cargo ----
   Mesma linguagem do badge da aba Responsaveis (.cfg-resp-rec): tinta cheia
   quando ha recorte, tracejado apagado quando vale para tudo. */
.popup-cargo-editor .cargo-st-rec {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    /* encolhe ANTES do nome do status: o nome e a identidade da linha */
    flex: 0 1 auto;
    min-width: 0;
    max-width: 60%;
    padding: 1px 4px 1px 8px;
    border-radius: 11px;
    border: 1px solid var(--eq-pri, #2563eb);
    background: transparent;
    color: var(--eq-pri, #2563eb);
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.6;
    white-space: nowrap;
    cursor: pointer;
}

.popup-cargo-editor .cargo-st-rec.vazio {
    background: transparent;
    border-color: var(--eq-border-strong, #d1d5db);
    border-style: dashed;
    color: var(--eq-text-4, #9aa0ac);
    font-weight: 500;
}

.popup-cargo-editor .cargo-st-rec:not(.vazio):hover {
    background: var(--eq-pri, #2563eb);
    color: var(--eq-surface, #fff);
}

.popup-cargo-editor .cargo-st-rec.vazio:hover {
    background: transparent;
    color: var(--eq-text-2, #4b5563);
    border-color: var(--eq-text-4, #9aa0ac);
}

.popup-cargo-editor .cargo-st-rec .cfg-resp-rec-seta {
    fill: currentColor;
    flex: 0 0 auto;
    opacity: 0.75;
}

/* aviso na lista: este cargo nao e so por status */
#htmlSessaoAtual .eq-cargo-detalhado {
    display: inline-flex;
    align-items: center;
    padding: 1px 8px;
    border-radius: 10px;
    border: 1px dashed var(--eq-border-strong, #c7ccd6);
    color: var(--eq-text-4, #9aa0ac);
    font-size: 10.5px;
    font-weight: 600;
}

/* ---- "Cliente da marca" ---- */
#htmlSessaoAtual .cfg-resp-chip-cli {
    background: var(--eq-pri-bg-2, #eef4ff);
    border-color: transparent;
    color: var(--eq-pri, #2563eb);
    font-weight: 600;
    padding-left: 6px;
}

#htmlSessaoAtual .cfg-resp-chip-cli.parcial {
    opacity: 0.7;
}

#htmlSessaoAtual .cfg-resp-chip-cli.herdado {
    background: transparent;
    border: 1px dashed var(--eq-pri, #93b4f7);
}

/* --eq-pri E a tinta (= --color-text-01), entao o contraste dela e o FUNDO.
   #fff cravado virava icone branco sobre circulo branco no dark. */
#htmlSessaoAtual .cfg-resp-img-cli {
    background: var(--eq-pri, #2563eb);
    color: var(--eq-bg, #fff);
}

#htmlSessaoAtual .cfg-resp-img-cli svg {
    width: 12px;
    height: 12px;
    fill: var(--eq-bg, #fff);
}

#htmlSessaoAtual .cfg-resp-dd-cli {
    font-weight: 600;
    color: var(--eq-pri, #2563eb);
    border-bottom: 1px solid var(--eq-border, #eceef1);
}

/* ---- adicionar / vazio / reset ---- */
#htmlSessaoAtual .cfg-resp-add {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 3px 10px 3px 7px;
    border: 1px dashed var(--eq-border-strong, #c7ccd6);
    border-radius: 16px;
    color: var(--eq-text-3, #6b7280);
    font-size: 12px;
    cursor: pointer;
    flex: 0 0 auto;
    transition: border-color 0.12s, color 0.12s;
}

#htmlSessaoAtual .cfg-resp-add svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
}

#htmlSessaoAtual .cfg-resp-add:hover {
    border-color: var(--eq-pri, #2563eb);
    color: var(--eq-pri, #2563eb);
}

#htmlSessaoAtual .cfg-resp-defina {
    font-size: 12px;
    color: var(--eq-text-4, #9aa0ac);
}

#htmlSessaoAtual .cfg-resp-reset {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11.5px;
    color: var(--eq-text-3, #6b7280);
    background: var(--eq-bg-mute, #eef1f6);
    border-radius: 14px;
    padding: 3px 9px;
    cursor: pointer;
    white-space: nowrap;
    margin-left: auto;
}

#htmlSessaoAtual .cfg-resp-reset:hover {
    color: var(--eq-pri, #2563eb);
    background: var(--eq-pri-bg-2, #eef4ff);
}

/* seletor de escopo, agora dentro do .eq-card-hdr */
#htmlSessaoAtual .cfg-resp-perfil {
    padding: 6px 10px;
    border: 1px solid var(--eq-border-strong, #c7ccd6);
    border-radius: 8px;
    background: var(--eq-surface, #fff);
    font-size: 12.5px;
    color: var(--eq-text, #1f2330);
    max-width: 240px;
    outline: 0;
}

/* ==================================================================
   POPOVERS
   ATENCAO: quem posiciona de verdade e o equipeRespAbrirDd (footer.php),
   que troca para position:fixed e crava left/top. Em absolute o popover
   esticava a #htmlSessaoAtual > .centraliza (o scroller do painel) e
   nascia uma segunda barra de rolagem so por abrir o dropdown.
   ================================================================== */
#htmlSessaoAtual .cfg-resp-dd {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    width: 250px;
    background: var(--eq-surface, #fff);
    /* borda FORTE: no dark a --eq-border e quase invisivel contra a superficie
       elevada, e a sombra preta some sobre preto - a borda e a unica separacao */
    border: 1px solid var(--eq-border-strong, #e3e6eb);
    border-radius: 12px;
    box-shadow: var(--eq-shadow, 0 14px 36px rgba(0, 0, 0, .16));
    z-index: 30;
    overflow: hidden;
    text-align: left;
}

#htmlSessaoAtual .cfg-resp-dd-busca {
    width: 100%;
    border: 0;
    border-bottom: 1px solid var(--eq-border, #eceef1);
    padding: 9px 11px;
    font-size: 13px;
    background: transparent;
    color: var(--eq-text, #1f2330);
    outline: 0;
    box-sizing: border-box;
}

#htmlSessaoAtual .cfg-resp-dd-lista {
    max-height: 260px;
    overflow-y: auto;
    padding: 4px 0;
}

#htmlSessaoAtual .cfg-resp-dd-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 7px 11px;
    font-size: 13px;
    color: var(--eq-text, #1f2330);
    cursor: pointer;
}

#htmlSessaoAtual .cfg-resp-dd-item:hover {
    background: var(--eq-bg-mute, #f5f6f8);
}

#htmlSessaoAtual .cfg-resp-dd-nome {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#htmlSessaoAtual .cfg-resp-dd-nota {
    flex: 0 0 auto;
    font-size: 10.5px;
    color: var(--eq-text-4, #9aa0ac);
}

#htmlSessaoAtual .cfg-resp-dd-item.desabilitado {
    opacity: 0.45;
    cursor: default;
}

#htmlSessaoAtual .cfg-resp-dd-item.desabilitado:hover {
    background: transparent;
}

#htmlSessaoAtual .cfg-resp-dd-vazio {
    padding: 14px 12px;
    text-align: center;
    color: var(--eq-text-4, #9aa0ac);
    font-size: 12.5px;
}

/* ---- painel de MARCAR tipos e canais ----
   SEM escopo de tela de proposito: o mesmo painel abre na aba Responsaveis
   (#htmlSessaoAtual) e dentro do editor de cargo (#edit-popup-medium). O
   gesto de marcar tem de ser um so nos dois lugares. */
.cfg-resp-dd-rec {
    width: 320px;
}

.cfg-resp-rec-hdr {
    display: flex;
    align-items: baseline;
    gap: 6px;
    padding: 11px 13px;
    border-bottom: 1px solid var(--eq-border, #eceef1);
}

.cfg-resp-rec-nome {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--eq-text, #1f2330);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cfg-resp-rec-sub {
    font-size: 11.5px;
    color: var(--eq-text-4, #9aa0ac);
    flex: 0 0 auto;
}

.cfg-resp-rec-corpo {
    max-height: 300px;
    overflow-y: auto;
    padding: 4px 13px 0;
}

.cfg-resp-grp {
    padding: 9px 0;
}

.cfg-resp-grp+.cfg-resp-grp {
    border-top: 1px solid var(--eq-border, #eceef1);
}

.cfg-resp-grp-hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 7px;
}

.cfg-resp-grp-ttl {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--eq-text-3, #6b7280);
}

.cfg-resp-grp-todos {
    font-size: 11px;
    color: var(--eq-text-4, #9aa0ac);
    cursor: pointer;
    white-space: nowrap;
}

.cfg-resp-grp-todos:hover {
    color: var(--eq-pri, #2563eb);
    text-decoration: underline;
}

.cfg-resp-grp-ops {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

/* opcao marcavel: chip com check embutido (mesma linguagem do .cargo-st) */
.cfg-resp-op {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 9px 4px 6px;
    border: 1px solid var(--eq-border-strong, #d1d5db);
    border-radius: 14px;
    font-size: 12px;
    color: var(--eq-text-2, #4b5563);
    cursor: pointer;
    user-select: none;
    transition: background 0.12s, color 0.12s, border-color 0.12s;
}

.cfg-resp-op-chk {
    width: 12px;
    height: 12px;
    fill: currentColor;
    opacity: 0.25;
    flex: 0 0 auto;
}

.cfg-resp-op:hover {
    border-color: var(--eq-pri, #2563eb);
    color: var(--eq-text, #1f2330);
}

/* marcado = TINTA cheia. E o estado ativo do sistema (monocromatico),
   nao uma cor de acento. */
.cfg-resp-op.atv {
    background: var(--eq-pri, #2563eb);
    border-color: var(--eq-pri, #2563eb);
    color: var(--eq-bg, #fff);
}

.cfg-resp-op.atv .cfg-resp-op-chk {
    opacity: 1;
}

/* o resumo explica o PRODUTO: sem ele, ninguem adivinha que 2 tipos e 3
   canais viram 6 regras */
.cfg-resp-rec-resumo {
    padding: 9px 13px;
    border-top: 1px solid var(--eq-border, #eceef1);
    background: var(--eq-bg-mute, #f5f6f8);
    font-size: 11.5px;
    line-height: 1.4;
    color: var(--eq-text-3, #6b7280);
}

.cfg-resp-rec-acoes {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 10px 13px;
    border-top: 1px solid var(--eq-border, #eceef1);
}

.cfg-resp-rec-del {
    font-size: 12px;
    color: var(--eq-text-3, #6b7280);
    cursor: pointer;
    padding: 6px 2px;
}

.cfg-resp-rec-del:hover {
    color: var(--eq-dng, #dc2626);
}

/* o par bg/text tem que vir JUNTO: no dark --color-btn-bg-01 e branco,
   entao um color:#fff fixo aqui seria branco no branco. */
.cfg-resp-rec-ok {
    padding: 7px 16px;
    border-radius: 8px;
    background: var(--color-btn-bg-01, #1f2330);
    color: var(--color-btn-text-01, #fff);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}

.cfg-resp-rec-ok:hover {
    opacity: 0.9;
}

@media (max-width: 720px) {
    #htmlSessaoAtual .cfg-resp-row {
        flex-direction: column;
        gap: 8px;
    }

    #htmlSessaoAtual .cfg-resp-status-wrap {
        width: auto;
        padding-top: 0;
    }

    .cfg-resp-dd-rec {
        width: 280px;
    }
}

.edicao-equipe .topo {
    margin-bottom: 22px;
    padding-bottom: 0;
    border: 0;
}

.edicao-equipe .ttl-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.edicao-equipe .ttl-equipe {
    font-size: 22px;
    font-weight: 700;
    color: var(--eq-text);
    margin: 0;
    outline: none;
    padding: 2px 6px;
    border-radius: 6px;
    min-width: 1ch;
    border: 1px solid transparent;
    transition: background 0.15s, border-color 0.15s;
}

.edicao-equipe .ttl-equipe[contenteditable="true"] {
    background: var(--eq-pri-bg);
    border-color: var(--eq-pri);
}

.edicao-equipe .bt-editar-nome {
    width: 28px;
    height: 28px;
    border-radius: var(--eq-radius-xs);
    border: 0;
    background: transparent;
    cursor: pointer;
    color: var(--eq-text-3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s;
}

.edicao-equipe .bt-editar-nome:hover {
    background: var(--eq-bg-mute);
    color: var(--eq-text-2);
}

.edicao-equipe .bt-editar-nome svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.edicao-equipe .subtitulo {
    font-size: 13px;
    color: var(--eq-text-3);
    padding: 0 6px;
}

/* Topo da tela de equipe usando o header-pagina padrao (fixo) do sistema */
.equipe-header {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
}

.equipe-header .bt-voltar-equipes {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 0px 8px 0px 0px;
    border: 0px solid var(--eq-border, #e5e7eb);
    border-radius: 8px;
    background: var(--eq-bg, #fff);
    color: var(--eq-text-2, #374151);
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;

}

.equipe-header .bt-voltar-equipes:hover {
    background: var(--eq-bg-mute, #f3f4f6);
    color: var(--eq-text, #111827);
}

.equipe-header .bt-voltar-equipes svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.equipe-header .title-section.ttl-equipe {
    float: none;
    line-height: normal;
    font-size: 18px;
    font-weight: 600;
    padding: 2px 6px;
    min-width: 1ch;
}

.equipe-header .title-section.ttl-equipe[contenteditable="true"] {
    background: var(--eq-pri-bg);
    border-color: var(--eq-pri);
}

.equipe-header .bt-editar-nome {
    margin-left: -6px;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border-radius: var(--eq-radius-xs);
    border: 0;
    background: transparent;
    cursor: pointer;
    color: var(--eq-text-3);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background 0.15s, color 0.15s;
}

.equipe-header .bt-editar-nome:hover {
    background: var(--eq-bg-mute);
    color: var(--eq-text-2);
}

.equipe-header .bt-editar-nome svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

/* Tabs */
.tabs-equipe {
    display: flex;
    gap: 4px;
    border-bottom: 1px solid var(--eq-border);
    margin-bottom: 22px;
}

.tabs-equipe .tab {
    padding: 10px 14px;
    font-size: 13px;
    font-weight: 500;
    color: var(--eq-text-3);
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color 0.15s, border-color 0.15s;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.tabs-equipe .tab:hover {
    color: var(--eq-pri);
}

.tabs-equipe .tab.atv {
    color: var(--eq-pri);
    border-bottom-color: var(--eq-pri);
}

.tabs-equipe .badge-count {
    background: var(--eq-bg-mute);
    color: var(--eq-text-3);
    font-size: 11px;
    padding: 2px 7px;
    border-radius: 10px;
    font-weight: 600;
}

.tabs-equipe .tab.atv .badge-count {
    background: var(--eq-pri-bg-2);
    color: var(--eq-pri);
}

.tab-content {
    display: none;
}

.tab-content.atv {
    display: block;
    animation: tabFade 0.15s ease;
}

@keyframes tabFade {
    from {
        opacity: 0;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* =============================================================================
   SUBTABS DE "CONFIGURACOES" - a SEGUNDA regua de navegacao
   -----------------------------------------------------------------------------
   ! ELAS ERAM O MESMO CONTROLE SEGMENTADO DAS ABAS DE CIMA, e esse era o
   problema. Duas fileiras de pilulas identicas, empilhadas, com o mesmo raio, a
   mesma altura, o mesmo trilho e o mesmo badge de contagem - a tela tinha DOIS
   niveis 1, e nada dizia qual deles governava o outro. Trocar de aba principal
   e trocar de sub-aba pareciam a mesma acao, e depois de um clique era preciso
   ler os rotulos para descobrir onde se estava.

   Uma hierarquia so se le quando os dois niveis FALAM LINGUAS DIFERENTES:

     . nivel 1 (.tabs-equipe)   -> pilulas num trilho: um seletor de MODO.
     . nivel 2 (.subtabs-equipe) -> texto sobre um filete, com sublinhado no
       ativo: um indice de SECOES dentro do modo escolhido.

   Nao ha caixa, nem trilho, nem sombra: a regua e leve de proposito, porque ela
   e subordinada. O filete embaixo faz a fila inteira parecer o topo do painel
   que vem abaixo dela - que e exatamente o que ela e.
   ========================================================================== */
.subtabs-equipe {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px;
    max-width: 100%;
    margin: 0 0 18px 0;
    border-bottom: 1px solid var(--eq-border);
}

.subtabs-equipe .subtab {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px 10px;
    /* -1px: o sublinhado do ativo cobre o filete do container em vez de ficar
       flutuando 1px acima dele. */
    margin-bottom: -1px;
    border-bottom: 2px solid transparent;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text-3);
    cursor: pointer;
    white-space: nowrap;
    transition: color .18s var(--eq-ease), border-color .18s var(--eq-ease);
}

.subtabs-equipe .subtab:hover {
    color: var(--eq-text);
    border-bottom-color: var(--eq-border-strong);
}

.subtabs-equipe .subtab.atv {
    color: var(--eq-text);
    font-weight: 600;
    border-bottom-color: var(--eq-text);
}

/* O badge do nivel 2 e MENOR e sem fundo forte: no nivel 1 ele conta o que a
   aba contem, aqui ele so qualifica um item de indice. Dois badges identicos em
   duas reguas empilhadas era mais um empate visual entre os niveis. */
.subtabs-equipe .badge-count {
    background: none;
    color: var(--eq-text-3);
    font-size: 11px;
    padding: 0;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.subtabs-equipe .subtab.atv .badge-count {
    color: var(--eq-text);
}

/* =============================================================================
   SECAO DENTRO DE UMA SUB-ABA  (.eq-secao)
   -----------------------------------------------------------------------------
   Nasceu quando "Administradores" deixou de ser uma aba e virou o topo da aba
   Pessoas: sem um separador, as duas listas de gente viravam uma lista so, e o
   segundo cabecalho lia como um item da primeira.
   ========================================================================== */
.eq-secao+.eq-secao {
    margin-top: 26px;
    padding-top: 22px;
    border-top: 1px solid var(--eq-border);
}

.eq-secao .hdr-bloco h3 {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.eq-secao .hdr-bloco h3 svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    opacity: .6;
}

/* A secao de admins recebe um leve destaque de superficie: ela e a primeira da
   aba e precisa se separar da lista comum que vem logo abaixo. */
.eq-secao-admin .lst-membros-equipe {
    border-radius: 12px;
}

/* --- Configuracoes > Geral: o resumo da equipe --------------------------- */
.eq-resumo {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 10px;
    margin-bottom: 14px;
}

.eq-resumo-n {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 14px 16px;
    border: 1px solid var(--eq-border);
    border-radius: 12px;
}

.eq-resumo-n b {
    font-size: 22px;
    font-weight: 600;
    line-height: 1;
    color: var(--eq-text);
}

.eq-resumo-n span {
    font-size: 11.5px;
    color: var(--eq-text-3);
}

.eq-resumo-txt {
    margin: 0;
    font-size: 13px;
    line-height: 1.6;
    color: var(--eq-text-2, var(--eq-text-3));
}

.eq-ir {
    color: var(--eq-text);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* =============================================================================
   ZONA DE RISCO DA EQUIPE  (.eq-perigo)
   -----------------------------------------------------------------------------
   A trava de digitar o nome fica AO LADO do texto que explica a consequencia,
   e nao dentro de um popup: um popup por cima da tela esconde justamente a
   lista de pessoas que vai perder acesso, no momento de decidir.

   O botao nasce `disabled`, e o `disabled` e de verdade - nao uma classe. Assim
   o Enter, o teclado e o leitor de tela concordam com o que o olho ve.
   ========================================================================== */
.eq-perigo {
    border: 1px solid color-mix(in srgb, var(--eq-dng, #d92d20) 30%, transparent);
    border-radius: 14px;
    padding: 16px 18px 18px;
    background: color-mix(in srgb, var(--eq-dng, #d92d20) 4%, transparent);
}

.eq-secao.eq-perigo {
    margin-top: 26px;
    padding-top: 16px;
    border-top: 1px solid color-mix(in srgb, var(--eq-dng, #d92d20) 30%, transparent);
}

.eq-perigo .hdr-bloco {
    margin-bottom: 8px;
}

.eq-perigo .hdr-bloco h3 {
    color: var(--eq-dng, #d92d20);
}

.eq-perigo-txt {
    margin: 0 0 14px;
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--eq-text-3);
    max-width: 620px;
}

.eq-perigo-lbl {
    display: block;
    font-size: 12px;
    color: var(--eq-text-3);
    margin-bottom: 6px;
}

.eq-perigo-lbl b {
    color: var(--eq-text);
}

.eq-perigo-linha {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.eq-perigo-input {
    flex: 1 1 240px;
    max-width: 320px;
    padding: 9px 12px;
    border: 1px solid var(--eq-border-strong);
    border-radius: 10px;
    background: var(--eq-surface, transparent);
    color: var(--eq-text);
    font-family: inherit;
    font-size: 13px;
    outline: none;
}

.eq-perigo-input:focus {
    border-color: var(--eq-dng, #d92d20);
}

.eq-perigo-bt {
    padding: 9px 18px;
    border-radius: 10px;
    border: 1px solid color-mix(in srgb, var(--eq-dng, #d92d20) 40%, transparent);
    background: transparent;
    color: var(--eq-dng, #d92d20);
    font-family: inherit;
    font-size: 13px;
    font-weight: 550;
    cursor: pointer;
    transition: background .18s ease, opacity .18s ease;
}

/* Desabilitado NAO fica invisivel: ele precisa continuar dizendo o que vai
   acontecer quando destravar. Opacidade demais aqui esconderia o proprio aviso. */
.eq-perigo-bt:disabled {
    opacity: .45;
    cursor: not-allowed;
}

/* Liberado: preenchido. `--eq-dng` no escuro e #ff7b72, e texto branco sobre
   ele nao passa em contraste - por isso o texto do botao cheio vem do fundo do
   tema (preto no escuro, e o branco continua no claro por ser sobre vermelho
   forte). */
.eq-perigo-bt.liberado {
    background: var(--eq-dng, #d92d20);
    border-color: var(--eq-dng, #d92d20);
    color: var(--eq-perigo-txt, #fff);
}

.eq-perigo-bt.liberado:hover {
    opacity: .9;
}

.subtab-content {
    display: none;
}

.subtab-content.atv {
    display: block;
    animation: tabFade 0.15s ease;
}

/* Loading placeholders */
.loading-placeholders {
    padding: 16px 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.loading-placeholders .loading-bloco {
    height: 14px;
    background: linear-gradient(90deg, var(--eq-bg-mute) 0%, var(--eq-bg-soft) 50%, var(--eq-bg-mute) 100%);
    background-size: 200% 100%;
    border-radius: 4px;
    animation: skel 1.4s ease-in-out infinite;
}

@keyframes skel {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

/* Bloco aviso */
.edicao-equipe .bloco-aviso,
.sub-popup .bloco-aviso {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    background: var(--eq-pri-bg);
    border: 1px solid var(--eq-pri-bg-2);
    color: #1e40af;
    padding: 10px 14px;
    border-radius: var(--eq-radius-sm);
    font-size: 12.5px;
    line-height: 1.5;
    margin-bottom: 16px;
}

.edicao-equipe .bloco-aviso svg,
.sub-popup .bloco-aviso svg {
    width: 16px;
    height: 16px;
    fill: var(--eq-pri);
    flex-shrink: 0;
    margin-top: 2px;
}

.edicao-equipe .bloco-aviso-admin {
    background: var(--eq-warn-bg);
    border-color: #fde68a;
    color: var(--eq-warn-txt);
}

.edicao-equipe .bloco-aviso-admin svg {
    fill: var(--eq-warn);
}

/* Header dos blocos dentro do modal */
.edicao-equipe .hdr-bloco {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.edicao-equipe .hdr-bloco h3 {
    font-size: 14px;
    font-weight: 600;
    color: var(--eq-text-2);
    margin: 0;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.edicao-equipe .hdr-bloco .badge-count {
    background: var(--eq-bg-mute);
    color: var(--eq-text-3);
    font-size: 11px;
    padding: 2px 7px;
    border-radius: 10px;
    font-weight: 600;
}

.edicao-equipe .btn-bloco {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--eq-pri);
    cursor: pointer;
    padding: 6px 10px;
    border-radius: var(--eq-radius-xs);
    transition: background 0.15s;
}

.edicao-equipe .btn-bloco:hover {
    background: var(--eq-pri-bg);
}

/* ================= DASHBOARD DA EQUIPE (Visao geral) ================= */
.equipe-dash {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Controle de periodo/modo - compartilhado por TODOS os paineis da equipe
   (Visao geral / Pessoas / Etapas), por isso escopado em .equipe-tela. */
.equipe-tela .ed-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    flex-wrap: wrap;
}

.equipe-tela .ed-periodo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius-sm);
    padding: 4px 6px;
    background: var(--eq-bg);
}

.equipe-tela .ed-periodo-off {
    opacity: 0.5;
}

.equipe-tela .ed-periodo-lbl {
    font-size: 13px;
    font-weight: 600;
    color: var(--eq-text-2);
    min-width: 120px;
    text-align: center;
}

.equipe-tela .ed-nav {
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 18px;
    line-height: 1;
    color: var(--eq-text-3);
    width: 26px;
    height: 26px;
    border-radius: var(--eq-radius-xs);
    transition: background 0.15s, color 0.15s;
}

.equipe-tela .ed-nav:hover:not(:disabled) {
    background: var(--eq-bg-mute);
    color: var(--eq-pri);
}

.equipe-tela .ed-nav:disabled {
    cursor: default;
    opacity: 0.4;
}

/* Toggle Mes / Geral */
.equipe-tela .ed-modo {
    display: inline-flex;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius-sm);
    overflow: hidden;
    background: var(--eq-bg);
}

.equipe-tela .ed-modo-btn {
    border: none;
    background: transparent;
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--eq-text-3);
    padding: 6px 14px;
    transition: background 0.15s, color 0.15s;
}

.equipe-tela .ed-modo-btn.atv {
    background: var(--eq-pri);
    color: #fff;
}

/* KPIs */

/* Grade de 2 colunas */

.equipe-tela .ed-hint {
    font-size: 11px;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    color: var(--eq-text-4);
}

.equipe-tela .ed-vazio {
    font-size: 12.5px;
    color: var(--eq-text-4);
    padding: 18px 0;
    text-align: center;
}

/* Avatar */
.equipe-tela .ed-avatar {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--eq-bg-mute) center / cover no-repeat;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.equipe-tela .ed-avatar-letra {
    font-size: 11px;
    font-weight: 600;
    color: var(--eq-text-3);
    text-transform: uppercase;
}

/* Linha de pessoa (carga) */
.equipe-tela .ed-pessoa-row {
    display: flex;
    align-items: center;
    gap: 10px;
    cursor: pointer;
    padding: 4px;
    margin: -4px;
    border-radius: var(--eq-radius-sm);
    transition: background 0.15s;
}

.equipe-tela .ed-pessoa-row:hover {
    background: var(--eq-bg-soft);
}

.equipe-tela .ed-pessoa-nome {
    font-size: 12.5px;
    color: var(--eq-text-2);
    margin-bottom: 5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Linha de status / cliente */

.equipe-tela .ed-status-nome {
    font-size: 12.5px;
    color: var(--eq-text-2);
    margin-bottom: 5px;
    display: flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Barras */
.equipe-tela .ed-bar-track {
    height: 7px;
    background: var(--eq-bg-mute);
    border-radius: 5px;
    overflow: hidden;
}

.equipe-tela .ed-bar-fill {
    height: 100%;
    background: var(--eq-pri);
    border-radius: 5px;
    min-width: 2px;
    transition: width 0.3s;
}

.equipe-tela .ed-bar-fill.dng {
    background: var(--eq-dng);
}

.equipe-tela .ed-bar-fill.ok {
    background: var(--eq-suc);
}

/* Delta (tendencia) no KPI */

/* Posicao no ranking (Top da equipe) */

/* Throughput sparkline (6 meses) */

/* Tags */

/* Lista de atrasados */

.equipe-tela .ed-atraso-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius-sm);
    text-decoration: none;
    transition: border-color 0.15s, background 0.15s;
}

.equipe-tela .ed-atraso-item:hover {
    border-color: var(--eq-pri);
    background: var(--eq-pri-bg);
}

.equipe-tela .ed-atraso-sub {
    font-size: 11.5px;
    color: var(--eq-text-3);
    margin-top: 1px;
}

/* Bloco Clientes (Visao geral) - clientes (perm. Cliente) e o que aguarda acao deles */

.equipe-tela .ed-cli-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    background: var(--eq-bg);
}

.equipe-tela .ed-cli-item.ed-cli-click {
    cursor: pointer;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.equipe-tela .ed-cli-item.ed-cli-click:hover {
    border-color: var(--eq-pri);
    box-shadow: 0 3px 12px rgba(37, 99, 235, .10);
}

.equipe-tela .ed-cli-nome {
    font-size: 13px;
    font-weight: 600;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ================= ABA ETAPAS (saude do fluxo) ================= */
.equipe-etapas,
.equipe-pessoas {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.ep-tabela {
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius);
    overflow: hidden;
}

.ee-sub {
    display: block;
    font-size: 10.5px;
    font-weight: 500;
}

.ee-resp {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    background: var(--eq-bg-mute);
    border-radius: 12px;
    padding: 2px 7px 2px 2px;
}

.ee-resp-img {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--eq-border) center / cover no-repeat;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 600;
    color: var(--eq-text-3);
    text-transform: uppercase;
}

.ee-resp-carga {
    font-size: 11px;
    font-weight: 700;
    color: var(--eq-text-2);
}

.ee-sem-resp {
    color: var(--eq-text-4);
}

/* ================= ABA PESSOAS (produtividade por membro) ================= */
.ep-head,
.ep-row {
    display: grid;
    grid-template-columns: minmax(180px, 2.2fr) 95px 100px 110px 90px 105px 75px;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
}

.ep-head {
    background: var(--eq-bg-soft);
    border-bottom: 1px solid var(--eq-border);
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--eq-text-3);
}

.ep-row {
    border-top: 1px solid var(--eq-border);
    font-size: 13px;
    color: var(--eq-text);
    cursor: pointer;
    transition: background 0.15s;
}

.ep-row:first-of-type {
    border-top: none;
}

.ep-row:hover {
    background: var(--eq-bg-soft);
}

.ep-c-pessoa {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.ep-pos {
    width: 16px;
    flex-shrink: 0;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    color: var(--eq-text-4);
}

.ep-pessoa-mid {
    flex: 1;
    min-width: 0;
}

.ep-nome {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 4px;
}

.ep-bar-track {
    height: 5px;
    background: var(--eq-bg-mute);
    border-radius: 4px;
    overflow: hidden;
}

.ep-bar-fill {
    height: 100%;
    background: var(--eq-suc);
    border-radius: 4px;
    min-width: 2px;
    transition: width 0.3s;
}

.ep-c-num {
    text-align: center;
    font-weight: 600;
}

.ep-forte {
    font-size: 16px;
    font-weight: 700;
    color: var(--eq-suc-txt);
}

.ep-taxa {
    font-size: 11px;
    color: var(--eq-text-4);
}

/* Aba Pessoas - linha expansivel com detalhe por etapa/tipo/canal/cliente */
.ep-caret {
    display: inline-block;
    font-size: 10px;
    color: var(--eq-text-4);
    transition: transform 0.2s;
}

.ep-row.aberta {
    background: var(--eq-bg-soft);
}

.ep-row.aberta .ep-caret {
    transform: rotate(180deg);
}

.ep-detalhe {
    display: none;
    border-top: 1px dashed var(--eq-border);
    background: var(--eq-bg-soft);
    padding: 12px 14px 14px;
}

.ep-detalhe.aberta {
    display: block;
}

.ep-det-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 12px;
}

.ep-det-hdr {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.4px;
    color: var(--eq-text-3);
    margin-bottom: 7px;
}

.ep-det-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.ep-chip {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    color: var(--eq-text);
    background: var(--eq-bg);
    border: 1px solid var(--eq-border);
    border-radius: 999px;
    padding: 3px 9px;
    line-height: 1.4;
}

.ep-chip b {
    font-weight: 700;
    color: var(--eq-suc-txt);
}

.ep-chip-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.ep-det-vazio {
    font-size: 12px;
    color: var(--eq-text-4);
}

/* Matriz detalhada etapa  tipo (o que a pessoa produziu, peca a peca) */
.ep-det-full {
    margin-bottom: 14px;
}

.ep-det-sub {
    font-size: 10px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    color: var(--eq-text-4);
    margin-left: 6px;
}

.ep-mx-wrap {
    overflow-x: auto;
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    background: var(--eq-bg);
}

.ep-matriz {
    border-collapse: collapse;
    width: 100%;
    font-size: 12px;
    color: var(--eq-text);
}

.ep-matriz th,
.ep-matriz td {
    padding: 6px 10px;
    text-align: center;
    white-space: nowrap;
    border-bottom: 1px solid var(--eq-border);
}

.ep-matriz thead th {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--eq-text-3);
    background: var(--eq-bg-soft);
}

.ep-matriz .ep-mx-et {
    text-align: left;
    font-weight: 600;
}

.ep-matriz .ep-chip-dot {
    display: inline-block;
    vertical-align: middle;
    margin-right: 6px;
}

.ep-matriz .ep-mx-tot {
    font-weight: 700;
    color: var(--eq-suc-txt);
    background: var(--eq-bg-soft);
}

.ep-matriz tfoot td {
    font-weight: 700;
    background: var(--eq-bg-soft);
    border-bottom: 0;
}

.ep-matriz .ep-mx-zero {
    color: var(--eq-text-4);
}

.ep-matriz tbody tr:hover td {
    background: var(--eq-bg-soft);
}

/* Celulas/totais clicaveis (drill-down) */
.ep-matriz.ep-mx-click .ep-mx-cel {
    cursor: pointer;
    color: var(--eq-pri, #2563eb);
    font-weight: 600;
}

.ep-matriz.ep-mx-click .ep-mx-cel:hover {
    background: var(--eq-pri-bg-2, #eef4ff);
    text-decoration: underline;
}

/* ===== Painel da pessoa em tela cheia (mesmo padrao da tela da equipe) ===== */
.pessoa-tela {
    width: 100%;
    /* limpa o header-pagina fixo (padrao do sistema) */
}

.pessoa-painel {
    width: 100%;
    margin: 0 auto;
}

/* Header e um .header-pagina (fixo) - replica o visual do .equipe-header */
.pp-painel-header {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 52px;
}

.pp-painel-header .bt-voltar-pessoa {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    border-radius: 8px;
    background: var(--eq-bg, #fff);
    color: var(--eq-text-2, #374151);
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    padding-right: 7px;
}

.pp-painel-header .bt-voltar-pessoa:hover {
    background: var(--eq-bg-mute, #f3f4f6);
    color: var(--eq-text, #111827);
}

.pp-painel-header .bt-voltar-pessoa svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.pp-painel-id {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
}

.pp-painel-id .ed-avatar {
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    font-size: 12px;
    background-size: cover;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    background-clip: padding-box;
}

.pp-painel-header .title-section {
    float: none;
    margin: 0;
    line-height: normal;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -0.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pp-painel-bloco {
    margin: 18px 0;
}

.pp-painel-quebras {
    margin-top: 18px;
}

/* ===== Drill-down: conteudos do total, agrupados por cliente (estilo ClickUp) ===== */
.pessoa-drill .sub-popup-body {
    max-height: 70vh;
    overflow-y: auto;
    padding: 16px 18px 20px;
    background: var(--eq-bg-soft, #fafafa);
}

.ppd-grupos {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

/* Cabecalho do grupo (cliente) */
.ppd-grupo-hdr {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-bottom: 10px;
}

.ppd-grupo-ini {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--eq-pri-bg-2, #dbeafe);
    color: var(--eq-pri, #2563eb);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    background-size: cover;
}

.ppd-grupo-nome {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 700;
    color: var(--eq-text, #111827);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ppd-grupo-n {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 20px;
    padding: 0 7px;
    border-radius: 10px;
    background: var(--eq-bg-mute, #eef1f6);
    color: var(--eq-text-2, #4b5563);
    font-size: 11.5px;
    font-weight: 700;
}

.ppd-lst {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Card de conteudo */
.ppd-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px 8px 8px;
    background: var(--eq-bg, #fff);
    border: 1px solid var(--eq-border, #e9ebef);
    border-radius: 12px;
    cursor: pointer;
    transition: box-shadow 0.15s, border-color 0.15s, transform 0.05s;
}

.ppd-card:hover {
    border-color: var(--eq-pri, #93b4f7);
    box-shadow: 0 4px 14px rgba(37, 99, 235, .10);
}

.ppd-card:active {
    transform: translateY(1px);
}

.ppd-thumb {
    flex: 0 0 auto;
    width: 56px;
    height: 56px;
    border-radius: 9px;
    background-size: cover;
    background-position: center;
    background-color: var(--eq-bg-mute, #eef1f6);
    position: relative;
    overflow: hidden;
}

.ppd-thumb video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.ppd-thumb-vazio,
.ppd-thumb-video {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--eq-text-4, #9aa0ac);
}

.ppd-thumb-vazio svg {
    width: 24px;
    height: 24px;
    fill: currentColor;
    opacity: 0.7;
}

.ppd-thumb-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .28);
}

.ppd-thumb-play svg {
    width: 22px;
    height: 22px;
    fill: #fff;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .4));
}

.ppd-card-body {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.ppd-card-top {
    display: flex;
    align-items: center;
    gap: 7px;
}

.ppd-card-num {
    font-size: 11px;
    font-weight: 700;
    color: var(--eq-text-3, #6b7280);
}

.ppd-card-tipo {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    color: var(--eq-pri, #2563eb);
    background: var(--eq-pri-bg, #eff6ff);
    padding: 1px 7px;
    border-radius: 6px;
}

.ppd-card-tit {
    font-size: 13.5px;
    font-weight: 600;
    color: var(--eq-text, #1f2330);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ppd-card-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--eq-text-3, #6b7280);
}

.ppd-card-status .ppd-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.ppd-card-go {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    color: var(--eq-text-4, #c2c7d0);
}

.ppd-card-go svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ppd-card:hover .ppd-card-go {
    color: var(--eq-pri, #2563eb);
}

/* Cues de clicabilidade - qualquer "total" com drill-down */
.ep-chip.ep-drill {
    cursor: pointer;
    border-color: var(--eq-pri, #93b4f7);
    transition: background 0.15s, color 0.15s;
}

.ep-chip.ep-drill:hover {
    background: var(--eq-pri-bg-2, #eef4ff);
    color: var(--eq-pri, #2563eb);
}

.ep-chip.ep-drill:hover b {
    color: var(--eq-pri, #2563eb);
}

.ed-card-click {
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.ed-card-click:hover {
    border-color: var(--eq-pri, #2563eb);
    background: var(--eq-pri-bg, #eff6ff);
}

/* ===== Lista de pessoas relacionadas (tela Equipes) ===== */
.h-pessoas-relacionadas {
    margin-top: 26px;
}

.h-pessoas-relacionadas .estrutura-pessoas-lst-01 {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 4px 16px;
}

.h-pessoas-relacionadas .estrutura-pessoas-lst-01 .item {
    float: none;
    padding: 0 0 18px 0;
}

.h-pessoas-relacionadas .thumb-user {
    aspect-ratio: 5 / 6;
    width: 100%;
    border-radius: 16px;
    background-size: cover;
    background-position: center;
    background-color: var(--eq-bg-mute, #eceef1);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    font-weight: 600;
    color: var(--eq-text-3, #6b7280);
    text-transform: uppercase;
}

.h-pessoas-relacionadas .pr-vazio {
    font-size: 13px;
    color: var(--eq-text-4, #9aa0ac);
    padding: 6px 0 16px;
}

.ep-det-rodape {
    margin-top: 12px;
    text-align: right;
}

/* Era var(--eq-acc, ...): token que NUNCA existiu (o nome certo e --eq-acento),
   entao a regra caia no fallback #2563eb cravado e este botao ficava azul nos
   dois temas, furando o remap monocromatico. Na linguagem do kit, um botao de
   texto e a TINTA. */
.ep-abrir-painel {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
    color: var(--eq-text);
    padding: 4px 2px;
}

.ep-abrir-painel:hover {
    text-decoration: underline;
}

@media (max-width: 880px) {

    .ep-tabela {
        overflow-x: auto;
    }

    .ep-head,
    .ep-row {
        min-width: 740px;
    }
}

/* Lista de perfis (chips) */
.lst-perfis-equipe {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.chip-perfil {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--eq-bg);
    border: 1px solid var(--eq-border);
    padding: 10px 14px;
    border-radius: 10px;
    transition: border-color 0.15s, background 0.15s;
}

.chip-perfil:hover {
    border-color: var(--eq-border-strong);
    background: var(--eq-bg-soft);
}

.chip-logo {
    width: 36px;
    height: 36px;
    border-radius: var(--eq-radius-sm);
    background: var(--eq-bg-mute) center / cover no-repeat;
    color: var(--eq-text-3);
    font-size: 12px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    flex-shrink: 0;
}

.chip-info {
    flex: 1;
    min-width: 0;
}

.chip-nome {
    font-size: 14px;
    font-weight: 500;
    color: var(--eq-text);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.chip-desc {
    font-size: 12px;
    color: var(--eq-text-3);
    line-height: 1.3;
}

.chip-remover {
    width: 28px;
    height: 28px;
    border-radius: var(--eq-radius-xs);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--eq-text-4);
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
}

.chip-remover:hover {
    background: var(--eq-dng-bg);
    color: var(--eq-dng);
}

.chip-remover svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.empty-bloco {
    text-align: center;
    padding: 24px 16px;
    color: var(--eq-text-4);
    font-size: 13px;
    border: 1px dashed var(--eq-border);
    border-radius: 10px;
    background: var(--eq-bg-soft);
}

/* Itens de membro */
.lst-membros-equipe {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.item-membro {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--eq-bg);
    border: 1px solid var(--eq-border);
    padding: 10px 14px;
    border-radius: 10px;
    transition: border-color 0.15s, background 0.15s;
}

.item-membro:hover {
    border-color: var(--eq-border-strong);
    background: var(--eq-bg-soft);
}

.item-membro .img {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--eq-bg-mute) center / cover no-repeat;
    color: var(--eq-text-3);
    font-size: 12px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    flex-shrink: 0;
}

.item-membro .nome {
    flex: 1;
    min-width: 0;
}

.item-membro .nome p {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: var(--eq-text);
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.item-membro .nome span {
    font-size: 12px;
    color: var(--eq-text-3);
    line-height: 1.3;
}

/* Badge de acesso */
.badge-acesso {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 5px 10px;
    border-radius: var(--eq-radius-xs);
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    cursor: default;
    transition: background 0.15s, color 0.15s;
    border: 1px solid transparent;
}

.badge-acesso svg {
    width: 11px;
    height: 11px;
}

.badge-total {
    background: var(--eq-suc-bg);
    color: var(--eq-suc-txt);
}

.badge-total svg {
    fill: var(--eq-suc);
}

.badge-limitado {
    background: var(--eq-warn-bg);
    color: var(--eq-warn-txt);
    cursor: pointer;
}

.badge-limitado:hover {
    background: #fde68a;
    border-color: #fcd34d;
}

.badge-limitado svg {
    fill: var(--eq-warn);
}

/* Dropdown de acoes */
.item-membro .acoes {
    position: relative;
}

.item-membro .acoes .dropdown-toggle {
    width: 28px;
    height: 28px;
    border-radius: var(--eq-radius-xs);
    border: 0;
    padding: 0;
    cursor: pointer;
    background: transparent center / 16px no-repeat url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%236b7280'%3e%3ccircle cx='12' cy='5' r='2'/%3e%3ccircle cx='12' cy='12' r='2'/%3e%3ccircle cx='12' cy='19' r='2'/%3e%3c/svg%3e");
    transition: background-color 0.15s;
}

.item-membro .acoes .dropdown-toggle:hover {
    background-color: var(--eq-bg-mute);
}

.item-membro .acoes .dropdown-menu {
    min-width: 220px;
    border-radius: var(--eq-radius-sm);
    border: 1px solid var(--eq-border);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
    padding: 4px;
}

.item-membro .acoes .dropdown-item {
    padding: 8px 12px;
    border-radius: var(--eq-radius-xs);
    font-size: 13px;
    color: var(--eq-text-2);
    cursor: pointer;
}

.item-membro .acoes .dropdown-item:hover {
    background: var(--eq-bg-mute);
}

.item-membro .acoes .btn-remover-membro {
    color: var(--eq-dng);
}

.item-membro .acoes .btn-remover-membro:hover {
    background: var(--eq-dng-bg);
}

/* ! `.rodape-equipe` / `.btn-link-perigo` FORAM REMOVIDOS.
   Eram o rodape com "Excluir equipe" que ficava colado no fim do
   `.edicao-equipe` - ou seja, FORA das abas, aparecendo embaixo de todas elas
   (Visao geral, Agenda, Pessoas, Etapas, Pagamentos). A acao mais destrutiva da
   tela estava em seis lugares ao mesmo tempo e em nenhum deles de proposito.

   Hoje ela tem um endereco so, com trava de digitar o nome: Configuracoes >
   Geral. As regras vivem em `.eq-perigo`, mais acima neste arquivo. */

/* ---------- Sub-popups internos (#edit-popup-medium) ---------- */
#edit-popup-medium .sub-popup {
    padding: 0;
    overflow: hidden;
    border-radius: var(--eq-radius);
    position: relative;
}

/* Garante que o X global (.btn-close) fique acima e clicavel. */
#edit-popup-medium .btn-close {
    z-index: 10;
}

.sub-popup-hdr {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 56px 16px 24px;
    /* espaco extra a direita para o X global */
    border-bottom: 1px solid var(--eq-border);
    /* transparente de proposito: quem da a superficie e o .boxpop do popup.
       --eq-bg aqui seria o fundo da TELA (preto puro no dark) dentro de um
       popup que e #26272a. */
    background: transparent;
}

.sub-popup .bt-voltar {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 6px 10px 6px 6px;
    border-radius: var(--eq-radius-xs);
    color: var(--eq-text-3);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
    flex-shrink: 0;
}

.sub-popup .bt-voltar:hover {
    background: var(--eq-bg-mute);
    color: var(--eq-text-2);
}

.sub-popup .bt-voltar svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

.sub-popup-ttl h1 {
    font-size: 17px;
    font-weight: 600;
    color: var(--eq-text);
    margin: 0;
    line-height: 1.3;
}

.sub-popup-subt {
    font-size: 12.5px;
    color: var(--eq-text-3);
    line-height: 1.4;
    margin-top: 2px;
}

.sub-popup-body {
    padding: 20px 24px 22px;
    max-height: 70vh;
    overflow-y: auto;
}

/* ---------- Popup adicionar perfil ---------- */
.lst-perfis-disponiveis {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.row-perfil-disponivel {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--eq-bg);
    border: 1px solid var(--eq-border);
    padding: 10px 14px;
    border-radius: 10px;
    transition: border-color 0.15s, background 0.15s, opacity 0.15s;
}

.row-perfil-disponivel:hover {
    border-color: var(--eq-border-strong);
    background: var(--eq-bg-soft);
}

.row-perfil-disponivel.adicionando {
    opacity: 0.5;
    pointer-events: none;
}

.row-perfil-disponivel .row-info {
    flex: 1;
    min-width: 0;
}

.row-perfil-disponivel .row-nome {
    font-size: 14px;
    font-weight: 500;
    color: var(--eq-text);
    line-height: 1.3;
}

.row-perfil-disponivel .row-desc {
    font-size: 12px;
    color: var(--eq-text-3);
    line-height: 1.3;
}

.row-perfil-disponivel .bt-add-row {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--eq-pri);
    padding: 6px 12px;
    border-radius: var(--eq-radius-xs);
    cursor: pointer;
    background: var(--eq-pri-bg);
    transition: background 0.15s, color 0.15s;
}

.row-perfil-disponivel .bt-add-row:hover {
    background: var(--eq-pri);
    color: #fff;
}

/* ---------- Popup adicionar membro ---------- */
.popup-equipe-add-membro .campo-add {
    margin-bottom: 14px;
}

.popup-equipe-add-membro .campo-add .lbel {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: var(--eq-text-2);
    margin-bottom: 6px;
}

.popup-equipe-add-membro .picker-input {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--eq-border-strong);
    border-radius: var(--eq-radius-sm);
    font-size: 14px;
    background: var(--eq-bg);
    color: var(--eq-text);
    transition: border-color 0.15s, box-shadow 0.15s;
}

.popup-equipe-add-membro .picker-input:focus {
    outline: none;
    border-color: var(--eq-pri);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.campo-erro {
    font-size: 12px;
    color: var(--eq-dng);
    margin-top: 6px;
    display: none;
}

.campo-erro.mostrar {
    display: block;
}

.opcoes-acesso {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-bottom: 14px;
}

.opt-radio {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
    margin: 0;
}

.opt-radio:hover {
    border-color: var(--eq-border-strong);
    background: var(--eq-bg-soft);
}

.opt-radio.atv {
    border-color: var(--eq-pri);
    background: var(--eq-pri-bg);
}

.opt-radio input[type="radio"] {
    margin-top: 3px;
    accent-color: var(--eq-pri);
}

.opt-content {
    flex: 1;
}

.opt-ttl {
    font-size: 14px;
    font-weight: 600;
    color: var(--eq-text);
    margin-bottom: 2px;
}

.opt-desc {
    font-size: 12.5px;
    color: var(--eq-text-3);
    line-height: 1.4;
}

.lst-perfis-selecionar {
    display: flex;
    flex-direction: column;
    gap: 6px;
    max-height: 260px;
    overflow-y: auto;
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    padding: 8px;
    background: var(--eq-bg-soft);
    margin-bottom: 14px;
}

.opt-perfil {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 12px;
    background: var(--eq-bg);
    border: 1px solid transparent;
    border-radius: var(--eq-radius-sm);
    cursor: pointer;
    margin: 0;
    transition: border-color 0.15s, background 0.15s;
}

.opt-perfil:hover {
    border-color: var(--eq-border);
}

.opt-perfil.atv {
    border-color: var(--eq-pri);
    background: var(--eq-pri-bg);
}

.opt-perfil.ja-tem.atv {
    border-color: var(--eq-suc);
    background: #ecfdf5;
}

.opt-perfil input[type="checkbox"] {
    accent-color: var(--eq-pri);
}

.opt-perfil.ja-tem input[type="checkbox"] {
    accent-color: var(--eq-suc);
}

.opt-perfil-info {
    flex: 1;
    min-width: 0;
}

.opt-perfil-nome {
    font-size: 13.5px;
    font-weight: 500;
    color: var(--eq-text);
    line-height: 1.3;
}

.opt-perfil-desc {
    font-size: 11.5px;
    color: var(--eq-text-3);
    line-height: 1.3;
}

.tag-ja-tem {
    display: inline-flex;
    align-items: center;
    margin-top: 3px;
    padding: 1px 7px;
    background: var(--eq-suc-bg);
    color: var(--eq-suc-txt);
    border: 1px solid #a7f3d0;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 1.4;
    width: max-content;
}

.popup-equipe-add-membro .rodape-add {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 4px;
    padding-top: 14px;
    border-top: 1px solid var(--eq-bg-mute);
}

.bt-secondary {
    padding: 10px 18px;
    border-radius: var(--eq-radius-sm);
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    color: var(--eq-text-2);
    background: transparent;
    transition: background 0.15s, color 0.15s;
}

.bt-secondary:hover {
    background: var(--eq-bg-mute);
    color: var(--eq-text);
}

.bt-add {
    background: var(--eq-pri);
    color: #fff;
    padding: 10px 18px;
    border-radius: var(--eq-radius-sm);
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    transition: background 0.15s;
    position: relative;
}

.bt-add:hover {
    background: var(--eq-pri-h);
}

.bt-add.bt-loading {
    color: transparent;
    pointer-events: none;
}

.bt-add.bt-loading::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-top-color: #fff;
    transform: translate(-50%, -50%);
    animation: spin 0.6s linear infinite;
}

@keyframes spin {
    to {
        transform: translate(-50%, -50%) rotate(360deg);
    }
}

/* ---------- Popup acesso por perfil ---------- */
.card-membro-resumo {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--eq-bg-soft);
    border: 1px solid var(--eq-border);
    padding: 12px 14px;
    border-radius: var(--eq-radius-sm);
    margin-bottom: 16px;
}

.card-membro-resumo .img-user {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--eq-bg-mute) center / cover no-repeat;
    color: var(--eq-text-3);
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    flex-shrink: 0;
}

.card-membro-resumo .user-info {
    min-width: 0;
}

.card-membro-resumo .nome-user {
    font-size: 15px;
    font-weight: 600;
    color: var(--eq-text);
    line-height: 1.3;
}

.card-membro-resumo .user-info span {
    font-size: 12.5px;
    color: var(--eq-text-3);
}

.toggle-tipo-acesso {
    margin-bottom: 16px;
}

.toggle-tipo-acesso .lbel {
    font-size: 12px;
    font-weight: 500;
    color: var(--eq-text-2);
    margin-bottom: 6px;
}

.switch-tipo {
    display: inline-flex;
    background: var(--eq-bg-mute);
    border-radius: var(--eq-radius-sm);
    padding: 3px;
    gap: 2px;
}

.switch-tipo .opt {
    padding: 6px 14px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--eq-text-3);
    border-radius: var(--eq-radius-xs);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}

.switch-tipo .opt.atv {
    background: var(--eq-bg);
    color: var(--eq-pri);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.06);
}

.lst-perfis-acesso {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.row-perfil-acesso {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--eq-bg);
    border: 1px solid var(--eq-border);
    padding: 10px 14px;
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s;
}

.row-perfil-acesso:hover {
    border-color: var(--eq-border-strong);
}

.row-perfil-acesso.atv {
    border-color: var(--eq-suc);
    background: #ecfdf5;
}

.row-perfil-acesso .row-info {
    flex: 1;
    min-width: 0;
}

.row-perfil-acesso .row-nome {
    font-size: 14px;
    font-weight: 500;
    color: var(--eq-text);
    line-height: 1.3;
}

.row-perfil-acesso .row-desc {
    font-size: 12px;
    color: var(--eq-text-3);
    line-height: 1.3;
}

.switch-acesso {
    width: 38px;
    height: 22px;
    background: var(--eq-border-strong);
    border-radius: 11px;
    position: relative;
    transition: background 0.2s;
    flex-shrink: 0;
}

.switch-acesso .ball {
    width: 16px;
    height: 16px;
    background: #fff;
    border-radius: 50%;
    position: absolute;
    top: 3px;
    left: 3px;
    transition: left 0.2s;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.15);
}

.switch-acesso.on {
    background: var(--eq-suc);
}

.switch-acesso.on .ball {
    left: 19px;
}

/* ---------- Responsivo ---------- */
@media (max-width: 640px) {
    .lst-equipes-cards {
        grid-template-columns: 1fr;
    }

    .hdr-bloco-pagina {
        flex-direction: column;
        align-items: flex-start;
    }

    .hdr-bloco-pagina .bt-bloco {
        align-self: stretch;
        justify-content: center;
    }

    #edit-popup .edicao-equipe {
        padding: 15px;
    }

    .sub-popup-hdr {
        padding: 14px 56px 14px 18px;
    }

    .sub-popup-body {
        padding: 16px 18px 18px;
    }

    .item-membro {
        flex-wrap: wrap;
    }

    .item-membro .badge-acesso {
        order: 3;
        margin-left: 48px;
    }

    .preview-acoes {
        flex-direction: column;
    }
}

/* ---------- Tag "Admin" inline + tom do item de membro admin ---------- */
.item-membro .nome p {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}

.item-membro.is-admin {
    border-color: #fde68a;
    background: #fffbeb;
}

.item-membro.is-admin:hover {
    border-color: var(--eq-warn);
    background: #fef3c7;
}

.tag-admin {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    background: var(--eq-warn-bg);
    color: var(--eq-warn-txt);
    border: 1px solid #fde68a;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    line-height: 1.4;
    white-space: nowrap;
}

.tag-admin svg {
    width: 11px;
    height: 11px;
    fill: var(--eq-warn);
}

/* ---------- Card preview de acesso (popup add-membro) ---------- */
.preview-membro {
    display: none;
    margin-bottom: 16px;
}

.preview-membro.mostrar {
    display: block;
}

.preview-loading {
    background: var(--eq-bg-soft);
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    padding: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.card-preview {
    background: var(--eq-bg);
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    padding: 14px 16px;
    animation: tabFade 0.2s ease;
}

.card-preview-novo {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    background: var(--eq-pri-bg);
    border-color: var(--eq-pri-bg-2);
}

.card-preview-novo svg {
    width: 28px;
    height: 28px;
    fill: var(--eq-pri);
    flex-shrink: 0;
}

.preview-hdr {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--eq-border);
    margin-bottom: 12px;
}

.img-user-sm {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--eq-bg-mute) center / cover no-repeat;
    color: var(--eq-text-3);
    font-size: 12px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    flex-shrink: 0;
}

.preview-info {
    min-width: 0;
}

.preview-ttl {
    font-size: 14px;
    font-weight: 600;
    color: var(--eq-text);
    line-height: 1.3;
}

.preview-desc {
    font-size: 12px;
    color: var(--eq-text-3);
    line-height: 1.4;
    margin-top: 2px;
}

.preview-grupo {
    margin-bottom: 10px;
}

.preview-grupo:last-of-type {
    margin-bottom: 0;
}

.preview-grupo-ttl {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.3px;
    margin-bottom: 6px;
}

.preview-grupo-ttl svg {
    width: 12px;
    height: 12px;
}

.preview-grupo-lib {
    color: var(--eq-suc-txt);
}

.preview-grupo-lib svg {
    fill: var(--eq-suc);
}

.preview-grupo-falt {
    color: var(--eq-text-3);
}

.preview-grupo-falt svg {
    fill: var(--eq-text-3);
}

.preview-grupo-lst {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.row-preview-perfil {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 4px;
    background: var(--eq-bg-soft);
    border: 1px solid var(--eq-border);
    border-radius: 999px;
    font-size: 12px;
    color: var(--eq-text-2);
}

.chip-logo-sm {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--eq-bg-mute) center / cover no-repeat;
    color: var(--eq-text-3);
    font-size: 9px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    text-transform: uppercase;
    flex-shrink: 0;
}

.preview-acoes {
    display: flex;
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--eq-bg-mute);
}

.bt-preview {
    flex: 1;
    padding: 9px 12px;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius-sm);
    background: var(--eq-bg);
    color: var(--eq-text-2);
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    transition: border-color 0.15s, background 0.15s, color 0.15s;
}

.bt-preview:hover {
    border-color: var(--eq-border-strong);
    background: var(--eq-bg-soft);
}

.bt-preview-total {
    background: var(--eq-pri-bg);
    border-color: var(--eq-pri-bg-2);
    color: var(--eq-pri);
}

.bt-preview-total:hover {
    background: var(--eq-pri);
    border-color: var(--eq-pri);
    color: #fff;
}

.bt-preview.atv {
    border-color: var(--eq-pri);
    background: var(--eq-pri-bg);
    color: var(--eq-pri);
    box-shadow: inset 0 0 0 1px var(--eq-pri);
}

/* ---------- Checkbox "Promover a administrador" ---------- */
.opt-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    cursor: pointer;
    margin: 14px 0 0;
    transition: border-color 0.15s, background 0.15s;
}

.opt-checkbox:hover {
    border-color: var(--eq-border-strong);
    background: var(--eq-bg-soft);
}

.opt-checkbox.atv {
    border-color: var(--eq-warn);
    background: var(--eq-warn-bg);
}

.opt-checkbox.atv .opt-ttl,
.opt-checkbox.atv .opt-desc {
    color: var(--eq-warn-txt);
}

.opt-checkbox input[type="checkbox"] {
    margin-top: 3px;
    accent-color: var(--eq-warn);
}

.midia-item.is-audio .bt svg {
    fill: #000000;
    color: #000000;
}

/* ============ SUBTAREFAS - ClickUp 3.0 (paleta oficial) ============ */
/* Tokens com cores observadas em screenshots ClickUp 3.0 (2025-2026) */
/* .tc entra na MESMA lista de tokens: o bloco "Conteudos" e irmao das
   Subtarefas dentro do popup e precisa herdar a mesma paleta, nao uma copia
   que sai de sincronia no proximo ajuste. A classe .tc esta no bloco
   (.t-conteudos-wrap.tc) E no popup de vincular (.tc.tc-modal), que vive em
   #edit-popup-medium - fora da arvore do bloco e portanto fora do alcance de
   qualquer token declarado nele. */
.subtarefas-section.cu,
.tarefa-sub-row.cu,
.tc {
    --su-fg: #1f2937;
    /* texto primario */
    --su-fg-soft: #6b7280;
    /* secundario / icones */
    --su-fg-mute: #9ca3af;
    /* placeholders + concluido */
    --su-bg-hover: #f4f5f7;
    --su-bg-subtle: #fafbfc;
    --su-bg-selected: #eef0f5;
    --su-bg-input: #ffffff;
    --su-border: #e8eaed;
    --su-border-soft: #eef1f4;
    --su-line: #e1e4e8;
    --su-accent: #7b68ee;
    --su-accent-soft: rgba(123, 104, 238, .15);
    --su-done: #3fba50;
    --su-row-h: 36px;
    --su-row-fs: 13px;
}

/* Breadcrumb (avo/pai) clicavel */
.btns-t-anteriores .item.clicavel {
    cursor: pointer;
    color: #4a6cf7;
    transition: opacity .15s;
}

.btns-t-anteriores .item.clicavel:hover {
    opacity: .7;
}

/* ---- Secao dentro do popup ---- */
.item-post.tarefa .subtarefas-section {
    margin: 24px 0 8px;
    padding: 0;
    background: transparent;
    font-family: -apple-system, "Inter", "Segoe UI", system-ui, sans-serif;
}

/* O desenho do cabecalho de Subtarefas saiu daqui: as tres secoes do popup
   usam o mesmo .t-sec-hdr (bloco "CABECALHO PADRAO DAS TRES SECOES"). O que
   existia aqui - .sub-hdr com -4px de recuo, .sub-ttl-wrap, .sub-counter,
   .sub-hdr-add (o header-botao do estado vazio) e a setinha com margem
   propria - era exatamente a duplicata que fazia o titulo mudar de lugar
   entre o estado vazio e o estado com filhas. */

/* Composer standalone - garante o mesmo layout flex full-width independente de onde
   for inserido (linha "+ Adicionar" do rodape OU direto em .lst-subtarefas no modo vazio).
   Regra base (sem dependencia do pai .cu-row.cu-row-addsub). */
.cu-composer-inline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    width: 100%;
    padding: 6px 8px;
    background: transparent;
    border: 0;
    border-radius: 0;
    margin: 0;
    min-height: 36px;
    box-sizing: border-box;
}

/* Chip de progresso com barra */
.tarefa-progress-mini {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-left: 8px;
}

.tarefa-progress-mini .bar {
    width: 72px;
    height: 4px;
    background: var(--su-border);
    border-radius: 2px;
    overflow: hidden;
}

.tarefa-progress-mini .fill {
    height: 100%;
    background: var(--su-done);
    border-radius: 2px;
    transition: width .25s;
}

.tarefa-progress-mini .txt {
    font-size: 11px;
    color: var(--su-fg-soft);
    font-weight: 500;
    letter-spacing: .2px;
}

/* Chip simples (listagem global) */
.tarefa-progress-count {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    padding: 2px 7px;
    border-radius: 10px;
    background: #eef2f7;
    color: #515767;
    margin-left: 8px;
    font-weight: 500;
}

/* Lista */
.subtarefas-section .lst-subtarefas {
    display: flex;
    flex-direction: column;
    position: relative;
}

/* Linha */
.tarefa-sub-row.cu {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: var(--su-row-h);
    padding: 0 8px 0 12px;
    border-bottom: 1px solid var(--su-border);
    transition: background .1s;
    font-size: var(--su-row-fs);
    color: var(--su-fg);
    font-family: -apple-system, "Inter", "Segoe UI", system-ui, sans-serif;
    position: relative;
}

.tarefa-sub-row.cu:hover {
    background: var(--su-bg-hover);
}

.tarefa-sub-row.cu:last-child {
    border-bottom: none;
}

/* Ancora visual do item selecionado (ClickUp 3.0 mostra barra esquerda 2px roxa) */
.tarefa-sub-row.cu.is-selected::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--su-accent);
}

/* Drag handle (esquerda) */
.tarefa-sub-row .drag-handle {
    width: 12px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--su-fg-mute);
    opacity: 0;
    cursor: grab;
    transition: opacity .12s;
}

.tarefa-sub-row:hover .drag-handle {
    opacity: .7;
}

/* Indentacao + linha conectora (niveis 1 e 2) */
.tarefa-sub-row .sub-indent {
    flex-shrink: 0;
    align-self: stretch;
    position: relative;
}

.tarefa-sub-row[data-nivel="0"] .sub-indent {
    width: 2px;
}

.tarefa-sub-row[data-nivel="1"] .sub-indent {
    width: 28px;
}

.tarefa-sub-row[data-nivel="2"] .sub-indent {
    width: 50px;
}

.tarefa-sub-row[data-nivel="1"] .sub-indent::before,
.tarefa-sub-row[data-nivel="2"] .sub-indent::before {
    content: "";
    position: absolute;
    left: 12px;
    top: 0;
    bottom: 0;
    width: 1px;
    background: var(--su-line);
}

.tarefa-sub-row[data-nivel="1"] .sub-indent::after,
.tarefa-sub-row[data-nivel="2"] .sub-indent::after {
    content: "";
    position: absolute;
    left: 12px;
    top: 50%;
    width: 10px;
    height: 1px;
    background: var(--su-line);
}

/* Caret expand */
.btn-expand-sub,
.btn-expand-sub-placeholder {
    width: 14px;
    height: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex-shrink: 0;
    border-radius: 3px;
    color: var(--su-fg-mute);
}

.btn-expand-sub svg {
    transition: transform .15s;
}

.btn-expand-sub.atv svg {
    transform: rotate(90deg);
}

.btn-expand-sub:hover {
    background: var(--su-border-soft);
    color: var(--su-fg-soft);
}

.btn-expand-sub-placeholder {
    cursor: default;
}

/* Status - reusa o componente .st-icon do projeto.
   Override compacto para caber numa row de 36px (mesmas dimensoes da listagem). */
.sub-status-box.st-icon {
    cursor: pointer;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .12s;
    width: 18px;
    height: 18px;
}

.sub-status-box.st-icon .st {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1.5px dotted;
    box-sizing: border-box;
    position: relative;
    padding: 1.5px;
}

.sub-status-box.st-icon .circle {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.sub-status-box.st-icon svg {
    width: 9px;
    height: 9px;
    fill: #fff;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.sub-status-box.st-icon:hover {
    transform: scale(1.08);
}

.tarefa-sub-row.is-concluida .ttl {
    text-decoration: line-through;
    color: var(--su-fg-mute);
}

/* Titulo */
.tarefa-sub-row .ttl-wrap {
    flex: 1;
    min-width: 0;
    overflow: hidden;
}

.tarefa-sub-row .ttl {
    cursor: pointer;
    color: var(--su-fg);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 8px 0;
    font-weight: 400;
    line-height: 20px;
    font-size: 13px;
}

.tarefa-sub-row .ttl:hover {
    color: var(--su-accent);
}

/* ---- Acoes a direita (pills + menu) ---- */

.sub-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 22px;
    padding: 0 6px;
    border-radius: 4px;
    font-size: 12px;
    color: var(--su-fg-soft);
    transition: background .1s, color .1s, opacity .1s;
    cursor: pointer;
    line-height: 1;
    font-weight: 500;
}

/* Empty: APENAS icone outline; invisivel por padrao, opacidade no hover */
.sub-pill.empty {
    background: transparent;
    color: var(--su-fg-mute);
    width: 22px;
    padding: 0;
    justify-content: center;
    opacity: 0;
}

.tarefa-sub-row:hover .sub-pill.empty {
    opacity: 1;
}

.sub-pill.empty:hover {
    background: #f0f1f4;
    color: var(--su-fg-soft);
}

.sub-pill.filled {
    background: transparent;
    color: #374151;
    padding: 0 6px;
}

.sub-pill.filled:hover {
    background: #f0f1f4;
}

.sub-pill.sub-pill-mbs.filled {
    background: transparent;
    padding: 0;
}

.sub-pill svg {
    flex-shrink: 0;
}

/* Menu tres pontinhos */
.tarefa-sub-row .menu-sub {
    cursor: pointer;
    width: 22px;
    height: 22px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity .12s, background .12s;
    position: relative;
    color: var(--su-fg-mute);
}

.tarefa-sub-row:hover .menu-sub {
    opacity: .7;
}

.tarefa-sub-row .menu-sub:hover {
    background: var(--su-border-soft);
    opacity: 1;
    color: var(--su-fg-soft);
}

.add-sub-row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border-radius: 4px;
    color: var(--su-fg-soft);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background .1s, color .1s;
    width: fit-content;
}

.add-sub-row svg {
    color: inherit;
    width: 12px;
    height: 12px;
}

.add-sub-row:hover {
    background: var(--su-bg-hover);
    color: var(--su-fg);
}

.cu-composer {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 4px 6px 4px 12px;
    background: #ffffff;
    border: 1px solid #d9dce1;
    border-radius: 6px;
    box-shadow: none;
    margin: 6px 0;
    transition: border-color .12s, box-shadow .12s;
    font-family: -apple-system, "Inter", "Segoe UI", system-ui, sans-serif;
}

.cu-composer:focus-within {
    border-color: var(--su-accent);
    box-shadow: 0 0 0 3px var(--su-accent-soft);
}

.cu-composer .composer-status {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1.5px dashed #b5b9c1;
    flex-shrink: 0;
}

.cu-composer .composer-input {
    flex: 1;
    border: none;
    outline: none;
    background: transparent;
    font-size: 13px;
    line-height: 20px;
    color: var(--su-fg);
    padding: 8px 0;
}

.cu-composer .composer-input::placeholder {
    color: #9ca3af;
}

.cu-composer .composer-actions {
    display: flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.cu-composer .ca-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 28px;
    padding: 0 12px;
    border-radius: 6px;
    background: transparent;
    border: none;
    color: var(--su-fg-soft);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background .12s, color .12s;
    line-height: 1;
}

.cu-composer .ca-btn[data-act] {
    width: 28px;
    padding: 0;
    color: var(--su-fg-soft);
}

.cu-composer .ca-btn[data-act]:hover {
    background: #f0f1f4;
    color: var(--su-fg);
}

.cu-composer .ca-cancel {
    color: var(--su-fg-soft);
    padding: 0 12px;
}

.cu-composer .ca-cancel:hover {
    background: var(--su-bg-hover);
    color: var(--su-fg);
}

.cu-composer .ca-salvar {
    background: var(--su-accent);
    color: #fff;
    padding: 0 14px;
    display: inline-flex;
    gap: 6px;
    font-weight: 600;
}

.cu-composer .ca-salvar:hover {
    background: #6f5be6;
    color: #fff;
}

.cu-composer .ca-salvar .kbd {
    background: rgba(255, 255, 255, .18);
    padding: 0 5px;
    border-radius: 3px;
    font-size: 11px;
    font-weight: 500;
}

/* Dropdown menu da subtarefa */
.dropdown-subtarefa {
    position: absolute;
    right: 0;
    top: 100%;
    background: #fff;
    border: 1px solid var(--su-border);
    border-radius: 6px;
    box-shadow: 0 6px 18px #0000001a;
    min-width: 220px;
    z-index: 10000;
    padding: 4px;
    font-size: 13px;
}

.dropdown-subtarefa .opt {
    cursor: pointer;
    padding: 8px 12px;
    border-radius: 4px;
    color: var(--su-fg);
}

.dropdown-subtarefa .opt:hover {
    background: var(--su-bg-hover);
}

.dropdown-subtarefa .opt-excluir {
    color: #e53935;
}

/* ---- Listagem global (tabela) ---- */
tr.tarefa-sub-row-tr {
    background: #fafbfc;
}

tr.tarefa-sub-row-tr td {
    font-size: 13px;
    color: #4a505c;
}

tr.tarefa-sub-row-tr .titulo {
    position: relative;
}

tr.tarefa-sub-row-tr[data-nivel="1"] .titulo {
    padding-left: 12px;
    margin-left: 22px;
    border-left: 2px solid var(--su-line, #d6dae0);
}

tr.tarefa-sub-row-tr[data-nivel="2"] .titulo {
    padding-left: 12px;
    margin-left: 44px;
    border-left: 2px solid var(--su-line, #d6dae0);
}

tr.tarefa-sub-row-tr .status-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    display: inline-block;
}

tr.tarefa-sub-row-tr.is-concluida-row .titulo {
    text-decoration: line-through;
    color: #9aa0a6;
}

tr.tarefa-sub-row-tr .sub-status-box {
    margin-left: 8px;
}

tr.tarefa-add-sub-tr,
tr.tarefa-add-sub-tr:hover {
    background: transparent;
}

tr.tarefa-add-sub-tr td {
    padding: 4px 8px;
}

tr.tarefa-add-sub-tr .add-sub-row {
    padding: 6px 10px;
}

/* Composer: spinner inline durante save */
.cu-composer .composer-spinner {
    width: 16px;
    height: 16px;
    border: 2px solid #d6dae0;
    border-top-color: var(--su-accent, #7b68ee);
    border-radius: 50%;
    animation: su-spin .8s linear infinite;
    margin-right: 4px;
}

@keyframes su-spin {
    to {
        transform: rotate(360deg);
    }
}

.cu-composer .ca-btn[data-act].filled {
    background: var(--su-accent-soft, #7b68ee22);
    color: var(--su-accent, #7b68ee);
}

/* Picker overlay (data, prioridade, status, membros) */
.picker-overlay {
    position: absolute;
    z-index: 100000;
    background: #fff;
    border: 1px solid var(--su-border, #e6e8eb);
    border-radius: 6px;
    box-shadow: 0 8px 24px rgba(15, 17, 21, .08), 0 2px 6px rgba(15, 17, 21, .04);
    padding: 4px;
    min-width: 220px;
    max-width: 320px;
    max-height: 380px;
    overflow-y: auto;
    animation: su-fadeIn .12s ease-out;
}

@keyframes su-fadeIn {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.picker-status-lst,
.picker-prio-lst,
.picker-mbs-lst {
    display: flex;
    flex-direction: column;
}

.picker-status-item,
.picker-prio-item,
.picker-mbs-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
}

.picker-status-item:hover,
.picker-prio-item:hover,
.picker-mbs-item:hover {
    background: #f4f5f8;
}

.picker-status-item .dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    flex-shrink: 0;
}

.picker-prio-item .ic {
    width: 10px;
    height: 10px;
    border-radius: 2px;
    flex-shrink: 0;
}

.picker-mbs-item .thumb {
    width: 26px;
    height: 26px;
    border-radius: 50%;
}

.picker-mbs-item.atv {
    background: #eef0ff;
}

.picker-mbs-item.atv::after {
    content: '\2713';
    margin-left: auto;
    color: var(--su-accent, #7b68ee);
    font-weight: 600;
}

.picker-mbs-search {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #e6e8ec;
    border-radius: 6px;
    font-size: 13px;
    outline: none;
    margin-bottom: 6px;
}

.picker-mbs-search:focus {
    border-color: var(--su-accent, #7b68ee);
}

/* Estados do picker de responsaveis: a lista vem do servidor (escopada por
   espaco + lista), entao existe um instante de carregamento e o caso de
   ninguem ter acesso a lista. */
.picker-mbs-load,
.picker-mbs-vazio {
    padding: 10px;
    font-size: 12.5px;
    line-height: 16px;
    text-align: center;
    opacity: .55;
    min-width: 180px;
}

.picker-data-input {
    width: 100%;
    min-width: 240px;
}

.picker-overlay .flatpickr-calendar {
    box-shadow: none;
}

/* Status cycle animation */
.sub-status-box.status-pop {
    animation: su-pop .25s cubic-bezier(.34, 1.56, .64, 1);
}

@keyframes su-pop {
    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.22);
    }

    100% {
        transform: scale(1);
    }
}

.tarefa-sub-row .sub-pill[class*="sub-pill-"] {
    cursor: pointer;
}

.sub-bulk-check {
    width: 14px;
    height: 14px;
    margin: 0 4px;
    flex-shrink: 0;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity .12s;
}

.tarefa-sub-row:hover .sub-bulk-check,
.sub-bulk-check input:checked {
    opacity: 1;
}

.sub-bulk-check input {
    width: 14px;
    height: 14px;
    cursor: pointer;
    accent-color: var(--su-accent, #7b68ee);
}

/* Sortable placeholder (drag drop) */
.sortable-placeholder {
    background: #f0f2ff !important;
    border: 2px dashed var(--su-accent, #7b68ee) !important;
    border-radius: 6px;
    min-height: 38px;
    margin: 2px 0;
}

.subtarefa-sidebar {
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
    width: 300px;
    background: #fff;
    border-right: 1px solid var(--su-border, #e6e8eb);
    box-shadow: 2px 0 8px rgba(15, 17, 21, .04);
    z-index: 100001;
    display: flex;
    flex-direction: column;
    animation: su-slideRight .2s ease-out;
}

@keyframes su-slideRight {
    from {
        transform: translateX(-100%);
    }

    to {
        transform: translateX(0);
    }
}

.subtarefa-sidebar .ss-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    border-bottom: 1px solid #e6e8ec;
}

.subtarefa-sidebar .ss-hdr .ttl {
    font-size: 13px;
    font-weight: 600;
    color: #1f2329;
    flex: 1;
}

.subtarefa-sidebar .ss-close {
    width: 24px;
    height: 24px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    cursor: pointer;
    color: #6b7280;
    font-size: 18px;
}

.subtarefa-sidebar .ss-close:hover {
    background: #f4f5f8;
    color: #1f2329;
}

.subtarefa-sidebar .ss-body {
    flex: 1;
    overflow-y: auto;
    padding: 8px;
}

.subtarefa-sidebar .ss-loading,
.subtarefa-sidebar .ss-empty {
    text-align: center;
    padding: 40px 20px;
    color: #6b7280;
    font-size: 13px;
}

.subtarefa-sidebar .ss-resizer {
    position: absolute;
    top: 0;
    right: -3px;
    bottom: 0;
    width: 6px;
    cursor: col-resize;
    z-index: 1;
}

.subtarefa-sidebar .ss-resizer:hover {
    background: var(--su-accent-soft, #7b68ee22);
}

body.resizing-sidebar {
    cursor: col-resize;
    user-select: none;
}

.ss-node {
    margin: 2px 0;
}

.ss-node-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    padding-left: calc(8px + var(--lvl, 0) * 16px);
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    transition: background .12s;
}

.ss-node-row:hover {
    background: #f4f5f8;
}

.ss-node.atv>.ss-node-row {
    background: var(--su-accent-soft, #7b68ee22);
    color: var(--su-accent, #7b68ee);
    font-weight: 500;
}

.ss-node .ss-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    flex-shrink: 0;
}

.ss-node .ss-tit {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* O botao "arvore" e uma acao do cabecalho como qualquer outra: quadrado,
   medida, cor e hover vem de .t-sec-acao (bloco do cabecalho padrao). O SVG
   dele ja traz fill="none" stroke="currentColor" na propria marcacao. */

/* Bulk toolbar flutuante */
.bulk-toolbar {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    background: #1d1f23;
    color: #fff;
    border-radius: 8px;
    padding: 6px 8px 6px 14px;
    display: flex;
    align-items: center;
    gap: 12px;
    box-shadow: 0 8px 24px rgba(15, 17, 21, .18), 0 2px 6px rgba(15, 17, 21, .12);
    z-index: 100002;
    animation: su-slideUp .2s ease-out;
}

@keyframes su-slideUp {
    from {
        transform: translate(-50%, 40px);
        opacity: 0;
    }

    to {
        transform: translate(-50%, 0);
        opacity: 1;
    }
}

.bulk-toolbar .bt-count {
    font-size: 12px;
    padding: 0;
    background: transparent;
    color: #cfd2d6;
    letter-spacing: .2px;
}

.bulk-toolbar .bt-count .num {
    font-weight: 600;
    color: #fff;
}

.bulk-toolbar .bt-actions {
    display: flex;
    gap: 2px;
    border-left: 1px solid #ffffff14;
    padding-left: 8px;
}

.bulk-toolbar .bt-opt {
    background: transparent;
    border: none;
    color: #e6e8eb;
    padding: 6px 10px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.bulk-toolbar .bt-opt:hover {
    background: #ffffff14;
}

.bulk-toolbar .bt-danger:hover {
    background: #e5393533;
    color: #ff7b75;
}

.bulk-toolbar .bt-cancel {
    opacity: .7;
}

/* Foco visivel em linha (atalhos teclado) */
.tarefa-sub-row:focus,
.tarefa-sub-row:focus-visible {
    outline: 2px solid var(--su-accent-soft, #7b68ee22);
    outline-offset: -2px;
    background: var(--su-bg-hover, #f4f5f8);
}

/* Wrapper de status + caret na coluna esquerda */
.cu-row .cu-row-status-wrap {
    display: flex;
    align-items: center;
    gap: 4px;
    padding-left: 0px;
}

/* Indent visual da subtarefa (deslocamento via CSS var) */
.cu-row .cu-row-indent {
    width: var(--cu-indent, 0px);
    flex-shrink: 0;
    align-self: stretch;
    position: relative;
}

.cu-row-caret,
.cu-row-caret-placeholder {
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    cursor: pointer;
    color: #6b7280;
    border-radius: 4px;
    transition: background .1s, color .1s, transform .15s;
}

.cu-row-caret svg {
    transition: transform .15s;
}

.cu-row-caret.atv svg {
    transform: rotate(90deg);
}

.cu-row-caret:hover {
    background: #8c8c8c40;
}

/* Tarefas SEM subtarefas: caret so aparece em hover na linha (estilo ClickUp).
   Mantem o espaco reservado (visibility/width) pra alinhamento ficar identico. */
.cu-row-caret.no-sub {
    opacity: 0;
    transition: opacity 0.12s;
}

.cu-row:hover .cu-row-caret.no-sub {
    opacity: 1;
}

.cu-row-caret-placeholder {
    cursor: default;
    pointer-events: none;
}

/* Wrapper do titulo */
.cu-row .cu-row-title-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    position: relative;
    padding-left: 10px;
}

.cu-row .cu-row-title {
    font-weight: 400;
}

/* Subtarefas (TR indentada): sem background azulado, hover sutil */
tr.tarefa-sub-row-tr {
    background: transparent;
}

tr.tarefa-sub-row-tr:hover {
    background: #f4f5f7;
}

/* Indicadores da linha: encadeamento de subtarefas e conteudos vinculados.
   Mesmo peso visual - sao dois "o que esta tarefa contem", monocromaticos. */
.cu-subtask-chain,
.cu-content-chain {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 2px 6px;
    border-radius: 4px;
    background: transparent;
    color: #6b7280;
    font-size: 11px;
    font-weight: 500;
    cursor: pointer;
    transition: background .12s, color .12s;
    line-height: 1;
}

.cu-subtask-chain:hover,
.cu-content-chain:hover {
    background: #f0f1f4;
    color: #1f2937;
}

.cu-subtask-chain .num,
.cu-content-chain .num {
    font-weight: 600;
}

/* No card do quadro o chip e filho direto do item (nao existe .cu-row-title-wrap
   para dar o espacamento), entao ganha a margem aqui. */
.conteudo-item.tarefa>.cu-content-chain {
    margin: 4px 0 2px;
    padding-left: 0;
}

.cu-row-hover-actions {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    margin-left: 8px;
    opacity: 0;
    transition: opacity .12s;
}

.cu-row:hover .cu-row-hover-actions {
    opacity: 1;
}

.cu-hover-btn {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    color: #6b7280;
    cursor: pointer;
    padding: 0;
    transition: background .1s, color .1s, border-color .1s;
    background: none;
}

.cu-hover-btn:hover {
    border-color: #d9dce1;
}

/* Linha conectora vertical estilo ClickUp (entre filha e pai) */
tr.tarefa-sub-row-tr[data-nivel="1"] .cu-row-indent::after,
tr.tarefa-sub-row-tr[data-nivel="2"] .cu-row-indent::after {
    content: "";
    position: absolute;
    left: 12px;
    top: 0;
    bottom: 0;
    width: 1px;
    background: #e1e4e8;
    display: none;
}

/* Add-sub row na tabela: ghost button limpo */
tr.tarefa-add-sub-tr {
    background: transparent !important;
}

tr.tarefa-add-sub-tr td {
    padding: 2px 0;
    border: none;
}

tr.tarefa-add-sub-tr:hover {
    background: transparent !important;
}

tr.tarefa-add-sub-tr .add-sub-row {
    padding: 4px 10px;
    font-size: 12px;
    color: #6b7280;
    margin: 2px 0 4px 0;
}

/* Remove o chip "X/Y" legado na listagem (agora usamos cu-subtask-chain) */
table.table-01 .tarefa-progress-count {
    display: none;
}

/* =========================================================================
   LISTAGEM DE TAREFAS - ClickUp 3.0 (.cu-list / .cu-row em CSS Grid)
   Substitui <table class="table-01"> em itemConteudoEstruturaListagemTarefa.
   Trilho de colunas vive em --cu-cols, compartilhado entre head, tarefa raiz
   e subtarefas (sem subgrid, garantindo alinhamento perfeito).
   ========================================================================= */
.cu-list {
    --cu-cols: minmax(280px, 1fr) 100px 160px 180px 160px;
    display: block;
    background: #fff;
    border-radius: 4px;
    overflow: visible;
}

.cu-list-head,
.cu-row {
    display: grid;
    grid-template-columns: var(--cu-cols);
    align-items: center;
}

.cu-list-head {
    position: sticky;
    top: 34px;
    z-index: 3;
    background: #fff;
    border-bottom: 1px solid var(--color-border, #e8eaed);
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
}

.cu-list-head .cu-cell {
    padding: 10px 12px;
    font-size: 10px;
    font-weight: 600;
    color: #6b7280;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    line-height: 1;
    background: transparent;
}

.cu-list-head .cu-cell-title {
    padding-left: 2px;
}

.cu-list-body {
    display: block;
}

.cu-row {
    position: relative;
    border-top: 1px solid var(--color-border, #eef0f3);
    cursor: pointer;
    transition: background 0.12s ease;
    min-height: 36px;
}

.cu-row:hover {
    background: #f7f8fa;
}

.cu-row .cu-cell {
    padding: 6px 12px;
    font-size: 13px;
    font-weight: 400;
    color: #444;
    min-width: 0;
    /* Nao usamos flex no .cu-cell generico - o formatarDataPersonalizada3 retorna
       texto + <span> da hora, e flex transforma cada um em flex-item com gaps
       indesejados. As celulas especificas que precisam de flex (.cu-cell-title)
       declaram explicitamente. */
    display: block;
    line-height: 28px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cu-row .cu-cell-title {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-left: 0px;
    min-width: 0;
    line-height: normal;
}

.cu-row .cu-cell-title .cu-row-status-wrap {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex-shrink: 0;
}

.cu-row .cu-cell-title .cu-row-title-wrap {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    flex: 1 1 auto;
    padding-left: 4px;
}

.cu-row .cu-row-title {
    color: #1f2937;
    font-size: 13px;
    line-height: 20px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

/* Datas / membros / prioridade alinhados como no ClickUp */
.cu-row .cu-cell-dt-ini,
.cu-row .cu-cell-dt-fim {
    color: #6b7280;
    font-size: 12px;
}

.cu-row .cu-cell-dt-fim.alerta {
    color: #d23838;
}

.cu-row .cu-cell-dt-fim .inf-dt {
    display: inline-block;
    margin-left: 6px;
    font-size: 10px;
    font-weight: 400;
    opacity: 0.65;
    line-height: 1;
    vertical-align: middle;
}

/* Span da hora ", 15:30" dentro do formatarDataPersonalizada3 - mantem inline natural */

.cu-row .cu-cell-dt-fim .inf-dt.vencido {
    color: #d23838;
    opacity: 0.85;
}

.cu-row .cu-cell-prio .prioridade-box {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 12px;
    vertical-align: middle;
}

.cu-row .cu-cell-membros {
    line-height: 1;
    padding-top: 4px;
    padding-bottom: 4px;
}

.cu-row .cu-cell-membros .lst-membros-all {
    float: none;
    padding: 0;
    display: inline-flex;
    vertical-align: middle;
}

/* Placeholder vazio alinhado verticalmente com a linha do grid (28px line-height) */
.cu-empty-ph {
    vertical-align: middle;
}

/* Subtarefa: hover mais sutil + titulo com peso normal */
.cu-row.tarefa-sub-row {
    cursor: pointer;
}

.cu-row.tarefa-sub-row .cu-row-title {
    font-weight: 400;
    color: #2a3340;
}

.cu-row.tarefa-sub-row.is-concluida-row .cu-row-title {
    text-decoration: line-through;
    color: #9aa3b2;
}

/* Linha-guia vertical conectora entre subtarefa e pai (ClickUp tree) */
.cu-row.tarefa-sub-row[data-nivel="1"] .cu-row-indent::after,
.cu-row.tarefa-sub-row[data-nivel="2"] .cu-row-indent::after,
.cu-row.cu-row-addsub[data-nivel="1"] .cu-row-indent::after,
.cu-row.cu-row-addsub[data-nivel="2"] .cu-row-indent::after {
    display: block;
    left: 10px;
    width: 1px;
    background: #d6dae0;
}

/* Add-sub row (full-width via grid-column 1/-1) */
.cu-row.cu-row-addsub {
    border-top: 0;
    cursor: default;
    min-height: 0;
    padding-left: 17px;
    border-top: 1px solid var(--color-border, #eef0f3);
}

.cu-row.cu-row-addsub:hover {
    background: transparent;
}

.cu-row.cu-row-addsub .cu-cell {
    padding: 2px 8px;
}

.cu-row.cu-row-addsub .add-sub-row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0px;
    border-radius: 4px;
    font-size: 12px;
    color: #6b7280;
    cursor: pointer;
    transition: background 0.1s, color 0.1s;
}

.cu-row.cu-row-addsub .input-nova-subtarefa-tabela {
    margin-left: 6px;
    padding: 4px 8px;
    border: 1px solid #cfd4db;
    border-radius: 4px;
    font-size: 12px;
    width: 320px;
    outline: none;
}

.cu-row.cu-row-addsub .input-nova-subtarefa-tabela:focus {
    border-color: #7b68ee;
    box-shadow: 0 0 0 2px rgba(123, 104, 238, 0.15);
}

/* Atualiza o trilho de colunas em telas mais estreitas - esconde colunas menos criticas */
@media (max-width: 1100px) {
    .cu-list {
        --cu-cols: minmax(240px, 1fr) 90px 140px 160px;
    }

    .cu-list-head .cu-cell:nth-child(5),
    .cu-row>.cu-cell-membros {
        display: none;
    }
}

@media (max-width: 820px) {
    .cu-list {
        --cu-cols: minmax(200px, 1fr) 140px;
    }

    .cu-list-head .cu-cell:nth-child(2),
    .cu-list-head .cu-cell:nth-child(3),
    .cu-row>.cu-cell-prio,
    .cu-row>.cu-cell-dt-ini {
        display: none;
    }
}

/* =========================================================================
   EDIT INLINE - celulas clicaveis (.cu-cell-edit) + placeholders (.cu-empty-ph)
   Cada celula com data-edit="..." abre um picker do modulo Subtarefa.
   Empty-state: icone discreto, visivel em hover. Filled: conteudo normal.
   ========================================================================= */
.cu-row .cu-cell-edit {
    cursor: pointer;
    border-radius: 4px;
    transition: background 0.1s;
    position: relative;
}

.cu-row .cu-cell-edit:hover {
    background: #eef0f3;
    box-shadow: inset 0 0 0 1px #d6dae0;
}

.cu-row .cu-cell-edit.is-empty {
    color: #9aa3b2;
}

/* Botao X que aparece a direita da celula preenchida no hover - estilo ClickUp.
   Posicionado absolute pra nao empurrar o conteudo da celula. */
.cu-row .cu-cell-edit .cu-cell-clear {
    position: absolute;
    right: 6px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.06);
    border: none;
    border-radius: 50%;
    color: #6b7280;
    cursor: pointer;
    opacity: 0;
    transition: opacity 0.12s, background 0.12s, color 0.12s;
    padding: 0;
    line-height: 1;
    z-index: 1;
}

.cu-row .cu-cell-edit:hover .cu-cell-clear {
    opacity: 1;
}

.cu-row .cu-cell-edit .cu-cell-clear:hover {
    background: #d23838;
    color: #fff;
}

/* Reserva espaco a direita pra o X nao cobrir texto longo */
.cu-row .cu-cell-edit:hover .cu-cell-val {
    padding-right: 22px;
    transition: padding 0.1s;
}

.cu-empty-ph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    color: #b6bcc6;
    opacity: 0;
    transition: opacity 0.12s, color 0.12s;
}

.cu-row:hover .cu-empty-ph,
.cu-row .cu-cell-edit:hover .cu-empty-ph {
    opacity: 1;
}

.cu-row .cu-cell-edit:hover .cu-empty-ph {
    color: #1f2937;
}

/* Pequeno realce da celula de status (sub-status-box) quando clicavel */
.cu-row .sub-status-box {
    cursor: pointer;
    transition: transform 0.08s;
}

.cu-row .sub-status-box:hover {
    transform: scale(1.08);
}

/* =========================================================================
   COMPOSER INLINE para "+ Adicionar subtarefa" (.cu-composer-inline)
   Layout: input flexivel + chips a direita + cancelar + salvar (botao primario).
   ========================================================================= */
/* Composer parece uma linha (.cu-row) da listagem - sem pill, sem border-radius.
   Status circle dashed a esquerda (no mesmo lugar dos status circles das tarefas),
   input transparente ocupa o espaco do titulo, chips icon-only a direita, depois
   Cancelar e Salvar. O foco no input mostra um sutil outline pra indicar atividade. */
.cu-row.cu-row-addsub .cu-composer-inline,
.cu-row.cu-row-addtask .cu-composer-inline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    width: 100%;
    padding: 4px 8px;
    background: transparent;
    border: 0;
    border-radius: 0;
    margin: 0;
    min-height: 36px;
}

/* Status circle dashed - mesma posicao e tamanho que o anel de status real */
.cu-composer-status-placeholder {
    flex-shrink: 0;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px dotted #b6bcc6;
    margin-left: 0;
}

/* Input do composer: transparente, sem borda, indistinguivel do titulo de uma tarefa */
.cu-composer-inline .cu-composer-input {
    padding: 4px 4px;
    font-weight: 500;
}

.cu-composer-inline .cu-composer-input:focus {
    background: transparent;
}

/* Foco visual da linha-composer: borda sutil so na linha inteira pra sinalizar
   que esta em modo de edicao (em vez de pill ao redor do composer) */

/* "+ Adicionar tarefa" no fim de cada status group (estilo ClickUp inline).
   Estrutura e uma .cu-row de verdade (grid 5 colunas) com cu-cell-title contendo
   o status-wrap + add-task-row - assim o "+" alinha visualmente com o caret/status
   das tarefas da listagem. */
.cu-row.cu-row-addtask {
    border-top: 0;
    cursor: default;
    min-height: 0;
}

.cu-row.cu-row-addtask:hover {
    background: transparent;
}

.cu-row.cu-row-addtask .cu-cell {
    padding: 4px 0px;
    border-top: 0;
}

.cu-row.cu-row-addtask .add-task-row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0px;
    border-radius: 4px;
    font-size: 12px;
    color: #6b7280;
    cursor: pointer;
    transition: background 0.1s, color 0.1s;
}

.cu-composer-inline .cu-composer-input {
    flex: 1 1 auto;
    min-width: 160px;
    padding: 0px 5px;
    border: none;
    background: transparent;
    font-size: 13px;
    color: #1f2937;
    outline: none;
}

.cu-composer-inline .cu-composer-input::placeholder {
    color: #9aa3b2;
}

.cu-composer-inline .cu-composer-spacer {
    flex: 0 0 auto;
    width: 4px;
}

/* Container dos chips - agrupa visualmente num bloco com fundo cinza-claro (estilo ClickUp toolbar) */
.cu-composer-inline .cu-composer-chips {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    background: #f5f6f8;
    border-radius: 6px;
}

/* Chips no estilo ClickUp: quadrado-arredondado branco com borda sutil. NAO pilula. */
.cu-composer-inline .cu-comp-chip {
    min-width: 26px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    background: #ffffff;
    border: 1px solid #e1e4e8;
    border-radius: 4px;
    color: #6b7280;
    cursor: pointer;
    padding: 0 5px;
    transition: background 0.1s, color 0.1s, border-color 0.1s, box-shadow 0.1s;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
}

.cu-composer-inline .cu-comp-chip:hover {
    background: #f5f6f8;
    color: #1f2937;
    border-color: #b6bcc6;
}

/* Chip preenchido - mantem aparencia similar mas com leve realce */
.cu-composer-inline .cu-comp-chip.filled {
    background: #ffffff;
    color: #1f2937;
    border-color: #d6dae0;
    padding: 0 8px 0 5px;
    box-shadow: 0 1px 0 rgba(0, 0, 0, 0.02);
}

.cu-composer-inline .cu-comp-chip .chip-label {
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    color: inherit;
}

/* Avatares dentro do chip de pessoas: pequenos, sobrepostos */
.cu-composer-inline .cu-comp-chip .chip-avatars {
    display: inline-flex;
    align-items: center;
}

.cu-composer-inline .cu-comp-chip .chip-avatars .thumb-user {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    margin-left: -4px;
    background-size: cover;
    background-position: center;
    border: 2px solid #fff;
    box-shadow: 0 0 0 1px #d6dae0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 9px;
    font-weight: 600;
    background-color: #6b7280;
}

.cu-composer-inline .cu-comp-chip .chip-avatars .thumb-user:first-child {
    margin-left: 0;
}

.cu-composer-inline .cu-comp-chip .chip-mais {
    margin-left: 4px;
    font-size: 10px;
    font-weight: 600;
    color: #6b7280;
}

.cu-composer-inline .cu-comp-cancel {
    background: transparent;
    border: none;
    color: #6b7280;
    font-size: 12px;
    font-weight: 500;
    padding: 0px 10px;
    border-radius: 4px;
    cursor: pointer;
}

.cu-composer-inline .cu-comp-cancel:hover {
    background: #eef0f3;
    color: #1f2937;
}

/* =========================================================================
   BOTAO PRIMARIO DO SISTEMA - fundo preto, texto branco (light)
   Aplicado a .cu-comp-save e a qualquer outro .btn-primary-system.
   Dark mode inverte (ver dark.css).
   ========================================================================= */
.btn-primary-system,
.cu-composer-inline .cu-comp-save {
    background: #000;
    color: #fff;
    border: none;
    padding: 0px 9px;
    border-radius: 4px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.1s, transform 0.05s;
    letter-spacing: 0.01em;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    line-height: 23px;
}

/* Indicador de atalho  ao lado do "Salvar" - estilo ClickUp */
.cu-composer-inline .cu-comp-save .cu-kbd {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    background: rgba(255, 255, 255, 0.18);
    border-radius: 3px;
    color: #fff;
    padding: 0;
}

.btn-primary-system:hover,
.cu-composer-inline .cu-comp-save:hover {
    background: #1a1a1a;
}

.btn-primary-system:active,
.cu-composer-inline .cu-comp-save:active {
    transform: scale(0.97);
}

.btn-primary-system:disabled,
.cu-composer-inline .cu-comp-save:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* =========================================================================
   .cu-list-popup - variante compacta para dentro do popup de tarefa.
   Mesmo padrao da listagem principal, mas com colunas mais estreitas e
   suporte aos elementos extras do popup (bulk-check, drag-handle).
   ========================================================================= */
.cu-list-popup {
    /* 5 colunas iguais a listagem principal - popup mais compacto */
    --cu-cols: minmax(180px, 1fr) 80px 110px 110px 90px;
    background: transparent;
}

.cu-list-popup .cu-row {
    /* Forca grid mesmo na presenca do legado .tarefa-sub-row.cu { display:flex } */
    display: grid;
    grid-template-columns: var(--cu-cols);
    align-items: center;
    gap: 0;
    padding: 0 8px;
    border-top: 0;
    border-bottom: 1px solid var(--color-border, #eef0f3);
    min-height: 34px;
}

.cu-list-popup .cu-row:last-child {
    border-bottom: 0;
}

/* Bulk check + drag handle ficam a esquerda do status, invisiveis por padrao,
   visiveis em hover (estilo ClickUp). */
.cu-list-popup .sub-bulk-check {
    display: inline-flex;
    align-items: center;
    margin: 0 2px 0 0;
    opacity: 0;
    transition: opacity 0.12s;
    cursor: pointer;
}

.cu-list-popup .sub-bulk-check input {
    width: 14px;
    height: 14px;
    margin: 0;
    cursor: pointer;
}

.cu-list-popup .drag-handle {
    display: inline-flex;
    align-items: center;
    color: #b6bcc6;
    cursor: grab;
    opacity: 0;
    transition: opacity 0.12s;
    margin-right: 2px;
}

.cu-list-popup .cu-row:hover .sub-bulk-check,
.cu-list-popup .cu-row:hover .drag-handle,
.cu-list-popup .sub-bulk-check input:checked {
    opacity: 1;
}

/* No popup as colunas sao mais densas - reduzimos um pouco fontes */
.cu-list-popup .cu-cell {
    font-size: 10px;
    padding: 4px 8px;
    line-height: 24px;
}

.cu-list-popup .cu-cell-title {
    padding-left: 4px;
    gap: 4px;
}

.cu-list-popup .cu-row-title {
    font-size: 13px;
    font-weight: 400;
}

/* Linha "+ Adicionar subtarefa" dentro do popup (.add-sub-row tradicional) */
.subtarefas-section.cu .cu-list-popup+.add-sub-row.btn-add-subtarefa {
    margin-top: 6px;
}

.btn-primary-system,
.cu-composer-inline .cu-comp-save .cu-save-txt {
    color: var(--color-btn-text-01);
}

.cu-row-addtask .cu-composer-inline {
    padding-left: 0px !important;
    gap: 5px !important;
}

.cu-row-addtask .cu-cell-title {
    border-top: 1px solid var(--color-border, #eef0f3) !important;
}

.fancybox__slide {
    padding: 25px !important;
}

.cu-cell-prio .st-icon {
    width: 13px;
}

.cu-cell-prio .selecionado {
    display: flex;
    align-items: center;
    gap: 5px;
}

/* ============================================================
   Background esmaecido no topo (tema IA) - reutilizavel
   Basta adicionar a classe .bg-ia-top em qualquer container
   relativo para ele ganhar uma aura suave concentrada no topo,
   no mesmo espirito da hero do site airpost.com.br.
   ============================================================ */
.bg-ia-top {
    position: relative;
    overflow: hidden;
}

/* Grade de quadradinhos bem fraca, esmaecida do topo para baixo (igual a hero) */
.bg-ia-top::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: linear-gradient(to right, rgba(0, 100, 224, .06) 1px, transparent 1px), linear-gradient(to bottom, rgba(0, 100, 224, .06) 1px, transparent 1px);
    background-size: 26px 26px;
    -webkit-mask-image: radial-gradient(ellipse 85% 60% at 50% 0%, #000 28%, transparent 72%);
    mask-image: radial-gradient(ellipse 85% 60% at 50% 0%, #000 28%, transparent 72%);
    pointer-events: none;
    z-index: 0;
}

/* Aura azul suave concentrada no topo */
.bg-ia-top::after {
    content: "";
    position: absolute;
    top: -130px;
    left: 50%;
    width: 520px;
    height: 300px;
    transform: translateX(-50%);
    background: radial-gradient(circle at 50% 0%, rgba(0, 100, 224, .16), transparent 70%), radial-gradient(circle at 72% 12%, rgba(34, 168, 224, .12), transparent 72%);
    filter: blur(52px);
    opacity: .85;
    pointer-events: none;
    z-index: 0;
}

.bg-ia-top>* {
    position: relative;
    z-index: 1;
}

/* ============================================================
   Popup "Aprimorar com IA" (dentro do #edit-popup-mini)
   ============================================================ */
.contant-ia-aprimorar {
    padding: 22px 20px 18px;
    width: 400px;
    max-width: 100%;
}

.contant-ia-aprimorar .ia-pop-head {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 16px;
}

.contant-ia-aprimorar .ia-pop-badge {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #0064e0, #22a8e0);
    box-shadow: 0 6px 16px rgba(0, 100, 224, .35);
}

.contant-ia-aprimorar .ia-pop-badge .ico-ia-estrelas {
    width: 22px;
    height: 22px;
    fill: #fff;
}

.contant-ia-aprimorar .ia-pop-head h4 {
    margin: 0;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-text);
}

.contant-ia-aprimorar .ia-pop-head p {
    margin: 3px 0 0;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--color-text);
    opacity: .55;
}

.contant-ia-aprimorar .ia-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 12px;
}

.contant-ia-aprimorar .ia-chip {
    padding: 6px 12px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg);
    color: var(--color-text);
    opacity: .85;
    cursor: pointer;
    font-size: 12.5px;
    transition: all .15s;
}

.contant-ia-aprimorar .ia-chip:hover {
    border-color: #9ec5f5;
    background: rgba(0, 100, 224, .08);
    color: #0064e0;
    opacity: 1;
}

.contant-ia-aprimorar .ia-instrucao {
    display: block;
    width: 100%;
    min-height: 86px;
    margin: 0;
    box-sizing: border-box;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 11px 13px;
    font-size: 14px;
    font-family: inherit;
    color: var(--color-text);
    background: var(--color-bg);
    resize: vertical;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}

.contant-ia-aprimorar .ia-instrucao::placeholder {
    color: var(--color-text);
    opacity: .4;
}

.contant-ia-aprimorar .ia-instrucao:focus {
    border-color: #0064e0;
    box-shadow: 0 0 0 3px rgba(0, 100, 224, .15);
}

.contant-ia-aprimorar .footer-ia {
    display: flex;
    gap: 8px;
    margin-top: 18px;
}

.contant-ia-aprimorar .footer-ia .btn-aprimorar-ia {
    flex: 1;
    background: linear-gradient(135deg, #0064e0, #22a8e0);
    color: #fff;
    text-align: center;
    padding: 11px;
    border-radius: 10px;
    cursor: pointer;
    font-weight: 600;
    box-shadow: 0 6px 18px rgba(0, 100, 224, .25);
    transition: .2s;
}

.contant-ia-aprimorar .footer-ia .btn-aprimorar-ia:hover {
    filter: brightness(1.05);
}

.contant-ia-aprimorar .footer-ia .btn-cancelar-ia {
    padding: 11px 16px;
    border-radius: 10px;
    cursor: pointer;
    text-align: center;
    color: var(--color-text);
    opacity: .7;
}

/* ===== Drill-down dos totais da dashboard (tab Mes) =====
   Todo total marcado com .dash-drill e clicavel e abre a lista de conteudos. */
.contant-dashboard-home .dash-drill {
    cursor: pointer;
    transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}

.contant-dashboard-home .dash-drill:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.08);
}

.contant-dashboard-home .item-status.dash-drill:hover {
    filter: brightness(0.98);
}

.contant-dashboard-home .progesso-tipos-item.dash-drill:hover,
.contant-dashboard-home .progesso-importancia-item.dash-drill:hover {
    background: var(--color-hover-01);
}

/* ===== Novo bloco: Resumo do mes (KPIs) - alinhamento por baseline ===== */
.contant-dashboard-home .dash-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
    margin: 4px 0 24px;
}

@media (max-width: 880px) {
    .contant-dashboard-home .dash-kpis {
        grid-template-columns: repeat(2, 1fr);
    }
}

.contant-dashboard-home .dash-kpi {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 18px 20px 16px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    transition: transform .12s ease, box-shadow .12s ease, border-color .12s ease;
}

.contant-dashboard-home .dash-kpi.dash-drill {
    cursor: pointer;
}

.contant-dashboard-home .dash-kpi.dash-drill:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 22px rgba(17, 24, 39, 0.08);
    border-color: #d7dbe2;
}

/* Linha 1: icone + rotulo - altura fixa para a baseline do numero ficar igual em todos */
.contant-dashboard-home .dash-kpi .k-top {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 32px;
    margin-bottom: 16px;
}

.contant-dashboard-home .dash-kpi .k-ico {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.contant-dashboard-home .dash-kpi .k-ico svg {
    width: 17px;
    height: 17px;
}

.contant-dashboard-home .dash-kpi .k-label {
    font-size: 13px;
    font-weight: 600;
    color: #6b7280;
    line-height: 1.2;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Linha 2: numero grande - mesma baseline em todos os cards */
.contant-dashboard-home .dash-kpi .k-valor {
    font-size: 30px;
    font-weight: 500;
    line-height: 1;
    color: var(--color-text-01);
    letter-spacing: -0.02em;
}

/* Linha 3: subtitulo - sempre presente (reserva altura) para igualar os cards */
.contant-dashboard-home .dash-kpi .k-sub {
    font-size: 12px;
    font-weight: 500;
    color: #9aa0ac;
    line-height: 1.3;
    margin-top: 7px;
    min-height: 16px;
}

.contant-dashboard-home .dash-kpi.k-alerta .k-ico {
    background: #fef2f2;
    color: #ef4444;
}

.contant-dashboard-home .dash-kpi.k-alerta.has-alerta .k-valor {
    color: #ef4444;
}

.contant-dashboard-home .dash-kpi.k-ok .k-ico {
    background: #ecfdf3;
    color: #16a34a;
}

.contant-dashboard-home .dash-kpi.k-info .k-ico {
    background: #eef2ff;
    color: #4f46e5;
}

.contant-dashboard-home .dash-kpi.k-neutro .k-ico {
    background: #f3f4f6;
    color: #6b7280;
}

/* ===== Modernizacao ClickUp dos blocos da dashboard (overrides visuais, sem mexer no layout) ===== */
.contant-dashboard-home .totais-group-box .item-box {
    border-radius: 14px;
    border-color: var(--color-border);
}

/* Cartoes de tipo: cantos mais suaves, sombra leve e alinhamento vertical do numero/label */

/* Lista de status: linhas alinhadas com cantos arredondados e hover sutil */

/* Itens de perfil: alinhamento e respiro modernos */
.contant-dashboard-home .totais-perfis .item {
    transition: background-color .12s ease;
}

.contant-dashboard-home .totais-perfis .item:hover {
    background: var(--color-hover-01);
}

/* Bloco de alertas: mesmo arredondamento dos cards */
.contant-dashboard-home .box2-lst-dash .box2-item {
    border-radius: 14px;
}

/* ============================================================
   DASHBOARD DE CONTEUDOS - passe de design (alinhamento + espacamento)
   Overrides previsiveis sobre o layout float legado, escopados no container.
   ============================================================ */
/* --- Cabecalho: padrao do sistema (barra fixa ~51px, titulo 18px/line-height 51px).
   NAO sobrescrever altura/titulo - so posicionar os filtros a direita, centralizados. --- */
.dashboard-header .totais-group-box-filtros {
    float: right;
    display: flex;
    align-items: center;
    gap: 10px;
    height: 51px;
    /* mesma altura do titulo -> header no padrao do sistema */
    padding: 0;
    border-radius: 0;
}

/* Periodo em "pill" alinhado */
.dashboard-header .totais-group-box-filtros .periodo {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 38px;
    padding: 0 8px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-bg);
}

.dashboard-header .totais-group-box-filtros .datepicker-filtro.form-control {
    height: auto;
    line-height: 1;
}

.dashboard-header .controle-meses-nextprev {
    float: none;
    display: flex;
    padding: 0;
}

.dashboard-header .controle-meses-nextprev div {
    float: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 7px;
}

.dashboard-header .controle-meses-nextprev div:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

/* Agrupador (grupo de perfis) em "pill" */
.dashboard-header .agrupador-perfis {
    float: none;
    display: flex;
    align-items: center;
    gap: 4px;
    height: 38px;
    padding: 0 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-bg);
    font-size: 13px;
    transition: background-color .12s ease, border-color .12s ease;
}

.dashboard-header .agrupador-perfis:hover {
    background: var(--color-hover-01);
}

.dashboard-header .agrupador-perfis .selecionado {
    float: none;
    font-weight: 500;
}

.dashboard-header .agrupador-perfis svg {
    float: none;
    margin: 0;
}

/* --- Titulos de secao consistentes --- */
.contant-dashboard-home .box2-lst-dash .box2-item h5,
.contant-dashboard-home .totais-group-box .item-box>label {
    font-size: 13px;
    font-weight: 600;
    color: #6b7280;
    opacity: 1;
    letter-spacing: 0.01em;
}

/* --- Totais por perfil: grid responsivo, cards de altura uniforme --- */
.contant-dashboard-home .totais-perfis {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(290px, 1fr));
    gap: 4px 20px;
    padding: 0;
}

.contant-dashboard-home .totais-perfis>h5 {
    grid-column: 1 / -1;
    padding-left: 8px;
}

/* ===========================================================================
   META DO PERIODO - dentro do cartao "Progresso total".
   ---------------------------------------------------------------------------
   O 95% de cima e media ponderada por status ("o que existe esta adiantado?").
   Esta barra responde outra coisa: "produzimos o que foi combinado?". A tela
   tinha esse dado so por marca, em texto solto, e nunca somado.
   =========================================================================== */
.contant-dashboard-home .pt-meta {
    margin-top: 18px;
    padding-top: 15px;
    border-top: 1px solid var(--color-border);
}

.contant-dashboard-home .ptm-top {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 7px;
}

.contant-dashboard-home .ptm-rot {
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--color-text-01);
    opacity: .55;
}

.contant-dashboard-home .ptm-num {
    margin-left: auto;
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -.02em;
    font-variant-numeric: tabular-nums;
}

.contant-dashboard-home .ptm-num i {
    font-style: normal;
    font-size: 12px;
    font-weight: 500;
    opacity: .45;
}

.contant-dashboard-home .ptm-barra {
    height: 7px;
    border-radius: 100px;
    background: var(--color-bg-01);
    overflow: hidden;
}

.contant-dashboard-home .ptm-barra div {
    height: 100%;
    border-radius: 100px;
    transition: width .3s ease;
}

.contant-dashboard-home .ptm-pe {
    display: flex;
    gap: 8px;
    margin-top: 6px;
    font-size: 11px;
    color: var(--color-text-01);
    opacity: .5;
    font-variant-numeric: tabular-nums;
}

.contant-dashboard-home .ptm-pe span {
    margin-left: auto;
}

/* Um tom por faixa, e o mesmo vocabulario de cor do cartao da marca. */
.contant-dashboard-home .pt-meta.ok .ptm-barra div {
    background: #0f9d63;
}

.contant-dashboard-home .pt-meta.quase .ptm-barra div {
    background: #b26a00;
}

.contant-dashboard-home .pt-meta.longe .ptm-barra div {
    background: #d92d20;
}

.contant-dashboard-home .pt-meta.ok .ptm-num {
    color: #0f9d63;
}

.contant-dashboard-home .pt-meta.quase .ptm-num {
    color: #b26a00;
}

.contant-dashboard-home .pt-meta.longe .ptm-num {
    color: #d92d20;
}

/* ===========================================================================
   CARTAO DA MARCA - identidade, meta e a barra por ETAPA.
   ---------------------------------------------------------------------------
   Era avatar + nome + barra de 14 fatias de status + o texto "26 de 24,
   agosto". O texto nao dizia se estava bom, e a barra com uma fatia por status
   virava um degrade indistinguivel. Agora: a meta e numero, % e COR, e a barra
   tem uma fatia por etapa - as mesmas ~6 do bloco de cima.
   =========================================================================== */
.contant-dashboard-home .totais-perfis .item {
    float: none;
    width: auto;
    margin: 0;
    padding: 11px 13px 12px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

/* O clearfix legado do layout float vira um item de flex fantasma. */
.contant-dashboard-home .totais-perfis .item::after {
    content: none;
}

.contant-dashboard-home .totais-perfis .mk-top {
    display: flex;
    align-items: center;
    gap: 10px;
}

.contant-dashboard-home .totais-perfis .item .img {
    float: none;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 11px;
}

.contant-dashboard-home .totais-perfis .mk-id {
    flex: 1 1 auto;
    min-width: 0;
}

.contant-dashboard-home .totais-perfis .item .nome {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contant-dashboard-home .totais-perfis .mk-sub {
    display: flex;
    align-items: center;
    gap: 7px;
    /* Sem isto o selo de atraso caia para uma segunda linha e o cartao crescia
       so em algumas marcas - a fileira inteira ficava desalinhada por causa de
       uma marca atrasada. */
    white-space: nowrap;
    margin-top: 2px;
    font-size: 11px;
    color: var(--color-text-01);
    opacity: .5;
}

/* O selo de atraso e o unico vermelho do cartao - se tudo pedisse atencao,
   nada pediria. Opacidade propria porque o pai esta rebaixado. */
.contant-dashboard-home .totais-perfis .mk-atraso {
    padding: 1px 7px;
    border-radius: 100px;
    font-weight: 600;
    color: #d92d20;
    background: color-mix(in srgb, #d92d20 14%, transparent);
    opacity: 1;
}

.contant-dashboard-home .totais-perfis .mk-meta {
    flex: 0 0 auto;
    text-align: right;
    line-height: 1.2;
}

.contant-dashboard-home .totais-perfis .mk-meta b {
    font-size: 15px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: -.02em;
}

.contant-dashboard-home .totais-perfis .mk-meta b i {
    font-style: normal;
    font-size: 12px;
    font-weight: 500;
    opacity: .45;
}

.contant-dashboard-home .totais-perfis .mk-meta span {
    display: block;
    font-size: 10px;
    color: var(--color-text-01);
    opacity: .45;
}

.contant-dashboard-home .totais-perfis .mk-meta.ok b {
    color: #0f9d63;
}

.contant-dashboard-home .totais-perfis .mk-meta.quase b {
    color: #b26a00;
}

.contant-dashboard-home .totais-perfis .mk-meta.longe b {
    color: #d92d20;
}

.contant-dashboard-home .totais-perfis .mk-meta .mk-sem {
    opacity: .35;
    font-weight: 500;
}

/* A barra: o vazio a direita E o que falta para a meta, e nao sobra de
   arredondamento - a base da largura ja e a meta quando ela e maior. */
.contant-dashboard-home .totais-perfis .item .status {
    height: 6px;
}

/* --- Ritmo vertical entre as grandes secoes --- */

.contant-dashboard-home .box2-lst-dash.left {
    padding-top: 6px;
}

/* ============================================================
   POPUP DE DRILL-DOWN DA DASHBOARD (.ddp-*)
   Lista fina em linhas, agrupada por marca: thumb | titulo + status/tipo/
   canais | prazo | pessoas. Atraso so pinta o prazo (nada de borda vermelha
   em toda linha). Tokens --eq-* vem do kit de Equipes no proprio conteiner.
   ============================================================ */
#edit-popup .contant .boxpop:has(.dash-drill-popup) {
    width: 760px;
    max-width: 95vw;
    border-radius: 22px;
}

.dash-drill-popup {
    display: flex;
    flex-direction: column;
    max-height: 86vh;
    padding: 0;
}

/* -- Cabecalho -- */
.dash-drill-popup .ddp-hdr {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 22px 64px 16px 24px;
}

.dash-drill-popup .ddp-hdr-txt {
    min-width: 0;
}

.dash-drill-popup .ddp-ttl {
    font-size: 19px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: var(--eq-text);
}

.dash-drill-popup .ddp-sub {
    margin-top: 3px;
    font-size: 13px;
    font-weight: 500;
    color: var(--eq-text-3);
}

.dash-drill-popup .ddp-sub i {
    font-style: normal;
    margin: 0 7px;
    opacity: .6;
}

.dash-drill-popup .ddp-sub b.dng {
    font-weight: 600;
    color: var(--eq-dng);
}

/* -- Barra: busca + filtro -- */
.dash-drill-popup .ddp-bar {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 24px 14px;
    border-bottom: 1px solid var(--eq-border);
}

.dash-drill-popup .ddp-busca {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    min-width: 0;
    padding: 0 12px;
    margin: 0;
    border-radius: 11px;
    background: var(--eq-bg-mute);
    cursor: text;
}

.dash-drill-popup .ddp-busca svg {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    fill: none;
    stroke: var(--eq-text-3);
    stroke-width: 2;
    stroke-linecap: round;
}

.dash-drill-popup .ddp-busca input {
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
    font-size: 13.5px;
    color: var(--eq-text);
}

.dash-drill-popup .ddp-busca input::placeholder {
    color: var(--eq-text-4);
}

.dash-drill-popup .ddp-busca:focus-within {
    box-shadow: inset 0 0 0 1px var(--eq-border-strong);
}

.dash-drill-popup .ddp-seg {
    flex: 0 0 auto;
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: 11px;
    background: var(--eq-bg-mute);
}

.dash-drill-popup .ddp-seg button {
    height: 30px;
    padding: 0 11px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    color: var(--eq-text-2);
    cursor: pointer;
    white-space: nowrap;
}

.dash-drill-popup .ddp-seg button span {
    margin-left: 3px;
    color: var(--eq-text-4);
    font-variant-numeric: tabular-nums;
}

.dash-drill-popup .ddp-seg button.on {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.dash-drill-popup .ddp-seg button.on span {
    color: inherit;
    opacity: .65;
}

/* -- Corpo -- */
.dash-drill-popup .ddp-body {
    flex: 1 1 auto;
    min-height: 220px;
    overflow-y: auto;
    padding: 6px 12px 14px;
}

.dash-drill-popup .ddp-grupo+.ddp-grupo {
    margin-top: 10px;
}

.dash-drill-popup .ddp-grupo-hdr {
    position: sticky;
    top: -6px;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 12px 12px 8px;
    background: var(--eq-surface);
}

.dash-drill-popup .ddp-logo {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    border-radius: 7px;
    background: var(--eq-bg-mute) center / cover no-repeat;
    box-shadow: inset 0 0 0 1px var(--eq-border);
}

.dash-drill-popup .ddp-logo.is-letra {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 9.5px;
    font-weight: 700;
    color: var(--eq-text-2);
}

.dash-drill-popup .ddp-logo.is-hdr {
    width: 40px;
    height: 40px;
    border-radius: 12px;
}

.dash-drill-popup .ddp-grupo-nome {
    font-size: 13px;
    font-weight: 600;
    color: var(--eq-text);
}

.dash-drill-popup .ddp-grupo-n {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--eq-text-4);
    font-variant-numeric: tabular-nums;
}

/* -- Linha -- */
.dash-drill-popup .ddp-lst {
    display: flex;
    flex-direction: column;
}

.dash-drill-popup .ddp-row {
    position: relative;
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr) 118px 66px 16px;
    align-items: center;
    gap: 14px;
    padding: 9px 12px;
    border-radius: 12px;
    cursor: pointer;
    outline: 0;
    transition: background-color .15s ease;
}

.dash-drill-popup .ddp-row[hidden],
.dash-drill-popup .ddp-grupo[hidden] {
    display: none;
}

/* hairline entre linhas, que some no hover para nao cortar o realce */
.dash-drill-popup .ddp-row+.ddp-row::before {
    content: "";
    position: absolute;
    top: 0;
    left: 70px;
    right: 12px;
    height: 1px;
    background: var(--eq-border);
}

.dash-drill-popup .ddp-row:hover,
.dash-drill-popup .ddp-row:focus-visible {
    background: var(--eq-bg-mute);
}

.dash-drill-popup .ddp-row:hover::before,
.dash-drill-popup .ddp-row:hover+.ddp-row::before,
.dash-drill-popup .ddp-row:focus-visible::before,
.dash-drill-popup .ddp-row:focus-visible+.ddp-row::before {
    opacity: 0;
}

.dash-drill-popup .ddp-row:focus-visible {
    box-shadow: inset 0 0 0 1.5px var(--eq-border-strong);
}

.dash-drill-popup .ddp-thumb {
    position: relative;
    display: block;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    overflow: hidden;
    background: var(--eq-bg-mute) center / cover no-repeat;
    box-shadow: inset 0 0 0 1px var(--eq-border);
}

.dash-drill-popup .ddp-thumb video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    pointer-events: none;
}

.dash-drill-popup .ddp-thumb i {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .18);
}

.dash-drill-popup .ddp-thumb i svg {
    width: 16px;
    height: 16px;
    fill: #fff;
}

.dash-drill-popup .ddp-thumb.is-vazio {
    display: flex;
    align-items: center;
    justify-content: center;
}

.dash-drill-popup .ddp-thumb.is-vazio svg {
    width: 18px;
    height: 18px;
    fill: var(--eq-text-4);
}

.dash-drill-popup .ddp-main {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.dash-drill-popup .ddp-tit {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
    color: var(--eq-text);
}

.dash-drill-popup .ddp-tit em {
    font-style: normal;
    font-weight: 500;
    margin-right: 6px;
    color: var(--eq-text-4);
    font-variant-numeric: tabular-nums;
}

.dash-drill-popup .ddp-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--eq-text-3);
    white-space: nowrap;
}

.dash-drill-popup .ddp-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--eq-text-2);
}

.dash-drill-popup .ddp-status i {
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
}

.dash-drill-popup .ddp-sep {
    flex: 0 0 auto;
    width: 3px;
    height: 3px;
    border-radius: 50%;
    background: var(--eq-text-4);
}

.dash-drill-popup .ddp-canais {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.dash-drill-popup .ddp-canal {
    display: inline-flex;
}

.dash-drill-popup .ddp-canal svg {
    width: 13px;
    height: 13px;
    fill: var(--eq-text-3);
}

/* -- Prazo: estado em cima, data embaixo -- */
.dash-drill-popup .ddp-prazo {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
    text-align: right;
    white-space: nowrap;
}

.dash-drill-popup .ddp-prazo b {
    font-size: 13px;
    font-weight: 600;
    color: var(--eq-text-2);
}

.dash-drill-popup .ddp-prazo small {
    font-size: 12px;
    font-weight: 500;
    color: var(--eq-text-4);
    font-variant-numeric: tabular-nums;
}

.dash-drill-popup .ddp-prazo.dng b {
    color: var(--eq-dng);
}

.dash-drill-popup .ddp-prazo.warn b {
    color: var(--eq-warn-txt);
}

.dash-drill-popup .ddp-prazo.ok b {
    color: var(--eq-suc-txt);
}

.dash-drill-popup .ddp-prazo.sem b {
    color: var(--eq-text-4);
    font-weight: 500;
}

/* -- Pessoas -- */
.dash-drill-popup .ddp-pessoas {
    display: flex;
    justify-content: flex-end;
}

.dash-drill-popup .ddp-pessoas.is-vazio {
    font-size: 13px;
    color: var(--eq-text-4);
    padding-right: 6px;
}

.dash-drill-popup .ddp-av {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--eq-bg-mute) center / cover no-repeat;
    box-shadow: 0 0 0 2px var(--eq-surface);
    font-size: 10.5px;
    font-weight: 600;
    color: var(--eq-text-2);
}

.dash-drill-popup .ddp-av+.ddp-av {
    margin-left: -6px;
}

.dash-drill-popup .ddp-row:hover .ddp-av {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--eq-surface) 100%, var(--eq-text) 4%);
}

.dash-drill-popup .ddp-av.is-mais {
    font-size: 10px;
    color: var(--eq-text-3);
}

.dash-drill-popup .ddp-go svg {
    display: block;
    width: 16px;
    height: 16px;
    fill: none;
    stroke: var(--eq-text-4);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: 0;
    transform: translateX(-3px);
    transition: opacity .15s ease, transform .15s ease;
}

.dash-drill-popup .ddp-row:hover .ddp-go svg,
.dash-drill-popup .ddp-row:focus-visible .ddp-go svg {
    opacity: 1;
    transform: none;
}

/* -- Esqueleto e vazio -- */
.dash-drill-popup .ddp-row.is-esq {
    cursor: default;
    grid-template-columns: 44px minmax(0, 1fr);
}

.dash-drill-popup .ddp-row.is-esq:hover {
    background: transparent;
}

.dash-drill-popup .ddp-esq {
    display: block;
    height: 10px;
    border-radius: 6px;
    background: var(--eq-bg-mute);
}

.dash-drill-popup .ddp-vazio,
.dash-drill-popup .ddp-vazio-filtro {
    padding: 56px 16px;
    text-align: center;
    font-size: 13.5px;
    color: var(--eq-text-3);
}

.dash-drill-popup .ddp-vazio-filtro[hidden] {
    display: none;
}

/* ============================================================
   DASHBOARD - responsivo (tablet/mobile): empilha o layout float
   ============================================================ */
/* ###########################################################################
   DASHBOARD DE CONTEUDOS - PASSE DE ACABAMENTO
   ---------------------------------------------------------------------------
   O que a tela tinha: floats com largura fixa (342px + calc(100% - 350px)),
   metade das secoes em cartao e metade solta, tres tamanhos de titulo de secao,
   cinzas cravados em hex que nao viram no tema escuro e um "95%" de 105px que
   engolia o resto. Cada peca estava certa sozinha; juntas nao pareciam a mesma
   tela.
   Aqui elas passam a dividir UM sistema: um token de superficie, um raio, um
   ritmo de espacamento e uma escala de titulo - e o layout vira GRADE, que e o
   que faz as colunas se alinharem de verdade em vez de por coincidencia.
   ########################################################################### */
.contant-dashboard-home {
    /* Superficie e traco. Tudo deriva dos tokens do tema, entao o escuro segue
       de graca - nenhum hex novo entra aqui. */
    --dh-surface: var(--color-bg);
    --dh-line: var(--color-border);
    --dh-radius: 16px;
    --dh-radius-sm: 12px;
    --dh-pad: 18px;

    /* Tres niveis de tinta, e so tres. Antes eram #6b7280, #9aa0ac, opacity .5
       e opacity .55 misturados - quatro cinzas para dizer duas coisas. */
    --dh-ink: var(--color-text-01);
    --dh-ink-2: color-mix(in srgb, var(--color-text-01) 58%, transparent);
    --dh-ink-3: color-mix(in srgb, var(--color-text-01) 40%, transparent);
}

/* --- A GRADE ---------------------------------------------------------------
   Duas colunas: a estreita segura o resumo do periodo, a larga o fluxo. As
   demais secoes atravessam as duas. Com float, "alinhado" dependia de as
   larguras somarem certo na mao; com grade, alinhar e a regra. */
.contant-dashboard-home .totais-group-box {
    display: grid;
    grid-template-columns: minmax(280px, 330px) minmax(0, 1fr);
    gap: 14px;
    /* `stretch`, e nao `start`: os dois cartoes da primeira linha tem conteudo
       de altura diferente, e com `start` um terminava 130px antes do outro -
       um degrau no meio da tela que nao significa nada. Emparelhados, a linha
       le como uma faixa so. */
    align-items: stretch;
    padding: 0 0 10px;
}

.contant-dashboard-home .totais-group-box::after {
    content: none;
}

.contant-dashboard-home .dash-kpis,
.contant-dashboard-home .box2-lst-dash {
    grid-column: 1 / -1;
}

.contant-dashboard-home .dash-kpis {
    margin: 0 0 0px;
}

/* O casco de cartao, um so para todas as secoes. */
.contant-dashboard-home .totais-group-box .item-box,
.contant-dashboard-home .box2-lst-dash .box2-item {
    float: none;
    width: auto;
    height: auto;
    margin: 0;
    padding: var(--dh-pad);
    background: var(--dh-surface);
    border: 1px solid var(--dh-line);
    border-radius: var(--dh-radius);
}

/* --- Titulo de secao: UM tamanho, UM peso, UMA tinta -------------------- */
.contant-dashboard-home .totais-group-box .item-box>label,
.contant-dashboard-home .box2-lst-dash .box2-item h5 {
    display: block;
    margin: 0 0 14px;
    padding: 0;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: .01em;
    color: var(--dh-ink-2);
    opacity: 1;
    float: none;
}

/* --- KPIs ------------------------------------------------------------------
   Os quadradinhos de icone tinham fundo em hex claro (#fef2f2, #ecfdf3...): no
   escuro viravam manchas leitosas. `color-mix` sobre a propria cor semantica
   resolve nos dois temas com uma linha por variante. */
.contant-dashboard-home .dash-kpi {
    padding: 16px 18px 15px;
    border-radius: var(--dh-radius);
    border-color: var(--dh-line);
}

.contant-dashboard-home .dash-kpi.dash-drill:hover {
    transform: none;
    /* o pulo brigava com o grid */
    border-color: color-mix(in srgb, var(--color-text-01) 26%, transparent);
    background: var(--color-hover-01);
    box-shadow: none;
}

.contant-dashboard-home .dash-kpi .k-top {
    height: auto;
    margin-bottom: 14px;
}

.contant-dashboard-home .dash-kpi .k-label {
    font-size: 12px;
    color: var(--dh-ink-2);
}

.contant-dashboard-home .dash-kpi .k-valor {
    font-size: 28px;
    font-weight: 600;
}

.contant-dashboard-home .dash-kpi .k-sub {
    font-size: 11.5px;
    color: var(--dh-ink-3);
}

.contant-dashboard-home .dash-kpi .k-ico {
    width: 30px;
    height: 30px;
    border-radius: 9px;
}

.contant-dashboard-home .dash-kpi.k-info .k-ico {
    background: color-mix(in srgb, #4f46e5 15%, transparent);
    color: #6366f1;
}

.contant-dashboard-home .dash-kpi.k-ok .k-ico {
    background: color-mix(in srgb, #0f9d63 15%, transparent);
    color: #0f9d63;
}

.contant-dashboard-home .dash-kpi.k-alerta .k-ico {
    background: color-mix(in srgb, #d92d20 15%, transparent);
    color: #d92d20;
}

.contant-dashboard-home .dash-kpi.k-neutro .k-ico {
    background: color-mix(in srgb, var(--color-text-01) 9%, transparent);
    color: var(--dh-ink-2);
}

.contant-dashboard-home .dash-kpi.k-alerta.has-alerta .k-valor {
    color: #d92d20;
}

/* --- Progresso total -------------------------------------------------------
   105px de numero e 256px de altura cravada: o cartao mandava na tela e ainda
   sobrava buraco embaixo. O numero desce para uma escala que convive com os
   KPIs, e a altura passa a ser a do conteudo. */
.contant-dashboard-home .item-box.progesso-total {
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: var(--dh-surface);
    border: 1px solid var(--dh-line);
    padding: var(--dh-pad);
}

/* --- O MEDIDOR E A BARRA DE ETAPAS -----------------------------------------
   O anel mede UMA coisa: o proprio numero do centro. Ele media a distribuicao
   por etapa enquanto o centro media progresso, e com 95% escrito no meio de um
   arco de 78% o olho acredita no arco. A distribuicao desceu para a barra. */
.contant-dashboard-home .pt-anel {
    position: relative;
    width: 100%;
    max-width: 132px;
    aspect-ratio: 1;
    margin: 2px auto 16px;
    cursor: pointer;
}

.contant-dashboard-home .pt-anel svg {
    width: 100%;
    height: 100%;
    /* -90deg para o arco comecar no topo, e nao as 3 horas. */
    transform: rotate(-90deg);
    overflow: visible;
}

/* Traco fino, do jeito que o resto do kit desenha. O trilho e um passo claro da
   MESMA tinta do arco, e nao um cinza a parte: assim o quanto-falta se le no
   anel inteiro, nao so no pedaco pintado. */
.contant-dashboard-home .pt-trilho {
    stroke: color-mix(in srgb, var(--dh-ink) 10%, transparent);
    stroke-width: 7;
}

.contant-dashboard-home .pt-arco {
    stroke: var(--dh-ink);
    stroke-width: 7;
    transition: stroke-dasharray .5s cubic-bezier(.16, 1, .3, 1);
}

.contant-dashboard-home .pt-centro {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    pointer-events: none;
}

/* Numero grande em figuras PROPORCIONAIS (o padrao da fonte). `tabular-nums`
   da a todo digito a largura do zero e em tamanho grande o numero sai frouxo;
   tabular fica para as colunas da legenda, que precisam alinhar. */
.contant-dashboard-home .pt-centro b {
    display: flex;
    align-items: baseline;
    font-size: 32px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.04em;
    color: var(--dh-ink);
}

.contant-dashboard-home .pt-centro b i {
    margin-left: 1px;
    font-size: 15px;
    font-style: normal;
    font-weight: 600;
    letter-spacing: 0;
    color: var(--dh-ink-3);
}

.contant-dashboard-home .pt-centro span {
    margin-top: 6px;
    font-size: 9.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .09em;
    color: var(--dh-ink-3);
}

/* A BARRA DE ETAPAS. O gap de 2px e estrutural: a cor de cada etapa e escolha
   do usuario, entao a tela nao garante que duas vizinhas contrastem entre si -
   garante que nunca se encostem. Vale tambem para a fatia de 4%, que no arco
   fino sumia. */
.contant-dashboard-home .pt-fluxo {
    display: flex;
    gap: 2px;
    height: 8px;
    margin-bottom: 12px;
}

.contant-dashboard-home .pt-fx {
    flex-basis: 0;
    min-width: 4px;
    border-radius: 3px;
    transition: opacity .15s ease;
}

/* Passar o mouse apaga as outras: com seis etapas de cores proximas, destacar
   le melhor que so abrir a dica. A legenda acende a fatia irma pelo mesmo
   caminho, entao nome e cor se encontram nos dois sentidos. */
.contant-dashboard-home .pt-fluxo:hover .pt-fx {
    opacity: .3;
}

.contant-dashboard-home .pt-fluxo .pt-fx:hover {
    opacity: 1;
}

.contant-dashboard-home .pt-leg {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 3px 14px;
}

.contant-dashboard-home .pt-leg-item {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: 11px;
}

.contant-dashboard-home .pt-leg-item i {
    width: 7px;
    height: 7px;
    border-radius: 2px;
    flex: 0 0 7px;
}

.contant-dashboard-home .pt-leg-item span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--dh-ink-2);
}

.contant-dashboard-home .pt-leg-item b {
    margin-left: auto;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--dh-ink);
}

.contant-dashboard-home .item-box.progesso-total .info {
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--dh-ink-3);
    opacity: 1;
}

/* A barra tinha `border: 1px solid #000` e um ::after de degrade branco por
   cima - dois enfeites que no escuro viravam sujeira. */
.contant-dashboard-home .grafico-bar-line-01 {
    width: 100%;
    margin-top: 16px;
    border: 0;
    background: var(--color-bg-01);
}

.contant-dashboard-home .grafico-bar-line-01::after {
    content: none;
}

.contant-dashboard-home .grafico-bar-line-01 div {
    height: 7px;
    background: var(--dh-ink);
}

/* --- Etapas: o cartao da coluna larga ------------------------------------ */
.contant-dashboard-home .item-box.progesso-stauts {
    width: auto;
    padding: var(--dh-pad);
    background: var(--dh-surface);
    border: 1px solid var(--dh-line);
    display: flex;
    flex-direction: column;
}

/* O painel ativo ocupa a altura que sobra, e o conteudo dele fica no topo -
   senao os cartoes de etapa esticariam para preencher e virariam retangulos
   altos e vazios. */
.contant-dashboard-home .item-box.progesso-stauts .dist-pane.on {
    flex: 1 1 auto;
}

.contant-dashboard-home .etapas-lst {
    align-content: start;
}

/* --- ABAS DE DISTRIBUICAO: Etapas . Tipos . Canais -------------------------
   Underline, que e o dialeto de navegacao mais novo do produto (Workflow e
   Equipes usam o mesmo). Pilulas competiriam visualmente com os cartoes de
   etapa logo abaixo - duas familias de pastilha na mesma caixa. */
.contant-dashboard-home .dist-tabs {
    display: flex;
    gap: 2px;
    margin: -4px 0 14px;
    border-bottom: 1px solid var(--dh-line);
}

.contant-dashboard-home .dist-tab {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px 9px;
    border: 0;
    background: none;
    font: inherit;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--dh-ink-2);
    /* mesma razao das abas de modo: inativa != desativada */
    cursor: pointer;
    border-bottom: 2px solid transparent;
    margin-bottom: -1px;
    transition: color .12s ease, border-color .12s ease;
}

.contant-dashboard-home .dist-tab:hover {
    color: var(--dh-ink);
}

.contant-dashboard-home .dist-tab.on {
    color: var(--dh-ink);
    font-weight: 600;
    border-bottom-color: var(--dh-ink);
}

.contant-dashboard-home .dist-tab i {
    font-style: normal;
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1;
    padding: 3px 6px;
    border-radius: 100px;
    background: var(--color-bg-01);
    color: var(--dh-ink-3);
    font-variant-numeric: tabular-nums;
}

.contant-dashboard-home .dist-tab.on i {
    background: color-mix(in srgb, var(--color-text-01) 12%, transparent);
    color: var(--dh-ink-2);
}

.contant-dashboard-home .dist-tab:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: -2px;
    border-radius: 6px;
}

.contant-dashboard-home .dist-pane {
    display: none;
}

.contant-dashboard-home .dist-pane.on {
    display: block;
}

.contant-dashboard-home .dist-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.contant-dashboard-home .dist-pill {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 7px 13px;
    border: 1px solid var(--dh-line);
    border-radius: 100px;
    font-size: 12px;
}

.contant-dashboard-home .dist-pill.dash-drill {
    cursor: pointer;
}

.contant-dashboard-home .dist-pill.dash-drill:hover {
    background: var(--color-hover-01);
}

.contant-dashboard-home .dist-pill.zero {
    opacity: .45;
}

.contant-dashboard-home .dist-pill .dp-nome {
    font-weight: 500;
    color: var(--dh-ink-2);
}

.contant-dashboard-home .dist-pill .dp-qtd {
    font-size: 13px;
    font-weight: 600;
    color: var(--dh-ink);
    font-variant-numeric: tabular-nums;
}

/* Canais reusa a faixa compacta de "Por responsavel" - mesma pergunta, mesma
   forma. Duas colunas porque a lista e curta e o cartao e largo. */
.contant-dashboard-home .dist-canais {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
    gap: 0 22px;
}

.contant-dashboard-home .dist-vazio {
    font-size: 11.5px;
    color: var(--dh-ink-3);
    padding: 6px 0 10px;
}

/* O cartao de "quem": Marcas e Responsaveis. O `.totais-perfis` deixou de ser
   o cartao (agora e so a grade dentro do painel), entao o casco vem do pai. */
.contant-dashboard-home .quem-card .totais-perfis {
    padding: 0;
}

.contant-dashboard-home .dist-resp {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(268px, 1fr));
    gap: 0 22px;
}

/* Um bloco so no rodape: a grade de dois vira um. */

/* Sobrou um bloco so no rodape, entao a lista dele se divide em colunas. Uma
   barra de 600px nao compara melhor que uma de 200 - so ocupa mais tela. */

/* --- Totais por tipo (secao antiga, hoje sem markup - mantida por seguranca) --
   Eram seis caixas com borda propria enfileiradas soltas na pagina: seis
   cartoes competindo com os cartoes de etapa logo acima. Viram uma secao so,
   com pastilhas leves dentro - hierarquia em vez de repeticao. */

/* --- Totais por marca -----------------------------------------------------
   `.left` era `calc(100% - 190px)`: os 190px eram a coluna da direita, que
   guardava o bloco "Conteudos em alerta". O bloco saiu; a reserva ficou, e era
   ela que fazia este cartao parar 190px antes dos outros. */
.contant-dashboard-home .box2-lst-dash,
.contant-dashboard-home .box2-lst-dash.left {
    width: 100%;
    padding: 0;
    float: none;
}

/* Margens de secao herdadas do empilhamento float: com grade, quem espaca e o
   `gap`. Somadas ao gap elas criavam degraus diferentes entre cada par. */
.contant-dashboard-home .item-box.progesso-total {
    margin-top: 0;
    padding-top: var(--dh-pad);
}

/* `.box2-lst-dash.left` e INVOLUCRO, nao cartao: o cartao e o `.box2-item`
   dentro dele. Dar padding aqui abria 18px de nada entre a secao anterior e a
   borda do cartao - o unico degrau de espacamento fora do ritmo da grade. */
.contant-dashboard-home .box2-lst-dash.left {
    padding-top: 0;
}

.contant-dashboard-home .totais-perfis {
    gap: 10px;
    grid-template-columns: repeat(auto-fill, minmax(292px, 1fr));
}

.contant-dashboard-home .totais-perfis>h5 {
    padding-left: 0;
}

/* --- Blocos extras: mesmo casco das demais secoes ------------------------- */
.contant-dashboard-home .dash-blocos-extras {
    padding-top: 14px;
}

/* --- Filtros do cabecalho ------------------------------------------------- */
.dashboard-header .totais-group-box-filtros .periodo,
.dashboard-header .agrupador-perfis {
    height: 36px;
    border-radius: 10px;
}

@media (max-width: 1024px) {
    .contant-dashboard-home .item-box.progesso-total {
        width: 300px;
    }

    .contant-dashboard-home .item-box.progesso-stauts {
        width: calc(100% - 310px);
    }
}

@media (max-width: 768px) {

    /* ! O CABECALHO desta tela no celular (titulo em uma linha, filtros na
       faixa de baixo e o respiro do conteudo) mora no media.css, no bloco
       "CABECALHO DAS TELAS (.header-pagina) NO CELULAR". As quatro regras que
       ficavam aqui nunca chegaram a valer: o media.css carrega DEPOIS deste
       arquivo e o `padding-top: 74px` de la vencia o `14px` daqui. */

    /* Empilha as colunas que eram float com largura fixa */
    .contant-dashboard-home .item-box.progesso-total,
    .contant-dashboard-home .item-box.progesso-stauts,
    .contant-dashboard-home .box2-lst-dash.left,
    .contant-dashboard-home .box2-lst-dash.right {
        float: none;
        width: 100%;
        padding-left: 0;
        padding-right: 0;
    }

    .contant-dashboard-home .item-box.progesso-total {
        height: auto;
        margin-bottom: 8px;
    }

    .contant-dashboard-home .item-box.progesso-total .percentual {
        font-size: 64px;
        line-height: 1;
        margin: 10px 0;
    }

    .contant-dashboard-home .box2-lst-dash.right {
        padding-top: 18px;
    }

    .contant-dashboard-home .totais-perfis {
        grid-template-columns: 1fr;
    }

    .contant-dashboard-home .dash-kpis {
        gap: 10px;
    }
}

@media (max-width: 560px) {
    .contant-dashboard-home .dash-kpis {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }

    .contant-dashboard-home .dash-kpi {
        padding: 14px 14px 12px;
        border-radius: 14px;
    }

    .contant-dashboard-home .dash-kpi .k-valor {
        font-size: 24px;
    }

    .dash-drill-popup {
        max-height: 90vh;
    }

    #edit-popup .contant {
        padding: 10px;
    }
}

/* ===== Blocos aditivos da dashboard: Por rede / Por responsavel ===== */
.contant-dashboard-home .dash-blocos-extras {
    clear: both;
    padding-top: 8px;
}

/* Rola em vez de crescer: com 20 responsaveis o bloco empurrava a tela toda. */

/* UMA FAIXA POR ITEM. Antes o rotulo ficava acima da barra e cada linha custava
   ~44px; assim cabem 8 itens no espaco em que cabiam 4. */
.contant-dashboard-home .dbe-row {
    display: grid;
    grid-template-columns: auto minmax(64px, 1fr) minmax(52px, 1.1fr) auto;
    align-items: center;
    gap: 9px;
    padding: 4px 7px;
    margin: 0 -7px;
    border-radius: 7px;
    font-size: 12px;
    color: var(--color-text-01);
}

/* Sem avatar (Por rede) a primeira coluna nao existe. */
.contant-dashboard-home .dbe-row:not(:has(.dbe-av)) {
    grid-template-columns: minmax(64px, 1fr) minmax(52px, 1.1fr) auto;
}

.contant-dashboard-home .dbe-row.dash-drill {
    cursor: pointer;
}

.contant-dashboard-home .dbe-row.dash-drill:hover {
    background: var(--color-hover-01);
}

.contant-dashboard-home .dbe-av {
    width: 21px;
    height: 21px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: .02em;
    opacity: .9;
}

.contant-dashboard-home .dbe-av-ini {
    opacity: .55;
}

.contant-dashboard-home .dbe-lbl {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.contant-dashboard-home .dbe-track {
    height: 5px;
    border-radius: 100px;
    background: var(--color-bg-01);
    overflow: hidden;
}

.contant-dashboard-home .dbe-fill {
    display: block;
    height: 100%;
    border-radius: 100px;
    background: color-mix(in srgb, var(--color-text-01) 42%, transparent);
}

.contant-dashboard-home .dbe-row.dash-drill:hover .dbe-fill {
    background: color-mix(in srgb, var(--color-text-01) 68%, transparent);
}

.contant-dashboard-home .dbe-val {
    min-width: 24px;
    text-align: right;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.contant-dashboard-home .dbe-vazio {
    font-size: 11.5px;
    color: var(--color-text-01);
    opacity: .4;
    padding: 10px 0;
}

/* A grade de duas colunas vira uma so antes de as colunas ficarem estreitas
   demais para o cartao de etapa (148px + gaps). Fica DEPOIS do bloco de
   acabamento de proposito: media query so vence quem vem antes dela. */
@media (max-width: 1080px) {
    .contant-dashboard-home .totais-group-box {
        grid-template-columns: minmax(0, 1fr);
    }

    .contant-dashboard-home .item-box.progesso-total,
    .contant-dashboard-home .item-box.progesso-stauts {
        grid-column: 1 / -1;
    }
}

/* =====================================================================
   REDESIGN MONOCROMATICO - Popup de configuracoes do perfil (abas)
   Sistema de design ESCOPADO em .editarPerfis: usa SOMENTE os tokens do
   tema (preto/branco/cinza via --color-*), escala de espacamento, tipografia
   e alinhamento estilo ClickUp. Nao toca nas classes/atributos lidos pelos
   handlers de salvar; o escopo evita afetar usos fora do popup.
   ===================================================================== */
.editarPerfis {
    --ap-radius: 12px;
    --ap-radius-sm: 8px;
    --ap-line: var(--color-border);
    --ap-fill: var(--color-text-01);
    --ap-fill-text: var(--color-bg);
    --ap-soft: var(--color-bg-01);
    --ap-hover: var(--color-hover-01);
    --ap-muted: color-mix(in srgb, var(--color-text-01) 55%, transparent);
    --ap-faint: color-mix(in srgb, var(--color-text-01) 30%, transparent);
}

.editarPerfis .tabd2-content .tabd2-tab {
    padding-top: 14px;
}

/* ============ Aba SOBRE ============ */
/* Sub-menu: abas com sublinhado (underline tabs), monocromaticas */
.editarPerfis .menu-sobre-perfil {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    border-bottom: 1px solid var(--ap-line);
    padding: 0;
    margin-bottom: 20px;
}

.editarPerfis .menu-sobre-perfil .item {
    float: none;
    margin: 0 0 -1px 0;
    padding: 9px 13px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ap-muted);
    background: none;
    border: 0;
    border-bottom: 2px solid transparent;
    border-radius: 0;
    transition: color .15s ease, border-color .15s ease;
}

.editarPerfis .menu-sobre-perfil .item:hover {
    color: var(--color-text-01);
    background: none;
}

.editarPerfis .menu-sobre-perfil .item.atv {
    color: var(--color-text-01);
    font-weight: 600;
    border-bottom-color: var(--ap-fill);
    background: none;
}

/* Intro de cada sub-secao (contexto profissional p/ preencher o briefing) */
.editarPerfis .sobre-secao-head {
    clear: both;
    float: none;
    width: 100%;
    margin: 0 0 14px;
    padding: 0 5px;
    box-sizing: border-box;
}

.editarPerfis .sobre-secao-sub {
    margin: 0;
    max-width: 64ch;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--ap-muted);
}

/* Campos: grid com gutters consistentes e foco monocromatico */
.editarPerfis .ipt2-col {
    padding: 0 5px 14px 5px;
}

.editarPerfis .campo-style-02 {
    border-radius: var(--ap-radius-sm);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.editarPerfis .campo-style-02:hover {
    border-color: var(--ap-faint);
}

.editarPerfis .campo-style-02:focus-within {
    border-color: var(--ap-fill);
    box-shadow: 0 0 0 3px var(--ap-soft);
}

.editarPerfis .campo-style-02 .lbel {
    font-size: 12px;
    font-weight: 500;
    color: var(--ap-muted);
}

.editarPerfis .campo-style-02 .lbel.label-ativa {
    color: var(--color-text-01);
}

/* Icone (i) de ajuda ao lado do titulo do campo - tooltip explicativo */
.editarPerfis .campo-dica {
    display: inline-flex;
    align-items: center;
    vertical-align: middle;
    margin-left: 5px;
    color: var(--ap-faint);
    cursor: help;
    transition: color .15s ease;
}

.editarPerfis .campo-dica:hover {
    color: var(--color-text-01);
}

.editarPerfis .campo-dica svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
    display: block;
}

/* No titulo dos chips (uppercase), alinha o icone com o texto menor */
.editarPerfis .chips-titulo .campo-dica svg {
    width: 12px;
    height: 12px;
}

/* Chips de briefing: monocromaticos (selecionado = preenchido) */
.editarPerfis .chips-grupo {
    border-radius: var(--ap-radius);
    padding: 16px;
}

.editarPerfis .chip {
    opacity: 1;
    border: 1px solid var(--ap-line);
    background: var(--color-bg);
    color: var(--ap-muted);
    font-weight: 500;
    box-shadow: none;
    transition: border-color .15s ease, color .15s ease, background .15s ease;
}

.editarPerfis .chip:hover {
    border-color: var(--ap-faint);
    color: var(--color-text-01);
    background: var(--ap-hover);
    transform: none;
}

.editarPerfis .chip.atv,
.editarPerfis .chip.atv:hover {
    background: var(--ap-fill);
    border-color: var(--ap-fill);
    color: var(--ap-fill-text);
    box-shadow: none;
    transform: none;
}

/* ============ Botoes "+ Adicionar" (secundarios, monocromaticos) ============ */
.editarPerfis .btn-add-objetivo,
.editarPerfis .perfil-datas .acoes-datas .btn-add,
.editarPerfis .btn-add-logo,
.editarPerfis .btn-add-elemento {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: auto;
    margin: 0;
    padding: 9px 15px;
    border-radius: var(--ap-radius-sm);
    border: 1px solid var(--ap-line);
    background: var(--color-bg);
    color: var(--color-text-01);
    fill: var(--color-text-01);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    cursor: pointer;
    float: none;
    transition: background .15s ease, border-color .15s ease;
}

.editarPerfis .btn-add-objetivo:hover,
.editarPerfis .perfil-datas .acoes-datas .btn-add:hover,
.editarPerfis .btn-add-logo:hover,
.editarPerfis .btn-add-elemento:hover {
    background: var(--ap-hover);
    border-color: var(--ap-faint);
    transform: none;
}

/* ============ Aba OBJETIVOS (redesign) ============ */
.editarPerfis .objetivos-pane {
    display: flex;
    flex-direction: column;
}

/* Cabecalho: titulo + subtitulo (esq) e acao (dir) */
.editarPerfis .objetivos-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.editarPerfis .objetivos-head-info {
    min-width: 0;
}

.editarPerfis .objetivos-title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-text-01);
}

.editarPerfis .objetivos-sub {
    margin: 4px 0 0;
    max-width: 56ch;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--ap-muted);
}

/* Botao "+ Adicionar" usa o estilo monocromatico generico (.btn-add-objetivo).
   Aqui so garantimos alinhamento do icone e que nao quebre linha. */
.editarPerfis .objetivos-head .btn-add-objetivo {
    flex: none;
    margin: 0;
    white-space: nowrap;
}

.editarPerfis .btn-add-objetivo svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
    flex: none;
}

/* Lista */
.editarPerfis .lst-edit-objetivos {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* Card de objetivo */
.editarPerfis #tabd2-4 .item-objetivo {
    position: relative;
    display: flex;
    flex-direction: column;
    padding: 0;
    margin: 0;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg);
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.editarPerfis #tabd2-4 .item-objetivo:hover {
    border-color: var(--ap-faint);
}

.editarPerfis #tabd2-4 .item-objetivo:focus-within {
    border-color: var(--ap-fill);
    box-shadow: 0 0 0 3px var(--ap-soft);
}

/* Barra superior: data + badge (esq) | excluir (dir, via margin-left:auto) */
.editarPerfis #tabd2-4 .item-objetivo .item-objetivo-bar {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: 8px;
    padding: 10px 10px 8px 12px;
}

/* "Pill" da data */
.editarPerfis #tabd2-4 .item-objetivo .data {
    float: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    padding: 5px 11px;
    border-radius: 100px;
    background: var(--ap-soft);
    font-weight: 600;
    font-size: 13px;
    color: var(--color-text-01);
    transition: background .15s ease;
}

.editarPerfis #tabd2-4 .item-objetivo .data:hover {
    background: var(--ap-hover);
}

.editarPerfis #tabd2-4 .item-objetivo .data .ico-cal {
    width: 14px;
    height: 14px;
    flex: none;
    fill: var(--ap-muted);
}

.editarPerfis #tabd2-4 .item-objetivo .datepicker-deate {
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    font-weight: 600;
    color: var(--color-text-01);
    cursor: pointer;
}

/* Excluir: botao fantasma, aparece no hover/foco do card */
.editarPerfis .lst-edit-objetivos .item-objetivo .btn-delete {
    position: static;
    float: none;
    flex: none;
    margin-left: auto;
    width: 30px;
    height: 30px;
    padding: 7px;
    border-radius: var(--ap-radius-sm);
    fill: var(--ap-muted);
    opacity: 0;
    transition: opacity .15s ease, background .15s ease, fill .15s ease;
}

.editarPerfis #tabd2-4 .item-objetivo:hover .btn-delete,
.editarPerfis #tabd2-4 .item-objetivo:focus-within .btn-delete {
    opacity: 1;
}

.editarPerfis .lst-edit-objetivos .item-objetivo .btn-delete:hover {
    background: var(--ap-hover);
    fill: var(--color-text-01);
}

/* Texto do objetivo: separado por divisoria, sem moldura propria */
.editarPerfis #tabd2-4 .item-objetivo .text {
    width: 100%;
    margin: 0;
    padding: 12px 14px 14px;
    border: 0;
    border-top: 1px solid var(--ap-line);
    border-radius: 0;
    background: none;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--color-text-01);
    resize: none;
}

.editarPerfis #tabd2-4 .item-objetivo .text::placeholder {
    color: var(--ap-faint);
}

/* Estado vazio (toggle via classe .mostrar, controlada no add/delete) */
.editarPerfis .objetivos-empty {
    display: none;
}

.editarPerfis .objetivos-empty.mostrar {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 6px;
    padding: 40px 20px;
    border: 1px dashed var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--ap-soft);
}

.editarPerfis .objetivos-empty-ico {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-bottom: 6px;
    border-radius: 50%;
    background: var(--color-bg);
    border: 1px solid var(--ap-line);
}

.editarPerfis .objetivos-empty-ico svg {
    width: 20px;
    height: 20px;
    fill: var(--ap-muted);
}

.editarPerfis .objetivos-empty-ttl {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-01);
}

.editarPerfis .objetivos-empty-txt {
    max-width: 38ch;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--ap-muted);
}

.editarPerfis .objetivos-empty .btn-add-objetivo {
    margin-top: 10px;
}

/* ===== Seletor de ANO (pills, igual Datas/Metas) + grupos por ano ===== */
.editarPerfis .objetivos-grupos {
    display: block;
}

/* Cada ano e um grupo; so o ativo aparece (os demais ficam no DOM, lazy) */
.editarPerfis .obj-ano-grupo {
    display: none;
}

.editarPerfis .obj-ano-grupo.ativo {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

/* Secao de mes (colapsavel + lazy) */
.editarPerfis .obj-mes {
    display: flex;
    flex-direction: column;
}

.editarPerfis .obj-mes-head {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 2px;
    cursor: pointer;
    user-select: none;
    color: var(--color-text-01);
}

.editarPerfis .obj-ano-chevron {
    width: 16px;
    height: 16px;
    flex: none;
    fill: var(--ap-muted);
    transform: rotate(-90deg);
    /* fechado: aponta p/ direita */
    transition: transform .15s ease;
}

.editarPerfis .obj-mes.aberto .obj-ano-chevron {
    transform: rotate(0);
    /* aberto: aponta p/ baixo */
}

.editarPerfis .obj-mes-titulo {
    font-size: 14px;
    font-weight: 600;
}

.editarPerfis .obj-mes-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 18px;
    padding: 0 6px;
    border-radius: 100px;
    background: var(--ap-soft);
    font-size: 11px;
    font-weight: 600;
    color: var(--ap-muted);
}

/* Recolhido: esconde a lista do mes */
.editarPerfis .obj-mes:not(.aberto) .lst-edit-objetivos {
    display: none;
}

/* Lista dentro do mes: respiro do cabecalho */
.editarPerfis .obj-mes.aberto .lst-edit-objetivos {
    padding-bottom: 6px;
}

/* Mes de contexto (aberto vindo do planejamento): leve destaque no titulo */
.editarPerfis .obj-mes-contexto .obj-mes-titulo {
    color: var(--color-text-01);
}

.editarPerfis .obj-mes-contexto .obj-mes-count {
    background: var(--ap-fill);
    color: var(--ap-fill-text);
}

/* Badge "Em andamento" no card vigente */
.editarPerfis #tabd2-4 .item-objetivo .obj-vigente {
    flex: none;
    padding: 3px 9px;
    border-radius: 100px;
    background: var(--ap-fill);
    color: var(--ap-fill-text);
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
}

/* Responsivo: cabecalho empilha e acao vira full-width */
@media (max-width: 640px) {
    .editarPerfis .objetivos-head {
        flex-direction: column;
        gap: 12px;
    }

    .editarPerfis .objetivos-head .btn-add-objetivo {
        width: 100%;
        justify-content: center;
    }

    .editarPerfis #tabd2-4 .item-objetivo .item-objetivo-bar {
        padding: 9px 8px 7px 10px;
    }

    .editarPerfis #tabd2-4 .item-objetivo .text {
        padding: 11px 12px 13px;
    }
}

/* ============ Abas DATAS / METAS ============ */
.editarPerfis .perfil-datas {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 18px;
}

/* Seletor de ano: controle segmentado (pill group) */
.editarPerfis .perfil-datas .section-bl {
    display: inline-flex;
    gap: 2px;
    margin: 0;
    background: var(--ap-soft);
    border-radius: var(--ap-radius-sm);
    padding: 3px;
}

.editarPerfis .perfil-datas .section-bl .item {
    float: none;
    margin: 0;
    border: 0;
    padding: 6px 16px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 6px;
    color: var(--ap-muted);
    transition: background .15s ease, color .15s ease;
}

.editarPerfis .perfil-datas .section-bl .item:hover {
    color: var(--color-text-01);
}

.editarPerfis .perfil-datas .section-bl .item.atv {
    background: var(--color-bg);
    color: var(--color-text-01);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.10);
}

/* "Adicionar data" alinhado a direita da barra de anos */
.editarPerfis .perfil-datas .acoes-datas {
    margin: 0 0 0 auto;
    display: flex;
}

/* Cabecalho da aba METAS: titulo + subtitulo (esq) e seletor de ano (dir) */
.editarPerfis .metas-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.editarPerfis .metas-head-info {
    min-width: 0;
}

.editarPerfis .metas-title {
    margin: 0;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-text-01);
}

.editarPerfis .metas-sub {
    margin: 4px 0 0;
    max-width: 56ch;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--ap-muted);
}

/* Seletor de ano dentro do cabecalho: sem margem/estiramento extra */
.editarPerfis .metas-head .perfil-datas {
    margin: 0;
    flex: none;
}

/* Linhas (datas selecionadas e metas) em flex, com hover */
.editarPerfis .table-datas-selecionadas .item {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 8px;
    text-align: left;
    border-top: 1px solid var(--ap-line);
    border-radius: 8px;
    transition: background .12s ease;
}

.editarPerfis .table-datas-selecionadas .item:hover {
    background: var(--ap-hover);
}

.editarPerfis .table-datas-selecionadas .item .ttl {
    float: none;
    width: auto;
    flex: 1;
    padding: 0;
    font-size: 14px;
    font-weight: 500;
}

.editarPerfis .table-datas-selecionadas .item .data {
    float: none;
    padding: 0;
    font-size: 12px;
    color: var(--ap-muted);
}

.editarPerfis .table-datas-selecionadas .item .btn-remover,
.editarPerfis .table-datas-selecionadas .item .btn-add,
.editarPerfis .table-datas-selecionadas .item .acoes-dp {
    float: none;
    width: auto;
    margin: 0;
    order: 3;
}

/* ============ Aba METAS (redesign) ============ */
/* Os meses viram uma grade de cards (rotulo no topo, input embaixo).
   Escopado em #tabd2-6 para nao afetar a lista da aba Datas (#tabd2-2). */
.editarPerfis #tabd2-6 .table-datas-selecionadas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
}

.editarPerfis #tabd2-6 .table-datas-selecionadas .item {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    padding: 12px 14px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg);
    transition: border-color .15s ease, box-shadow .15s ease;
}

.editarPerfis #tabd2-6 .table-datas-selecionadas .item:hover {
    background: var(--color-bg);
    border-color: var(--ap-faint);
}

.editarPerfis #tabd2-6 .table-datas-selecionadas .item:focus-within {
    border-color: var(--ap-fill);
    box-shadow: 0 0 0 3px var(--ap-soft);
}

.editarPerfis #tabd2-6 .table-datas-selecionadas .item .ttl {
    flex: none;
    width: auto;
    padding: 0;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ap-muted);
}

/* Campo de meta (input numerico): ocupa a largura do card, foco no card */
.editarPerfis #tabd2-6 .table-datas-selecionadas .item input {
    width: 100%;
    text-align: center;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
    padding: 9px 8px;
    font-size: 15px;
    font-weight: 600;
    background: var(--ap-soft);
    color: var(--color-text-01);
    transition: border-color .15s ease, background .15s ease;
}

.editarPerfis #tabd2-6 .table-datas-selecionadas .item input::placeholder {
    color: var(--ap-faint);
    font-weight: 500;
}

.editarPerfis #tabd2-6 .table-datas-selecionadas .item input:focus {
    border-color: var(--ap-faint);
    background: var(--color-bg);
    box-shadow: none;
    outline: none;
}

/* Estado de carregamento ocupa a grade inteira */
.editarPerfis #tabd2-6 .metas-loading {
    grid-column: 1 / -1;
    padding: 24px 0;
    text-align: center;
    font-size: 13px;
    color: var(--ap-muted);
}

/* Responsivo: cabecalho empilha; grade com cards menores */
@media (max-width: 640px) {
    .editarPerfis .metas-head {
        flex-direction: column;
        gap: 12px;
    }

    .editarPerfis .metas-head .perfil-datas {
        width: 100%;
    }

    .editarPerfis #tabd2-6 .table-datas-selecionadas {
        grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
        gap: 8px;
    }
}

/* ============ Aba DATAS (redesign) ============ */
/* Mesma leitura da aba Metas: uma grade com um card por mes do ano, com as
   datas daquele mes dentro. Escopado em #tabd2-2 para nao afetar o popup de
   "Adicionar data" (.dp-sistema-lst), que segue em accordion. */
.editarPerfis #tabd2-2 .table-datas-selecionadas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
    align-items: start;
}

.editarPerfis #tabd2-2 .datas-mes {
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg);
    overflow: hidden;
}

/* Mes em foco: o do planejamento aberto (ou o mes corrente) */
.editarPerfis #tabd2-2 .datas-mes.foco {
    border-color: var(--ap-faint);
    box-shadow: 0 0 0 3px var(--ap-soft);
}

.editarPerfis #tabd2-2 .datas-mes-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 10px 9px 12px;
    background: var(--ap-soft);
    border-bottom: 1px solid var(--ap-line);
}

.editarPerfis #tabd2-2 .datas-mes.vazia .datas-mes-hdr {
    border-bottom-color: transparent;
}

.editarPerfis #tabd2-2 .datas-mes-hdr .nome {
    flex: 1 1 auto;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-text-01);
}

.editarPerfis #tabd2-2 .datas-mes-hdr .cnt {
    flex: none;
    font-size: 11px;
    font-weight: 600;
    color: var(--ap-muted);
    background: var(--color-bg);
    border: 1px solid var(--ap-line);
    border-radius: 100px;
    padding: 1px 8px;
}

/* "+" do mes: abre o popup de datas ja naquele mes */
.editarPerfis #tabd2-2 .datas-mes-hdr .btn-add-mes {
    flex: none;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    cursor: pointer;
    opacity: 0;
    transition: opacity .15s ease, background .15s ease;
}

.editarPerfis #tabd2-2 .datas-mes:hover .datas-mes-hdr .btn-add-mes {
    opacity: 1;
}

.editarPerfis #tabd2-2 .datas-mes-hdr .btn-add-mes:hover {
    background: var(--ap-hover);
}

.editarPerfis #tabd2-2 .datas-mes-hdr .btn-add-mes svg {
    fill: var(--ap-muted);
}

.editarPerfis #tabd2-2 .datas-mes-itens {
    padding: 4px 6px 6px;
}

.editarPerfis #tabd2-2 .datas-mes-vazio {
    padding: 10px 8px 11px;
    font-size: 12px;
    color: var(--ap-faint);
}

/* Linha da data: dia a esquerda (o mes ja e o card), titulo, acoes no hover */
.editarPerfis #tabd2-2 .table-datas-selecionadas .item {
    gap: 10px;
    padding: 6px 6px 7px;
    border-top: 0;
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .dia {
    flex: none;
    width: 30px;
    text-align: center;
    line-height: 1.15;
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .dia b {
    display: block;
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-01);
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .dia span {
    display: block;
    font-size: 9.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--ap-faint);
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .ttl {
    font-size: 13px;
    line-height: 1.3;
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .tag-dp {
    color: var(--ap-muted);
    background: var(--ap-soft);
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .acoes-dp {
    float: none;
    width: auto;
    margin: 0;
    order: 3;
    opacity: 0;
    transition: opacity .15s ease;
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item:hover .acoes-dp,
.editarPerfis #tabd2-2 .table-datas-selecionadas .item:focus-within .acoes-dp {
    opacity: 1;
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .acoes-dp>div {
    width: 24px;
    height: 24px;
    border: 0;
    border-radius: 6px;
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .acoes-dp>div:hover {
    background: var(--ap-hover);
    border-color: transparent;
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .btn-editar-dp svg,
.editarPerfis #tabd2-2 .table-datas-selecionadas .item .btn-excluir-dp svg,
.editarPerfis #tabd2-2 .table-datas-selecionadas .item .btn-remover-dt svg {
    fill: var(--ap-muted);
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .btn-editar-dp:hover svg,
.editarPerfis #tabd2-2 .table-datas-selecionadas .item .btn-remover-dt:hover svg {
    fill: var(--color-text-01);
}

.editarPerfis #tabd2-2 .table-datas-selecionadas .item .btn-excluir-dp:hover svg {
    fill: #e21e1e;
}

/* Estado de carregamento ocupa a grade inteira */
.editarPerfis #tabd2-2 .datas-loading {
    grid-column: 1 / -1;
    padding: 24px 0;
    text-align: center;
    font-size: 13px;
    color: var(--ap-muted);
}

/* Sem hover (touch): acoes sempre visiveis */
@media (hover: none) {

    .editarPerfis #tabd2-2 .datas-mes-hdr .btn-add-mes,
    .editarPerfis #tabd2-2 .table-datas-selecionadas .item .acoes-dp {
        opacity: 1;
    }
}

@media (max-width: 640px) {
    .editarPerfis #tabd2-2 .table-datas-selecionadas {
        grid-template-columns: 1fr;
    }
}

/* ============ Aba VISUAL ============ */
.editarPerfis .visual-section-block {
    margin-bottom: 24px;
    padding-bottom: 22px;
}

.editarPerfis .visual-section-block h3 {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-01);
}

.editarPerfis .visual-section-block p.info {
    color: var(--ap-muted);
}

.editarPerfis .visual-identidade-wrapper {
    padding-top: 4px !important;
}

/* =====================================================================
   ABA VISUAL - IDENTIDADE DA MARCA (paleta, tipografia, elementos, previa)
   Kit monocromatico escopado em .editarPerfis: a UNICA cor da tela e a
   cor da marca (swatch, faixa e previa). Tudo o mais sai dos tokens --ap-*.
   ===================================================================== */

/* ---- Cabecalho padrao de secao: titulo + subtitulo (esq) / acao (dir) ---- */
.editarPerfis .vis-sec-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.editarPerfis .vis-sec-head-txt {
    min-width: 0;
}

.editarPerfis .vis-sec-head h3 {
    margin: 0 0 3px;
}

.editarPerfis .vis-sec-head p.info {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.5;
    max-width: 62ch;
}

/* Botao secundario "fantasma" das secoes (copiar paleta, extrair, anexar) */
.editarPerfis .vis-btn-ghost {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    padding: 7px 12px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
    background: var(--color-bg);
    color: var(--color-text-01);
    fill: var(--ap-muted);
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease;
}

.editarPerfis .vis-btn-ghost svg {
    width: 14px;
    height: 14px;
}

.editarPerfis .vis-btn-ghost:hover {
    background: var(--ap-hover);
    border-color: var(--ap-faint);
    fill: var(--color-text-01);
}

/* Estado vazio generico das secoes da aba */
.editarPerfis .vis-vazio {
    padding: 16px 14px;
    border: 1px dashed var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg-01);
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--ap-muted);
}

/* ---- Logotipos: mesma grade dos elementos de apoio ---- */
.editarPerfis .lst-perfis-logo {
    grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
    gap: 10px;
}

.editarPerfis .lst-perfis-logo:empty {
    display: none;
}

.editarPerfis .lst-perfis-logo .item-logo {
    background: var(--color-bg);
    border-radius: var(--ap-radius);
    min-height: 104px;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.editarPerfis .lst-perfis-logo .item-logo:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, .06);
}

.editarPerfis .lst-perfis-logo .item-logo .img img {
    max-width: 100%;
    padding: 18px;
    box-sizing: border-box;
}

/* ---------------------- PALETA DE CORES ---------------------- */
.editarPerfis .color-palette-manager {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.editarPerfis .vis-paleta-grupo {
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg);
    padding: 14px 14px 12px;
    min-width: 0;
}

.editarPerfis .vis-paleta-hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.editarPerfis .vis-paleta-hdr-txt {
    display: flex;
    align-items: baseline;
    gap: 8px;
    min-width: 0;
}

.editarPerfis .vis-paleta-titulo {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-01);
}

.editarPerfis .vis-paleta-cont {
    font-size: 11px;
    font-weight: 600;
    color: var(--ap-muted);
    white-space: nowrap;
}

.editarPerfis .vis-paleta-hdr .vis-btn-ghost {
    padding: 5px 9px;
    font-size: 11.5px;
    color: var(--ap-muted);
}

.editarPerfis .vis-paleta-hdr .vis-btn-ghost:hover {
    color: var(--color-text-01);
}

.editarPerfis .vis-paleta-dica {
    margin: 5px 0 12px;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--ap-muted);
}

.editarPerfis .vis-swatches {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
}

.editarPerfis .color-swatch-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px;
    border: 1px solid var(--ap-line);
    border-radius: 10px;
    background: var(--color-bg);
    box-shadow: none;
    cursor: grab;
    transition: border-color .15s ease, background .15s ease;
}

.editarPerfis .color-swatch-item:hover {
    border-color: var(--ap-faint);
    background: var(--ap-hover);
}

.editarPerfis .color-swatch-item.dragging {
    opacity: .45;
}

/* O bloco de cor CARREGA o proprio HEX: a cor do texto vem inline (calculada por
   contraste no JS), entao funciona tanto em cor clara quanto escura. */
.editarPerfis .color-swatch-item .color-box {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 96px;
    height: 40px;
    border-radius: 9px;
    border: 1px solid rgba(0, 0, 0, .12);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .18);
    cursor: pointer;
}

.editarPerfis .color-swatch-item .color-hex {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .04em;
    color: inherit;
    font-variant-numeric: tabular-nums;
}

/* Numero da ordem no canto do bloco - a ordem da paleta e informacao, nao enfeite */
.editarPerfis .color-swatch-item .sw-ordem {
    position: absolute;
    top: 3px;
    left: 6px;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    color: inherit;
    opacity: .5;
}

.editarPerfis .color-swatch-item .sw-tag {
    min-width: 0;
    flex: 1 1 auto;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--ap-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.editarPerfis .color-swatch-item.sw-principal {
    border-color: var(--ap-faint);
}

.editarPerfis .color-swatch-item.sw-principal .sw-tag {
    color: var(--color-text-01);
}

.editarPerfis .color-swatch-item .sw-acoes {
    display: flex;
    align-items: center;
    gap: 2px;
    opacity: 0;
    transition: opacity .15s ease;
}

.editarPerfis .color-swatch-item:hover .sw-acoes {
    opacity: 1;
}

.editarPerfis .color-swatch-item .sw-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 7px;
    cursor: pointer;
    fill: var(--ap-muted);
    transition: background .15s ease, fill .15s ease;
}

.editarPerfis .color-swatch-item .sw-btn svg {
    width: 13px;
    height: 13px;
}

.editarPerfis .color-swatch-item .sw-btn:hover {
    background: var(--color-bg-01);
    fill: var(--color-text-01);
}

.editarPerfis .vis-paleta-vazio {
    display: none;
    padding: 16px 12px;
    border: 1px dashed var(--ap-line);
    border-radius: 10px;
    font-size: 12px;
    color: var(--ap-muted);
    text-align: center;
}

/* Linha de adicionar cor */
.editarPerfis .add-color-wrapper {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--ap-line);
}

/* Quadradinho que abre o AirpostColorPicker (o outro caminho e digitar o codigo) */
.editarPerfis .vis-color-dot {
    position: relative;
    display: block;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid var(--ap-line);
    cursor: pointer;
    transition: border-color .15s ease, transform .1s ease;
}

.editarPerfis .vis-color-dot:hover {
    border-color: var(--color-text-01);
}

.editarPerfis .vis-color-dot:active {
    transform: scale(.94);
}

/* Codigo invalido/vazio no campo: o quadradinho vira xadrez de "sem cor".
   E este e o estado INICIAL da linha - a cor so existe depois de escolhida. */
.editarPerfis .vis-color-dot-vazio {
    border-style: dashed;
    background:
        repeating-linear-gradient(45deg, var(--color-bg-01) 0 5px, var(--color-bg) 5px 10px);
}

/* Clicou em "Adicionar" sem ter escolhido cor: a linha inteira pisca para
   dizer ONDE esta o que falta (o toast sozinho passava batido). */
.editarPerfis .add-color-wrapper.vis-add-alerta {
    animation: vis-add-alerta .45s ease 2;
}

@keyframes vis-add-alerta {

    0%,
    100% {
        box-shadow: 0 0 0 0 rgba(232, 58, 58, 0);
    }

    50% {
        box-shadow: 0 0 0 3px rgba(232, 58, 58, .18);
    }
}

.editarPerfis .add-color-wrapper input[type="text"] {
    width: 0;
    flex: 1 1 auto;
    min-width: 0;
    height: 30px;
    padding: 0 9px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
    background: var(--color-bg);
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.editarPerfis .add-color-wrapper input[type="text"]:focus {
    outline: none;
    border-color: var(--color-text-01);
    box-shadow: 0 0 0 3px var(--color-bg-01);
}

.editarPerfis .add-color-wrapper .btn-add {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 30px;
    padding: 0 11px;
    border: 1px solid var(--ap-fill);
    border-radius: var(--ap-radius-sm);
    background: var(--ap-fill);
    color: var(--ap-fill-text);
    fill: var(--ap-fill-text);
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
    transition: opacity .15s ease;
}

.editarPerfis .add-color-wrapper .btn-add svg {
    width: 13px;
    height: 13px;
}

.editarPerfis .add-color-wrapper .btn-add:hover {
    background: var(--ap-fill);
    opacity: .88;
}

/* Sugestoes extraidas do logotipo */
.editarPerfis .vis-extraidas:empty {
    display: none;
}

.editarPerfis .vis-extraidas {
    margin-top: 10px;
    padding: 10px;
    border: 1px dashed var(--ap-line);
    border-radius: 10px;
    background: var(--color-bg-01);
}

.editarPerfis .vis-extraidas-hdr {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ap-muted);
    margin-bottom: 8px;
}

.editarPerfis .vis-extraidas-hdr span {
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    opacity: .8;
}

.editarPerfis .vis-extraidas-load {
    font-size: 12px;
    color: var(--ap-muted);
}

.editarPerfis .vis-extraidas-lst {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.editarPerfis .vis-extraida {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 9px 4px 4px;
    border: 1px solid var(--ap-line);
    border-radius: 100px;
    background: var(--color-bg);
    font-size: 11.5px;
    font-weight: 600;
    color: var(--color-text-01);
    cursor: pointer;
    transition: border-color .15s ease;
}

.editarPerfis .vis-extraida:hover {
    border-color: var(--color-text-01);
}

.editarPerfis .vis-extraida span {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, .12);
}

/* ---------------------- TIPOGRAFIA ---------------------- */
.editarPerfis .vis-tipo-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.editarPerfis .vis-tipo-card {
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg);
    padding: 14px;
    min-width: 0;
}

.editarPerfis .vis-tipo-card label {
    display: block;
    margin-bottom: 7px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--ap-muted);
}

.editarPerfis .vis-fonte-ipt {
    width: 100%;
    box-sizing: border-box;
    height: 36px;
    padding: 0 11px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
    background: var(--color-bg);
    color: var(--color-text-01);
    font-size: 13px;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.editarPerfis .vis-fonte-ipt:focus {
    outline: none;
    border-color: var(--color-text-01);
    box-shadow: 0 0 0 3px var(--color-bg-01);
}

.editarPerfis .vis-tipo-preview {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 12px;
    padding: 14px;
    border-radius: 10px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    min-height: 62px;
    overflow: hidden;
}

.editarPerfis .vis-tipo-aa {
    flex: 0 0 auto;
    font-size: 30px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -.02em;
}

.editarPerfis .vis-tipo-sample {
    font-size: 13px;
    line-height: 1.45;
    color: var(--ap-muted);
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.editarPerfis .vis-tipo-preview-vazio {
    opacity: .45;
}

/* ---------------------- ELEMENTOS DE APOIO ---------------------- */
.editarPerfis .vis-drop {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border: 1px dashed var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg-01);
    fill: var(--ap-muted);
    cursor: pointer;
    transition: border-color .15s ease, background .15s ease;
}

.editarPerfis .vis-drop svg {
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
}

.editarPerfis .vis-drop-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.35;
}

.editarPerfis .vis-drop-txt strong {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-01);
}

.editarPerfis .vis-drop-txt span {
    font-size: 12px;
    color: var(--ap-muted);
}

.editarPerfis .vis-drop:hover,
.editarPerfis .vis-drop-ativo {
    border-color: var(--color-text-01);
    background: var(--ap-hover);
    fill: var(--color-text-01);
}

.editarPerfis .lst-perfis-elemento {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
    gap: 10px;
    margin-top: 12px !important;
}

.editarPerfis .lst-perfis-elemento:empty {
    display: none;
}

.editarPerfis .item-elemento {
    position: relative;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg);
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.editarPerfis .item-elemento:hover {
    border-color: var(--ap-faint);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .06);
}

.editarPerfis .item-elemento .el-thumb {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 104px;
    padding: 12px;
    box-sizing: border-box;
    cursor: pointer;
    background:
        linear-gradient(45deg, var(--color-bg-01) 25%, transparent 25%) -8px 0/16px 16px,
        linear-gradient(-45deg, var(--color-bg-01) 25%, transparent 25%) -8px 0/16px 16px,
        linear-gradient(45deg, transparent 75%, var(--color-bg-01) 75%) 0 0/16px 16px,
        linear-gradient(-45deg, transparent 75%, var(--color-bg-01) 75%) 0 0/16px 16px,
        var(--color-bg);
}

.editarPerfis .item-elemento .el-thumb img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    padding: 0;
    object-fit: contain;
}

/* PDF: a miniatura da pagina 1 preenche o card (estilo Drive); o icone generico
   so aparece quando o _thumb.jpeg nao existe (classe posta pelo onerror). */
.editarPerfis .item-elemento .el-thumb-pdf {
    padding: 0;
    background: var(--color-bg-01);
    fill: var(--ap-faint);
}

.editarPerfis .item-elemento .el-thumb-pdf img {
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
    object-fit: cover;
    object-position: top center;
}

.editarPerfis .item-elemento .el-thumb-pdf .el-ico-pdf {
    display: none;
}

.editarPerfis .item-elemento .el-thumb-pdf svg {
    width: 34px;
    height: 34px;
}

.editarPerfis .item-elemento .el-thumb-pdf.el-sem-thumb img {
    display: none;
}

.editarPerfis .item-elemento .el-thumb-pdf.el-sem-thumb .el-ico-pdf {
    display: flex;
}

/* Acoes: UMA barra flutuante (nao tres caixinhas soltas sobre a miniatura). A
   barra carrega a moldura e o fundo; cada botao e so o glifo. */
.editarPerfis .item-elemento .el-acoes {
    position: absolute;
    top: 7px;
    right: 7px;
    display: flex;
    gap: 2px;
    padding: 3px;
    border: 1px solid var(--ap-line);
    border-radius: 9px;
    background: color-mix(in srgb, var(--color-bg) 90%, transparent);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .12);
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .15s ease, transform .15s ease;
}

.editarPerfis .item-elemento:hover .el-acoes {
    opacity: 1;
    transform: none;
}

.editarPerfis .item-elemento .el-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border: none;
    border-radius: 6px;
    background: transparent;
    fill: var(--ap-muted);
    cursor: pointer;
    transition: background .12s ease, fill .12s ease, transform .06s ease;
}

.editarPerfis .item-elemento .el-btn svg {
    width: 13px;
    height: 13px;
}

/* Hover inequivoco e monocromatico: o botao inverte (tinta cheia + glifo no
   fundo). O --ap-hover sozinho quase nao aparecia sobre a miniatura clara. */
.editarPerfis .item-elemento .el-btn:hover {
    background: var(--ap-fill);
    fill: var(--ap-fill-text);
}

.editarPerfis .item-elemento .el-btn:active {
    transform: scale(.9);
}

.editarPerfis .item-elemento .rodape {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    padding: 7px 10px;
    border-top: 1px solid var(--ap-line);
}

.editarPerfis .item-elemento .el-badge {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .06em;
    padding: 2px 6px;
    border-radius: 5px;
    background: var(--color-bg-01);
    color: var(--ap-muted);
}

.editarPerfis .item-elemento .rodape .data {
    font-size: 11px;
    font-weight: 500;
    opacity: 1;
    letter-spacing: 0;
    color: var(--ap-muted);
}

/* ---------------------- PREVIA DA IDENTIDADE ---------------------- */
.editarPerfis .vis-preview {
    display: grid;
    grid-template-columns: minmax(0, 260px) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
}

.editarPerfis .vis-preview-card {
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg);
    overflow: hidden;
    box-shadow: 0 6px 22px rgba(0, 0, 0, .06);
}

.editarPerfis .vis-preview-cover {
    position: relative;
    height: 92px;
    background-color: var(--color-bg-01);
    background-size: cover;
}

.editarPerfis .vis-preview-cover.vis-sem-cor {
    background-image: repeating-linear-gradient(45deg, var(--color-bg-01) 0 8px, var(--color-bg) 8px 16px);
}

.editarPerfis .vis-preview-av {
    position: absolute;
    left: 16px;
    bottom: -22px;
    width: 52px;
    height: 52px;
    border-radius: 15px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    border: 3px solid var(--color-bg);
    box-shadow: 0 4px 12px rgba(0, 0, 0, .16);
}

.editarPerfis .vis-preview-av.vis-sem-foto {
    background-image: none;
}

.editarPerfis .vis-preview-body {
    padding: 30px 16px 16px;
}

.editarPerfis .vis-preview-titulo {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--color-text-01);
    margin-bottom: 5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.editarPerfis .vis-preview-texto {
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--ap-muted);
}

.editarPerfis .vis-preview-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 11px;
}

.editarPerfis .vis-preview-tag {
    font-size: 10.5px;
    font-weight: 600;
    padding: 3px 8px;
    border-radius: 100px;
}

.editarPerfis .vis-preview-tag.vis-tag-neutra {
    background: var(--color-bg-01);
    color: var(--ap-muted);
}

.editarPerfis .vis-preview-btn {
    margin-top: 13px;
    padding: 9px 14px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
    background: var(--color-bg-01);
    color: var(--ap-muted);
    font-size: 12.5px;
    font-weight: 600;
    text-align: center;
}

.editarPerfis .vis-preview-lado {
    display: flex;
    flex-direction: column;
    gap: 12px;
    min-width: 0;
}

.editarPerfis .vis-preview-strip {
    display: flex;
    height: 56px;
    border-radius: var(--ap-radius);
    overflow: hidden;
    border: 1px solid var(--ap-line);
}

.editarPerfis .vis-preview-strip span {
    flex: 1 1 0;
    min-width: 0;
    transition: flex .2s ease;
}

.editarPerfis .vis-preview-strip .vis-strip-vazio {
    background: repeating-linear-gradient(45deg, var(--color-bg-01) 0 8px, var(--color-bg) 8px 16px);
}

.editarPerfis .vis-preview-resumo {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 13px 14px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--color-bg);
    font-size: 12px;
    color: var(--ap-muted);
}

.editarPerfis .vis-preview-resumo b {
    color: var(--color-text-01);
    font-weight: 600;
}

@media (max-width: 760px) {

    .editarPerfis .color-palette-manager,
    .editarPerfis .vis-tipo-grid,
    .editarPerfis .vis-preview {
        grid-template-columns: minmax(0, 1fr);
    }

    .editarPerfis .vis-sec-head {
        flex-direction: column;
        gap: 10px;
    }

    .editarPerfis .color-swatch-item .sw-acoes {
        opacity: 1;
    }

    .editarPerfis .item-elemento .el-acoes {
        opacity: 1;
        transform: none;
    }
}

/* ---- Cabecalho do popup (avatar + nome) ---- */
.editarPerfis .editarPerfis-header {
    gap: 12px;
    padding: 2px 0 12px;
    margin-bottom: 2px;
}

.editarPerfis .editarPerfis-avatar {
    width: 35px;
    height: 35px;
}

.editarPerfis .editarPerfis-header h2 {
    font-size: 17px;
    letter-spacing: -0.01em;
}

/* ---- Rodape de acoes: "Salvar" como barra do popup, alinhado a direita ---- */
.editarPerfis .editarPerfis-foot {
    display: flex;
    justify-content: flex-end;
    /* margin-top: 20px; */
    padding-top: 16px;
    border-top: 1px solid var(--ap-line);
}

.editarPerfis .btn-save-perfil {
    float: none;
    clear: none;
    margin: 0;
    padding: 11px 22px;
    border-radius: var(--ap-radius-sm);
    font-size: 13.5px;
    font-weight: 600;
    background: var(--ap-fill);
    color: var(--ap-fill-text);
    box-shadow: none;
    transition: opacity .15s ease, transform .05s ease;
}

.editarPerfis .btn-save-perfil:hover {
    opacity: .9;
}

.editarPerfis .btn-save-perfil:active {
    transform: translateY(1px);
}

/* A aba Permissoes tem botao proprio: esconde a barra de rodape inteira. */
.editarPerfis.na-aba-permissoes .editarPerfis-foot {
    display: none;
}

/* ---- Tipografia / IA (aba Visual): select monocromatico + foco neutro ---- */
.editarPerfis .visual-section-block select {
    border-radius: var(--ap-radius-sm) !important;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.editarPerfis .visual-section-block select:hover {
    border-color: var(--ap-faint) !important;
}

.editarPerfis .visual-section-block select:focus {
    border-color: var(--color-text-01) !important;
    box-shadow: 0 0 0 3px var(--color-bg-01) !important;
    outline: none;
}

/* ---- Logos / Elementos: grade reduz para 2 colunas em telas estreitas ---- */
@media (max-width: 600px) {

    .editarPerfis .lst-perfis-logo,
    .editarPerfis .lst-perfis-elemento {
        grid-template-columns: repeat(2, 1fr);
    }

    .editarPerfis .btn-save-perfil {
        width: 100%;
        text-align: center;
    }
}

/* =====================================================================
   ABA CONEXOES - redesign monocromatico (cards estilo ClickUp/Discord)
   Escopado em .editarPerfis e baseado nos tokens de tema (--color e --ap),
   entao claro e dark funcionam automaticamente. Cores de marca aparecem
   APENAS no glyph do logo (chip neutro), para identificacao da rede.
   ===================================================================== */

/* Cores de marca (logo chip + avatar placeholder) */
.editarPerfis .rede-logo.facebook svg,
.editarPerfis .rede-conta-av.ph.facebook svg,
.editarPerfis .rede-canal-ic.facebook svg {
    fill: #1877F2;
}

.editarPerfis .rede-logo.instagram svg,
.editarPerfis .rede-conta-av.ph.instagram svg,
.editarPerfis .rede-canal-ic.instagram svg {
    fill: #E1306C;
}

.editarPerfis .rede-logo.tiktok svg,
.editarPerfis .rede-conta-av.ph.tiktok svg {
    fill: var(--color-text-01);
}

.editarPerfis .rede-logo.linkedin svg,
.editarPerfis .rede-conta-av.ph.linkedin svg {
    fill: #0A66C2;
}

.editarPerfis .rede-logo.youtube svg,
.editarPerfis .rede-conta-av.ph.youtube svg {
    fill: #FF0000;
}

/* O * global do tema nao define box-sizing (content-box). Forcamos border-box
   no escopo das conexoes p/ que width:100% + padding nao estoure a largura. */
.editarPerfis .tabs-redes-conexoes,
.editarPerfis .tabs-redes-conexoes * {
    box-sizing: border-box;
}

/* Barra de orientacoes geral */
.editarPerfis .conexoes-intro {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    background: var(--ap-soft);
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--color-text-01);
}

.editarPerfis .conexoes-intro .ic {
    flex: 0 0 17px;
    width: 17px;
    height: 17px;
    margin-top: 1px;
    fill: var(--ap-muted);
}

.editarPerfis .conexoes-intro b {
    font-weight: 600;
}

/* Grid responsivo DIRIGIDO PELO CONTAINER (auto-fit): 2 colunas quando ha
   largura (~>=510px), 1 coluna em telas/colunas estreitas. Independe da
   viewport, entao funciona mesmo com o modal mais estreito que a tela. */
.editarPerfis .conexoes-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(290px, 1fr));
    gap: 14px;
    margin-top: 14px;
}

/* Card de rede */
.editarPerfis .tabs-redes-conexoes-results-item {
    display: flex;
    flex-direction: column;
    float: none;
    width: auto;
    min-width: 0;
    min-height: 0;
    margin: 0;
    background: var(--color-bg);
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius);
    overflow: hidden;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.editarPerfis .tabs-redes-conexoes-results-item:hover {
    border-color: var(--ap-faint);
}

.editarPerfis .tabs-redes-conexoes-results-item.soon {
    opacity: .9;
}

/* Cabecalho: chip do logo + titulo/subtitulo + status */
.editarPerfis .rede-card-head {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 14px 15px;
    border-bottom: 1px solid var(--ap-line);
}

.editarPerfis .rede-logo {
    flex: 0 0 40px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--ap-soft);
    box-shadow: inset 0 0 0 1px var(--ap-line);
}

.editarPerfis .rede-logo svg {
    width: 21px;
    height: 21px;
}

.editarPerfis .rede-card-tit {
    flex: 1 1 auto;
    min-width: 0;
}

.editarPerfis .rede-card-tit h5 {
    margin: 0;
    padding: 0;
    text-align: left;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.2;
    color: var(--color-text-01);
}

.editarPerfis .rede-card-tit .rede-card-sub {
    display: block;
    margin-top: 2px;
    font-size: 11.5px;
    color: var(--ap-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Badge de status: rotulo neutro + ponto colorido */
.editarPerfis .rede-status {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px 4px 8px;
    border-radius: 100px;
    background: var(--ap-soft);
    font-size: 11px;
    font-weight: 600;
    color: var(--ap-muted);
    white-space: nowrap;
}

.editarPerfis .rede-status i {
    flex: 0 0 7px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--ap-faint);
}

.editarPerfis .rede-status.on i {
    background: #2bb673;
    box-shadow: 0 0 0 3px #2bb67324;
}

.editarPerfis .rede-status.paused i {
    background: #e0a30b;
}

.editarPerfis .rede-status.alert {
    color: #e5484d;
}

.editarPerfis .rede-status.alert i {
    background: #e5484d;
    box-shadow: 0 0 0 3px #e5484d24;
}

/* Corpo do card */
.editarPerfis .tabs-redes-conexoes-results-item .box-conectar {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 10px;
    width: auto;
    margin: 0;
    padding: 14px 15px 15px;
}

/* Notas / avisos */
.editarPerfis .rede-nota {
    display: flex;
    gap: 9px;
    padding: 10px 12px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-soft);
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--color-text-01);
}

.editarPerfis .rede-nota>div {
    flex: 1 1 auto;
    min-width: 0;
}

.editarPerfis .rede-nota b {
    font-weight: 600;
}

.editarPerfis .rede-nota .ic {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin-top: 1px;
    fill: var(--ap-muted);
}

.editarPerfis .rede-nota.alerta {
    background: color-mix(in srgb, #e5a200 11%, var(--color-bg));
    box-shadow: inset 2px 0 0 #e5a200;
}

.editarPerfis .rede-nota.alerta .ic {
    fill: #e5a200;
}

.editarPerfis .rede-nota.alerta b {
    display: block;
    margin-bottom: 2px;
}

.editarPerfis .rede-nota.alerta span {
    display: block;
    color: var(--ap-muted);
}

.editarPerfis .rede-nota.alerta .det {
    margin-top: 5px;
    font-weight: 500;
    color: var(--color-text-01);
}

/* CTA Conectar: botao primario monocromatico (preenchido) */
.editarPerfis .rede-cta {
    margin-top: auto;
    padding-top: 4px;
}

.editarPerfis .tabs-redes-conexoes-results-item .btn-conectar {
    float: none;
    margin: 0;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 11px 16px;
    border-radius: var(--ap-radius-sm);
    background: var(--ap-fill);
    color: var(--ap-fill-text);
    fill: var(--ap-fill-text);
    box-shadow: none;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity .15s ease, transform .05s ease;
}

.editarPerfis .tabs-redes-conexoes-results-item .btn-conectar:hover {
    opacity: .9;
}

.editarPerfis .tabs-redes-conexoes-results-item .btn-conectar:active {
    transform: translateY(1px);
}

.editarPerfis .tabs-redes-conexoes-results-item .btn-conectar svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

/* Conta conectada */
.editarPerfis .rede-conta {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 10px 12px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
}

.editarPerfis .rede-conta-av {
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--ap-soft);
}

.editarPerfis .rede-conta-av.ph {
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px var(--ap-line);
}

.editarPerfis .rede-conta-av.ph svg {
    width: 19px;
    height: 19px;
}

.editarPerfis .rede-conta-info {
    min-width: 0;
}

.editarPerfis .rede-conta-info b {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--color-text-01);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.editarPerfis .tabs-redes-conexoes-results-item .expira-em {
    display: block;
    text-align: left;
    margin-top: 1px;
    font-size: 11.5px;
    color: var(--ap-muted);
    opacity: 1;
}

/* Canais do card Facebook/Instagram (Pagina + perfil) */
.editarPerfis .rede-canais {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 4px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
}

.editarPerfis .rede-canais .action-item {
    float: none;
    width: auto;
    text-align: left;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 8px;
    border-radius: 6px;
    transition: background .12s ease;
}

.editarPerfis .rede-canais .action-item:hover {
    background: var(--ap-hover);
}

.editarPerfis .rede-canal {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
}

.editarPerfis .rede-canal-ic {
    display: inline-flex;
    width: 18px;
    height: 18px;
}

.editarPerfis .rede-canal-ic svg {
    width: 18px;
    height: 18px;
}

.editarPerfis .rede-canais .action-item .info {
    font-size: 12px;
    color: var(--ap-muted);
}

/* Toggle Ativar / Pausar (canais e redes simples) */
.editarPerfis .rede-toggle {
    display: flex;
}

.editarPerfis .tabs-redes-conexoes-results-item .btn-ativar,
.editarPerfis .tabs-redes-conexoes-results-item .btn-desativar {
    float: none;
    margin: 0;
    width: auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 13px;
    border-radius: 100px;
    border: 1px solid var(--ap-line);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease, opacity .15s ease;
}

.editarPerfis .tabs-redes-conexoes-results-item .btn-ativar {
    background: var(--ap-fill);
    border-color: var(--ap-fill);
    color: var(--ap-fill-text);
}

.editarPerfis .tabs-redes-conexoes-results-item .btn-ativar:hover {
    opacity: .9;
}

.editarPerfis .tabs-redes-conexoes-results-item .btn-desativar {
    background: var(--color-bg);
    color: var(--ap-muted);
}

.editarPerfis .tabs-redes-conexoes-results-item .btn-desativar:hover {
    background: var(--ap-hover);
    color: var(--color-text-01);
}

.editarPerfis .rede-toggle .btn-ativar,
.editarPerfis .rede-toggle .btn-desativar {
    width: 100%;
    padding: 9px 13px;
    border-radius: var(--ap-radius-sm);
    font-size: 13px;
}

/* Acoes da conta: Atualizar + Desconectar */
.editarPerfis .tabs-redes-conexoes-results-item .btns {
    display: flex;
    align-items: center;
    gap: 8px;
    width: auto;
    margin: 2px 0 0;
}

.editarPerfis .tabs-redes-conexoes-results-item .btns .btn {
    float: none;
    width: auto;
    margin: 0;
    flex: 1 1 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 12px;
    border-radius: var(--ap-radius-sm);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.editarPerfis .tabs-redes-conexoes-results-item .btns .atualizar-conexao-perfis {
    background: var(--ap-soft);
    color: var(--color-text-01);
    border: 1px solid transparent;
}

.editarPerfis .tabs-redes-conexoes-results-item .btns .atualizar-conexao-perfis:hover {
    background: var(--ap-hover);
}

.editarPerfis .tabs-redes-conexoes-results-item .btns .desconectar {
    flex: 0 0 auto;
    margin-left: 0;
    background: transparent;
    color: var(--ap-muted);
    border: 1px solid var(--ap-line);
}

.editarPerfis .tabs-redes-conexoes-results-item .btns .desconectar:hover {
    color: #e5484d;
    border-color: color-mix(in srgb, #e5484d 40%, var(--ap-line));
}

/* Clearfix ::after fantasma nos conteineres que viraram flex (escopo) */
.editarPerfis .conexoes-intro::after,
.editarPerfis .rede-card-head::after,
.editarPerfis .rede-conta::after,
.editarPerfis .rede-nota::after,
.editarPerfis .rede-canais .action-item::after,
.editarPerfis .tabs-redes-conexoes-results-item .box-conectar::after,
.editarPerfis .tabs-redes-conexoes-results-item .btns::after,
.editarPerfis .tabs-redes-conexoes-results-item .actions::after,
.editarPerfis .tabs-redes-conexoes-results-item .actions .action-item::after {
    display: none !important;
    content: none !important;
}

/* Responsivo: ajustes finos de espacamento em telas pequenas (as colunas ja
   sao tratadas pelo auto-fit do grid acima). */
@media (max-width: 480px) {
    .editarPerfis .rede-card-head {
        padding: 12px 13px;
    }

    .editarPerfis .tabs-redes-conexoes-results-item .box-conectar {
        padding: 12px 13px 13px;
    }

    .editarPerfis .tabs-redes-conexoes-results-item .btns {
        flex-wrap: wrap;
    }

    .editarPerfis .tabs-redes-conexoes-results-item .btns .desconectar {
        flex: 1 1 auto;
    }
}

/* Clearfix ::after era para layouts float; nos conteineres que viraram flex
   ele vira um item-filho extra e cria gap fantasma - desliga so no escopo. */
.editarPerfis .perfil-datas::after,
.editarPerfis .perfil-datas .section-bl::after,
.editarPerfis .table-datas-selecionadas .item::after,
.editarPerfis .menu-sobre-perfil::after {
    display: none;
    content: none;
}

/* enquanto o instagram nao e aprovado */
.tabd2 .tabd2-links {
    min-width: 100%;
}

/* ============================================================
   TEMPLATES DE LISTA (criar lista estilo ClickUp)
   ============================================================ */
.criar-lista-modo {
    display: flex;
    gap: 10px;
    padding: 0px 20px 4px 20px;
}

.criar-lista-modo .modo-opt {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 10px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 11px 12px;
    cursor: pointer;
    transition: border-color .12s, background .12s;
}

.criar-lista-modo .modo-opt:hover {
    background: #00000005;
}

.criar-lista-modo .modo-opt.atv {
    border-color: #2588ff;
    background: #2588ff0d;
}

.criar-lista-modo .modo-opt svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    fill: #555;
}

.criar-lista-modo .modo-opt.atv svg {
    fill: #2588ff;
}

.criar-lista-modo .modo-opt .t b {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 16px;
}

.criar-lista-modo .modo-opt .t span {
    display: block;
    font-size: 11.5px;
    opacity: 0.6;
}

.criar-lista-galeria {
    padding: 12px 20px 4px 20px;
}

.criar-lista-galeria .galeria-loading,
.criar-lista-galeria .galeria-vazia {
    font-size: 13px;
    opacity: 0.6;
    padding: 14px 2px;
}

.criar-lista-galeria .galeria-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    max-height: 320px;
    overflow-y: auto;
}

.template-card {
    position: relative;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    padding: 12px 13px 11px 13px;
    cursor: pointer;
    transition: border-color .12s, box-shadow .12s;
}

.template-card:hover {
    border-color: #2588ff80;
}

.template-card.atv {
    border-color: #2588ff;
    box-shadow: 0 0 0 1px #2588ff inset;
}

.template-card .t-head {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 4px;
}

.template-card .t-head b {
    font-size: 13.5px;
    font-weight: 600;
}

.template-card .t-badge {
    font-size: 10px;
    background: #2588ff1a;
    color: #2588ff;
    padding: 1px 6px;
    border-radius: 20px;
    white-space: nowrap;
}

.template-card .t-desc {
    font-size: 12px;
    opacity: 0.65;
    line-height: 16px;
    margin-bottom: 10px;
    min-height: 32px;
}

.template-card .t-dots {
    display: flex;
    align-items: center;
    gap: 5px;
    flex-wrap: wrap;
}

.template-card .t-dots .t-dot {
    width: 11px;
    height: 11px;
    border-radius: 50%;
    flex: 0 0 11px;
}

.template-card .t-foot {
    font-size: 11px;
    opacity: 0.5;
    margin-top: 9px;
}

.template-card .t-del {
    position: absolute;
    top: 8px;
    right: 8px;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    opacity: 0;
    transition: opacity .12s, background .12s;
}

.template-card:hover .t-del {
    opacity: 0.5;
}

.template-card .t-del:hover {
    opacity: 1;
    background: #e74c3c1a;
}

.template-card .t-del svg {
    width: 13px;
    height: 13px;
    fill: #e74c3c;
}

.header-pagina .filtro-all {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    justify-content: flex-end;
}


.contant-lista-estrutura.tarefa .atividades-tabs {
    display: none;
}


/* ============================================================================
   Refino de UX (claro/escuro): acoes dos campos aparecem so no HOVER do campo
   + botoes abaixo da midia com visual limpo e MONOCROMATICO (sem o azul do
   sistema - o "mute" vem da opacity, entao funciona nos dois temas).
   ========================================================================== */

/* --- 1) Toolbar dos campos (copiar / ouvir / negrito / Aprimorar IA):
        oculta por padrao, aparece no hover ou foco do campo --- */
.campo-style-02 .btns-campo {
    opacity: 0;
    pointer-events: none;
    transform: translateX(4px);
    transition: opacity .16s ease, transform .16s ease;
}

.campo-style-02:hover .btns-campo,
.campo-style-02:focus-within .btns-campo {
    opacity: 1;
    pointer-events: auto;
    transform: none;
}

/* em telas de toque (sem hover) mantem sempre visivel */
@media (hover: none) {
    .campo-style-02 .btns-campo {
        opacity: 1;
        pointer-events: auto;
        transform: none;
    }
}

/* icones/botoes monocromaticos (mute via opacity -> adapta claro/escuro) */
.campo-style-02 .btns-campo .btn {
    opacity: .7;
    transition: opacity .15s ease;
}

.campo-style-02 .btns-campo .btn:hover {
    opacity: 1;
}

/* "Aprimorar IA": monocromatico, sem cor de destaque */
.campo-style-02 .btns-campo .btn-ia.btn-aprimorar {
    color: var(--color-text-01);
    background: transparent;
    opacity: .62;
}

.campo-style-02 .btns-campo .btn-ia.btn-aprimorar:hover {
    opacity: 1;
}

/* --- 2) Botoes abaixo da midia (Substituir/Adicionar midia, Editor, Gerar IA):
        limpos e monocromaticos --- */
.item-post .linha-acoes-midia {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 2px;
    padding-right: 22px;
}

.item-post .btn-upload {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    margin: 0;
    padding: 8px 12px;
    font-size: 12.5px;
    font-weight: 550;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    box-shadow: none;
    opacity: .82;
    transition: background-color .15s ease, opacity .15s ease, border-color .15s ease;
}

.item-post .btn-upload:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .btn-info-midia {
    margin-top: 0;
}

.item-post .btn-info-midia:hover {
    color: var(--color-text-01);
    /* mono: substitui o azul (#2563eb) do hover padrao */
}

.item-post .btn-open-editor,
.item-post .btn-gerar-ia {
    margin-top: 6px;
    padding: 4px 8px;
    font-size: 12.5px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    box-shadow: none;
    opacity: .82;
    transition: background-color .15s ease, opacity .15s ease, border-color .15s ease;
    float: left;
    margin-right: 3px;
}

.item-post .btn-open-editor:hover,
.item-post .btn-gerar-ia:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* --- 3) Coluna esquerda (midia/status) do popup: SEMPRE fixada no desktop ao
        rolar. Como o position:sticky e limitado pelo .item-post (que contem as
        duas colunas via clearfix ::after), quando o scroll chega no fim a coluna
        "desgruda" do topo e desce junto - revelando o que esta embaixo, de forma
        suave e nativa. top:70px = abaixo da barra fixa do topo (56px) + respiro. */
@media (min-width: 920px) {
    .popup-delta .item-post .group-left-01 {
        position: sticky;
        top: 0px;
        padding-right: 15px;
    }
}

/* --- 4) Carrossel de MIDIA do post (.midia-carrossel): setas que aparecem ao
        passar o mouse na MIDIA (nao so na seta) + contador de bolinhas branco e
        centralizado embaixo. Prefixo .item-post -> especificidade acima do
        owl.theme.default (carregado depois) e da regra antiga .item-post .owl-dots
        {width:320px} que desalinhava as bolinhas. Tambem remove o contorno de
        foco ("borda ao clicar") dos botoes. --- */
.item-post .midia-uni .midia-carrossel.owl-carousel {
    position: relative;
    -webkit-tap-highlight-color: transparent;
}

.item-post .midia-carrossel .owl-nav {
    margin: 0;
}

/* Setas: circulo translucido com blur, escondidas por padrao */
.item-post .midia-carrossel .owl-nav button.owl-prev,
.item-post .midia-carrossel .owl-nav button.owl-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 5;
    width: 34px;
    height: 34px;
    margin: 0;
    padding: 0;
    border: none;
    outline: none;
    -webkit-tap-highlight-color: transparent;
    border-radius: 50%;
    background: rgba(18, 20, 26, 0.62);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.28);
    transition: opacity .2s ease, background .2s ease;
}

.item-post .midia-carrossel .owl-nav button.owl-prev {
    left: 10px;
}

.item-post .midia-carrossel .owl-nav button.owl-next {
    right: 10px;
}

.item-post .midia-carrossel .owl-nav button.owl-prev:focus,
.item-post .midia-carrossel .owl-nav button.owl-next:focus {
    outline: none;
}

/* Revela ao passar o mouse na MIDIA inteira (nao so na seta) */
.item-post .midia-uni:hover .midia-carrossel .owl-nav button.owl-prev:not(.disabled),
.item-post .midia-uni:hover .midia-carrossel .owl-nav button.owl-next:not(.disabled) {
    opacity: 1;
}

.item-post .midia-carrossel .owl-nav button.owl-prev:not(.disabled):hover,
.item-post .midia-carrossel .owl-nav button.owl-next:not(.disabled):hover {
    background: rgba(18, 20, 26, 0.78);
}

.item-post .midia-carrossel .owl-nav button svg {
    width: 18px;
    height: 18px;
    display: block;
}

/* Seta desabilitada (inicio/fim): some de vez */
.item-post .midia-carrossel .owl-nav button.disabled {
    opacity: 0;
    pointer-events: none;
}

/* Bolinhas (contador): brancas, centralizadas e sobrepostas ao rodape */
.item-post .midia-carrossel .owl-dots {
    position: absolute;
    left: 50%;
    right: auto;
    transform: translateX(-50%);
    width: auto;
    /* anula o .item-post .owl-dots { width:320px } */
    bottom: 10px;
    margin: 0;
    padding: 0;
    text-align: center;
    line-height: 0;
    pointer-events: none;
}

.item-post .midia-carrossel .owl-dots .owl-dot {
    pointer-events: auto;
    outline: none;
    border: none;
    background: transparent;
    -webkit-tap-highlight-color: transparent;
}

.item-post .midia-carrossel .owl-dots .owl-dot:focus {
    outline: none;
}

.item-post .midia-carrossel .owl-dots .owl-dot span {
    width: 6px;
    height: 6px;
    margin: 0 3px;
    background: rgba(255, 255, 255, 0.6);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.45);
    border-radius: 50%;
    display: inline-block;
    transition: background .15s ease, width .15s ease;
}

.item-post .midia-carrossel .owl-dots .owl-dot:hover span {
    background: rgba(255, 255, 255, 0.85);
}

.item-post .midia-carrossel .owl-dots .owl-dot.active span {
    width: 18px;
    border-radius: 4px;
    background: #fff;
}

/* ============================================================
   DATEPICKER (flatpickr) - tema premium, flat e minimalista
   Monocromatico (Inter), cantos suaves, sem "setinha", selecao
   solida. As cores vivem em variaveis: o dark.css so sobrescreve
   as variaveis (ver bloco equivalente la). O flatpickr.min.css
   carrega depois (no footer), por isso os !important abaixo.
   ============================================================ */
.flatpickr-calendar {
    /* paleta (tema claro) */
    --fp-bg: #ffffff;
    --fp-text: #16181d;
    --fp-muted: rgba(0, 0, 0, .42);
    --fp-accent: #111214;
    --fp-accent-text: #ffffff;
    --fp-hover: rgba(0, 0, 0, .055);
    --fp-border: rgba(0, 0, 0, .07);
    --fp-shadow: 0 14px 40px -12px rgba(0, 0, 0, .24), 0 3px 10px -5px rgba(0, 0, 0, .10);
    --fp-today-ring: rgba(0, 0, 0, .20);
    --fp-range: rgba(0, 0, 0, .05);

    box-sizing: border-box !important;
    width: 302px !important;
    padding: 7px 9px 9px !important;
    background: var(--fp-bg) !important;
    color: var(--fp-text) !important;
    border: 1px solid var(--fp-border) !important;
    border-radius: 14px !important;
    box-shadow: var(--fp-shadow) !important;
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 12.5px !important;
    -webkit-font-smoothing: antialiased;
}

/* remove a setinha que aponta pro input (visual flutuante, mais limpo) */
.flatpickr-calendar.arrowTop::before,
.flatpickr-calendar.arrowTop::after,
.flatpickr-calendar.arrowBottom::before,
.flatpickr-calendar.arrowBottom::after {
    display: none !important;
}

.flatpickr-calendar.arrowTop {
    margin-top: 6px !important;
}

.flatpickr-calendar.arrowBottom {
    margin-top: -6px !important;
}

/* calendario embutido (inline) e overlay do picker: sem sombra flutuante */
.flatpickr-calendar.inline,
.picker-overlay .flatpickr-calendar {
    box-shadow: none !important;
}

/* ---- cabecalho (mes / ano) ---- */
.flatpickr-months {
    padding-top: 2px !important;
}

.flatpickr-months .flatpickr-month {
    height: 33px !important;
    color: var(--fp-text) !important;
}

.flatpickr-current-month {
    font-size: 13.5px !important;
    font-weight: 600 !important;
    padding: 4px 0 0 !important;
    height: auto !important;
    color: var(--fp-text) !important;
}

.flatpickr-current-month .cur-month {
    font-weight: 600 !important;
}

.flatpickr-current-month input.cur-year {
    font-weight: 600 !important;
    color: var(--fp-text) !important;
}

.flatpickr-current-month .numInputWrapper:hover {
    background: transparent !important;
}

.flatpickr-months .flatpickr-prev-month,
.flatpickr-months .flatpickr-next-month {
    top: 4px !important;
    width: 26px !important;
    height: 26px !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 9px !important;
    transition: background .15s ease !important;
}

.flatpickr-months .flatpickr-prev-month {
    left: 6px !important;
}

.flatpickr-months .flatpickr-next-month {
    right: 6px !important;
}

.flatpickr-months .flatpickr-prev-month:hover,
.flatpickr-months .flatpickr-next-month:hover {
    background: var(--fp-hover) !important;
}

.flatpickr-months .flatpickr-prev-month svg,
.flatpickr-months .flatpickr-next-month svg {
    width: 11px !important;
    height: 11px !important;
}

.flatpickr-months .flatpickr-prev-month svg path,
.flatpickr-months .flatpickr-next-month svg path,
.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: var(--fp-text) !important;
}

/* ---- dias da semana ---- */
.flatpickr-weekdays {
    height: 25px !important;
    margin-top: 1px !important;
}

span.flatpickr-weekday {
    color: var(--fp-muted) !important;
    font-size: 10px !important;
    font-weight: 600 !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
}

/* ---- grade de dias ---- */
.flatpickr-days {
    width: 100% !important;
}

.flatpickr-days .dayContainer {
    width: 284px !important;
    min-width: 284px !important;
    max-width: 284px !important;
    padding: 1px 0 0 !important;
}

.flatpickr-day {
    height: 35px !important;
    line-height: 35px !important;
    max-width: none !important;
    color: var(--fp-text) !important;
    border: 0 !important;
    border-radius: 10px !important;
    font-weight: 450 !important;
    transition: background .13s ease, color .13s ease, box-shadow .13s ease !important;
}

.flatpickr-day:hover,
.flatpickr-day:focus {
    background: var(--fp-hover) !important;
}

.flatpickr-day.today {
    font-weight: 700 !important;
    box-shadow: inset 0 0 0 1.5px var(--fp-today-ring) !important;
}

.flatpickr-day.today:hover {
    background: var(--fp-hover) !important;
}

.flatpickr-day.selected,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange,
.flatpickr-day.endRange {
    background: var(--fp-accent) !important;
    color: var(--fp-accent-text) !important;
    border-color: var(--fp-accent) !important;
    box-shadow: none !important;
    font-weight: 600 !important;
}

.flatpickr-day.prevMonthDay,
.flatpickr-day.nextMonthDay {
    color: var(--fp-muted) !important;
    opacity: .5 !important;
}

.flatpickr-day.flatpickr-disabled,
.flatpickr-day.flatpickr-disabled:hover {
    color: var(--fp-muted) !important;
    opacity: .3 !important;
    background: transparent !important;
}

/* ---- selecao de intervalo (datepicker-deate) ---- */
.flatpickr-day.inRange {
    background: var(--fp-range) !important;
    border-radius: 0 !important;
    box-shadow: -5px 0 0 var(--fp-range), 5px 0 0 var(--fp-range) !important;
}

.flatpickr-day.startRange {
    border-radius: 10px 0 0 10px !important;
}

.flatpickr-day.endRange {
    border-radius: 0 10px 10px 0 !important;
}

.flatpickr-day.startRange.endRange {
    border-radius: 10px !important;
}

/* ---- area de horario ---- */
.flatpickr-calendar.hasTime .flatpickr-time {
    height: 38px !important;
    margin-top: 5px !important;
    border-top: 1px solid var(--fp-border) !important;
}

.flatpickr-time input,
.flatpickr-time .flatpickr-am-pm {
    color: var(--fp-text) !important;
    font-weight: 600 !important;
    font-size: 13.5px !important;
}

.flatpickr-time .flatpickr-time-separator {
    color: var(--fp-muted) !important;
}

.flatpickr-time input:hover,
.flatpickr-time input:focus,
.flatpickr-time .flatpickr-am-pm:hover,
.flatpickr-time .flatpickr-am-pm:focus {
    background: var(--fp-hover) !important;
}

.numInputWrapper span {
    border: 0 !important;
}

.numInputWrapper span:hover {
    background: var(--fp-hover) !important;
}

.numInputWrapper span.arrowUp::after {
    border-bottom-color: var(--fp-muted) !important;
}

.numInputWrapper span.arrowDown::after {
    border-top-color: var(--fp-muted) !important;
}

/* ---- plugin monthSelect ---- */
.flatpickr-monthSelect-month {
    border-radius: 10px !important;
    font-weight: 500 !important;
    transition: background .13s ease, color .13s ease !important;
}

.flatpickr-monthSelect-month:hover {
    background: var(--fp-hover) !important;
}

.flatpickr-monthSelect-month.selected {
    background: var(--fp-accent) !important;
    color: var(--fp-accent-text) !important;
}

/* =========================================================================
   TELA DE MARCAS - redesign premium/clean, alinhado ao site (sitev2).
   TUDO escopado em .marcas-tela: .col-item-perfil e .menu-itens-style-02
   sao compartilhados com planejamentos, aba Sobre e grade - la nao muda nada.
   ========================================================================= */

.marcas-tela {
    --mc-ease: cubic-bezier(.16, 1, .3, 1);
    --mc-line: var(--color-border, #e7e9f1);
}

/* O padding-top de 53px do .container-meus-perfis existia so para reservar
   espaco para a barra de tabs que era position:fixed. Com a barra de volta ao
   fluxo, virava um buraco entre a divisoria e os filtros. */
/* O padding lateral desce para os filhos: assim a barra sticky ocupa a largura
   inteira (nada passa pelas beiradas ao rolar) e as abas continuam no mesmo
   eixo dos cards. O padding-top de 53px do legado existia so para reservar
   espaco para a antiga barra em position:fixed. */
.marcas-tela.container-meus-perfis {
    padding: 0 0 40px;
}

.marcas-tela>.container {
    max-width: none;
    width: auto;
    margin: 0;
    padding: 0 15px;
}

/* LINHA DE CONTROLE - estado a esquerda, busca e "Nova marca" a direita.
   Substitui a antiga `.mc-barra`, que era uma segunda faixa abaixo do
   cabecalho. Com as abas de "meus x compartilhados" fora, o segmentado de
   estado subiu para o `.mc-header` e aquela faixa ficaria com um botao
   sozinho - duas linhas de chrome para dois controles. */
.marcas-tela .mc-header-acoes {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
}

/* O botao encolhe um degrau DENTRO do cabecalho: no tamanho de tela cheia ele
   engordava a barra sticky, que e o elemento que fica na frente da lista o
   tempo todo. O CTA do estado vazio (`.mc-vazio .mc-btn-novo`) nao e afetado -
   la ele e a acao principal e continua grande. */
.marcas-tela .mc-header-ctrl .mc-btn-novo {
    padding: 7px 14px;
    font-size: 13px;
    border-radius: 11px;
}

/* A barra vive num cabecalho `align-items: center`; o segmentado nao pode
   esticar na vertical junto com a busca. */
.marcas-tela .mc-header-ctrl .mc-seg {
    flex: 0 0 auto;
    margin-bottom: 8px;
}

.marcas-tela .mc-header-ctrl .mc-header-acoes {
    margin-bottom: 8px;
}

/* Segmented control (Ativas / Arquivadas / Deletadas) */
.marcas-tela .mc-seg {
    float: none;
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: 12px;
    background: var(--color-bg-01);
}

.marcas-tela .mc-seg .item {
    float: none;
    margin: 0;
    border: 0;
    padding: 6px 14px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--color-text-01);
    opacity: .55;
    transition: opacity .24s var(--mc-ease), background .24s var(--mc-ease);
}

.marcas-tela .mc-seg .item:hover {
    opacity: .85;
}

/* 4 classes: o dark.css tem .menu-itens-style-02 .item.atv (3 classes, igual a
   antiga daqui) e carrega depois - empate faria o item ativo virar branco solido */
.marcas-tela .menu-itens-style-02.mc-seg .item.atv {
    background: var(--color-bg);
    border: 0;
    color: var(--color-text-01);
    font-weight: 550;
    opacity: 1;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .07);
}

/* Botao primario no padrao do site: preto, raio 13, com glow azul */
.marcas-tela .mc-btn-novo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    float: none;
    margin: 0;
    padding: 9px 18px;
    border-radius: 13px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.2;
    cursor: pointer;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
    transition: transform .24s var(--mc-ease), box-shadow .24s var(--mc-ease);
}

.marcas-tela .mc-btn-novo:hover {
    transform: translateY(-1px);
    box-shadow: 0 20px 42px -16px rgba(37, 99, 235, .7);
}

.marcas-tela .mc-btn-novo svg {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
}

/* Grade: some o col-md-4 fixo, responde sozinha ao espaco disponivel */
.marcas-tela .lst-perfis {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(272px, 1fr));
    gap: 12px;
    padding-top: 0;
    float: none;
}

.marcas-tela .col-item-perfil {
    float: none;
    width: auto;
    max-width: none;
    padding: 0;
}

/* Card */
/* ! ALTURA CHEIA + `stretch`, e o alinhamento sai de graca.
   O card era avatar + nome + redes numa linha so. Com a barra e os chips ele
   ficou alto E de altura VARIAVEL: uma marca com tres pendencias empurrava o
   card, e o vizinho de duas ficava mais curto - a fileira inteira desalinhava.
   O `.col-item-perfil` ja estica na grade; faltava o card ocupar o que recebeu.
   Com isso o rodape de todos os cards da fileira cai na mesma linha.
   O avatar nao estica junto porque tem `height: 44px` explicito, que vence o
   `stretch`. */
.marcas-tela .perfil-lst-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    height: 100%;
    gap: 0;
    padding: 15px 16px 16px;
    border: 1px solid var(--mc-line);
    border-radius: 16px;
    background: var(--color-bg);
    cursor: pointer;
    transition: transform .24s var(--mc-ease), box-shadow .24s var(--mc-ease),
        border-color .24s var(--mc-ease);
}

.marcas-tela .perfil-lst-item:hover {
    /* superficie de hover do tema: clareia no claro E no escuro. Sombra sozinha
       nao da feedback nenhum sobre fundo preto. */
    background: var(--color-bg-01);
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
    border-color: var(--color-hover-01);
}

.marcas-tela .perfil-lst-item .img {
    float: none;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    margin: 0;
    border: 0;
    border-radius: 13px;
    background-color: var(--color-bg-01);
    background-size: cover;
    background-position: center;
    box-shadow: inset 0 0 0 1px rgba(125, 135, 160, .22);
}

/* Avatar sem imagem cai nas iniciais - centraliza no quadrado de 44 */
.marcas-tela .perfil-lst-item .img.avatar-perfil-letra {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    color: var(--color-text-01);
    opacity: .75;
}

/* A faixa de identidade: avatar + nome + redes + o aviso de reconexao. */
.marcas-tela .mc-topo {
    display: flex;
    align-items: flex-start;
    gap: 14px;
}

.marcas-tela .mc-info {
    flex: 1 1 auto;
    min-width: 0;
    padding-right: 18px;
}

.marcas-tela .mc-nome {
    font-size: 15px;
    font-weight: 550;
    line-height: 1.25;
    letter-spacing: -.015em;
    color: var(--color-text-01);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Redes COM A COR DA MARCA. A regra da casa e monocromatica para chrome, mas
   logo de terceiro e a excecao explicita - junto com capas e avatares: a cor
   ali e identidade, nao decoracao, e e ela que faz o icone ser reconhecido de
   relance em vez de lido. As cores vem do legado `.instagram.atv`,
   `.facebook.atv`, `.youtube.atv` e `.linkedin.atv`, entao a lista de redes
   desta tela fala a mesma lingua do resto do produto. */
.marcas-tela .mc-redes {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 7px;
    min-height: 15px;
}

.marcas-tela .mc-redes svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    opacity: .9;
    transition: opacity .24s var(--mc-ease);
}

.marcas-tela .perfil-lst-item:hover .mc-redes svg {
    opacity: 1;
}

/* ! O TIKTOK NAO TEM COR PROPRIA NO LEGADO - a marca dele e preta no claro e
   branca no escuro, entao a tinta do tema E a cor certa. Sem esta regra ele
   herdaria o `fill` do contexto e sumiria num dos dois temas. */
.marcas-tela .mc-redes svg.tiktok {
    fill: var(--color-text-01);
}

.marcas-tela .mc-sem-rede {
    font-size: 12px;
    letter-spacing: -.01em;
    color: var(--color-text-01);
    opacity: .52;
}

/* Aviso de reconexao: ambar discreto, nao vermelho gritante */
.marcas-tela .mc-alerta {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 8px;
    padding: 3px 9px 3px 7px;
    border-radius: 100px;
    background: rgba(217, 119, 6, .11);
    color: #b45309;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: -.01em;
}

.marcas-tela .mc-alerta svg {
    width: 12px;
    height: 12px;
    fill: currentColor;
    float: none;
    margin: 0;
    flex: 0 0 auto;
}

/* =========================================================================
   PLANEJAMENTOS - a busca no titulo da tela
   -------------------------------------------------------------------------
   Ela morava numa barra propria dentro do corpo, junto das abas
   "meus x compartilhados". Sem as abas, aquela faixa virou uma linha inteira
   de chrome para segurar uma lupa - subiu para o `.header-pagina`, onde ja ha
   o titulo e sobra espaco a direita.

   ! `.header-style-01` CONTINUA ENVOLVENDO A BUSCA de proposito: todo o CSS
   do campo (painel3.css:323+) e os dois handlers de abrir/fechar e filtrar
   dependem dessa classe. Aqui ela e so o gancho - as regras abaixo tiram dela
   o que a fazia ser uma BARRA (margem, respiro, borda).
   ========================================================================= */
.header-pagina.pl-header-pagina {
    display: flex;
    align-items: center;
    gap: 16px;
}

/* O titulo tem `float: left` na regra base; dentro de um flex o float e
   ignorado, entao ele volta a ser um item normal da linha. */
.pl-header-pagina .title-section {
    flex: 0 0 auto;
}

/* ! `position: static` NAO E DETALHE. `.header-pagina .header-style-01`
   (painel3.css:22507) e `position: fixed; top: 63px` com backdrop blur -
   resquicio de quando o cabecalho da pagina vivia dentro do scroller. Fixed
   com largura automatica encolhe ao conteudo, entao a busca saia do fluxo e
   ia parar 63px abaixo do topo da janela, por cima dos cards.
   A especificidade tambem importa: a regra legada e (0,2,0), a mesma que
   `.pl-header-pagina .pl-busca-topo` teria - por isso o seletor abaixo soma
   `.header-pagina` e vai a (0,3,0). */
/* ! A CLASSE `mc-header` VEM JUNTO no markup, e de proposito: e ela que traz
   o campo de busca MODERNO (a lupa que expande, 32px, raio 11) que a tela de
   Marcas usa. As regras de BARRA do `.mc-header` (sticky, borda, fundo) nao
   pegam aqui porque exigem um ancestral `.marcas-tela` ou `.pl-tela`, e este
   cabecalho vive fora dos dois - sobra so o refino do campo, que e o que se
   quer. Zerar o resto abaixo mantem isso verdadeiro mesmo se alguem
   desescopar aquelas regras um dia. */
.header-pagina.pl-header-pagina .pl-busca-topo {
    position: static;
    top: auto;
    margin: 0 0 0 auto;
    padding: 0;
    display: flex;
    align-items: center;
    flex: 0 0 auto;
    width: auto;
    clear: none;
    background: transparent;
    border: 0;
    box-shadow: none;
    z-index: auto;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}

/* =========================================================================
   PREENCHIMENTO DA MARCA - a barra e os chips do que falta
   -------------------------------------------------------------------------
   MONOCROMATICO por regra da casa: progresso de configuracao e chrome, nao
   dado. Cor aqui so existiria para dramatizar - e o card ja tem o ambar do
   "Reconecte as redes", que e o unico alarme real desta tela.
   ========================================================================= */
/* ! `margin-top: auto` E O ALINHAMENTO. Ele empurra o medidor para o rodape da
   coluna, entao a barra de todos os cards da fileira nasce na mesma altura -
   com nome de uma ou duas linhas, com ou sem o chip de reconexao no meio. Sem
   isso o bloco flutuava logo abaixo do conteudo e cada card comecava o seu
   medidor num ponto diferente. */
.marcas-tela .mc-prog {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: auto;
    padding-top: 14px;
}

.marcas-tela .mc-prog-trilho {
    flex: 1 1 auto;
    height: 5px;
    border-radius: 100px;
    background: var(--color-bg-01);
    overflow: hidden;
}

/* A opacidade e o que da a leitura: 30% preenchido le como "quase nada" sem
   precisar de vermelho. `min-width` para que 1% ainda seja um traco visivel -
   uma barra vazia e uma barra de 1% precisam ser distinguiveis. */
.marcas-tela .mc-prog-trilho i {
    display: block;
    height: 100%;
    min-width: 3px;
    border-radius: 100px;
    background: var(--color-text-01);
    opacity: .38;
    transition: width .4s var(--mc-ease);
}

.marcas-tela .perfil-lst-item:hover .mc-prog-trilho i {
    opacity: .55;
}

/* ! LARGURA FIXA + `tabular-nums`. Sem as duas, "5%" e "100%" tem larguras
   diferentes e a barra de cada card termina num x diferente - a fileira parece
   torta mesmo com todos os cards do mesmo tamanho. */
.marcas-tela .mc-prog-num {
    flex: 0 0 auto;
    min-width: 34px;
    text-align: right;
    font-size: 11.5px;
    font-weight: 550;
    letter-spacing: -.01em;
    font-variant-numeric: tabular-nums;
    color: var(--color-text-01);
    opacity: .55;
}

/* ---- O que falta ---- */
.marcas-tela .mc-falta {
    margin-top: 11px;
}

/* Rotulo de secao, e nao mais uma palavra na fila dos chips: menor, em caixa
   alta e com entreletra, ele sai da competicao por espaco e vira legenda. */
.marcas-tela .mc-falta-rot {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--color-text-01);
    opacity: .38;
    margin-bottom: 7px;
}

/* ! `nowrap`. A altura deste bloco decide onde a barra de cada card comeca
   (o rodape e ancorado embaixo), entao ele tem de ser SEMPRE de uma linha -
   um chip que quebra levanta a barra daquele card e desalinha a fileira. Sao
   dois chips + "+N" justamente porque tres nao cabem na coluna minima. */
.marcas-tela .mc-falta-chips {
    display: flex;
    align-items: center;
    flex-wrap: nowrap;
    gap: 5px;
}

/* Rotulo longo encolhe com reticencias em vez de empurrar o "+N" para fora:
   `min-width: 0` e o que permite um item de flex encolher abaixo do conteudo. */
.marcas-tela .mc-falta-chips .mc-chip {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
}

.marcas-tela .mc-falta-chips .mc-chip.mc-chip-mais {
    flex: 0 0 auto;
}

/* O chip e um ATALHO, nao uma etiqueta: ele abre a aba exata da marca. Por
   isso tem cursor, hover e sublinhado - parecer clicavel e metade do valor. */
.marcas-tela .mc-chip {
    display: inline-flex;
    align-items: center;
    padding: 3px 9px;
    border-radius: 100px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    line-height: 1.45;
    cursor: pointer;
    opacity: .72;
    transition: opacity .2s var(--mc-ease), background .2s var(--mc-ease);
}

.marcas-tela .mc-chip:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

/* O "+N" so conta - o resto das areas vive no title. Sem cursor porque nao
   leva a lugar nenhum, e prometer clique que nao acontece e pior que nada. */
.marcas-tela .mc-chip.mc-chip-mais {
    cursor: default;
    opacity: .5;
}

.marcas-tela .mc-chip.mc-chip-mais:hover {
    background: var(--color-bg-01);
    opacity: .5;
}

/* Tudo essencial preenchido. Verde e DADO aqui (a convencao de "concluido"),
   nao decoracao - mesma licenca que o chip ambar de reconexao usa. */
/* O estado "completa" nao tem rotulo nem chips: volta a ser uma linha so. */
.marcas-tela .mc-falta.mc-falta-ok {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: #0f9d63;
    opacity: .85;
}

.marcas-tela .mc-falta-ok svg {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
}

/* Kebab: sempre no DOM, aparece no hover (e fixo no toque) */
.marcas-tela .perfil-lst-item .bt-opcoes {
    display: flex;
    align-items: center;
    justify-content: center;
    position: absolute;
    top: 10px;
    right: 10px;
    width: 26px;
    height: 26px;
    padding: 0;
    border-radius: 8px;
    background: transparent;
    opacity: 0;
    transition: opacity .24s var(--mc-ease), background .24s var(--mc-ease);
}

.marcas-tela .perfil-lst-item:hover .bt-opcoes {
    display: flex;
    position: absolute;
    top: 10px;
    right: 10px;
    background: transparent;
    padding: 0;
    border-radius: 8px;
    opacity: .5;
}

.marcas-tela .perfil-lst-item .bt-opcoes:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

.marcas-tela .perfil-lst-item .bt-opcoes svg {
    width: 13px;
    height: 13px;
    fill: var(--color-text-01);
}

@media (hover: none) {
    .marcas-tela .perfil-lst-item .bt-opcoes {
        opacity: .45;
    }
}

/* Estado vazio */
.marcas-tela .mc-vazio {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 56px 20px 60px;
}

.marcas-tela .mc-vazio-ico {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    margin-bottom: 18px;
    border-radius: 18px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    opacity: .45;
}

.marcas-tela .mc-vazio-ico svg {
    width: 26px;
    height: 26px;
}

.marcas-tela .mc-vazio-ttl {
    font-size: 17px;
    font-weight: 550;
    letter-spacing: -.02em;
    color: var(--color-text-01);
}

.marcas-tela .mc-vazio-sub {
    font-size: 13.5px;
    line-height: 1.55;
    max-width: 330px;
    margin: 6px 0 20px;
    color: var(--color-text-01);
    opacity: .5;
}

@media (max-width: 640px) {
    .marcas-tela .lst-perfis {
        grid-template-columns: 1fr;
    }

    /* No estreito o cabecalho quebra em duas linhas: estado em cima, busca +
       botao embaixo ocupando a largura. */
    .marcas-tela .mc-header-ctrl {
        flex-wrap: wrap;
    }

    .marcas-tela .mc-header-ctrl .mc-header-acoes {
        flex: 1 1 100%;
        justify-content: flex-end;
    }
}

/* Vazios legados injetados por JS (troca de aba e filtro da busca): dentro do
   grid precisam ocupar a linha toda, senao viram um card de uma coluna so. */
.marcas-tela .lst-perfis .sem-conteudo,
.marcas-tela .lst-perfis .sem-conteudo-03-dinamic {
    grid-column: 1 / -1;
    padding: 44px 20px;
    text-align: center;
    font-size: 13.5px;
    font-weight: 400;
    line-height: 1.55;
    color: var(--color-text-01);
    opacity: .45;
}

/* -------------------------------------------------------------------------
   Header de abas + busca (.mc-header). Escopado em .mc-header porque
   .header-style-01, .menu-itens-style-01 e .container-pesquisar sao usados
   tambem em Arquivos, que continua no visual antigo.

   ! O BLOCO TEM DUAS METADES, e a diferenca importa:
     . as regras de BARRA (as primeiras, com ancestral .marcas-tela) valem so
       na tela de Marcas, unica que ainda tem a faixa;
     . as regras do CAMPO DE BUSCA nao pedem ancestral nenhum, e por isso o
       cabecalho de Planejamentos as reaproveita aplicando `mc-header` no
       involucro da busca (ver .pl-busca-topo, mais acima). E deliberado: a
       lupa das duas telas tem de ser a mesma coisa. Se algum dia alguem
       escopar essas regras numa tela, a busca de Planejamentos volta ao
       visual antigo sem erro nenhum.

   ATENCAO a especificidade: o dark.css tem regras com #browse (1,3,0) e e
   carregado DEPOIS do painel3. Por isso as regras de cor abaixo usam
   #browse + .header-style-01.mc-header (1,4,0) - sem isso o tema escuro
   ganha e os textos voltam para o cinza antigo.
   ------------------------------------------------------------------------- */

/* Barra de abas + busca: sticky no topo do scroller (.centraliza).
   Antes ela vivia no .header-pagina, onde a regra legada
   `.header-pagina .header-style-01` a punha em position:fixed com largura
   automatica - encolhia ao conteudo e nao rolava junto. Aqui, dentro do
   proprio scroller, sticky faz o que aquele fixed tentava fazer. */
.marcas-tela .header-style-01.mc-header {
    position: sticky;
    top: 0;
    z-index: 6;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 15px 0;
    margin: 0 0 16px;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
}

.header-style-01.mc-header .menu-itens-style-01 {
    float: none;
    gap: 22px;
}

#browse .header-style-01.mc-header .menu-itens-style-01 .item {
    position: relative;
    float: none;
    margin: 0 0 -1px;
    padding: 6px 0 11px;
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    line-height: 1.2;
    color: var(--color-text-01);
    opacity: .52;
    border-bottom: 0;
    transition: opacity .24s cubic-bezier(.16, 1, .3, 1);
}

#browse .header-style-01.mc-header .menu-itens-style-01 .item:hover {
    opacity: .8;
}

#browse .header-style-01.mc-header .menu-itens-style-01 .item.atv {
    opacity: 1;
    font-weight: 550;
    border-bottom: 0;
}

/* ::before porque o ::after do item ja e usado por uma regra antiga */
.header-style-01.mc-header .menu-itens-style-01 .item.atv::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 1.5px;
    border-radius: 2px;
    background: var(--color-text-01);
}

/* ---- Busca: lupa discreta que abre o campo ---- */
.header-style-01.mc-header .container-pesquisar {
    float: none;
    margin: 0;
    flex: 0 0 auto;
}


.header-style-01.mc-header .container-pesquisar.atv {
    width: 268px;
}

#browse .header-style-01.mc-header .container-pesquisar .pesquisar {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 32px;
    padding: 0 3px;
    border-radius: 11px;
    background: transparent;
    border: 1px solid transparent;
    transition: background .24s cubic-bezier(.16, 1, .3, 1),
        border-color .24s cubic-bezier(.16, 1, .3, 1);
}

#browse .header-style-01.mc-header .container-pesquisar.atv .pesquisar {
    background: var(--color-bg-01);
    border-color: var(--color-border);
}

#browse .header-style-01.mc-header .container-pesquisar .pesquisar input {
    float: none;
    flex: 1 1 auto;
    min-width: 0;
    height: 28px;
    padding: 0 4px 0 10px;
    font-size: 13px;
    letter-spacing: -.01em;
    color: var(--color-text-01);
    background: transparent;
    border: 0;
    outline: 0;
}

#browse .header-style-01.mc-header .container-pesquisar .pesquisar input::placeholder {
    color: var(--color-text-01);
    opacity: .4;
}

#browse .header-style-01.mc-header .container-pesquisar .pesquisar .btn-pesquisar,
#browse .header-style-01.mc-header .container-pesquisar .pesquisar .btn-fechar {
    float: none;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border-radius: 8px;
    fill: var(--color-text-01);
    opacity: .45;
    transition: opacity .24s cubic-bezier(.16, 1, .3, 1), background .24s cubic-bezier(.16, 1, .3, 1);
}

#browse .header-style-01.mc-header .container-pesquisar .pesquisar .btn-pesquisar:hover,
#browse .header-style-01.mc-header .container-pesquisar .pesquisar .btn-fechar:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

/* o "X" so existe com o campo aberto; a lupa some quando ele abre (regra antiga) */
#browse .header-style-01.mc-header .container-pesquisar .pesquisar .btn-pesquisar {
    display: flex;
}

#browse .header-style-01.mc-header .container-pesquisar .pesquisar .btn-fechar {
    display: none;
}

#browse .header-style-01.mc-header .container-pesquisar.atv .pesquisar .btn-fechar {
    display: flex;
}

#browse .header-style-01.mc-header .container-pesquisar.atv .pesquisar .btn-pesquisar {
    display: none;
}

.header-style-01.mc-header .container-pesquisar .pesquisar svg {
    width: 14px;
    height: 14px;
}

/* o X preenche toda a viewBox e a lupa nao - equilibra opticamente */
.header-style-01.mc-header .container-pesquisar .pesquisar .btn-fechar svg {
    width: 11px;
    height: 11px;
}

@media (max-width: 640px) {
    .header-pagina .header-style-01.mc-header {
        gap: 8px;
    }

    .header-style-01.mc-header .menu-itens-style-01 {
        gap: 16px;
    }

    .header-style-01.mc-header .container-pesquisar.atv {
        width: 150px;
    }
}

/* =========================================================================
   TELA DE PLANEJAMENTOS (a que LISTA os planejamentos) - mesmo padrao da
   tela de Marcas. O header de abas + busca e literalmente o mesmo componente
   (.mc-header, logo acima); daqui para baixo vem so o que e do card.

   TUDO escopado em .pl-tela: .col-item-perfil, .planejamento-item, .img e
   .lst-perfis sao compartilhados com Marcas, aba Sobre e grade - la nada muda.

   ATENCAO a especificidade: media.css e dark.css carregam DEPOIS do painel3
   e tem regras em .container-meus-planejamentos .lst-perfis (0,2,0) e
   .planejamento-item:hover (0,2,0). Por isso as regras abaixo somam .pl-tela
   (0,3,0) - sem isso o layout antigo ganha o empate.
   ========================================================================= */

.pl-tela {
    --pl-ease: cubic-bezier(.16, 1, .3, 1);
    --pl-line: var(--color-border, #e7e9f1);
    /* Tons 500: legiveis tanto no branco quanto no preto, e ja usados no resto
       do sistema (dashboard admin, BI). Cada faixa do fluxo tem o seu. */
    --pl-atraso: #ef4444;
    --pl-andamento: #f59e0b;
    --pl-revisao: #8b5cf6;
    --pl-aprovacao: #3b82f6;
    --pl-agendar: #06b6d4;
    --pl-agendado: #10b981;
}

/* O `padding-top: 26px` do legado existia para a barra de abas; ela foi
   embora (a busca subiu para o titulo da tela) e o que sobrou foi o grid
   encostando no topo do scroller. Um respiro menor que o legado, so para os
   cards nao nascerem colados na divisoria. */
.contant-planejamento-home.pl-home {
    padding-top: 14px;
}

/* O padding lateral desce para os filhos: assim a barra sticky ocupa a largura
   inteira (nada passa pelas beiradas ao rolar) e as abas ficam no mesmo eixo
   dos cards. */
.pl-tela.container-meus-planejamentos {
    padding: 0 0 40px;
}

.pl-tela>.container {
    max-width: none;
    width: auto;
    margin: 0;
    padding: 0 15px;
}

/* Grade: some o repeat(3,1fr) fixo, responde sozinha ao espaco disponivel */
.pl-tela.container-meus-planejamentos .lst-perfis {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(304px, 1fr));
    gap: 12px;
    padding-top: 0;
    float: none;
}

.pl-tela .col-item-perfil {
    float: none;
    width: auto;
    max-width: none;
    padding: 0;
}

/* ---- Card ---- */
.pl-tela .planejamento-item {
    position: relative;
    display: block;
    overflow: hidden;
    padding: 0;
    border: 1px solid var(--pl-line);
    border-radius: 16px;
    background: var(--color-bg);
    box-shadow: none;
    text-decoration: none;
    transition: transform .24s var(--pl-ease), box-shadow .24s var(--pl-ease),
        border-color .24s var(--pl-ease);
}

.pl-tela .planejamento-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
    border-color: var(--color-hover-01);
    text-decoration: none;
}

/* A marca d'agua da logo fica so como identidade: bem apagada, sem competir
   com o texto. A .mask por cima ja e tematica (dark.css troca a cor dela). */
.pl-tela .planejamento-item .image-background {
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    filter: saturate(1.15);
    opacity: .5;
}

.pl-tela .planejamento-item .mask {
    border-radius: 0;
    backdrop-filter: blur(22px) saturate(1.3);
    -webkit-backdrop-filter: blur(22px) saturate(1.3);
    border-radius: 15px;
}

.pl-tela .pl-card {
    position: relative;
    z-index: 2;
    padding: 15px 16px 14px;
}

/* ---- Topo: avatar + nome + seta ---- */
.pl-tela .pl-topo {
    display: flex;
    align-items: center;
    gap: 13px;
}

.pl-tela .planejamento-item .img {
    float: none;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    margin: 0;
    border: 0;
    border-radius: 13px;
    background-color: var(--color-bg-01);
    background-size: cover;
    background-position: center;
    box-shadow: inset 0 0 0 1px rgba(125, 135, 160, .22);
}

.pl-tela .planejamento-item .img.avatar-perfil-letra {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
    text-transform: uppercase;
    color: var(--color-text-01);
    opacity: .75;
}

.pl-tela .pl-ident {
    flex: 1 1 auto;
    min-width: 0;
}

.pl-tela .pl-nome {
    font-size: 15px;
    font-weight: 550;
    line-height: 1.25;
    letter-spacing: -.015em;
    color: var(--color-text-01);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.pl-tela .pl-resumo {
    margin-top: 3px;
    font-size: 12.5px;
    letter-spacing: -.01em;
    color: var(--color-text-01);
    opacity: .5;
}

.pl-tela .pl-ir {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    color: var(--color-text-01);
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .24s var(--pl-ease), transform .24s var(--pl-ease);
}

.pl-tela .pl-ir svg {
    width: 15px;
    height: 15px;
}

.pl-tela .planejamento-item:hover .pl-ir {
    opacity: .55;
    transform: none;
}

/* No toque nao existe hover: a seta fica sempre visivel, so que discreta */
@media (hover: none) {
    .pl-tela .pl-ir {
        opacity: .3;
        transform: none;
    }
}

/* ---- Barra: onde o trabalho esta, em uma olhada ----
   ! CHAMA-SE `pl-faixas`/`pl-faixa` DE PROPOSITO. `pl-barra` e `pl-seg` ja
   sao a BARRA DE CONTROLE da tela de planejamento (footer.php: o trilho de
   sessoes + o de visao), e as regras dela sao escopadas em `#htmlSessaoAtual`
   / `.view-planejamento`. Esta tela mora dentro do mesmo id, e id (1,1,0)
   ganha de duas classes (0,2,0): a barra do card recebia
   `box-sizing: border-box` + `padding: 2px 15px 12px` por cima do
   `height: 5px`, entao o padding sozinho ja passava da altura, a area de
   conteudo ia a ZERO e os segmentos sumiam dentro do `overflow: hidden` -
   sobrava so um retangulo cinza grosso. Nome proprio resolve na raiz; subir a
   especificidade aqui exigiria id ou !important dos dois lados para sempre. */
.pl-tela .pl-faixas {
    display: flex;
    gap: 2px;
    height: 5px;
    margin: 14px 0 11px;
    border-radius: 100px;
    overflow: hidden;
    background: var(--color-bg-01);
}

.pl-tela .pl-faixa {
    display: block;
    height: 100%;
    min-width: 4px;
    border-radius: 100px;
    background: var(--pl-c, var(--color-text-01));
}

/* ---- Pilulas do resumo ---- */
.pl-tela .pl-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

/* ! O RESPIRO ENTRE O TOPO E AS PILULAS VINHA DA BARRA (`.pl-faixas`), e a
   barra so existe quando ha o que mostrar (`margin: 14px 0 11px`). No card sem
   producao ela nao e renderizada, e ai `.pl-stats` nascia colada no avatar - o
   card ficava com o rodape grudado no cabecalho. O espaco passa a ser da
   propria faixa quando ela e a primeira coisa depois do topo; com a barra no
   meio, este seletor nao casa e nada muda. */
.pl-tela .pl-topo+.pl-stats {
    margin-top: 12px;
}

.pl-tela .pl-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px 3px 7px;
    border-radius: 100px;
    font-size: 11.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    line-height: 1.45;
    color: var(--color-text-01);
    background: var(--color-bg-01);
}

.pl-tela .pl-pill i {
    width: 6px;
    height: 6px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--pl-c, var(--color-text-01));
}

.pl-tela .pl-pill b {
    font-weight: 600;
}

/* O VAZIO NAO E UMA PILULA. As outras sao CONTAGENS - cada uma tem um numero e
   um ponto colorido, e o fundo cheio e o que as agrupa como dados. "Nada em
   producao" e a AUSENCIA de dado; com o mesmo fundo ela virava um retangulo
   cinza sozinho no pe do card e, nessa largura, lia como uma linha grossa
   cortando o card ao meio - a ausencia chamando mais atencao que o conteudo.
   Sem o fundo e sem o padding ela volta a ser o que e: uma legenda. */
.pl-tela .pl-pill-vazio {
    padding: 0;
    background: transparent;
    opacity: .38;
}

/* Atraso e o unico que ganha o fundo tingido - e o unico que pede acao hoje */
.pl-tela .pl-pill.pl-c-atraso {
    background: color-mix(in srgb, var(--pl-atraso) 14%, transparent);
    color: var(--pl-atraso);
}

.pl-tela .pl-c-atraso {
    --pl-c: var(--pl-atraso);
}

.pl-tela .pl-c-andamento {
    --pl-c: var(--pl-andamento);
}

.pl-tela .pl-c-revisao {
    --pl-c: var(--pl-revisao);
}

.pl-tela .pl-c-aprovacao {
    --pl-c: var(--pl-aprovacao);
}

.pl-tela .pl-c-agendar {
    --pl-c: var(--pl-agendar);
}

.pl-tela .pl-c-agendado {
    --pl-c: var(--pl-agendado);
}

/* ---- Estado vazio ---- */
.pl-tela .pl-vazio {
    grid-column: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 56px 20px 60px;
}

.pl-tela .pl-vazio-ico {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    margin-bottom: 18px;
    border-radius: 18px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    opacity: .45;
}

.pl-tela .pl-vazio-ico svg {
    width: 26px;
    height: 26px;
}

.pl-tela .pl-vazio-ttl {
    font-size: 17px;
    font-weight: 550;
    letter-spacing: -.02em;
    color: var(--color-text-01);
}

.pl-tela .pl-vazio-sub {
    font-size: 13.5px;
    line-height: 1.55;
    max-width: 360px;
    margin: 6px 0 20px;
    color: var(--color-text-01);
    opacity: .5;
}

/* Botao primario no padrao do site: preto, raio 13, com glow azul */
.pl-tela .pl-btn-novo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    float: none;
    margin: 0;
    padding: 9px 18px;
    border-radius: 13px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.2;
    cursor: pointer;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
    transition: transform .24s var(--pl-ease), box-shadow .24s var(--pl-ease);
}

.pl-tela .pl-btn-novo:hover {
    transform: translateY(-1px);
    box-shadow: 0 20px 42px -16px rgba(37, 99, 235, .7);
}

.pl-tela .pl-btn-novo svg {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
}

/* Vazios legados injetados por JS (troca de aba e filtro da busca): dentro do
   grid precisam ocupar a linha toda, senao viram um card de uma coluna so. */
.pl-tela .lst-perfis .sem-conteudo,
.pl-tela .lst-perfis .sem-conteudo-03-dinamic {
    grid-column: 1 / -1;
    padding: 44px 20px;
    text-align: center;
    font-size: 13.5px;
    font-weight: 400;
    line-height: 1.55;
    color: var(--color-text-01);
    opacity: .45;
}

@media (max-width: 640px) {
    .pl-tela.container-meus-planejamentos .lst-perfis {
        grid-template-columns: 1fr;
    }
}

/* =========================================================================
   TELA DE EQUIPES - padronizacao com o kit premium (mesma linguagem da tela
   de Marcas e do popup de guias): botao primario preto com glow, cards com
   raio 16 e hover que eleva, tipografia peso 500-550 com tracking negativo,
   cor usada com parcimonia.

   TUDO escopado em .contant-equipes-home. Os tokens --eq-* e as classes
   .equipe-row/.eqr-*/
.bt-bloco tambem servem o MODAL de equipe (.equipe-tela, #edit-popup .edicao-equipe) - la nada muda.=========================================================================*/ .contant-equipes-home {
    --eqp-ease: cubic-bezier(.16, 1, .3, 1);
}

/* ---- Cabecalho de cada bloco ---- */
.contant-equipes-home .hdr-bloco-pagina {
    margin-bottom: 14px;
}

.contant-equipes-home .hdr-bloco-pagina .ttl h5 {
    font-size: 15px;
    font-weight: 550;
    letter-spacing: -.02em;
    margin: 0 0 3px;
    color: var(--color-text-01);
}

.contant-equipes-home .hdr-bloco-pagina .ttl-desc {
    font-size: 13px;
    line-height: 1.45;
    color: var(--color-text-01);
    opacity: .52;
}

/* ---- Botao primario: preto com glow, igual "+ Nova marca" ---- */
.contant-equipes-home .bt-bloco {
    gap: 8px;
    padding: 9px 18px;
    border-radius: 13px;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.01em;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
    transition: transform .24s var(--eqp-ease), box-shadow .24s var(--eqp-ease);
}

.contant-equipes-home .bt-bloco:hover {
    background: var(--color-btn-bg-01);
    transform: translateY(-1px);
    box-shadow: 0 20px 42px -16px rgba(37, 99, 235, .7);
}

.contant-equipes-home .bt-bloco:active {
    transform: none;
}

.contant-equipes-home .bt-bloco svg {
    width: 15px;
    height: 15px;
    fill: var(--color-btn-text-01);
}

/* ---- Linha da equipe ---- */
.contant-equipes-home .lst-equipes-cards {
    gap: 12px;
}

.contant-equipes-home .equipe-row {
    gap: 20px;
    padding: 15px 18px;
    border-radius: 16px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    transition: transform .24s var(--eqp-ease), box-shadow .24s var(--eqp-ease),
        border-color .24s var(--eqp-ease), background .24s var(--eqp-ease);
}

/* Sem borda azul: a mesma elevacao discreta dos cards de Marcas */
.contant-equipes-home .equipe-row:hover {
    background: var(--color-bg-01);
    border-color: var(--color-hover-01);
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
}

.contant-equipes-home .eqr-nome {
    font-size: 15px;
    font-weight: 550;
    letter-spacing: -.015em;
    color: var(--color-text-01);
}

/* Tag "Dono": chip neutro, sem azul nem caixa alta pesada */
.contant-equipes-home .eqr-tag-dono {
    padding: 2px 8px;
    border-radius: 100px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: none;
    opacity: .6;
}

.contant-equipes-home .eqr-lbl {
    font-size: 11px;
    font-weight: 500;
    letter-spacing: -.01em;
    text-transform: none;
    color: var(--color-text-01);
    opacity: .5;
}

.contant-equipes-home .eqr-av,
.contant-equipes-home .eqr-logo,
.contant-equipes-home .eqr-mais {
    border-radius: 8px;
    font-size: 10px;
    font-weight: 600;
    border-color: var(--color-bg);
}

.contant-equipes-home .eqr-mais {
    background: var(--color-bg-01);
    color: var(--color-text-01);
    opacity: .7;
}

/* ---- Numeros: peso 550 e rotulo em minusculas ---- */
.contant-equipes-home .eqr-stats {
    gap: 22px;
}

.contant-equipes-home .eqr-stat {
    min-width: 52px;
}

.contant-equipes-home .eqr-stat b {
    font-size: 17px;
    font-weight: 550;
    letter-spacing: -.03em;
    color: var(--color-text-01);
}

.contant-equipes-home .eqr-stat span {
    font-size: 11px;
    font-weight: 400;
    letter-spacing: -.01em;
    text-transform: none;
    color: var(--color-text-01);
    opacity: .5;
}

.contant-equipes-home .eqr-stat.is-dng b {
    color: #d97706;
}

/* ---- "Gerenciar": secundario outline (a linha inteira ja e clicavel) ---- */
.contant-equipes-home .equipe-row .bt-card {
    padding: 8px 16px;
    border-radius: 11px;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -.01em;
    background: transparent;
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    transition: background .24s var(--eqp-ease), border-color .24s var(--eqp-ease);
}

.contant-equipes-home .equipe-row .bt-card:hover {
    filter: none;
    background: var(--color-hover-01);
}

.contant-equipes-home .equipe-row:hover .bt-card {
    border-color: var(--color-border);
}

/* ---- Pessoas: cards compactos no lugar dos retratos gigantes ---- */
.contant-equipes-home .estrutura-pessoas-lst-01 {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
    gap: 10px;
}

.contant-equipes-home .estrutura-pessoas-lst-01 .item {
    float: none;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 14px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg);
    transition: transform .24s var(--eqp-ease), box-shadow .24s var(--eqp-ease),
        background .24s var(--eqp-ease), border-color .24s var(--eqp-ease);
}

.contant-equipes-home .estrutura-pessoas-lst-01 .item:hover {
    background: var(--color-bg-01);
    border-color: var(--color-hover-01);
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
}

.contant-equipes-home .estrutura-pessoas-lst-01 .item .thumb-user {
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    aspect-ratio: auto;
    margin: 0;
    border-radius: 11px;
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--color-bg-01);
    color: var(--color-text-01);
    box-shadow: inset 0 0 0 1px rgba(125, 135, 160, .22);
}

.contant-equipes-home .estrutura-pessoas-lst-01 .item:hover .thumb-user {
    border-color: transparent;
}

.contant-equipes-home .estrutura-pessoas-lst-01 .item .nome {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0;
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    line-height: 1.3;
    color: var(--color-text-01);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.contant-equipes-home .pr-vazio {
    grid-column: 1 / -1;
    padding: 34px 20px;
    text-align: center;
    font-size: 13.5px;
    color: var(--color-text-01);
    opacity: .45;
}

/* ---- Estado vazio de equipes, no mesmo tom do vazio de Marcas ---- */
.contant-equipes-home .empty-equipes {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    padding: 50px 20px 54px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
}

.contant-equipes-home .empty-equipes svg {
    width: 26px;
    height: 26px;
    padding: 0;
    margin-bottom: 16px;
    box-sizing: content-box;
    padding: 18px;
    border-radius: 18px;
    background: var(--color-bg-01);
    fill: var(--color-text-01);
    opacity: .45;
}

.contant-equipes-home .empty-equipes .empty-ttl {
    font-size: 17px;
    font-weight: 550;
    letter-spacing: -.02em;
    color: var(--color-text-01);
}

.contant-equipes-home .empty-equipes .empty-desc {
    font-size: 13.5px;
    line-height: 1.55;
    max-width: 340px;
    margin: 6px 0 20px;
    color: var(--color-text-01);
    opacity: .5;
}

@media (max-width: 900px) {
    .contant-equipes-home .equipe-row {
        flex-wrap: wrap;
        gap: 14px;
    }

    .contant-equipes-home .eqr-stats {
        gap: 18px;
    }
}

/* =========================================================================
   DROPDOWN "CRIAR NOVO" (botao + do menu) - padronizado com o kit premium.

   ATENCAO a especificidade: o dark.css tem regras `.dropdown-default
   .t-criar-novo .X` (0,3,0) e carrega DEPOIS do painel3. Por isso tudo aqui
   usa `.dropdown-default.t-menu-opcoes.t-criar-novo` (0,4,0) - senao o tema
   escuro continua mandando nas cores antigas.
   ========================================================================= */

.dropdown-default.t-menu-opcoes.t-criar-novo {
    --cn-ease: cubic-bezier(.16, 1, .3, 1);
    width: 274px;
    padding: 7px;
    border-radius: 16px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    box-shadow: 0 28px 60px -24px rgba(11, 16, 32, .3), 0 2px 8px -3px rgba(11, 16, 32, .12);
}

/* Eyebrow da secao, no mesmo tom do "PASSO 1 DE 3" do popup de guias */
.dropdown-default.t-menu-opcoes.t-criar-novo .cn-titulo {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--color-text-01);
    opacity: .5;
    padding: 5px 9px 9px;
}

.dropdown-default.t-menu-opcoes.t-criar-novo .it-bt {
    gap: 12px;
    padding: 8px 9px;
    border-radius: 11px;
    transition: background .24s var(--cn-ease);
}

.dropdown-default.t-menu-opcoes.t-criar-novo .it-bt:hover {
    background: var(--color-hover-01);
}

/* Icones em monocromatico: quatro chips pastel coloridos brigavam entre si e
   com o resto do produto. A forma do icone ja diferencia o item.
   (Para voltar as cores, basta remover este bloco e o .cor-* abaixo.) */
.dropdown-default.t-menu-opcoes.t-criar-novo .cn-ico {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: var(--color-bg-01);
    box-shadow: inset 0 0 0 1px rgba(125, 135, 160, .16);
    transition: background .24s var(--cn-ease);
}

.dropdown-default.t-menu-opcoes.t-criar-novo .it-bt .cn-ico svg {
    width: 16px;
    height: 16px;
    fill: var(--color-text-01) !important;
    opacity: .55;
    transition: opacity .24s var(--cn-ease);
}

.dropdown-default.t-menu-opcoes.t-criar-novo .it-bt:hover .cn-ico svg {
    opacity: .9;
}

.dropdown-default.t-menu-opcoes.t-criar-novo .cor-conteudo,
.dropdown-default.t-menu-opcoes.t-criar-novo .cor-tarefa,
.dropdown-default.t-menu-opcoes.t-criar-novo .cor-lote,
.dropdown-default.t-menu-opcoes.t-criar-novo .cor-perfil {
    background: var(--color-bg-01);
}

.dropdown-default.t-menu-opcoes.t-criar-novo .cn-nome {
    font-size: 14px;
    font-weight: 550;
    letter-spacing: -.015em;
    color: var(--color-text-01);
}

.dropdown-default.t-menu-opcoes.t-criar-novo .cn-desc {
    font-size: 12px;
    letter-spacing: -.01em;
    margin-top: 2px;
    color: var(--color-text-01);
    opacity: .5;
}

.dropdown-default.t-menu-opcoes.t-criar-novo .divisao {
    margin: 6px 9px;
    border-top: 1px solid var(--color-border);
}

.flatpickr-day.selected.prevMonthDay {
    color: #fff !important;
}

/* =========================================================================
   EQUIPES v2 - KIT .eq-* (Visao geral, Agenda, Pessoas, Etapas, Capacidade)

   Linguagem: a MESMA do site airpost.com.br. Monocromatico de verdade -
   a tinta (--color-text-01) manda em titulo, aba ativa, barra e numero;
   a cor aparece so em ESTADO (atrasado / parado / estouro) e no dot de 6px
   que identifica o status. Cards com hairline, sem sombra em repouso;
   elevacao apenas no que e clicavel.

   Escopo: .eq-tela (raiz de todo painel novo), .equipe-tela (casco da tela
   cheia) e .contant-equipes-home (listagem). NADA global.
   ========================================================================= */

/* ---------------------------------------------------------------- casco --- */

.eq-tela {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Aba do gestor: o .tab-content nao deve criar um segundo scroller */
.equipe-tela .tab-content.atv {
    animation: tabFade .18s var(--eq-ease);
}

/* ------------------------------------------------------ abas (segmented) --- */
/* Substitui o underline azul por um segmented control no trilho, igual ao
   padrao de filtros do kit premium. */
.equipe-tela .tabs-equipe {
    display: inline-flex;
    gap: 2px;
    align-self: flex-start;
    padding: 3px;
    margin: 0 0 13px 0px;
    border: 1px solid var(--eq-border);
    border-radius: 100px;
    background: var(--eq-bg-soft);
}

.equipe-tela .tabs-equipe .tab {
    padding: 7px 15px;
    border: 1px solid transparent;
    border-radius: 100px;
    margin: 0;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text-3);
    transition: color .2s var(--eq-ease), background .2s var(--eq-ease),
        border-color .2s var(--eq-ease);
}

.equipe-tela .tabs-equipe .tab:hover {
    color: var(--eq-text);
}

.equipe-tela .tabs-equipe .tab.atv {
    background: var(--eq-surface);
    border-color: var(--eq-border);
    color: var(--eq-text);
    font-weight: 550;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06);
}

.equipe-tela .tabs-equipe .badge-count {
    background: var(--eq-bg-mute);
    color: var(--eq-text-3);
}

/* (o override das .subtabs-equipe saiu daqui: a BASE ja e o segmentado padrao,
   igual ao .tabs-equipe logo acima e ao .eq-seg) */

/* ------------------------------------------------------------- painel KPI --- */
/* Um painel unico dividido por hairlines (nao N cards com gap): e o que da a
   sensacao de instrumento, nao de dashboard generico. */
.eq-tela .eq-panel {
    display: flex;
    flex-wrap: wrap;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius);
    background: var(--eq-bg);
    overflow: hidden;
}

.eq-tela .eq-kpi {
    flex: 1 1 150px;
    min-width: 0;
    padding: 16px 18px 15px;
    border-left: 1px solid var(--eq-border);
}

.eq-tela .eq-kpi:first-child {
    border-left: 0;
}

.eq-tela .eq-kpi-num {
    font-size: 30px;
    font-weight: 550;
    line-height: 1.05;
    letter-spacing: -.035em;
    color: var(--eq-text);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-kpi-lbl {
    margin-top: 7px;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text-2);
}

.eq-tela .eq-kpi-sub {
    margin-top: 3px;
    font-size: 11.5px;
    line-height: 1.35;
    color: var(--eq-text-4);
}

.eq-tela .eq-kpi.tom-dng .eq-kpi-num {
    color: var(--eq-dng);
}

.eq-tela .eq-kpi.tom-warn .eq-kpi-num {
    color: var(--eq-warn);
}

.eq-tela .eq-kpi-click {
    cursor: pointer;
    transition: background .2s var(--eq-ease);
}

.eq-tela .eq-kpi-click:hover {
    background: var(--eq-bg-soft);
}

.eq-tela .eq-kpi-click:focus-visible {
    outline: 2px solid var(--eq-acento);
    outline-offset: -2px;
}

/* ------------------------------------------------------------------ card --- */
/* Superficie ELEVADA, nao o fundo da tela: com --eq-bg o card ficava preto
   sobre preto no dark e so a --eq-border (quase invisivel la) separava - ou
   seja, no escuro o card sumia. No claro --eq-surface e o mesmo branco de
   antes, entao o tema claro nao muda. */
.eq-tela .eq-card {
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius);
    background: var(--eq-surface);
    padding: 15px 18px 17px;
    min-width: 0;
}

.eq-tela .eq-card-hdr {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.eq-tela .eq-card-ttl {
    margin: 0;
    font-size: 14.5px;
    font-weight: 550;
    letter-spacing: -.02em;
    color: var(--eq-text);
}

.eq-tela .eq-card-hint {
    font-size: 12px;
    color: var(--eq-text-4);
    letter-spacing: -.005em;
}

.eq-tela .eq-card-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: auto;
}

.eq-tela .eq-card-tag {
    padding: 3px 9px;
    border-radius: 100px;
    background: var(--eq-bg-mute);
    color: var(--eq-text-3);
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
}

/* Nota de rodape do card: onde vive a explicacao que antes era um
   .bloco-aviso azul gigante no topo da tela. */
.eq-tela .eq-card-pe {
    margin-top: 13px;
    padding-top: 12px;
    border-top: 1px solid var(--eq-border);
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--eq-text-4);
}

.eq-tela .eq-card-pe b {
    color: var(--eq-text-3);
    font-weight: 600;
}

.eq-tela .eq-grid2,
.eq-tela .eq-grid3 {
    display: grid;
    gap: 14px;
    min-width: 0;
}

.eq-tela .eq-grid2 {
    grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
}

.eq-tela .eq-grid3 {
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.eq-tela .eq-vazio {
    padding: 22px 4px;
    text-align: center;
    font-size: 12.5px;
    color: var(--eq-text-4);
}

.eq-tela .eq-vazio-ok {
    color: var(--eq-suc-txt);
}

/* ------------------------------------------------- segmented + controles --- */
.eq-tela .eq-seg {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border: 1px solid var(--eq-border);
    border-radius: 100px;
    background: var(--eq-bg-soft);
}

.eq-tela .eq-seg-btn {
    padding: 5px 12px;
    border: 1px solid transparent;
    border-radius: 100px;
    background: none;
    font: inherit;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text-3);
    cursor: pointer;
    white-space: nowrap;
    transition: color .2s var(--eq-ease), background .2s var(--eq-ease),
        border-color .2s var(--eq-ease);
}

.eq-tela .eq-seg-btn:hover {
    color: var(--eq-text);
}

.eq-tela .eq-seg-btn.atv {
    background: var(--eq-bg);
    border-color: var(--eq-border);
    color: var(--eq-text);
    font-weight: 550;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06);
}

.eq-tela .eq-barra {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
}

.eq-tela .eq-barra-dir {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-left: auto;
}

.eq-tela .eq-periodo {
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.eq-tela .eq-periodo-lbl {
    min-width: 128px;
    text-align: center;
    font-size: 13.5px;
    font-weight: 550;
    letter-spacing: -.015em;
    color: var(--eq-text);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-nav {
    width: 30px;
    height: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--eq-border);
    border-radius: 9px;
    background: var(--eq-bg);
    color: var(--eq-text-2);
    font-size: 17px;
    line-height: 1;
    cursor: pointer;
    transition: background .2s var(--eq-ease), border-color .2s var(--eq-ease);
}

.eq-tela .eq-nav:hover {
    background: var(--eq-bg-mute);
    border-color: var(--eq-border-strong);
}

.eq-tela .eq-btn-ghost {
    padding: 6px 13px;
    border: 1px solid var(--eq-border);
    border-radius: 100px;
    background: var(--eq-bg);
    font: inherit;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--eq-text-2);
    cursor: pointer;
    transition: background .2s var(--eq-ease), border-color .2s var(--eq-ease);
}

.eq-tela .eq-btn-ghost:hover {
    background: var(--eq-bg-mute);
    border-color: var(--eq-border-strong);
    color: var(--eq-text);
}

.eq-tela .eq-check {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    color: var(--eq-text-3);
    cursor: pointer;
    user-select: none;
}

.eq-tela .eq-check input {
    width: 15px;
    height: 15px;
    accent-color: var(--eq-text);
    cursor: pointer;
}

/* O cabecalho de periodo legado (.ed-topo) aparece dentro de .eq-barra nas
   abas Pessoas/Etapas e no painel da pessoa - neutraliza margens antigas. */
.eq-tela .eq-barra .ed-topo,
.eq-tela .eq-card-acoes .ed-topo {
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
}

/* ---------------------------------------------------------------- avatar --- */
.eq-tela .eq-av {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--eq-bg-mute);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .01em;
    color: var(--eq-text-3);
    overflow: hidden;
}

/* --------------------------------------------------------- dot de status --- */
.eq-tela .eq-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.eq-tela .eq-dot {
    flex: 0 0 auto;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.eq-tela .eq-status-txt {
    font-size: 12px;
    color: var(--eq-text-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ----------------------------------------------------------------- barra --- */
.eq-tela .eq-bar {
    position: relative;
    height: 5px;
    border-radius: 100px;
    background: var(--eq-bg-soft);
    overflow: hidden;
}

.eq-tela .eq-bar-fill {
    height: 100%;
    border-radius: 100px;
    background: var(--eq-text);
    opacity: .78;
    transition: width .4s var(--eq-ease);
}

/* Faixas de utilizacao: folga/ok ficam na tinta (o gestor le pelo tamanho);
   cor entra so quando passa da linha. */
.eq-tela .eq-bar-fill.f-folga {
    opacity: .3;
}

.eq-tela .eq-bar-fill.f-ok {
    opacity: .82;
}

.eq-tela .eq-bar-fill.f-cheio {
    background: var(--eq-warn);
    opacity: 1;
}

.eq-tela .eq-bar-fill.f-estouro {
    background: var(--eq-dng);
    opacity: 1;
}

.eq-tela .eq-bars {
    display: flex;
    flex-direction: column;
    gap: 11px;
}

.eq-tela .eq-bar-row {
    display: flex;
    align-items: center;
    gap: 12px;
}

.eq-tela .eq-bar-mid {
    flex: 1 1 auto;
    min-width: 0;
}

.eq-tela .eq-bar-lbl {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 6px;
    min-width: 0;
}

.eq-tela .eq-bar-nome {
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-bar-val {
    flex: 0 0 auto;
    min-width: 26px;
    text-align: right;
    font-size: 13px;
    font-weight: 550;
    color: var(--eq-text);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-tag-gargalo {
    padding: 2px 7px;
    border-radius: 100px;
    background: var(--eq-warn-bg);
    color: var(--eq-warn-txt);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    white-space: nowrap;
}

/* ------------------------------------------------------------ chip mini --- */
.eq-tela .eq-chip-mini {
    padding: 2px 8px;
    border-radius: 100px;
    background: var(--eq-bg-soft);
    color: var(--eq-text-3);
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
}

.eq-tela .eq-chip-mini.dng {
    background: var(--eq-dng-bg);
    color: var(--eq-dng);
    font-weight: 600;
}

.eq-tela .eq-chip-mini.warn {
    background: var(--eq-warn-bg);
    color: var(--eq-warn-txt);
    font-weight: 600;
}

.eq-tela .eq-chip-mini.mute {
    opacity: .6;
}

/* ------------------------------------------------ fila "precisa de voce" --- */
.eq-tela .eq-risco-lst {
    display: flex;
    flex-direction: column;
}

.eq-tela .eq-risco {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 10px 2px;
    border-top: 1px solid var(--eq-border);
    cursor: pointer;
    transition: background .16s var(--eq-ease);
}

.eq-tela .eq-risco:first-child {
    border-top: 0;
}

.eq-tela .eq-risco:hover {
    background: var(--eq-bg-soft);
    /* estende o hover ate a borda do card sem mexer no layout */
    box-shadow: -10px 0 0 var(--eq-bg-soft), 10px 0 0 var(--eq-bg-soft);
}

.eq-tela .eq-risco:focus-visible {
    outline: 2px solid var(--eq-acento);
    outline-offset: 1px;
}

/* Severidade: um tracinho vertical. 3 = atrasado, 2 = sem dono, 1 = parado. */
.eq-tela .eq-risco-sev {
    flex: 0 0 auto;
    width: 3px;
    height: 26px;
    border-radius: 100px;
    background: var(--eq-text);
    opacity: .18;
}

.eq-tela .eq-risco.sev-3 .eq-risco-sev {
    background: var(--eq-dng);
    opacity: 1;
}

.eq-tela .eq-risco.sev-2 .eq-risco-sev {
    background: var(--eq-warn);
    opacity: 1;
}

.eq-tela .eq-risco-mid {
    flex: 1 1 auto;
    min-width: 0;
}

.eq-tela .eq-risco-ttl {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-risco-sub {
    margin-top: 2px;
    font-size: 11.5px;
    color: var(--eq-text-4);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-risco .eq-status {
    flex: 0 0 auto;
    max-width: 130px;
}

.eq-tela .eq-risco-motivo {
    flex: 0 0 auto;
    min-width: 92px;
    text-align: right;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--eq-text-3);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-risco.sev-3 .eq-risco-motivo {
    color: var(--eq-dng);
}

/* ------------------------------------------------------- carga da equipe --- */
.eq-tela .eq-load-lst {
    display: flex;
    flex-direction: column;
}

.eq-tela .eq-load {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 2px;
    border-top: 1px solid var(--eq-border);
    cursor: pointer;
    transition: background .16s var(--eq-ease);
}

.eq-tela .eq-load:first-child {
    border-top: 0;
}

.eq-tela .eq-load:hover {
    background: var(--eq-bg-soft);
    box-shadow: -10px 0 0 var(--eq-bg-soft), 10px 0 0 var(--eq-bg-soft);
}

.eq-tela .eq-load:focus-visible {
    outline: 2px solid var(--eq-acento);
    outline-offset: 1px;
}

.eq-tela .eq-load-mid {
    flex: 1 1 auto;
    min-width: 0;
}

.eq-tela .eq-load-top {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin-bottom: 6px;
}

.eq-tela .eq-load-nome {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-load-pct {
    flex: 0 0 auto;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--eq-text-3);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-load-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-top: 7px;
}

.eq-tela .eq-load-val {
    flex: 0 0 auto;
    min-width: 44px;
    text-align: right;
    font-size: 15px;
    font-weight: 550;
    letter-spacing: -.02em;
    color: var(--eq-text);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-load-val small {
    font-size: 11px;
    font-weight: 500;
    color: var(--eq-text-4);
}

/* Cor do % / da utilizacao segue a mesma faixa da barra */
.eq-tela .f-folga {
    color: var(--eq-text-4);
}

.eq-tela .f-ok {
    color: var(--eq-text-2);
}

.eq-tela .eq-load-pct.f-cheio,
.eq-tela .eq-util.f-cheio {
    color: var(--eq-warn-txt);
}

.eq-tela .eq-load-pct.f-estouro,
.eq-tela .eq-util.f-estouro {
    color: var(--eq-dng);
}

.eq-tela .eq-util {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

/* ---------------------------------------------------------------- tabela --- */
.eq-tela .eq-tbl-wrap {
    overflow-x: auto;
    margin: 0 -18px;
    padding: 0 18px;
}

.eq-tela .eq-tbl {
    width: 100%;
    min-width: 720px;
    border-collapse: collapse;
}

.eq-tela .eq-tbl thead th {
    padding: 0 10px 9px;
    border-bottom: 1px solid var(--eq-border);
    text-align: left;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: -.005em;
    color: var(--eq-text-4);
    white-space: nowrap;
}

.eq-tela .eq-tbl thead th.c-pessoa,
.eq-tela .eq-tbl thead th.c-resp {
    text-align: left;
}

.eq-tela .eq-tbl-sort thead th[data-sort] {
    cursor: pointer;
    user-select: none;
}

.eq-tela .eq-tbl-sort thead th[data-sort]:hover {
    color: var(--eq-text-2);
}

/* Chevron de ordenacao: aparece esmaecido no hover, firme na coluna ativa */
.eq-tela .eq-tbl-sort thead th[data-sort]::after {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    margin-left: 5px;
    vertical-align: middle;
    border-left: 3.5px solid transparent;
    border-right: 3.5px solid transparent;
    border-top: 4px solid currentColor;
    opacity: 0;
    transition: opacity .16s var(--eq-ease);
}

.eq-tela .eq-tbl-sort thead th[data-sort]:hover::after {
    opacity: .35;
}

.eq-tela .eq-tbl-sort thead th.sort-desc::after {
    opacity: .9;
}

.eq-tela .eq-tbl-sort thead th.sort-asc::after {
    opacity: .9;
    border-top: 0;
    border-bottom: 4px solid currentColor;
}

.eq-tela .eq-tbl tbody td {
    padding: 11px 10px;
    border-bottom: 1px solid var(--eq-border);
    text-align: left;
    font-size: 13px;
    color: var(--eq-text-2);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-tbl tbody tr:last-child td {
    border-bottom: 0;
}

.eq-tela .eq-tbl tbody td.c-pessoa,
.eq-tela .eq-tbl tbody td.c-resp {
    text-align: left;
}

.eq-tela .eq-tbl tbody td.c-pessoa {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 210px;
}

.eq-tela .eq-tbl tbody tr[role="button"] {
    cursor: pointer;
}

.eq-tela .eq-tbl tbody tr:hover td {
    background: var(--eq-bg-soft);
}

.eq-tela .eq-tbl tbody tr:focus-visible td {
    background: var(--eq-bg-soft);
    outline: 0;
}

.eq-tela .eq-tbl tbody tr.is-gargalo td:first-child {
    box-shadow: inset 2px 0 0 var(--eq-warn);
}

.eq-tela .eq-td-pessoa {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.eq-tela .eq-td-nome {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-td-sub {
    display: block;
    margin-top: 1px;
    font-size: 11px;
    color: var(--eq-text-4);
    white-space: nowrap;
}

.eq-tela .eq-td-sub.warn {
    color: var(--eq-warn-txt);
}

.eq-tela .eq-num-dng {
    font-weight: 600;
    color: var(--eq-dng);
}

.eq-tela .eq-num-warn {
    font-weight: 600;
    color: var(--eq-warn-txt);
}

.eq-tela .eq-tbl .ee-resp {
    display: inline-flex;
    align-items: center;
    margin-right: 4px;
}

.eq-tela .eq-tbl .ee-sem-resp {
    font-size: 11px;
    color: var(--eq-text-4);
}

/* --------------------------------------- tabela em DIV (aba Pessoas) ------ */
/* A aba Pessoas mantem a estrutura em div porque cada linha tem um detalhe
   expansivel logo abaixo (.ep-detalhe) - impossivel dentro de <tr>. O CSS
   iguala a aparencia a .eq-tbl. */
.eq-tela .ep-tabela.eq-tbl-div {
    border: 0;
    border-radius: 0;
    background: none;
    overflow: visible;
}

.eq-tela .eq-tbl-div .ep-head {
    padding: 0 4px 9px;
    border-bottom: 1px solid var(--eq-border);
    background: none;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--eq-text-4);
}

.eq-tela .eq-tbl-div .ep-row {
    padding: 11px 4px;
    border-bottom: 1px solid var(--eq-border);
    background: none;
    transition: background .16s var(--eq-ease);
}

.eq-tela .eq-tbl-div .ep-row:hover {
    background: var(--eq-bg-soft);
}

.eq-tela .eq-tbl-div .ep-c-num {
    font-size: 13px;
    color: var(--eq-text-2);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-tbl-div .ep-nome {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text);
}

.eq-tela .eq-tbl-div .ep-forte {
    font-weight: 600;
    color: var(--eq-text);
}

.eq-tela .eq-tbl-div .ep-taxa {
    font-size: 11px;
    color: var(--eq-text-4);
}

.eq-tela .eq-tbl-div .ep-pos {
    color: var(--eq-text-4);
    font-weight: 600;
}

.eq-tela .eq-tbl-div .ep-detalhe {
    border-bottom: 1px solid var(--eq-border);
    background: var(--eq-bg-soft);
    border-radius: 0 0 var(--eq-radius-sm) var(--eq-radius-sm);
}

/* ------------------------------------------------------- trend (SVG puro) --- */
.eq-tela .eq-trend {
    --eq-trend-h: 92px;
}

.eq-tela .eq-trend-svg {
    display: block;
    width: 100%;
    height: var(--eq-trend-h);
    overflow: visible;
}

.eq-tela .eq-trend-grid {
    stroke: var(--eq-border);
    stroke-width: .5;
    vector-effect: non-scaling-stroke;
}

.eq-tela .eq-trend-line {
    fill: none;
    stroke-width: 1.6;
    stroke-linejoin: round;
    stroke-linecap: round;
    vector-effect: non-scaling-stroke;
}

.eq-tela .eq-trend-area {
    stroke: none;
}

/* Serie ativa: azul-acento (o unico azul da tela, como na referencia).
   Serie inativa: some - nao vira ruido cinza. */
.eq-tela .eq-trend-line.s-entregas {
    stroke: var(--eq-acento);
}

.eq-tela .eq-trend-area.s-entregas {
    fill: color-mix(in srgb, var(--eq-acento) 12%, transparent);
}

.eq-tela .eq-trend-line.s-avancos {
    stroke: var(--eq-text);
    opacity: .55;
}

.eq-tela .eq-trend-area.s-avancos {
    fill: color-mix(in srgb, var(--eq-text) 7%, transparent);
}

.eq-tela .eq-trend.mostra-entregas .s-avancos,
.eq-tela .eq-trend.mostra-entregas .v-avancos,
.eq-tela .eq-trend.mostra-avancos .s-entregas,
.eq-tela .eq-trend.mostra-avancos .v-entregas {
    display: none;
}

.eq-tela .eq-trend-cols {
    display: flex;
    margin-top: 8px;
}

.eq-tela .eq-trend-col {
    flex: 1 1 0;
    min-width: 0;
    text-align: center;
}

.eq-tela .eq-trend-v {
    display: block;
    font-size: 12.5px;
    font-weight: 550;
    color: var(--eq-text);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-trend-lbl {
    display: block;
    margin-top: 2px;
    font-size: 10.5px;
    color: var(--eq-text-4);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-trend-col.atual .eq-trend-lbl {
    color: var(--eq-text-2);
    font-weight: 600;
}

/* ------------------------------------------------------- spark (Pessoas) --- */
.eq-tela .eq-spark {
    display: flex;
    align-items: flex-end;
    gap: 6px;
    height: 128px;
}

.eq-tela .eq-spark-col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
    height: 100%;
}

.eq-tela .eq-spark-val {
    font-size: 11.5px;
    font-weight: 550;
    color: var(--eq-text-3);
    margin-bottom: 5px;
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-spark-bar {
    width: 100%;
    max-width: 34px;
    border-radius: 5px 5px 2px 2px;
    background: var(--eq-text);
    opacity: .16;
    transition: opacity .2s var(--eq-ease);
}

.eq-tela .eq-spark-col.atual .eq-spark-bar {
    opacity: .8;
}

.eq-tela .eq-spark-col:hover .eq-spark-bar {
    opacity: .45;
}

.eq-tela .eq-spark-col.atual:hover .eq-spark-bar {
    opacity: .9;
}

.eq-tela .eq-spark-lbl {
    margin-top: 7px;
    font-size: 10.5px;
    color: var(--eq-text-4);
}

.eq-tela .eq-spark-col.atual .eq-spark-lbl {
    color: var(--eq-text-2);
    font-weight: 600;
}

/* --------------------------------- diario do mes (painel da pessoa) ------- */
.eq-tela .eq-diario {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    height: 96px;
}

.eq-tela .eq-diario-col {
    flex: 1 1 0;
    min-width: 0;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.eq-tela .eq-diario-bar-wrap {
    flex: 1 1 auto;
    display: flex;
    align-items: flex-end;
}

.eq-tela .eq-diario-bar {
    width: 100%;
    border-radius: 3px 3px 1px 1px;
    background: var(--eq-text);
    opacity: .22;
    transition: opacity .2s var(--eq-ease);
}

.eq-tela .eq-diario-col:hover .eq-diario-bar {
    opacity: .6;
}

.eq-tela .eq-diario-col.is-fds .eq-diario-bar {
    opacity: .12;
}

.eq-tela .eq-diario-col.is-hoje .eq-diario-bar {
    background: var(--eq-acento);
    opacity: .9;
}

.eq-tela .eq-diario-lbl {
    margin-top: 6px;
    text-align: center;
    font-size: 9.5px;
    color: var(--eq-text-4);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-diario-col.is-hoje .eq-diario-lbl {
    color: var(--eq-text);
    font-weight: 700;
}

/* ======================================================= GRADE DA AGENDA === */
/* Pessoas nas linhas, dias nas colunas. A coluna da pessoa fica fixa e o
   resto rola na horizontal - e o que permite 30 dias no mobile. */
.eq-tela .eq-grid-wrap {
    overflow-x: auto;
    margin: 0 -18px;
    padding: 0 18px 4px;
}

.eq-tela .eq-grid {
    --eq-col-pessoa: 178px;
    --eq-col-dia: 108px;
    min-width: calc(var(--eq-col-pessoa) + (var(--eq-dias, 7) * var(--eq-col-dia)));
}

.eq-tela .eq-grid.sem-pessoa {
    --eq-col-pessoa: 0px;
    min-width: calc(var(--eq-dias, 7) * var(--eq-col-dia));
}

.eq-tela .eq-grid-hdr,
.eq-tela .eq-grid-row {
    display: grid;
    grid-template-columns: var(--eq-col-pessoa) repeat(var(--eq-dias, 7), minmax(0, 1fr));
}

.eq-tela .eq-grid.sem-pessoa .eq-grid-hdr,
.eq-tela .eq-grid.sem-pessoa .eq-grid-row {
    grid-template-columns: repeat(var(--eq-dias, 7), minmax(0, 1fr));
}

.eq-tela .eq-grid-hdr .eq-gc-pessoa {
    padding: 0 10px 9px;
    font-size: 11.5px;
}

.eq-tela .eq-gc-dia {
    align-items: baseline;
    gap: 5px;
    padding: 0 8px 9px;
}

.eq-tela .eq-gd-wd {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .02em;
}

.eq-tela .eq-gd-num {
    font-size: 14px;
    letter-spacing: -.02em;
}

.eq-tela .eq-gd-tot {
    font-size: 11px;
}

.eq-tela .eq-gc-dia.is-hoje .eq-gd-wd,
.eq-tela .eq-gc-dia.is-hoje .eq-gd-num {
    color: var(--eq-acento);
}

.eq-tela .eq-gc-dia.is-fds {
    background: var(--eq-bg-soft);
}

.eq-tela .eq-grid-row:last-child {
    border-bottom: 0;
}

.eq-tela .eq-gc-pessoa {
    align-items: center;
    padding: 10px;
    min-width: 0;
}

.eq-tela .eq-gp-click {
    cursor: pointer;
    border-radius: var(--eq-radius-xs);
    transition: background .16s var(--eq-ease);
}

.eq-tela .eq-gp-click:hover {
    background: var(--eq-bg-soft);
}

.eq-tela .eq-gp-mid {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.eq-tela .eq-gp-nome {
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-gp-sub {
    margin-top: 1px;
    font-size: 10.5px;
    color: var(--eq-text-4);
    white-space: nowrap;
}

/* --- celula do dia --- */
.eq-tela .eq-gc-cel {
    gap: 3px;
    min-height: 62px;
    padding: 7px;
}

.eq-tela .eq-gc-cel.is-fds {
    background: var(--eq-bg-soft);
}

.eq-tela .eq-gc-cel.is-hoje {
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--eq-acento) 26%, transparent);
}

/* Heat: intensidade da MESMA tinta pela razao itens do dia / capacidade
   diaria. Nada de escala arco-iris: o olho le densidade, nao matiz. */
.eq-tela .eq-gc-cel.heat-1 {
    background: color-mix(in srgb, var(--eq-text) 4%, transparent);
}

.eq-tela .eq-gc-cel.heat-2 {
    background: color-mix(in srgb, var(--eq-text) 8%, transparent);
}

.eq-tela .eq-gc-cel.heat-3 {
    background: color-mix(in srgb, var(--eq-warn) 13%, transparent);
}

.eq-tela .eq-gc-cel.heat-4 {
    background: color-mix(in srgb, var(--eq-dng) 14%, transparent);
}

.eq-tela .eq-cel-click {
    transition: box-shadow .16s var(--eq-ease);
}

.eq-tela .eq-cel-click:hover {
    box-shadow: inset 0 0 0 1px var(--eq-border-strong);
}

/* Dia com item ja vencido: tracinho vermelho no topo da celula */

/* O item da celula (.eq-cel-chip) era um chip de UMA linha com dot + titulo.
   Virou mini-card de 2 linhas (contexto + titulo) com barra de status: o
   desenho vive no bloco "GRADE DIA A DIA v3", no fim deste arquivo. As regras
   do chip antigo sairam daqui para nao brigar por cascata com o novo. */

/* Legenda do heat no header do card */
.eq-tela .eq-legenda {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 11px;
    color: var(--eq-text-4);
}

.eq-tela .eq-legenda-i {
    display: inline-flex;
    gap: 2px;
}

.eq-tela .eq-legenda-i i {
    width: 13px;
    height: 13px;
    border-radius: 3px;
}

.eq-tela .eq-legenda-i i.heat-1 {
    background: color-mix(in srgb, var(--eq-text) 4%, transparent);
}

.eq-tela .eq-legenda-i i.heat-2 {
    background: color-mix(in srgb, var(--eq-text) 8%, transparent);
}

.eq-tela .eq-legenda-i i.heat-3 {
    background: color-mix(in srgb, var(--eq-warn) 13%, transparent);
}

.eq-tela .eq-legenda-i i.heat-4 {
    background: color-mix(in srgb, var(--eq-dng) 14%, transparent);
}

/* -------------------------------------------------------------- clientes --- */
.eq-tela .eq-cli-lst {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(232px, 1fr));
    gap: 8px;
}

.eq-tela .eq-cli {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius-sm);
    min-width: 0;
}

.eq-tela .eq-cli.ed-cli-click {
    cursor: pointer;
    transition: background .16s var(--eq-ease), border-color .16s var(--eq-ease);
}

.eq-tela .eq-cli.ed-cli-click:hover {
    background: var(--eq-bg-soft);
    border-color: var(--eq-border-strong);
}

.eq-tela .eq-cli-mid {
    flex: 1 1 auto;
    min-width: 0;
}

.eq-tela .eq-cli-nome {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-cli-sub {
    margin-top: 1px;
    font-size: 11px;
    color: var(--eq-text-4);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-cli-badge {
    flex: 0 0 auto;
    padding: 2px 8px;
    border-radius: 100px;
    background: var(--eq-bg-soft);
    color: var(--eq-text-4);
    font-size: 10.5px;
    font-weight: 600;
    white-space: nowrap;
}

.eq-tela .eq-cli-badge.on {
    background: var(--eq-warn-bg);
    color: var(--eq-warn-txt);
}

/* ------------------------------------------------------------ capacidade --- */
.eq-tela .eq-cap-lst {
    display: flex;
    flex-direction: column;
}

.eq-tela .eq-cap-row {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 10px 2px;
    border-top: 1px solid var(--eq-border);
    transition: background .2s var(--eq-ease);
}

.eq-tela .eq-cap-row:first-child {
    border-top: 0;
}

.eq-tela .eq-cap-row.salvando {
    opacity: .55;
}

.eq-tela .eq-cap-row.salvo {
    background: var(--eq-suc-bg);
}

.eq-tela .eq-cap-mid {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.eq-tela .eq-cap-nome {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text);
}

.eq-tela .eq-cap-sub {
    margin-top: 2px;
    font-size: 11.5px;
    color: var(--eq-text-4);
}

.eq-tela .eq-cap-input {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.eq-tela .eq-cap-val {
    width: 72px;
    padding: 7px 10px;
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    background: var(--eq-bg);
    font: inherit;
    font-size: 13px;
    color: var(--eq-text);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-cap-val:focus {
    outline: 0;
    border-color: var(--eq-acento);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--eq-acento) 16%, transparent);
}

.eq-tela .eq-cap-val:disabled {
    opacity: .5;
    cursor: not-allowed;
}

.eq-tela .eq-cap-un {
    font-size: 11.5px;
    color: var(--eq-text-4);
}

/* -------------------------------------------- painel da pessoa: timeline --- */
.eq-tela .pp-timeline .estrutura-atividades-lst-01 {
    margin: 0;
}

.eq-tela .pp-timeline-mais {
    margin-top: 12px;
    text-align: center;
}

/* --------------------------------- drill-down: cards de TAREFA no popup --- */
.ppd-grupo-tag {
    margin-left: 6px;
    padding: 2px 7px;
    border-radius: 100px;
    background: var(--eq-bg-mute);
    color: var(--eq-text-3);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .02em;
}

.ppd-card-num.is-tarefa {
    letter-spacing: .03em;
}

.ppd-card-tarefa .ppd-thumb-vazio svg {
    opacity: .5;
}

/* --------------------------------------- listagem: 4o numero do card ----- */
.contant-equipes-home .eqr-stat.is-warn b {
    color: var(--eq-warn-txt);
}

.contant-equipes-home .equipe-row.eqr-abrir {
    cursor: pointer;
}

.contant-equipes-home .equipe-row.eqr-abrir:focus-visible {
    outline: 2px solid var(--eq-acento);
    outline-offset: 2px;
}

/* ============================================================ RESPONSIVO === */
@media (max-width: 1100px) {
    .eq-tela .eq-kpi {
        flex-basis: 33.333%;
    }

    /* Na 2a fileira de tiles a hairline da esquerda do 1o item sobra */
    .eq-tela .eq-kpi:nth-child(3n+1) {
        border-left: 0;
    }
}

@media (max-width: 760px) {
    .equipe-tela .edicao-equipe {
        padding: 0 12px 40px;
    }

    .equipe-tela .tabs-equipe {
        align-self: stretch;
        overflow-x: auto;
        border-radius: 14px;
    }

    .eq-tela .eq-card {
        padding: 14px 13px 15px;
    }

    .eq-tela .eq-kpi {
        flex-basis: 50%;
        padding: 13px 14px 12px;
    }

    .eq-tela .eq-kpi:nth-child(3n+1) {
        border-left: 1px solid var(--eq-border);
    }

    .eq-tela .eq-kpi:nth-child(odd) {
        border-left: 0;
    }

    .eq-tela .eq-kpi-num {
        font-size: 25px;
    }

    .eq-tela .eq-grid2,
    .eq-tela .eq-grid3 {
        grid-template-columns: 1fr;
    }

    .eq-tela .eq-barra-dir {
        margin-left: 0;
        width: 100%;
    }

    .eq-tela .eq-tbl-wrap,
    .eq-tela .eq-grid-wrap {
        margin: 0 -13px;
        padding: 0 13px 4px;
    }

    .eq-tela .eq-grid {
        --eq-col-pessoa: 138px;
        --eq-col-dia: 92px;
    }

    .eq-tela .eq-risco .eq-status {
        display: none;
    }

    .eq-tela .eq-cli-lst {
        grid-template-columns: 1fr;
    }
}

/* Selo "dono" na lista de capacidade (o dono pode nao ter vinculo de membro) */
.eq-tela .eq-cap-tag {
    margin-left: 5px;
    padding: 1px 7px;
    border-radius: 100px;
    background: var(--eq-bg-mute);
    color: var(--eq-text-4);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .02em;
}

.eq-tela .eq-cap-sub b {
    color: var(--eq-text-3);
    font-weight: 600;
}

/* Avatar de grupo no drill-down quando a marca TEM logo: a .ppd-grupo-ini ja
   traz o tamanho e o cover, mas sem background-position um logo fora do
   quadrado recorta pelo canto superior esquerdo em vez do centro. */
.ppd-grupo-ini.ppd-grupo-foto {
    background-position: center;
    background-repeat: no-repeat;
    color: transparent;
}

/* ==========================================================================
   EQUIPES v3 - cargos, membros externos/pagamentos, agenda rica e popup de
   itens redesenhado. Tudo em cima dos tokens --eq-* (aliases do sistema), sem
   paleta propria: o tema escuro segue de graca. Comentarios em ASCII.
   ========================================================================== */

/* --------------------------------------------------- titulo de secao ------ */
/* Separa "Agora" de "O mes" nas telas que misturam snapshot e periodo. Sem
   isto o gestor lia numero de agora achando que era do mes navegado. */
.eq-tela .eq-secao-ttl {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin: 24px 0 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--eq-text-3);
}

.eq-tela .eq-secao-ttl::after {
    content: "";
    flex: 1 1 auto;
    height: 1px;
    background: var(--eq-border);
}

.eq-tela .eq-secao-ttl span {
    flex: 0 0 auto;
    order: 3;
    font-size: 11.5px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: var(--eq-text-4);
}

@media (max-width: 700px) {
    .eq-tela .eq-secao-ttl span {
        display: none;
    }
}

/* --------------------------------------------------- botao primario ------- */
.eq-tela .eq-btn-primary {
    padding: 7px 15px;
    border: 1px solid var(--eq-pri);
    border-radius: 100px;
    background: var(--eq-pri);
    font: inherit;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--eq-bg);
    cursor: pointer;
    transition: opacity .2s var(--eq-ease), box-shadow .2s var(--eq-ease);
}

.eq-tela .eq-btn-primary:hover {
    opacity: .88;
    box-shadow: var(--eq-glow);
}

.eq-tela .eq-btn-ghost.eq-btn-perigo:hover {
    border-color: var(--eq-dng);
    background: var(--eq-dng-bg);
    color: var(--eq-dng);
}

/* --------------------------------------------------- switch reutilizavel -- */
/* Usado em cargo por pessoa e no vinculo "externo". Monocromatico: a tinta
   preenche o trilho quando ligado. */
.eq-tela .eq-switch,
#edit-popup-medium .eq-switch {
    position: relative;
    display: inline-block;
    flex: 0 0 auto;
    width: 38px;
    height: 22px;
    border-radius: 100px;
    background: var(--eq-bg-mute);
    border: 1px solid var(--eq-border);
    cursor: pointer;
    transition: background .18s var(--eq-ease), border-color .18s var(--eq-ease);
    vertical-align: middle;
}

.eq-tela .eq-switch>i,
#edit-popup-medium .eq-switch>i {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--eq-bg);
    box-shadow: 0 1px 3px rgba(16, 24, 40, .28);
    transition: transform .18s var(--eq-ease);
}

.eq-tela .eq-switch.on,
#edit-popup-medium .eq-switch.on {
    background: var(--eq-pri);
    border-color: var(--eq-pri);
}

.eq-tela .eq-switch.on>i,
#edit-popup-medium .eq-switch.on>i {
    transform: translateX(16px);
}

.eq-tela .eq-switch.off-lock {
    opacity: .4;
    cursor: not-allowed;
}

.eq-tela .eq-switch.salvando,
#edit-popup-medium .eq-switch.salvando {
    opacity: .55;
}

/* --------------------------------------------------- chips de cargo ------- */
.eq-cargos {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
    align-items: center;
    vertical-align: middle;
}

.eq-cargo {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 1px 8px;
    border: 1px solid var(--eq-border);
    border-radius: 100px;
    background: var(--eq-bg);
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.6;
    color: var(--eq-text-3);
    white-space: nowrap;
}

/* Com cor definida, ela entra como dot + borda - nunca como fundo saturado. */
.eq-cargo.tem-cor {
    border-color: color-mix(in srgb, var(--eq-cargo-cor) 46%, transparent);
    color: var(--eq-text-2);
}

.eq-cargo.tem-cor::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--eq-cargo-cor);
}

.eq-cargo-mais,
.eq-cargo-vazio {
    color: var(--eq-text-4);
    border-style: dashed;
}

.eq-cargo-semstatus {
    font-size: 11px;
    color: var(--eq-text-4);
    font-style: italic;
}

/* Tag "externo" no item de membro e no header da pessoa */
.tag-externo {
    display: inline-flex;
    align-items: center;
    margin-left: 6px;
    padding: 1px 8px;
    border-radius: 100px;
    background: var(--eq-warn-bg);
    color: var(--eq-warn-txt);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .02em;
    white-space: nowrap;
}

.lst-membros-equipe .membro-cargos {
    margin-top: 4px;
}

/* --------------------------------------------------- aba Cargos ----------- */
.eq-tela .eq-cargo-lst {
    display: flex;
    flex-direction: column;
}

.eq-tela .eq-cargo-row {
    display: grid;
    grid-template-columns: 4px minmax(0, 1fr) auto auto auto;
    align-items: center;
    gap: 14px;
    padding: 13px 0;
    border-bottom: 1px solid var(--eq-border);
}

.eq-tela .eq-cargo-row:last-child {
    border-bottom: 0;
}

.eq-tela .eq-cargo-cor {
    width: 4px;
    height: 34px;
    border-radius: 100px;
    background: var(--eq-pri);
}

.eq-tela .eq-cargo-cor[data-vazia="1"] {
    background: var(--eq-border-strong);
}

.eq-tela .eq-cargo-info {
    min-width: 0;
}

.eq-tela .eq-cargo-nome {
    font-size: 13.5px;
    font-weight: 550;
    letter-spacing: -.01em;
    color: var(--eq-text);
}

.eq-tela .eq-cargo-desc {
    margin-top: 1px;
    font-size: 11.5px;
    color: var(--eq-text-4);
}

.eq-tela .eq-cargo-status {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    margin-top: 6px;
}

.eq-tela .eq-cargo-pessoas {
    display: flex;
    align-items: center;
}

.eq-tela .eq-cargo-pessoas .eq-av {
    margin-left: -6px;
    box-shadow: 0 0 0 2px var(--eq-bg);
}

.eq-tela .eq-cargo-pessoas> :first-child {
    margin-left: 0;
}

.eq-tela .eq-cargo-mais-av {
    margin-left: -6px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--eq-bg-mute);
    box-shadow: 0 0 0 2px var(--eq-bg);
    font-size: 9.5px;
    font-weight: 700;
    color: var(--eq-text-3);
}

.eq-tela .eq-cargo-valor {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    min-width: 92px;
}

.eq-tela .eq-cargo-valor b {
    font-size: 13px;
    font-weight: 600;
    color: var(--eq-text);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-cargo-valor span {
    font-size: 10.5px;
    color: var(--eq-text-4);
}

.eq-tela .eq-cargo-acoes {
    display: flex;
    gap: 6px;
}

.eq-tela .eq-av-xs {
    width: 22px;
    height: 22px;
    font-size: 9px;
}

/* Pessoas por cargo */
.eq-tela .eq-cargo-pessoas-lst {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(258px, 1fr));
    gap: 8px;
}

.eq-tela .eq-cargo-pessoa {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius-sm);
    min-width: 0;
    transition: border-color .16s var(--eq-ease), background .16s var(--eq-ease);
}

.eq-tela .eq-cargo-pessoa[role="button"] {
    cursor: pointer;
}

.eq-tela .eq-cargo-pessoa[role="button"]:hover {
    border-color: var(--eq-border-strong);
    background: var(--eq-bg-soft);
}

.eq-tela .eq-cargo-pessoa.sem-vinculo {
    opacity: .6;
}

.eq-tela .eq-cargo-pessoa-mid {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.eq-tela .eq-cargo-pessoa-nome {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-cargo-pessoa-go {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 600;
    color: var(--eq-text-4);
}

.eq-tela .eq-cargo-pessoa:hover .eq-cargo-pessoa-go {
    color: var(--eq-text-2);
}

/* --------------------------------------------------- editor de cargo ------ */
#edit-popup-medium .popup-cargo-editor .campo-hint {
    margin-top: 6px;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--eq-text-4);
}

#edit-popup-medium .popup-cargo-editor .cargo-cores {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

#edit-popup-medium .popup-cargo-editor .cargo-cor {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(16, 24, 40, .12);
    transition: transform .14s var(--eq-ease), box-shadow .14s var(--eq-ease);
}

#edit-popup-medium .popup-cargo-editor .cargo-cor[data-vazia="1"] {
    background: repeating-linear-gradient(45deg, var(--eq-bg-mute) 0 4px, var(--eq-surface) 4px 8px);
}

#edit-popup-medium .popup-cargo-editor .cargo-cor.atv {
    transform: scale(1.12);
    box-shadow: 0 0 0 2px var(--eq-surface), 0 0 0 4px var(--eq-pri);
}

#edit-popup-medium .popup-cargo-editor .cargo-valor-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
}

#edit-popup-medium .popup-cargo-editor .cargo-valor-wrap>span {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--eq-text-3);
}

#edit-popup-medium .popup-cargo-editor .cargo-valor {
    max-width: 140px;
}

/* =============================================================
   EDITOR DE CARGO
   O popup foi reorganizado: identidade vira TITULO (nome + cor
   numa faixa so), e a primeira secao do corpo e o que o cargo
   FAZ - status e, dentro de cada um, o recorte de tipo/canal.
   Preco e descricao vem depois: sao consequencia da
   responsabilidade, nao pre-requisito dela.
   ============================================================= */
/* ---- TOPO: identidade (nome + cor), fora do scroller ----
   O cabecalho ficou sendo a identidade em vez de so um titulo estatico: assim
   ele para de duplicar a faixa que existia no corpo e, como esta fora da
   .sub-popup-body (que rola), o nome do cargo continua a vista enquanto a
   lista de status rola. */
#edit-popup-medium .popup-cargo-editor .cargo-hdr {
    display: block;
    padding: 14px 56px 14px 24px;
}

#edit-popup-medium .popup-cargo-editor .cargo-hdr-eyebrow {
    display: block;
    margin-bottom: 7px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--eq-text-4);
}

#edit-popup-medium .popup-cargo-editor .cargo-ident {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

/* o nome e o TITULO da coisa editada, nao mais um campo de formulario */
#edit-popup-medium .popup-cargo-editor .cargo-nome {
    flex: 1 1 240px;
    min-width: 0;
    padding: 8px 12px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: var(--eq-text);
    font-size: 17px;
    font-weight: 600;
    outline: 0;
    box-sizing: border-box;
    transition: background .14s var(--eq-ease), border-color .14s var(--eq-ease);
}

/* sem moldura em repouso (le como titulo); a moldura aparece ao interagir,
   que e quando ele precisa parecer um campo */
#edit-popup-medium .popup-cargo-editor .cargo-nome:hover {
    background: var(--eq-bg-mute);
}

#edit-popup-medium .popup-cargo-editor .cargo-nome:focus {
    background: var(--eq-surface);
    border-color: var(--eq-pri);
}

#edit-popup-medium .popup-cargo-editor .cargo-nome::placeholder {
    font-weight: 500;
    color: var(--eq-text-4);
}

/* swatches menores aqui: no topo eles acompanham o nome, nao sao a atracao */
#edit-popup-medium .popup-cargo-editor .cargo-hdr .cargo-cor {
    width: 20px;
    height: 20px;
}

#edit-popup-medium .popup-cargo-editor .cargo-hdr .cargo-cores {
    gap: 6px;
    flex: 0 0 auto;
}

#edit-popup-medium .popup-cargo-editor .cargo-sec {
    padding: 16px 0;
    border-bottom: 1px solid var(--eq-border);
}

/* o padding do .sub-popup-body ja e o respiro do topo */
#edit-popup-medium .popup-cargo-editor .cargo-sec:first-of-type {
    padding-top: 0;
}

#edit-popup-medium .popup-cargo-editor .cargo-sec:last-of-type {
    border-bottom: 0;
}

#edit-popup-medium .popup-cargo-editor .cargo-sec-hdr {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

/* ---- secoes opcionais colapsaveis (valor, descricao) ----
   Fechadas elas nao empurram as Responsabilidades para baixo; o RESUMO no
   cabecalho garante que fechar nunca esconde que ha algo configurado. */
#edit-popup-medium .popup-cargo-editor .cargo-sec.colapsavel>.cargo-sec-hdr {
    align-items: center;
    cursor: pointer;
    margin-bottom: 0;
    padding: 2px 0;
}

#edit-popup-medium .popup-cargo-editor .cargo-sec.colapsavel:not(.fechada)>.cargo-sec-hdr {
    margin-bottom: 12px;
}

#edit-popup-medium .popup-cargo-editor .cargo-sec-seta {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    fill: var(--eq-text-4);
    transform: rotate(90deg);
    transition: transform .16s var(--eq-ease);
}

#edit-popup-medium .popup-cargo-editor .cargo-sec.fechada .cargo-sec-seta {
    transform: rotate(0deg);
}

#edit-popup-medium .popup-cargo-editor .cargo-sec.colapsavel>.cargo-sec-hdr:hover .cargo-sec-seta {
    fill: var(--eq-text-2);
}

#edit-popup-medium .popup-cargo-editor .cargo-sec-resumo {
    flex: 0 0 auto;
    max-width: 45%;
    font-size: 11.5px;
    color: var(--eq-text-4);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* fechada: some o corpo E a legenda longa, que so faz sentido ao editar */
#edit-popup-medium .popup-cargo-editor .cargo-sec.fechada .cargo-sec-corpo,
#edit-popup-medium .popup-cargo-editor .cargo-sec.colapsavel.fechada .cargo-sec-tit p {
    display: none;
}

#edit-popup-medium .popup-cargo-editor .cargo-sec.colapsavel .cargo-sec-tit {
    flex: 1 1 auto;
    min-width: 0;
}

#edit-popup-medium .popup-cargo-editor .cargo-sec-tit h4 {
    margin: 0;
    font-size: 13.5px;
    font-weight: 600;
    color: var(--eq-text);
}

#edit-popup-medium .popup-cargo-editor .cargo-sec-tit p {
    margin: 3px 0 0;
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--eq-text-3);
}

#edit-popup-medium .popup-cargo-editor .cargo-sec-acao {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    padding-top: 2px;
}

#edit-popup-medium .popup-cargo-editor .cargo-st-conta {
    font-size: 11.5px;
    font-weight: 600;
    color: var(--eq-text-4);
    white-space: nowrap;
}

#edit-popup-medium .popup-cargo-editor .cargo-st-todos {
    font-size: 11.5px;
    color: var(--eq-text-3);
    cursor: pointer;
    white-space: nowrap;
}

#edit-popup-medium .popup-cargo-editor .cargo-st-todos:hover {
    color: var(--eq-pri);
    text-decoration: underline;
}

/* Cabecalho de colunas: sem ele o badge da direita e so "um negocio ali";
   com "O que atende" em cima, ele vira o VALOR de uma coluna. */
#edit-popup-medium .popup-cargo-editor .cargo-st-cols {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    padding: 0 11px 6px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--eq-text-4);
}

#edit-popup-medium .popup-cargo-editor .cargo-hint-migration {
    border-left: 2px solid var(--eq-border-strong);
    padding-left: 9px;
}

/* LISTA, nao chips: com o recorte dentro, os chips viravam blocos de
   larguras diferentes quebrando em 3-4 fileiras e nao dava para varrer
   a coluna e responder "de quais status e este cargo". */
#edit-popup-medium .popup-cargo-editor .cargo-status-lst {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    overflow: hidden;
}

#edit-popup-medium .popup-cargo-editor .cargo-st {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 11px;
    border-top: 1px solid var(--eq-border);
    background: var(--eq-surface);
    font-size: 13px;
    color: var(--eq-text-3);
    cursor: pointer;
    transition: background .14s var(--eq-ease), color .14s var(--eq-ease);
}

#edit-popup-medium .popup-cargo-editor .cargo-st:first-child {
    border-top: 0;
}

#edit-popup-medium .popup-cargo-editor .cargo-st:hover {
    background: var(--eq-bg-mute);
}

#edit-popup-medium .popup-cargo-editor .cargo-st-chk {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--eq-border-strong);
    border-radius: 5px;
    background: transparent;
}

#edit-popup-medium .popup-cargo-editor .cargo-st-chk svg {
    width: 12px;
    height: 12px;
    fill: var(--eq-bg);
    opacity: 0;
    transition: opacity .12s;
}

#edit-popup-medium .popup-cargo-editor .cargo-st i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 auto;
}

#edit-popup-medium .popup-cargo-editor .cargo-st-nome {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* marcado = TINTA no check (estado ativo monocromatico do sistema) */
#edit-popup-medium .popup-cargo-editor .cargo-st.atv {
    color: var(--eq-text);
    font-weight: 500;
}

#edit-popup-medium .popup-cargo-editor .cargo-st.atv .cargo-st-chk {
    background: var(--eq-pri);
    border-color: var(--eq-pri);
}

#edit-popup-medium .popup-cargo-editor .cargo-st.atv .cargo-st-chk svg {
    opacity: 1;
}

#edit-popup-medium .popup-cargo-editor .cargo-valor-wrap {
    max-width: 200px;
}

#edit-popup-medium .popup-cargo-editor .cargo-desc {
    width: 100%;
    padding: 8px 11px;
    border: 1px solid var(--eq-border-strong);
    border-radius: 9px;
    background: var(--eq-surface);
    color: var(--eq-text);
    font-size: 13px;
    outline: 0;
    box-sizing: border-box;
}

#edit-popup-medium .popup-cargo-editor .cargo-desc:focus {
    border-color: var(--eq-pri);
}

/* ---- rodape FIXO ----
   A .sub-popup-body e o scroller (max-height:70vh). Com o rodape rolando
   junto, uma lista de 12 status escondia o "Salvar cargo" e obrigava a rolar
   ate o fim so para gravar. Sticky no proprio scroller resolve sem mexer no
   DOM. As margens negativas cancelam o padding do body para a faixa encostar
   nas bordas do popup. */
#edit-popup-medium .popup-cargo-editor .rodape-add {
    position: sticky;
    bottom: -22px;
    z-index: 3;
    margin: 18px -24px -22px;
    padding: 14px 24px;
    background: var(--eq-surface);
}

/* erro sobe junto: avisar embaixo do scroll seria avisar no vazio.
   .mostrar e quem liga o display (setErroCampo, footer.php) - aqui so a faixa. */
#edit-popup-medium .popup-cargo-editor .campo-erro.mostrar {
    position: sticky;
    bottom: 56px;
    z-index: 3;
    margin: 12px -24px -12px;
    padding: 9px 24px;
    background: var(--eq-dng-bg);
    color: var(--eq-dng);
    font-size: 12.5px;
}

/* --------------------------------------------------- cargos de 1 pessoa --- */
#edit-popup-medium .lst-cargos-pick {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

#edit-popup-medium .row-cargo-pick {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 13px;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius-sm);
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

#edit-popup-medium .row-cargo-pick:hover {
    border-color: var(--eq-border-strong);
    background: var(--eq-bg-soft);
}

#edit-popup-medium .row-cargo-pick.atv {
    border-color: var(--eq-pri);
}

#edit-popup-medium .row-cargo-pick.salvando {
    opacity: .6;
}

#edit-popup-medium .row-cargo-mid {
    flex: 1 1 auto;
    min-width: 0;
}

#edit-popup-medium .row-cargo-nome {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 550;
    color: var(--eq-text);
}

/* A cor do cargo, a mesma do quadro do Workflow e dos chips das demais telas.
   `flex: 0 0 auto` para o ponto nao encolher quando o nome e longo. */
#edit-popup-medium .row-cargo-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: 0 0 auto;
}

#edit-popup-medium .row-cargo-status {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 12px;
    margin-top: 5px;
}

/* .eq-status/.eq-dot sao escopados em .eq-tela; os sub-popups tambem precisam. */
#edit-popup-medium .eq-status {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: 11.5px;
    color: var(--eq-text-3);
}

#edit-popup-medium .eq-dot {
    flex: 0 0 auto;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

#edit-popup-medium .eq-status-txt {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#edit-popup-medium .eq-card-pe {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--eq-border);
    font-size: 11.5px;
    line-height: 1.6;
    color: var(--eq-text-4);
}

#edit-popup-medium .eq-btn-ghost {
    padding: 5px 11px;
    border: 1px solid var(--eq-border);
    border-radius: 100px;
    background: var(--eq-bg);
    font: inherit;
    font-size: 12px;
    font-weight: 500;
    color: var(--eq-text-2);
    cursor: pointer;
    transition: background .18s, border-color .18s, color .18s;
}

#edit-popup-medium .eq-btn-ghost:hover {
    background: var(--eq-bg-mute);
    border-color: var(--eq-border-strong);
    color: var(--eq-text);
}

#edit-popup-medium .eq-chip-mini {
    padding: 2px 8px;
    border-radius: 100px;
    background: var(--eq-bg-mute);
    color: var(--eq-text-3);
    font-size: 10.5px;
    font-weight: 500;
    white-space: nowrap;
}

#edit-popup-medium .eq-chip-mini.dng {
    background: var(--eq-dng-bg);
    color: var(--eq-dng);
    font-weight: 600;
}

#edit-popup-medium .eq-chip-mini.ok {
    background: var(--eq-suc-bg);
    color: var(--eq-suc-txt);
    font-weight: 600;
}

#edit-popup-medium .eq-num-dng {
    color: var(--eq-dng);
    font-weight: 600;
}

/* --------------------------------------------------- capacidade e valores - */
/* A linha da pessoa virou uma grade: identidade | cargos | campos. */
.eq-tela.equipe-capacidade .eq-cap-row {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr) auto;
    align-items: center;
    gap: 16px;
    padding: 13px 0;
    border-bottom: 1px solid var(--eq-border);
}

.eq-tela.equipe-capacidade .eq-cap-row:last-child {
    border-bottom: 0;
}

.eq-tela.equipe-capacidade .eq-cap-row.eh-externo {
    background: linear-gradient(90deg, var(--eq-warn-bg), transparent 42%);
}

.eq-tela .eq-cap-id {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.eq-tela .eq-cap-tag.tag-ext {
    background: var(--eq-warn-bg);
    color: var(--eq-warn-txt);
}

.eq-tela .eq-cap-cargos {
    min-width: 0;
}

.eq-tela .eq-cargo-pick {
    cursor: pointer;
    display: inline-block;
    padding: 3px 4px;
    margin: -3px -4px;
    border-radius: var(--eq-radius-xs);
    transition: background .15s var(--eq-ease);
}

.eq-tela .eq-cargo-pick:hover {
    background: var(--eq-bg-soft);
}

.eq-tela .eq-cap-campos {
    display: flex;
    align-items: flex-end;
    gap: 16px;
}

.eq-tela .eq-cap-campo {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin: 0;
}

.eq-tela .eq-cap-lbl {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--eq-text-4);
}

.eq-tela .eq-cap-valor.oculto {
    display: none;
}

.eq-tela .eq-val-demanda {
    width: 92px;
    padding: 6px 9px;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius-xs);
    background: var(--eq-bg);
    font: inherit;
    font-size: 13px;
    color: var(--eq-text);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-val-demanda:focus {
    outline: none;
    border-color: var(--eq-pri);
}

.eq-tela .eq-cap-row.salvo {
    animation: eq-flash 1.1s var(--eq-ease);
}

@keyframes eq-flash {
    0% {
        background: var(--eq-suc-bg);
    }

    100% {
        background: transparent;
    }
}

@media (max-width: 860px) {
    .eq-tela.equipe-capacidade .eq-cap-row {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .eq-tela .eq-cap-campos {
        flex-wrap: wrap;
    }
}

/* --------------------------------------------------- fechamento do mes ---- */
.eq-tela .eq-fech {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(168px, 1fr));
    gap: 1px;
    background: var(--eq-border);
    border-radius: var(--eq-radius-sm);
    overflow: hidden;
}

.eq-tela .eq-fech-b {
    padding: 14px 16px;
    background: var(--eq-bg);
}

.eq-tela .eq-fech-num {
    display: flex;
    align-items: baseline;
    gap: 9px;
    font-size: 26px;
    font-weight: 550;
    letter-spacing: -.03em;
    color: var(--eq-text);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-fech-delta {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0;
    color: var(--eq-text-4);
    white-space: nowrap;
}

.eq-tela .eq-fech-delta.up {
    color: var(--eq-suc-txt);
}

.eq-tela .eq-fech-delta.down {
    color: var(--eq-dng);
}

.eq-tela .eq-fech-lbl {
    margin-top: 3px;
    font-size: 12px;
    font-weight: 500;
    color: var(--eq-text-2);
}

.eq-tela .eq-fech-sub {
    margin-top: 5px;
    font-size: 11px;
    line-height: 1.5;
    color: var(--eq-text-4);
}

.eq-tela .eq-fech-b .eq-bar {
    margin: 7px 0 0;
}

.eq-tela .eq-card-fech .eq-card-hdr .ed-topo {
    margin: 0;
}

/* --------------------------------------------------- agenda: extras ------- */
.eq-tela .eq-barra-filtros {
    gap: 18px;
    flex-wrap: wrap;
    margin-top: -6px;
}

.eq-tela .eq-tag-periodo {
    padding: 2px 9px;
    border-radius: 100px;
    background: var(--eq-bg-mute);
    color: var(--eq-text-4);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .02em;
}

/* Header do dia: badge de atraso e dia lotado */
.eq-tela .eq-gc-dia.is-lotado .eq-gd-tot {
    color: var(--eq-dng);
    font-weight: 700;
}

.eq-tela .eq-gd-atr {
    margin-left: 3px;
    vertical-align: middle;
}

/* Coluna da pessoa: cargos + barra de utilizacao da janela */
.eq-tela .eq-gp-util {
    gap: 6px;
    margin-top: 4px;
}

.eq-tela .eq-gc-pessoa .eq-cargos {
    margin-top: 3px;
}

.eq-tela .eq-grid-row.is-orfa {
    background: color-mix(in srgb, var(--eq-warn) 5%, transparent);
}

.eq-tela .eq-av-orfa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--eq-warn-bg);
    color: var(--eq-warn-txt);
}

.eq-tela .eq-av-orfa svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
}

/* A faixa de contadores da celula (.eq-cel-top/.eq-cel-feito/.eq-cel-atraso) e
   o estado por opacity sairam: empurravam o primeiro card so nas celulas que as
   tinham, e as linhas da grade nunca alinhavam. O desenho final da celula esta
   no bloco "GRADE DIA A DIA v3", no fim deste arquivo. */
.eq-tela .eq-gc-cel.tudo-feito .eq-cel-n {
    color: var(--eq-suc-txt);
}

/* --------------------------------------------------- agenda modo "por dia" */
.eq-tela .eq-agd-dias {
    display: flex;
    flex-direction: column;
    gap: 22px;
}

.eq-tela .eq-agd-dia-hdr {
    display: flex;
    align-items: center;
    gap: 11px;
    padding-bottom: 9px;
    border-bottom: 1px solid var(--eq-border);
    margin-bottom: 10px;
}

.eq-tela .eq-agd-dnum {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: var(--eq-radius-xs);
    background: var(--eq-bg-soft);
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -.02em;
    color: var(--eq-text-2);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-agd-dia.is-hoje .eq-agd-dnum {
    background: var(--eq-pri);
    color: var(--eq-bg);
}

.eq-tela .eq-agd-dtxt {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.eq-tela .eq-agd-dwd {
    font-size: 13px;
    font-weight: 550;
    letter-spacing: -.01em;
    color: var(--eq-text);
}

.eq-tela .eq-agd-dsub {
    font-size: 11px;
    color: var(--eq-text-4);
}

.eq-tela .eq-agd-dia.is-fds .eq-agd-dwd {
    color: var(--eq-text-3);
}

.eq-tela .eq-agd-lst {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.eq-tela .eq-agd-item {
    display: grid;
    grid-template-columns: 42px 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding: 8px 12px 8px 8px;
    border: 1px solid var(--eq-border);
    border-radius: var(--eq-radius-sm);
    background: var(--eq-bg);
    cursor: pointer;
    transition: border-color .16s var(--eq-ease), box-shadow .16s var(--eq-ease), transform .06s;
}

.eq-tela .eq-agd-item:hover {
    border-color: var(--eq-border-strong);
    box-shadow: var(--eq-shadow);
}

.eq-tela .eq-agd-item:active {
    transform: translateY(1px);
}

.eq-tela .eq-agd-item:focus-visible {
    outline: 2px solid var(--eq-acento);
    outline-offset: 1px;
}

.eq-tela .eq-agd-item.is-atraso {
    border-left: 3px solid var(--eq-dng);
    padding-left: 6px;
}

.eq-tela .eq-agd-item.is-feito {
    opacity: .68;
}

.eq-tela .eq-agd-item.is-feito .eq-agd-ttl {
    text-decoration: line-through;
    text-decoration-color: var(--eq-text-4);
}

.eq-tela .eq-agd-hora {
    font-size: 12px;
    font-weight: 600;
    color: var(--eq-text-3);
    font-variant-numeric: tabular-nums;
    text-align: right;
}

.eq-tela .eq-agd-item.is-atraso .eq-agd-hora {
    color: var(--eq-dng);
}

.eq-tela .eq-agd-thumb {
    position: relative;
    width: 46px;
    height: 46px;
    border-radius: var(--eq-radius-xs);
    background-size: cover;
    background-position: center;
    background-color: var(--eq-bg-mute);
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.eq-tela .eq-agd-thumb video {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.eq-tela .eq-agd-thumb-vazio svg {
    width: 19px;
    height: 19px;
    fill: var(--eq-text-4);
    opacity: .75;
}

.eq-tela .eq-agd-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .3);
}

.eq-tela .eq-agd-play svg {
    width: 17px;
    height: 17px;
    fill: #fff;
}

.eq-tela .eq-agd-mid {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.eq-tela .eq-agd-top {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

.eq-tela .eq-agd-marca {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    border-radius: 5px;
    background-size: cover;
    background-position: center;
    background-color: var(--eq-bg-mute);
}

.eq-tela .eq-agd-marca-letra {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 8px;
    font-weight: 700;
    color: var(--eq-text-3);
}

.eq-tela .eq-agd-ctx {
    font-size: 11px;
    font-weight: 500;
    color: var(--eq-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 190px;
}

.eq-tela .eq-agd-num {
    font-size: 10.5px;
    font-weight: 700;
    color: var(--eq-text-4);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-agd-tipo {
    padding: 1px 7px;
    border-radius: 100px;
    background: var(--eq-bg-soft);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
    color: var(--eq-text-3);
    white-space: nowrap;
}

.eq-tela .eq-agd-tipo.is-tarefa {
    background: var(--eq-pri-bg);
}

.eq-tela .eq-agd-ttl {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-agd-meta {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.eq-tela .eq-agd-canais {
    display: inline-flex;
    gap: 4px;
}

.eq-canal {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.eq-canal svg {
    width: 13px;
    height: 13px;
    fill: var(--eq-text-4);
}

.eq-tela .eq-agd-item:hover .eq-canal svg {
    fill: var(--eq-text-3);
}

.eq-tela .eq-agd-dono {
    display: flex;
    align-items: center;
    gap: 6px;
    max-width: 190px;
    min-width: 0;
    padding: 3px 5px;
    margin: -3px -5px;
    border-radius: 100px;
    transition: background .15s var(--eq-ease);
}

.eq-tela .eq-agd-dono[data-id] {
    cursor: pointer;
}

.eq-tela .eq-agd-dono[data-id]:hover {
    background: var(--eq-bg-soft);
}

.eq-tela .eq-agd-dono-nome {
    font-size: 11.5px;
    color: var(--eq-text-3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-agd-dono.sem-dono .eq-agd-dono-nome {
    color: var(--eq-warn-txt);
    font-weight: 500;
}

.eq-tela .eq-agd-mais {
    margin-top: 8px;
    padding: 9px 12px;
    border: 1px dashed var(--eq-border-strong);
    border-radius: var(--eq-radius-sm);
    font-size: 11.5px;
    color: var(--eq-text-4);
    text-align: center;
}

@media (max-width: 820px) {
    .eq-tela .eq-agd-item {
        grid-template-columns: 38px 40px minmax(0, 1fr);
        row-gap: 6px;
    }

    .eq-tela .eq-agd-dono {
        grid-column: 1 / -1;
        max-width: none;
        justify-content: flex-start;
    }

    .eq-tela .eq-agd-ctx {
        max-width: 130px;
    }
}

/* --------------------------------------------------- historico 12 meses --- */
.eq-tela .eq-spark-hist .eq-spark-col {
    cursor: pointer;
    border-radius: var(--eq-radius-xs);
    transition: background .15s var(--eq-ease);
}

.eq-tela .eq-spark-hist .eq-spark-col:hover {
    background: var(--eq-bg-soft);
}

.eq-tela .eq-spark-duo {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 2px;
    width: 100%;
    flex: 1 1 auto;
    min-height: 46px;
}

.eq-tela .eq-spark-duo .eq-spark-bar {
    width: 7px;
    flex: 0 0 auto;
}

.eq-tela .eq-spark-bar.is-entrega {
    background: var(--eq-acento);
    opacity: .8;
}

.eq-tela .eq-legenda-duo {
    display: inline-flex;
    gap: 3px;
    align-items: flex-end;
}

.eq-tela .eq-legenda-duo i {
    width: 6px;
    height: 12px;
    border-radius: 2px;
    background: var(--eq-pri);
}

.eq-tela .eq-legenda-duo i.is-entrega {
    background: var(--eq-acento);
    opacity: .8;
}

/* --------------------------------------------------- pagamentos ----------- */
.eq-tela .eq-custo-total {
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.02em;
    color: var(--eq-text);
    font-variant-numeric: tabular-nums;
}

.eq-tela.equipe-custos .eq-tbl td.c-num b {
    font-weight: 600;
    color: var(--eq-text);
}

/* Auditoria de execucoes no sub-popup */
#edit-popup-medium .eq-exec-lst {
    display: flex;
    flex-direction: column;
}

#edit-popup-medium .eq-exec {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto auto auto;
    align-items: center;
    gap: 12px;
    padding: 11px 0;
    border-bottom: 1px solid var(--eq-border);
}

#edit-popup-medium .eq-exec:last-child {
    border-bottom: 0;
}

#edit-popup-medium .eq-exec.is-ignorado {
    opacity: .55;
}

#edit-popup-medium .eq-exec.is-ignorado .eq-exec-ttl {
    text-decoration: line-through;
}

#edit-popup-medium .eq-exec.salvando {
    opacity: .4;
}

#edit-popup-medium .eq-exec-mid {
    min-width: 0;
    cursor: pointer;
}

#edit-popup-medium .eq-exec-ttl {
    font-size: 13px;
    font-weight: 500;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#edit-popup-medium .eq-exec-mid:hover .eq-exec-ttl {
    text-decoration: underline;
}

#edit-popup-medium .eq-exec-sub {
    margin-top: 2px;
    font-size: 11px;
    color: var(--eq-text-4);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#edit-popup-medium .eq-exec-data {
    font-size: 11px;
    color: var(--eq-text-4);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

#edit-popup-medium .eq-exec-valor {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--eq-text-2);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

#edit-popup-medium .eq-exec-motivo {
    grid-column: 1 / -1;
    padding: 5px 9px;
    border-radius: var(--eq-radius-xs);
    background: var(--eq-warn-bg);
    color: var(--eq-warn-txt);
    font-size: 11px;
}

@media (max-width: 700px) {
    #edit-popup-medium .eq-exec {
        grid-template-columns: minmax(0, 1fr) auto;
        row-gap: 7px;
    }
}

/* ==========================================================================
   POPUP DE ITENS (.ppd) - card mais rico: prazo, canais e responsaveis.
   O card antes tinha numero + tipo + status; faltava exatamente o que decide
   a acao do gestor (para quando e quem toca).
   ========================================================================== */
.ppd-card {
    align-items: stretch;
    padding: 9px 11px 9px 9px;
    gap: 13px;
}

.ppd-card.is-atraso {
    border-left: 3px solid var(--eq-dng);
    padding-left: 6px;
}

.ppd-card.is-feito {
    opacity: .72;
}

.ppd-card.is-feito .ppd-card-tit {
    text-decoration: line-through;
    text-decoration-color: var(--eq-text-4);
}

.ppd-thumb {
    width: 62px;
    height: 62px;
    align-self: center;
}

.ppd-card-top {
    flex-wrap: wrap;
    row-gap: 4px;
}

.ppd-card-num.is-tarefa {
    padding: 1px 7px;
    border-radius: 6px;
    background: var(--eq-pri-bg);
    font-size: 9.5px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.ppd-card-tipo {
    color: var(--eq-text-3);
    background: var(--eq-bg-soft);
}

.ppd-card-canais {
    display: inline-flex;
    gap: 4px;
    margin-left: auto;
}

.ppd-card-meta {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 2px;
}

.ppd-card-status {
    font-size: 11.5px;
}

.ppd-prazo {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11.5px;
    color: var(--eq-text-3);
    white-space: nowrap;
}

.ppd-prazo svg {
    width: 11px;
    height: 11px;
    fill: currentColor;
}

.ppd-prazo b {
    font-weight: 600;
}

.ppd-prazo.dng {
    color: var(--eq-dng);
}

.ppd-prazo.warn {
    color: var(--eq-warn-txt);
}

.ppd-prazo.ok {
    color: var(--eq-suc-txt);
}

.ppd-prazo.sem {
    color: var(--eq-text-4);
    font-style: italic;
}

.ppd-resp {
    display: inline-flex;
    align-items: center;
    margin-left: auto;
}

.ppd-resp .eq-av {
    width: 21px;
    height: 21px;
    margin-left: -5px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    box-shadow: 0 0 0 2px var(--eq-bg);
}

.ppd-resp> :first-child {
    margin-left: 0;
}

.ppd-resp .eq-av.ed-avatar-letra {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--eq-bg-mute);
    color: var(--eq-text-3);
    font-size: 8.5px;
    font-weight: 700;
}

.ppd-resp-mais {
    margin-left: -5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    background: var(--eq-bg-mute);
    box-shadow: 0 0 0 2px var(--eq-bg);
    font-size: 9px;
    font-weight: 700;
    color: var(--eq-text-3);
}

.ppd-resp-vazio {
    font-size: 10.5px;
    font-weight: 600;
    color: var(--eq-warn-txt);
    background: var(--eq-warn-bg);
    padding: 1px 8px;
    border-radius: 100px;
}

/* Barra de filtro do popup */
.ppd-filtros {
    position: sticky;
    top: -16px;
    z-index: 2;
    margin: -4px 0 14px;
    padding: 8px 0;
    background: var(--eq-bg-soft);
}

.ppd-filtros .eq-seg {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: 100px;
    background: var(--eq-bg-mute);
}

.ppd-filtros .eq-seg-btn {
    padding: 4px 11px;
    border: 0;
    border-radius: 100px;
    background: transparent;
    font: inherit;
    font-size: 11.5px;
    font-weight: 500;
    color: var(--eq-text-3);
    cursor: pointer;
    white-space: nowrap;
    transition: background .16s, color .16s;
}

.ppd-filtros .eq-seg-btn:hover {
    color: var(--eq-text);
}

.ppd-filtros .eq-seg-btn.atv {
    background: var(--eq-bg);
    color: var(--eq-text);
    box-shadow: 0 1px 3px rgba(16, 24, 40, .12);
}

.ppd-vazio-filtro {
    padding: 28px 0;
    text-align: center;
    font-size: 13px;
    color: var(--eq-text-4);
}

.ppd-grupo-hdr .eq-chip-mini {
    margin-left: 2px;
}

.sub-popup-subt b {
    font-weight: 600;
    color: var(--eq-text-2);
}

@media (max-width: 640px) {
    .ppd-thumb {
        width: 50px;
        height: 50px;
    }

    .ppd-card-canais,
    .ppd-resp {
        margin-left: 0;
    }
}

/* Editor de cargo: os estilos de campo do popup de membro sao escopados em
   .popup-equipe-add-membro, entao o editor precisa dos seus. Mesmo desenho. */
#edit-popup-medium .popup-cargo-editor .campo-add {
    margin-bottom: 16px;
}

#edit-popup-medium .popup-cargo-editor .campo-add .lbel {
    display: block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 500;
    color: var(--eq-text-2);
}

#edit-popup-medium .popup-cargo-editor input[type="text"] {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--eq-border-strong);
    border-radius: var(--eq-radius-sm);
    background: var(--eq-bg);
    font: inherit;
    font-size: 13.5px;
    color: var(--eq-text);
    transition: border-color .16s var(--eq-ease), box-shadow .16s var(--eq-ease);
}

#edit-popup-medium .popup-cargo-editor input[type="text"]:focus {
    outline: none;
    border-color: var(--eq-pri);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--eq-acento) 18%, transparent);
}

#edit-popup-medium .popup-cargo-editor .rodape-add {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--eq-border);
}

/* ==========================================================================
   GRADE DIA A DIA v3 - a "tabela" de pessoas x dias.
   ---------------------------------------------------------------------------
   Regras de desenho desta grade (o que fazia ela parecer amadora antes):
   1. RITMO FIXO. Card de item tem altura CRAVADA (--eq-item-h). Card de altura
      variavel deixava cada celula comecando em y diferente e a linha inteira
      parecia torta.
   2. UM SINAL POR ESTADO. Vencido = barra vermelha. Entregue = check. Nada de
      badge de contador repetindo o que o card ja diz e o header do dia ja soma.
   3. DUAS ESCALAS DE TEXTO, so. 10px tabular para meta, 11.5px/500 para titulo.
   4. SEM MOLDURA. O item e superficie + barra de status; hairline aparece no
      hover. Borda em tudo, numa grade densa, vira grade de Excel.
   5. TUDO NA MESMA CALHA. Coluna da pessoa e celula usam o mesmo padding-top,
      entao nome e primeiro card nascem na mesma linha de base.
   ========================================================================== */

.eq-tela .eq-grid {
    /* Colunas maiores: o item de 2 linhas nao cabe em 108px. */
    --eq-col-pessoa: 210px;
    --eq-col-dia: 158px;
    /* Ritmo vertical da grade */
    --eq-cel-pad: 9px;
    --eq-item-h: 34px;
    --eq-item-gap: 4px;
}

/* Grade de UMA pessoa (painel "Pela frente"): sem coluna de pessoa, sobra
   largura para o item respirar. */
.eq-tela .eq-grid.sem-pessoa {
    --eq-col-dia: 172px;
}

.eq-tela .eq-grid-wrap {
    padding-bottom: 2px;
}

/* --------------------------------------------------- coluna da pessoa ----- */
/* Fixa na rolagem horizontal: com 30 dias abertos, sem isto o gestor rola ate
   o dia 28 e perde de quem e a linha. */
.eq-tela .eq-gc-pessoa {
    position: sticky;
    left: 0;
    z-index: 3;
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: var(--eq-cel-pad) 14px var(--eq-cel-pad) 0;
    background: var(--eq-bg);
}

.eq-tela .eq-gc-pessoa .eq-av {
    margin-top: 1px;
}

.eq-tela .eq-grid-row.is-orfa .eq-gc-pessoa {
    background: color-mix(in srgb, var(--eq-warn) 4%, var(--eq-bg));
}

/* Sombra curta que separa a coluna fixa do conteudo que passa por baixo. */
.eq-tela .eq-gc-pessoa::after {
    content: "";
    position: absolute;
    top: 0;
    right: -10px;
    bottom: 0;
    width: 10px;
    background: linear-gradient(90deg, color-mix(in srgb, var(--eq-text) 6%, transparent), transparent);
    pointer-events: none;
}

.eq-tela .eq-grid-hdr .eq-gc-pessoa {
    align-items: flex-end;
    z-index: 4;
    padding-bottom: 9px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--eq-text-4);
}

.eq-tela .eq-grid-hdr .eq-gc-pessoa::after {
    display: none;
}

.eq-tela .eq-gp-nome {
    font-size: 12.5px;
    font-weight: 550;
}

.eq-tela .eq-gc-pessoa .eq-cargos {
    margin-top: 4px;
}

.eq-tela .eq-gp-sub {
    margin-top: 3px;
    font-size: 10px;
    letter-spacing: -.01em;
}

.eq-tela .eq-gp-util {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 7px;
}

.eq-tela .eq-gp-util .eq-bar {
    flex: 1 1 auto;
    height: 3px;
    margin: 0;
}

.eq-tela .eq-gp-util b {
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    color: var(--eq-text-4);
}

.eq-tela .eq-gp-util b.f-cheio {
    color: var(--eq-warn-txt);
}

.eq-tela .eq-gp-util b.f-estouro {
    color: var(--eq-dng);
}

/* --------------------------------------------------- header do dia -------- */
.eq-tela .eq-grid-hdr {
    border-bottom: 1px solid var(--eq-border);
}

.eq-tela .eq-gc-dia {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    justify-content: flex-end;
    gap: 7px;
    padding: 0 var(--eq-cel-pad) 9px;
    border-left: 1px solid var(--eq-border);
    background: transparent;
}

.eq-tela .eq-gd-linha {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.eq-tela .eq-gd-wd {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--eq-text-4);
}

.eq-tela .eq-gd-num {
    display: inline-flex;
    align-items: baseline;
    gap: 3px;
    font-size: 15px;
    font-weight: 550;
    letter-spacing: -.03em;
    color: var(--eq-text-2);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-gd-num small {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--eq-text-4);
}

.eq-tela .eq-gd-tot {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    font-size: 10px;
    font-weight: 600;
    color: var(--eq-text-4);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-gd-atr {
    display: inline-block;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: var(--eq-dng);
}

/* Hoje: numero em pilha cheia, igual ao modo "Por dia" - a mesma tela nao pode
   marcar hoje de duas maneiras diferentes. */
.eq-tela .eq-gc-dia.is-hoje .eq-gd-wd,
.eq-tela .eq-gc-dia.is-hoje .eq-gd-num {
    color: var(--eq-text);
}

.eq-tela .eq-gc-dia.is-hoje .eq-gd-num {
    font-weight: 650;
}

.eq-tela .eq-gc-dia.is-fds {
    background: transparent;
}

.eq-tela .eq-gc-dia.is-fds .eq-gd-num {
    color: var(--eq-text-4);
}

/* Medidor do dia: total sobre a capacidade somada da equipe. Numero solto nao
   dizia se 9 itens e tranquilo ou sobrevendido. */
.eq-tela .eq-gd-med {
    display: block;
    height: 2px;
    border-radius: 100px;
    background: var(--eq-bg-mute);
    overflow: hidden;
}

.eq-tela .eq-gd-med i {
    display: block;
    height: 100%;
    border-radius: 100px;
    background: color-mix(in srgb, var(--eq-text) 26%, transparent);
    transition: width .3s var(--eq-ease);
}

.eq-tela .eq-gd-med i.f-ok {
    background: color-mix(in srgb, var(--eq-text) 42%, transparent);
}

.eq-tela .eq-gd-med i.f-cheio {
    background: var(--eq-warn);
}

.eq-tela .eq-gd-med i.f-estouro {
    background: var(--eq-dng);
}

/* Virada de mes numa janela longa: hairline mais forte em vez de "01" solto. */
.eq-tela .eq-gc-dia.vira-mes,
.eq-tela .eq-gc-cel.vira-mes {
    border-left-color: var(--eq-border-strong);
}

/* --------------------------------------------------- celula do dia -------- */
.eq-tela .eq-grid-row {
    border-bottom: 1px solid var(--eq-border);
}

.eq-tela .eq-gc-cel {
    position: relative;
    display: flex;
    flex-direction: column;
    align-content: start;
    gap: var(--eq-item-gap);
    min-height: calc(var(--eq-item-h) + (var(--eq-cel-pad) * 2));
    padding: var(--eq-cel-pad) var(--eq-cel-pad);
    border-left: 1px solid var(--eq-border);
    min-width: 0;
}

/* Heat: intensidade da MESMA tinta. Mais suave que na v2 - o item agora tem
   superficie propria e brigava com um fundo forte. */
.eq-tela .eq-gc-cel.heat-1 {
    background: color-mix(in srgb, var(--eq-text) 2.5%, transparent);
}

.eq-tela .eq-gc-cel.heat-2 {
    background: color-mix(in srgb, var(--eq-text) 5%, transparent);
}

.eq-tela .eq-gc-cel.heat-3 {
    background: color-mix(in srgb, var(--eq-warn) 9%, transparent);
}

.eq-tela .eq-gc-cel.heat-4 {
    background: color-mix(in srgb, var(--eq-dng) 10%, transparent);
}

/* Fim de semana VAZIO fica com a superficie recuada; com item, o heat manda
   (toda celula sai do PHP com heat-N, inclusive heat-0). */
.eq-tela .eq-gc-cel.is-fds.heat-0 {
    background: var(--eq-bg-soft);
}

/* Coluna de hoje: trilho de acento nas duas bordas, sem pintar o fundo (o heat
   ja usa fundo e os dois juntos viravam sopa). */
.eq-tela .eq-gc-cel.is-hoje,
.eq-tela .eq-gc-dia.is-hoje {
    box-shadow: inset 1px 0 0 color-mix(in srgb, var(--eq-acento) 34%, transparent),
        inset -1px 0 0 color-mix(in srgb, var(--eq-acento) 34%, transparent);
}

.eq-tela .eq-cel-click {
    cursor: pointer;
    transition: background .16s var(--eq-ease);
}

.eq-tela .eq-cel-click:hover {
    background: color-mix(in srgb, var(--eq-text) 4%, transparent);
}

.eq-tela .eq-cel-click:focus-visible {
    outline: 2px solid var(--eq-acento);
    outline-offset: -2px;
}

/* Dia com item vencido: tracinho no topo da celula. */
.eq-tela .eq-gc-cel.tem-atraso::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 2px;
    background: var(--eq-dng);
}

/* Total da celula: marca d'agua FORA DO FLUXO, para nao empurrar o primeiro
   card e manter todas as celulas comecando na mesma altura. */
.eq-tela .eq-cel-n {
    position: absolute;
    top: 4px;
    right: 6px;
    z-index: 0;
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    color: color-mix(in srgb, var(--eq-text) 20%, transparent);
    font-variant-numeric: tabular-nums;
    pointer-events: none;
}

/* --------------------------------------------------- item = mini-card ----- */
.eq-tela .eq-cel-chip {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    flex: 0 0 auto;
    height: var(--eq-item-h);
    padding: 0 7px 0 8px;
    border: 1px solid transparent;
    border-left: 2px solid var(--eq-chip-cor, var(--eq-border-strong));
    border-radius: 6px;
    background: var(--eq-bg);
    min-width: 0;
    overflow: hidden;
    transition: border-color .15s var(--eq-ease), box-shadow .15s var(--eq-ease);
}

.eq-tela .eq-cel-click:hover .eq-cel-chip {
    border-color: var(--eq-border);
    border-left-color: var(--eq-chip-cor, var(--eq-border-strong));
    box-shadow: 0 2px 8px -5px rgba(16, 24, 40, .4);
}

.eq-tela .eq-chip-top {
    display: flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    line-height: 1.1;
}

/* Identidade da marca (ou glifo de tarefa) */
.eq-tela .eq-chip-av {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    border-radius: 3px;
    background-size: cover;
    background-position: center;
    background-color: var(--eq-bg-mute);
}

.eq-tela .eq-chip-av-letra,
.eq-tela .eq-chip-av-tarefa {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 6px;
    font-weight: 800;
    letter-spacing: -.03em;
    color: var(--eq-text-3);
}

.eq-tela .eq-chip-av-tarefa svg {
    width: 8px;
    height: 8px;
    fill: var(--eq-text-3);
}

.eq-tela .eq-chip-ctx {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 10px;
    font-weight: 400;
    color: var(--eq-text-4);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eq-tela .eq-cel-hora {
    flex: 0 0 auto;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: -.01em;
    color: var(--eq-text-4);
    font-variant-numeric: tabular-nums;
}

.eq-tela .eq-chip-ok {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
}

.eq-tela .eq-chip-ok svg {
    width: 10px;
    height: 10px;
    fill: var(--eq-suc-txt);
}

.eq-tela .eq-chip-ttl {
    min-width: 0;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -.012em;
    color: var(--eq-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Estados do item */
.eq-tela .eq-cel-chip.is-feito {
    background: transparent;
    border-left-color: color-mix(in srgb, var(--eq-suc) 40%, transparent);
}

.eq-tela .eq-cel-chip.is-feito .eq-chip-ttl {
    font-weight: 400;
    color: var(--eq-text-3);
    text-decoration: line-through;
    text-decoration-color: color-mix(in srgb, var(--eq-text) 28%, transparent);
}

.eq-tela .eq-cel-chip.is-atraso {
    border-left-color: var(--eq-dng);
}

.eq-tela .eq-cel-chip.is-atraso .eq-cel-hora {
    color: var(--eq-dng);
    font-weight: 700;
}

/* Tarefa: barra tracejada diferencia a natureza sem gastar outro rotulo. */
.eq-tela .eq-cel-chip.is-tarefa {
    border-left-style: dashed;
}

/* "+N": continua no fluxo (e o ultimo item da pilha), alinhado com os cards. */
.eq-tela .eq-cel-mais {
    flex: 0 0 auto;
    align-self: stretch;
    display: flex;
    align-items: center;
    justify-content: center;
    height: 18px;
    border-radius: 5px;
    background: color-mix(in srgb, var(--eq-text) 5%, transparent);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .02em;
    color: var(--eq-text-4);
}

.eq-tela .eq-cel-click:hover .eq-cel-mais {
    background: color-mix(in srgb, var(--eq-text) 9%, transparent);
    color: var(--eq-text-3);
}

/* Legenda do heat alinhada com os novos tons das celulas. */
.eq-tela .eq-legenda-i i.heat-1 {
    background: color-mix(in srgb, var(--eq-text) 2.5%, transparent);
}

.eq-tela .eq-legenda-i i.heat-2 {
    background: color-mix(in srgb, var(--eq-text) 5%, transparent);
}

.eq-tela .eq-legenda-i i.heat-3 {
    background: color-mix(in srgb, var(--eq-warn) 9%, transparent);
}

.eq-tela .eq-legenda-i i.heat-4 {
    background: color-mix(in srgb, var(--eq-dng) 10%, transparent);
}

@media (max-width: 860px) {
    .eq-tela .eq-grid {
        --eq-col-pessoa: 164px;
        --eq-col-dia: 142px;
        --eq-cel-pad: 7px;
    }

    .eq-tela .eq-gp-util,
    .eq-tela .eq-gc-pessoa .eq-cargos {
        display: none;
    }
}

/* Selo "Dono" no item de membro. O dono agora aparece na lista (e por isso pode
   receber cargo, capacidade e valor), mas nao pode ser removido nem rebaixado. */
.tag-dono {
    display: inline-flex;
    align-items: center;
    margin-left: 6px;
    padding: 1px 8px;
    border-radius: 100px;
    background: var(--eq-pri);
    color: var(--eq-bg);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .02em;
    white-space: nowrap;
}

/* ===========================================================================
   VALOR POR ETAPA - tabela de precos por status (Equipes)
   ---------------------------------------------------------------------------
   Duas superficies usam a MESMA lista: a tabela da equipe (Configuracoes >
   Capacidade e valores, dentro de .equipe-valores) e a do cargo (dentro do
   editor, em #edit-popup-medium). Por isso o seletor nao e escopado em
   .eq-tela - ele precisa valer nos dois lugares.

   Uma linha = um status. O dot da a identidade da etapa; o campo fica a
   direita, alinhado a direita e tabular, para a coluna de dinheiro ler como
   coluna de dinheiro. Campo vazio e estado valido ("herda o nivel de cima"),
   entao o placeholder mostra o valor herdado em vez de "0,00" cravado.
   =========================================================================== */
.eq-val-lst {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--eq-border);
}

.eq-val-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0;
    padding: 9px 2px;
    border-bottom: 1px solid var(--eq-border);
    cursor: text;
    transition: background .18s ease;
}

.eq-val-row:hover {
    background: var(--eq-bg-soft);
}

.eq-val-nome {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
}

.eq-val-status {
    width: 96px;
    padding: 7px 10px;
    border: 1px solid var(--eq-border);
    border-radius: 10px;
    background: var(--eq-bg);
    font: inherit;
    font-size: 13px;
    color: var(--eq-text);
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.eq-val-status:focus {
    outline: none;
    border-color: var(--eq-acento);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--eq-acento) 18%, transparent);
}

/* Mesmo vocabulario de feedback das outras linhas salvas no blur. */
.eq-val-row.salvando {
    opacity: .55;
}

.eq-val-row.salvo {
    background: var(--eq-suc-bg);
}

/* Linha de execucao paga pelo valor FIXO (o status ainda nao tem preco).
   Selo discreto: e informacao de auditoria, nao alerta. */
#edit-popup-medium .eq-exec-fonte {
    display: inline-block;
    margin-left: 6px;
    font-size: 10px;
    font-style: normal;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--eq-text-4);
}

/* ==========================================================================
   MAPEAMENTO DE STATUS DA EQUIPE - kit .es-*
   --------------------------------------------------------------------------
   Telas: arvore espaco > lista > status, gerador de tarefas, aba Tarefas do
   popup do conteudo e Minha agenda. Marcacao em comum/js/equipe-status.js.

   ATENCAO: o botao .btn-gerar-tarefas vive no .header-pagina, que o
   sessaoRender torna filho direto de #htmlSessaoAtual - ou seja, FORA de
   .view-planejamento. Por isso a regra dele e ancorada no proprio header e
   nao pode depender de nenhum ancestral da tela.
   ========================================================================== */

.es-config {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.es-card {
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg);
    padding: 14px 16px;
}

.es-card-hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.es-card-hdr h3 {
    font-size: 14px;
    font-weight: 600;
    margin: 0;
    color: var(--color-text-01);
}

.es-card-pe {
    font-size: 12px;
    line-height: 1.5;
    margin: 6px 0 12px;
    opacity: .62;
}

.es-vazio {
    font-size: 12.5px;
    padding: 14px 2px;
    opacity: .55;
}

.es-alerta {
    color: #c2410c;
}

.es-perigo {
    color: #b91c1c;
}

.es-dot {
    display: inline-block;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    margin-right: 7px;
    vertical-align: middle;
    flex: 0 0 auto;
}

.es-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    padding: 0 14px;
    border-radius: 9px;
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 500;
    white-space: nowrap;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.es-btn:hover {
    opacity: .88;
}

.es-btn-sec {
    background: transparent;
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
}

.es-link {
    cursor: pointer;
    font-size: 12px;
    text-decoration: underline;
    opacity: .75;
}

.es-link:hover {
    opacity: 1;
}

/* ---- tabelas densas ---- */
.es-tbl {
    width: 100%;
    border-collapse: collapse;
    font-size: 12.5px;
}

.es-tbl th {
    text-align: left;
    font-weight: 500;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 6px 8px;
    opacity: .5;
    border-bottom: 1px solid var(--color-border);
}

.es-tbl td {
    padding: 8px;
    border-bottom: 1px solid var(--color-border);
    vertical-align: middle;
}

.es-tbl tbody tr:last-child td {
    border-bottom: 0;
}

.es-tbl tbody tr:hover {
    background: var(--color-hover-01);
}

.es-acoes {
    text-align: right;
    white-space: nowrap;
}

.es-acoes .es-link+.es-link {
    margin-left: 10px;
}

/* ---- chips de lista ---- */
.es-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.es-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    border-radius: 8px;
    font-size: 12px;
    border: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

.es-chip-x {
    cursor: pointer;
    font-style: normal;
    opacity: .5;
    font-size: 14px;
    line-height: 1;
}

.es-chip-x:hover {
    opacity: 1;
    color: #b91c1c;
}

/* ---- a arvore ---- */
.es-esp {
    margin-top: 14px;
}

.es-esp-nome {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .05em;
    opacity: .5;
    margin-bottom: 6px;
}

.es-lista {
    margin: 0 0 14px 14px;
    padding-left: 12px;
    border-left: 2px solid var(--color-border);
}

.es-lista-nome {
    font-size: 13px;
    font-weight: 500;
    margin-bottom: 6px;
}

.es-tbl-mapa select {
    width: 100%;
    max-width: 220px;
    height: 30px;
    font-size: 12px;
    border-radius: 7px;
    padding: 0 8px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
}

/* Status de conclusao: e onde o de/para quase sempre e configurado. */
.es-tbl-mapa tr.es-conclui td:first-child {
    font-weight: 500;
}

.es-selo {
    display: inline-block;
    margin-left: 7px;
    padding: 1px 6px;
    border-radius: 5px;
    font-size: 9.5px;
    letter-spacing: .03em;
    text-transform: uppercase;
    opacity: .55;
    border: 1px solid var(--color-border);
}

/* ==========================================================================
   GERADOR DE TAREFAS - popup de 2 colunas
   ========================================================================== */

.es-gerador {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.es-ger-cols {
    display: flex;
    gap: 0;
    align-items: stretch;
    min-height: 340px;
}

.es-ger-col {
    padding: 14px 16px;
    min-width: 0;
}

.es-ger-conteudos {
    flex: 1 1 58%;
    overflow-y: auto;
    max-height: 60vh;
}

.es-ger-plano {
    flex: 1 1 42%;
    border-left: 1px solid var(--color-border);
    overflow-y: auto;
    max-height: 60vh;
}

.es-ger-ttl {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .05em;
    opacity: .5;
    margin: 14px 0 7px;
}

.es-ger-col>.es-ger-ttl:first-child {
    margin-top: 0;
}

.es-ger-marca {
    margin-bottom: 14px;
}

.es-ger-marca-hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-size: 12.5px;
    font-weight: 500;
    padding-bottom: 5px;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 4px;
}

.es-ger-cont {
    font-size: 11px;
    opacity: .55;
    font-variant-numeric: tabular-nums;
}

.es-ger-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 6px 4px;
    border-radius: 7px;
    cursor: pointer;
    font-size: 12.5px;
}

.es-ger-item:hover {
    background: var(--color-hover-01);
}

.es-ger-num {
    font-size: 11px;
    opacity: .5;
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}

.es-ger-tit {
    flex: 1 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.es-ger-data {
    font-size: 11px;
    opacity: .5;
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}

.es-ger-ja {
    font-size: 11px;
    opacity: .55;
    font-style: italic;
    flex: 0 0 auto;
}

/* Ja tem tarefa: escondido por padrao - a pergunta e "o que falta gerar". */
.es-ger-item.es-tem-tarefa {
    display: none;
    opacity: .5;
}

.es-ger-conteudos.mostra-ja .es-ger-item.es-tem-tarefa {
    display: flex;
}

.es-ger-ja-link {
    font-size: 12px;
    opacity: .6;
    padding: 8px 4px;
}

.es-ger-entrega,
.es-ger-comecar {
    width: 100%;
    height: 34px;
    font-size: 13px;
    border-radius: 8px;
    padding: 0 10px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
}

.es-ger-hint {
    font-size: 11px;
    line-height: 1.45;
    opacity: .55;
    margin-top: 6px;
}

.es-ger-etapa {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 4px;
    border-radius: 7px;
    cursor: pointer;
    font-size: 12.5px;
}

.es-ger-etapa:hover {
    background: var(--color-hover-01);
}

.es-ger-etapa-nome {
    flex: 1 1 auto;
}

.es-ger-etapa-dias {
    font-size: 11px;
    opacity: .5;
    font-variant-numeric: tabular-nums;
}

.es-ger-previa {
    font-size: 12px;
}

.es-prev-marca {
    border: 1px solid var(--color-border);
    border-radius: 9px;
    padding: 9px 11px;
    margin-bottom: 9px;
}

.es-prev-marca.es-prev-alerta {
    border-color: #f59e0b;
}

.es-prev-hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-weight: 500;
    margin-bottom: 6px;
}

.es-prev-per {
    font-size: 11px;
    opacity: .55;
    font-variant-numeric: tabular-nums;
}

.es-prev-etapa {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 0;
}

.es-prev-nome {
    flex: 1 1 auto;
}

.es-prev-datas {
    font-size: 11px;
    opacity: .6;
    font-variant-numeric: tabular-nums;
}

.es-prev-resp {
    font-size: 11px;
    opacity: .6;
    min-width: 62px;
    text-align: right;
}

.es-prev-aviso {
    font-size: 11px;
    line-height: 1.45;
    margin-top: 6px;
    color: #c2410c;
}

.es-ger-pe {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 12px 16px;
    border-top: 1px solid var(--color-border);
}

.es-ger-resumo {
    font-size: 12.5px;
    font-weight: 500;
}

.es-ger-nota {
    font-size: 11px;
    opacity: .5;
    flex: 1 1 auto;
}

.es-ger-acoes {
    display: flex;
    gap: 8px;
}

/* ==========================================================================
   ABA "TAREFAS" DO POPUP DO CONTEUDO
   ========================================================================== */

.es-ct {
    padding: 4px 0;
}

.es-ct-item {
    border: 1px solid var(--color-border);
    border-radius: 9px;
    padding: 9px 11px;
    margin-bottom: 8px;
}

.es-ct-item.es-feita {
    opacity: .62;
}

.es-ct-l1 {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
}

.es-ct-tit {
    font-size: 12.5px;
    font-weight: 500;
}

.es-ct-lista {
    font-size: 11px;
    opacity: .55;
    white-space: nowrap;
}

.es-ct-l2 {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 5px;
    font-size: 11.5px;
}

.es-ct-status {
    opacity: .75;
}

.es-ct-prazo {
    opacity: .55;
    font-variant-numeric: tabular-nums;
    flex: 1 1 auto;
}

.es-ct-pe {
    margin-top: 10px;
}

/* ==========================================================================
   BOTAO NO HEADER DO PLANEJAMENTO
   --------------------------------------------------------------------------
   Autossuficiente de proposito: o sessaoRender tira o .header-pagina de dentro
   de .view-planejamento, entao qualquer regra escopada na tela morre aqui.
   ========================================================================== */

.header-pagina.planejamento-inicio .btn-gerar-tarefas {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 9px;
    cursor: pointer;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
    flex: 0 0 auto;
}

.header-pagina.planejamento-inicio .btn-gerar-tarefas:hover {
    background: var(--color-hover-01);
}

.header-pagina.planejamento-inicio .btn-gerar-tarefas svg {
    width: 17px;
    height: 17px;
}

/* Nasce desabilitado: o header e montado junto com o skeleton, antes de lstPosts. */
.header-pagina.planejamento-inicio .btn-gerar-tarefas.desabilitado {
    opacity: .35;
    pointer-events: none;
}

/* ---- Minha agenda ---- */
.es-agenda {
    padding: 4px 0;
}

@media (max-width: 900px) {
    .es-ger-cols {
        flex-direction: column;
    }

    .es-ger-plano {
        border-left: 0;
        border-top: 1px solid var(--color-border);
        max-height: none;
    }

    .es-ger-conteudos {
        max-height: none;
    }

    .es-lista {
        margin-left: 0;
    }

    .es-tbl-mapa select {
        max-width: none;
    }
}

/* ==========================================================================
   CONTEUDOS DO PLANEJAMENTO DENTRO DA TAREFA
   --------------------------------------------------------------------------
   DUAS pecas, o MESMO escopo .tc:
     .t-conteudos-wrap.tc  -> o bloco no popup da tarefa, logo abaixo das
                              Subtarefas (header + lista vinculada)
     .tc.tc-modal          -> o popup de vincular, dentro de #edit-popup-medium
   O popup vive FORA da arvore do bloco, entao tudo que os dois compartilham
   (linha de conteudo, avatar, caixa de marcar, tokens) precisa pendurar em
   .tc e nunca em .t-conteudos-wrap.

   O bloco imita a secao de SUBTAREFAS de proposito (setinha .btn-open-close,
   titulo 16/500, contador inline): duas secoes irmas e vizinhas dentro do
   mesmo popup nao podem ter duas linguagens visuais diferentes.

   A linha e um CARD com capa: numero e titulo nao identificam o conteudo
   (metade nasce sem titulo). Capa, tema/objetivo, canal, data e status na
   mesma linha respondem "qual e este" sem precisar abrir.
   ========================================================================== */

/* A tipografia acompanha o escopo, nao o bloco: o popup precisa da MESMA
   familia, e ele nao esta dentro de .item-post.

   MONOCROMATICO - o acento desta tela e a TINTA do sistema (preto no claro,
   branco no escuro), nunca uma cor. O bloco herda os tokens --su-* das
   Subtarefas, e la dentro --su-accent e o roxo do kit ClickUp (#7b68ee): usar
   aquele token aqui pintaria selecao, mes ativo, caixa de marcar e botao
   primario de roxo num produto que nao tem roxo em lugar nenhum. Por isso os
   estados ativos leem destes tres tokens locais, e NAO de --su-accent.

   As unicas cores que sobrevivem sao DADO, nao decoracao: o dot de status (cor
   cadastrada pelo usuario) e as capas. Enfase de texto e por peso/opacidade. */
.tc {
    font-family: -apple-system, "Inter", "Segoe UI", system-ui, sans-serif;

    /* tinta = fundo do botao primario do sistema: #000 no claro, #fff no escuro */
    --tc-tinta: var(--color-btn-bg-01);
    --tc-tinta-txt: var(--color-btn-text-01);
    /* realce fraco (selecionado, pill de ano ativo, tag) */
    --tc-realce: var(--color-hover-01);
}

/* ==========================================================================
   EIXO DAS SECOES DO POPUP DA TAREFA  (Subtarefas / Conteudos / Anexos)
   --------------------------------------------------------------------------
   As tres secoes nasceram com tres recuos diferentes:
     Anexos                 titulo em 0
     Subtarefas (vazio)     titulo em 16  (-10px + padding do .sub-hdr-add)
     Subtarefas c/ filhas   titulo em 25  (-4px do .sub-hdr + setinha + gap)
     Conteudos              titulo em 25
   Ou seja: o titulo mudava de lugar ate DENTRO da mesma secao, so por ela ter
   ou nao ter itens.

   Regra unica agora: TODA secao comeca em 0 - a setinha e a primeira coisa da
   linha, no mesmo eixo da descricao, do grid de anexos e da lista. O titulo fica
   indentado sob a propria setinha.

   (Uma versao intermediaria pendurava a setinha 24px a esquerda para o TITULO
   cair em 0. No papel alinhava; na tela o bloco inteiro comecava fora da coluna
   de texto e lia como desalinhado. O eixo de uma secao e a borda esquerda dela,
   nao a do rotulo.)

   E as TRES tem setinha. Anexos era a unica sem - o titulo ficava fora do eixo
   e a secao era a unica que nao dava para recolher, num popup onde as outras
   duas recolhem. A setinha veio junto com o .t-anexos-body (footer.php).

   RITMO VERTICAL (um numero, tres secoes):
     --t-sec-gap  = respiro ACIMA de cada secao
     8px          = respiro entre o titulo e o miolo (padding-bottom do header)
   Entre duas secoes da: 8 (miolo da de cima) + 24 = 32px. A descricao fecha com
   a mesma conta (margin-bottom = gap + 8), para a primeira secao nao ficar mais
   longe do texto do que as secoes ficam entre si.
   ========================================================================== */

.item-post.tarefa {
    /* Faixa fixa da setinha (primeira coluna do grid do cabecalho). */
    --t-sec-caret: 24px;
    /* Respiro acima de cada secao (o de baixo vem do padding do header). */
    --t-sec-gap: 24px;
    /* Respiro entre o titulo da secao e o miolo dela. */
    --t-sec-ttl-gap: 8px;
    /* Respiro entre a setinha e o titulo = folga da pilula de hover. */
    --t-sec-ttl-pad: 8px;
}

/* A descricao entra no mesmo ritmo: o vao ate "Subtarefas" passa a medir o
   mesmo que o vao entre duas secoes (32px), em vez dos 38px soltos de antes. */
.item-post.tarefa .edicao .texto {
    margin-bottom: calc(var(--t-sec-gap, 24px) + var(--t-sec-ttl-gap, 8px));
}

/* --------------------------------------------------------------------------
   CABECALHO PADRAO DAS TRES SECOES  (.t-sec-hdr, montado por htmlSecaoHeader)

       [setinha] Titulo N                            [acoes extras] [+]

   Uma folha para os tres. Antes cada secao trazia o proprio desenho de header
   (.sub-hdr, .tc-hdr, .t-hdr) e ainda um SEGUNDO desenho para o estado vazio
   (.sub-hdr-add, .tc-hdr-add) - seis variantes para tres cabecalhos iguais.

   ANCORAGEM: a secao INTEIRA comeca na coluna de texto da tarefa - a setinha
   e a primeira coisa em 0, no mesmo eixo da descricao, do grid de anexos e da
   lista de subtarefas. Nada de sarjeta: a versao anterior pendurava a setinha
   24px a esquerda para o titulo cair em 0, e o resultado era o bloco inteiro
   comecando FORA da coluna, visivelmente deslocado em relacao ao campo de
   texto de cima. O titulo fica indentado sob a propria setinha, como em
   qualquer cabecalho recolhivel.

   A primeira coluna e uma FAIXA FIXA de --t-sec-caret (grid), nao a largura
   natural da setinha: assim qualquer mudanca de padding ou de tamanho do svg
   nao move o titulo em silencio. Foi como o alinhamento se perdeu antes.

   HOVER: a setinha acende no proprio quadrado; o titulo acende numa pilula que
   sangra so para a DIREITA (a esquerda ela encostaria na setinha). O "+" acende
   como qualquer botao icone do popup. Nenhum dos tres mexe em layout no hover.
   -------------------------------------------------------------------------- */

.item-post.tarefa .t-sec-hdr,
.pd-v2 .ct-wrap .t-sec-hdr,
.pd-v2 .rl-wrap .t-sec-hdr {
    display: grid;
    grid-template-columns: var(--t-sec-caret, 24px) minmax(0, max-content) 1fr auto;
    align-items: center;
    gap: 0;
    padding: 0 0 var(--t-sec-ttl-gap, 8px);
    margin: 0;
    border-bottom: none;
}

.item-post.tarefa .t-sec-spacer,
.pd-v2 .ct-wrap .t-sec-spacer,
.pd-v2 .rl-wrap .t-sec-spacer {
    min-width: 0;
}

/* Faixa fixa de 24px com a setinha centrada dentro dela. */
.item-post.tarefa .t-sec-caret,
.pd-v2 .ct-wrap .t-sec-caret,
.pd-v2 .rl-wrap .t-sec-caret {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    user-select: none;
}

.item-post.tarefa .t-sec-hdr .btn-open-close,
.pd-v2 .ct-wrap .t-sec-hdr .btn-open-close,
.pd-v2 .rl-wrap .t-sec-hdr .btn-open-close {
    padding: 8px;
    margin: 0;
    border-radius: 8px;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .12s, transform .15s, opacity .12s;
    /* Os tokens --su-* vivem em .subtarefas-section / .tc; Anexos e IRMA delas,
       nao descendente. A tinta sai do token de texto do tema para as tres
       lerem igual no claro e no escuro. */
    color: var(--color-text);
    opacity: .55;
}

.item-post.tarefa .t-sec-hdr .btn-open-close svg,
.pd-v2 .ct-wrap .t-sec-hdr .btn-open-close svg,
.pd-v2 .rl-wrap .t-sec-hdr .btn-open-close svg {
    width: 8px;
    height: 8px;
    fill: currentColor;
}

.item-post.tarefa .t-sec-hdr .btn-open-close.open,
.pd-v2 .ct-wrap .t-sec-hdr .btn-open-close.open,
.pd-v2 .rl-wrap .t-sec-hdr .btn-open-close.open {
    transform: rotate(90deg);
}

/* Passar em qualquer ponto do cabecalho ja acende a setinha (ela e o alvo
   principal); o fundo so aparece quando o ponteiro esta nela mesma. */
.item-post.tarefa .t-sec-hdr:hover .btn-open-close,
.pd-v2 .ct-wrap .t-sec-hdr:hover .btn-open-close,
.pd-v2 .rl-wrap .t-sec-hdr:hover .btn-open-close {
    opacity: 1;
}

.item-post.tarefa .t-sec-caret:hover .btn-open-close,
.pd-v2 .ct-wrap .t-sec-caret:hover .btn-open-close,
.pd-v2 .rl-wrap .t-sec-caret:hover .btn-open-close {
    background: var(--color-hover-01);
}

/* Titulo + contador, colados como um rotulo so (o total e parte do titulo, nao
   um segundo elemento do cabecalho).
   O padding de 8px e, ao mesmo tempo, o respiro entre a setinha e o titulo e a
   folga da pilula de hover - sem margem negativa, entao a pilula comeca onde a
   faixa da setinha termina, sem invadi-la. */
.item-post.tarefa .t-sec-ttl-wrap,
.pd-v2 .ct-wrap .t-sec-ttl-wrap,
.pd-v2 .rl-wrap .t-sec-ttl-wrap {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px var(--t-sec-ttl-pad, 8px);
    margin: 0;
    border-radius: 8px;
    cursor: pointer;
    user-select: none;
    transition: background .12s;
}

.item-post.tarefa .t-sec-ttl-wrap:hover,
.pd-v2 .ct-wrap .t-sec-ttl-wrap:hover,
.pd-v2 .rl-wrap .t-sec-ttl-wrap:hover {
    background: var(--color-hover-01);
}

.item-post.tarefa .t-sec-ttl,
.pd-v2 .ct-wrap .t-sec-ttl,
.pd-v2 .rl-wrap .t-sec-ttl {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.4;
    margin: 0;
    color: var(--color-text);
}

/* Contador em texto suave, nunca pilula colorida: tres cabecalhos irmaos com
   dois estilos de contador fazem a tela parecer montada por partes. */
.item-post.tarefa .t-sec-count,
.pd-v2 .ct-wrap .t-sec-count,
.pd-v2 .rl-wrap .t-sec-count {
    display: inline;
    min-width: 0;
    padding: 0;
    margin: 0;
    background: none;
    border-radius: 0;
    font-size: 13px;
    font-weight: 400;
    opacity: .55;
}

.item-post.tarefa .t-sec-count:empty,
.pd-v2 .ct-wrap .t-sec-count:empty,
.pd-v2 .rl-wrap .t-sec-count:empty {
    display: none;
}

/* Estado vazio da lista de Conteudos: a mesma linha de acao que Subtarefas usa
   no rodape (.add-sub-row). Expandir uma secao vazia mostra o que fazer. */
.item-post.tarefa .tc-vazio {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 8px;
    border-radius: 6px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text);
    opacity: .55;
    cursor: pointer;
    transition: background .1s, opacity .1s;
    width: fit-content;
}

.item-post.tarefa .tc-vazio .tc-vazio-mais {
    font-size: 15px;
    line-height: 1;
}

.item-post.tarefa .tc-vazio:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

/* Acoes da direita: o "+" de cada secao e, quando houver, botoes extras (a
   arvore das Subtarefas). Mesmo quadrado de 28px para todos. */
.item-post.tarefa .t-sec-acoes,
.pd-v2 .ct-wrap .t-sec-acoes,
.pd-v2 .rl-wrap .t-sec-acoes {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    flex: 0 0 auto;
}

.item-post.tarefa .t-sec-add,
.pd-v2 .ct-wrap .t-sec-add,
.pd-v2 .rl-wrap .t-sec-add,
.item-post.tarefa .t-sec-acao,
.pd-v2 .ct-wrap .t-sec-acao,
.pd-v2 .rl-wrap .t-sec-acao {
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    background: transparent;
    border-radius: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--color-text);
    opacity: .6;
    transition: background .12s, opacity .12s;
}

/* Medida para os dois; PINTURA so no "+", que e um icone solido. Os botoes
extras (a arvore das Subtarefas) sao desenhados a traco - pintar o fill
   deles pelo grupo transformaria o desenho num borrao. */
.item-post.tarefa .t-sec-add svg,
.pd-v2 .ct-wrap .t-sec-add svg,
.pd-v2 .rl-wrap .t-sec-add svg,
.item-post.tarefa .t-sec-acao svg,
.pd-v2 .ct-wrap .t-sec-acao svg,
.pd-v2 .rl-wrap .t-sec-acao svg {
    width: 13px;
    height: 13px;
}

.item-post.tarefa .t-sec-add svg,
.pd-v2 .ct-wrap .t-sec-add svg,
.pd-v2 .rl-wrap .t-sec-add svg {
    fill: currentColor;
}

.item-post.tarefa .t-sec-add:hover,
.pd-v2 .ct-wrap .t-sec-add:hover,
.pd-v2 .rl-wrap .t-sec-add:hover,
.item-post.tarefa .t-sec-acao:hover,
.pd-v2 .ct-wrap .t-sec-acao:hover,
.pd-v2 .rl-wrap .t-sec-acao:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* ---- header ----
   O desenho do cabecalho saiu daqui: as tres secoes usam .t-sec-hdr (mais
   acima). Sobra so o que o popup de VINCULAR precisa - ele vive em
   #edit-popup-medium, fora de .item-post.tarefa, e portanto fora do alcance
   daquele bloco. */

.tc .tc-resumo {
    font-size: 11.5px;
    color: var(--su-fg-soft);
    margin: -2px 0 9px 2px;
}

.tc .tc-resumo:empty {
    display: none;
}

/* ==========================================================================
   PICKER (POPUP)  -  marca > mes > conteudos
   --------------------------------------------------------------------------
   Vive em #edit-popup-medium, empilhado por cima do popup da tarefa. Popup e
   nao painel inline porque escolher marca + varrer meses e uma tarefa de
   varios passos: inline ela empurrava metade do popup da tarefa para fora da
   tela e disputava a mesma barra de rolagem.

   O casco (.boxpop) e o do projeto; aqui so entra o miolo.
   ========================================================================== */

.tc-modal,
.rl-modal {
    display: flex;
    flex-direction: column;
    /* Teto de altura no popup, nao no corpo: assim o rodape com "Vincular"
       fica SEMPRE visivel e so a lista de itens rola. */
    max-height: min(76vh, 720px);
    overflow: hidden;
    border-radius: 8px;
}

.tc .tc-pk-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    /* padding-right maior: o X nativo do .boxpop fica no canto superior. */
    padding: 14px 44px 14px 16px;
    border-bottom: 1px solid var(--su-border-soft);
}

.tc .tc-pk-hdr .spacer {
    flex: 1;
}

.tc .tc-crumbs {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    font-size: 12.5px;
    color: var(--su-fg-soft);
}

.tc .tc-crumb {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tc .tc-crumb.atv {
    color: var(--su-fg);
    font-weight: 500;
}

.tc .tc-crumb-sep {
    opacity: .45;
}

.tc .tc-voltar {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 7px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--su-fg-soft);
    transition: background .12s, color .12s;
}

.tc .tc-voltar svg {
    width: 11px;
    height: 11px;
    fill: currentColor;
}

.tc .tc-voltar:hover {
    background: var(--su-bg-hover);
    color: var(--su-fg);
}

/* min-height:0 nao e enfeite: sem ele um filho flex se recusa a encolher
   abaixo do conteudo e o overflow-y nunca chega a rolar.
   O fundo levemente distinto do .boxpop e o que faz os cards de marca e as
   linhas de conteudo (que sao --su-bg-input, branco no tema claro) existirem
   como cards em vez de virarem uma folha branca so. */
.tc .tc-pk-corpo {
    flex: 1 1 auto;
    min-height: 0;
    padding: 14px 16px;
    overflow-y: auto;
    background: var(--su-bg-subtle);
}

.tc .tc-msg {
    font-size: 12px;
    color: var(--su-fg-soft);
    line-height: 1.5;
    padding: 16px 6px;
    text-align: center;
}

/* ---- ETAPA 1: marcas ---- */
.tc .tc-marcas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 8px;
}

.tc .tc-marca {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 10px;
    border: 1px solid var(--su-border);
    border-radius: 11px;
    background: var(--su-bg-input);
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s, transform .15s;
    min-width: 0;
}

/* Hover do card = elevacao + borda mais firme (o -2px e a sombra difusa do kit
   premium do projeto), nunca uma borda colorida. */
.tc .tc-marca:hover {
    border-color: var(--su-line);
    box-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
    transform: translateY(-2px);
}

.tc .tc-marca-vazia {
    opacity: .5;
}

.tc .tc-marca-info {
    flex: 1 1 auto;
    min-width: 0;
}

.tc .tc-marca-nome {
    font-size: 13px;
    font-weight: 500;
    color: var(--su-fg);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tc .tc-marca-sub {
    font-size: 11px;
    color: var(--su-fg-soft);
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* "da tarefa" x "N na tarefa": a diferenca e de PESO e opacidade, nao de cor -
   duas tags coloridas diferentes num card so viram semaforo. */
.tc .tc-tag {
    flex: 0 0 auto;
    font-size: 9.5px;
    padding: 2px 6px;
    border-radius: 6px;
    background: var(--tc-realce);
    color: var(--su-fg);
    font-weight: 500;
    white-space: nowrap;
}

.tc .tc-tag-ok {
    font-weight: 400;
    color: var(--su-fg-soft);
}

/* ---- ETAPA 2: strip de periodo (ano + meses) ---- */
/* O strip de periodo fica FORA da area rolavel: ele e a navegacao, e navegacao
   que sobe junto com a lista obriga a rolar de volta a cada troca de mes. */
.tc .tc-periodo {
    flex: 0 0 auto;
    padding: 12px 16px;
    border-bottom: 1px solid var(--su-border-soft);
}

.tc .tc-anos {
    display: flex;
    gap: 5px;
    margin-bottom: 7px;
}

.tc .tc-ano {
    padding: 3px 10px;
    border-radius: 7px;
    font-size: 11.5px;
    font-weight: 500;
    color: var(--su-fg-soft);
    cursor: pointer;
    transition: background .12s, color .12s;
}

.tc .tc-ano:hover {
    background: var(--su-bg-hover);
}

.tc .tc-ano.atv {
    background: var(--tc-realce);
    color: var(--su-fg);
}

/* Grade fixa de 12: o mes nao muda de lugar quando troca a marca, entao a
   fileira vira uma referencia estavel de "onde estou no ano". */
.tc .tc-meses {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 4px;
}

.tc .tc-meses-extra {
    grid-template-columns: repeat(4, 1fr);
    margin-top: 5px;
}

.tc .tc-mes {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid transparent;
    background: var(--su-bg-input);
    font-size: 11.5px;
    color: var(--su-fg-soft);
    cursor: pointer;
    user-select: none;
    transition: background .12s, color .12s, border-color .12s;
}

.tc .tc-mes:hover {
    border-color: var(--su-border);
    color: var(--su-fg);
}

.tc .tc-mes-n {
    font-size: 9.5px;
    font-variant-numeric: tabular-nums;
    padding: 0 4px;
    border-radius: 5px;
    background: var(--su-bg-hover);
    line-height: 15px;
}

/* Mes sem conteudo continua clicavel (so nao chama atencao): esconde-lo faria
   a fileira mudar de tamanho a cada marca. */
.tc .tc-mes-vazio {
    background: transparent;
    color: var(--su-fg-mute);
}

/* Mes ativo = tinta cheia (preto no claro, branco no escuro). O contraste
   maximo contra os outros 11 pills e o que dispensa cor. */
.tc .tc-mes.atv {
    background: var(--tc-tinta);
    border-color: var(--tc-tinta);
    color: var(--tc-tinta-txt);
    font-weight: 500;
}

/* Dentro do pill ativo o contador nao precisa da propria caixa: opacity sobre
   a cor herdada acompanha a inversao da tinta nos dois temas sem uma segunda
   regra no dark.css (e sem depender de relative color syntax). */
.tc .tc-mes.atv .tc-mes-n {
    background: transparent;
    color: inherit;
    opacity: .6;
    padding: 0;
}

/* ==========================================================================
   A LINHA DO CONTEUDO  (candidato no picker e vinculado na lista)
   ========================================================================== */

.tc .tc-item {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    border: 1px solid var(--su-border);
    border-radius: 11px;
    background: var(--su-bg-input);
    margin-bottom: 6px;
    cursor: pointer;
    transition: background .15s, border-color .15s, box-shadow .15s;
}

.tc .tc-item:hover {
    background: var(--su-bg-hover);
    box-shadow: 0 3px 10px rgba(0, 0, 0, .06);
}

.tc .tc-item:last-child {
    margin-bottom: 0;
}

.tc .tc-item.tc-feito .tc-capa {
    opacity: .55;
}

/* Linha selecionada: borda firme + fundo de realce neutro. Quem carrega o
   "selecionado" de verdade e a caixa marcada (tinta cheia) a esquerda. */
.tc .tc-cand.atv,
.tc .tc-cand.atv:hover {
    border-color: var(--su-line);
    background: var(--tc-realce);
}

/* Ja vinculado: fica na lista, marcado e travado. Some-lo faria parecer que o
   conteudo nao existe mais naquele mes. */
.tc .tc-item.tc-ja {
    cursor: default;
    opacity: .55;
}

.tc .tc-item.tc-ja:hover {
    background: var(--su-bg-input);
    box-shadow: none;
}

/* ---- caixa de marcar ---- */
.tc .tc-check {
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    border-radius: 6px;
    border: 1px solid var(--su-border);
    background: var(--su-bg-input);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: background .12s, border-color .12s;
}

.tc .tc-check svg {
    width: 11px;
    height: 11px;
    fill: var(--su-fg-mute);
    opacity: .35;
}

.tc .tc-check.atv {
    background: var(--tc-tinta);
    border-color: var(--tc-tinta);
}

.tc .tc-check.atv svg {
    fill: var(--tc-tinta-txt);
    opacity: 1;
}

/* ---- capa ---- */
.tc .tc-capa {
    position: relative;
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    background-color: var(--su-bg-hover);
    overflow: hidden;
}

.tc .tc-capa-vazia {
    display: flex;
    align-items: center;
    justify-content: center;
}

.tc .tc-capa-vazia svg {
    width: 18px;
    height: 18px;
    opacity: .25;
    fill: var(--su-fg-soft);
}

.tc .tc-capa-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    display: flex;
    align-items: center;
    justify-content: center;
}

.tc .tc-capa-play svg {
    width: 11px;
    height: 11px;
    fill: #fff;
}

.tc .tc-capa-n {
    position: absolute;
    right: 3px;
    bottom: 3px;
    min-width: 14px;
    height: 14px;
    padding: 0 3px;
    border-radius: 5px;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    font-size: 9px;
    line-height: 14px;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

/* ---- textos ---- */
.tc .tc-info {
    flex: 1 1 auto;
    min-width: 0;
}

.tc .tc-l1 {
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-width: 0;
}

.tc .tc-l2 {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 4px;
    min-width: 0;
}

.tc .tc-num {
    flex: 0 0 auto;
    font-size: 10.5px;
    color: var(--su-fg-mute);
    font-variant-numeric: tabular-nums;
}

.tc .tc-tit {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13px;
    font-weight: 500;
    color: var(--su-fg);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tc .tc-av {
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--su-bg-hover);
}

.tc .tc-marcas .tc-av {
    width: 30px;
    height: 30px;
}

.tc .tc-av-xs {
    width: 15px;
    height: 15px;
}

.tc .tc-av-ini {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: -.2px;
    color: var(--su-fg-soft);
}

.tc .tc-av-xs.tc-av-ini {
    font-size: 7px;
}

.tc .tc-marca-txt {
    flex: 0 1 auto;
    font-size: 11px;
    color: var(--su-fg-soft);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tc .tc-tipo {
    flex: 0 0 auto;
    font-size: 9.5px;
    padding: 1px 6px;
    border-radius: 6px;
    border: 1px solid var(--su-border);
    color: var(--su-fg-soft);
    white-space: nowrap;
}

/* Icones de canal vem do kit de equipes (.eq-canal), mas a cor deles sai de
   var(--eq-text-4), declarada dentro de .eq-tela/.pessoa-tela. Fora daquele
   escopo a variavel nao existe e o fill cairia no herdado - por isso a cor e
   o tamanho sao redeclarados aqui. */
.tc .tc-canais {
    flex: 0 0 auto;
    display: inline-flex;
    gap: 2px;
}

.tc .tc-canais .eq-canal svg {
    width: 12px;
    height: 12px;
    fill: var(--su-fg-soft);
}

.tc .tc-status {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    font-size: 11px;
    color: var(--su-fg-soft);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.tc .tc-dot {
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    display: inline-block;
}

/* ---- coluna da direita: data de agendamento ---- */
.tc .tc-dir {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 3px;
    text-align: right;
}

.tc .tc-data {
    font-size: 11px;
    color: var(--su-fg-soft);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

/* "hoje" se destaca por PESO e opacidade cheia, nao por ambar: numa lista de
   30 linhas uma cor de alerta vira semaforo sem ninguem ter pedido alerta. */
.tc .tc-data.tc-hoje {
    color: var(--su-fg);
    font-weight: 600;
}

.tc .tc-data.tc-passou {
    color: var(--su-fg-mute);
}

.tc .tc-data.tc-sem {
    font-style: italic;
    color: var(--su-fg-mute);
}

.tc .tc-flag {
    font-size: 9.5px;
    padding: 1px 6px;
    border-radius: 6px;
    background: var(--su-bg-hover);
    color: var(--su-fg-soft);
    white-space: nowrap;
}

/* ---- acoes da linha vinculada ---- */
.tc .tc-acoes {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 3px;
}

.tc .tc-acoes>span {
    width: 27px;
    height: 27px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity .15s, background .15s;
}

.tc .tc-item:hover .tc-acoes>span {
    opacity: .45;
}

.tc .tc-acoes>span:hover {
    opacity: 1 !important;
    background: var(--su-bg-hover);
}

.tc .tc-acoes svg {
    width: 12px;
    height: 12px;
    fill: var(--su-fg);
}

/* UNICA cor de chrome que sobrevive ao monocromatico: o vermelho de acao
   destrutiva no HOVER, que ja e a convencao do projeto (mesmo valor do
   "remover" dos Anexos, .t-doc-rem). Nao e enfeite - e o aviso de que aquele
   clique desfaz algo. */
.tc .tc-x:hover svg {
    fill: #e83a3a;
}

/* ---- rodape do picker ---- */
/* Rodape fixo: o botao "Vincular" nunca pode depender de rolar ate o fim de um
   mes com 60 conteudos. */
.tc .tc-pk-pe {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 11px 16px;
    border-top: 1px solid var(--su-border-soft);
    background: var(--su-bg-input);
}

.tc .tc-pk-pe .spacer {
    flex: 1;
}

.tc .tc-todos {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    color: var(--su-fg-soft);
    cursor: pointer;
    user-select: none;
    padding: 3px 8px 3px 4px;
    border-radius: 8px;
    transition: background .12s, color .12s;
}

.tc .tc-todos:hover {
    background: var(--su-bg-hover);
    color: var(--su-fg);
}

.tc .tc-sel {
    font-size: 12px;
    color: var(--su-fg-soft);
    white-space: nowrap;
}

/* Botao primario do kit do projeto: fundo = tinta (preto no claro, branco no
   escuro), raio generoso, e no hover so elevacao - sem glow colorido. */
.tc .tc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 34px;
    padding: 0 18px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: var(--tc-tinta);
    color: var(--tc-tinta-txt);
    border: 1px solid var(--tc-tinta);
    transition: transform .24s cubic-bezier(.16, 1, .3, 1), box-shadow .24s cubic-bezier(.16, 1, .3, 1), background .12s;
    white-space: nowrap;
}

.tc .tc-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 26px -16px rgba(16, 24, 40, .55);
}

.tc .tc-btn-sec {
    background: transparent;
    color: var(--su-fg-soft);
    border-color: var(--su-border);
}

.tc .tc-btn-sec:hover {
    background: var(--su-bg-hover);
    color: var(--su-fg);
    transform: none;
    box-shadow: none;
}

.tc .tc-btn.desabilitado {
    opacity: .35;
    cursor: default;
    transform: none;
    box-shadow: none;
}

/* ==========================================================================
   SKELETON E GRUPO DE MARCA
   --------------------------------------------------------------------------
   Nao ha "card de estado vazio": sem conteudo vinculado o proprio header vira
   o botao "Vincular conteudo" (igual .sub-hdr-add em Subtarefas) e a lista
   simplesmente nao ocupa espaco.
   ========================================================================== */

/* Skeleton com a MESMA moldura da linha final: o bloco nao pula de altura
   quando o AJAX responde. */
.tc .tc-sk {
    pointer-events: none;
}

.tc .tc-sk .tc-capa,
.tc .tc-sk .tc-info {
    background: var(--sk-base);
    border-radius: 8px;
    animation: tc-pulse 1.2s ease-in-out infinite;
}

.tc .tc-sk .tc-info {
    height: 32px;
}

@keyframes tc-pulse {

    0%,
    100% {
        opacity: .55;
    }

    50% {
        opacity: .9;
    }
}

/* Cabecalho de marca - so aparece quando o lote tem mais de uma. */
.tc .tc-grupo {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 10px 0 6px;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .4px;
    color: var(--su-fg-soft);
}

.tc .tc-grupo-n {
    font-variant-numeric: tabular-nums;
    opacity: .7;
}

@media (max-width: 620px) {

    .tc .tc-meses {
        grid-template-columns: repeat(6, 1fr);
    }

    .tc .tc-meses-extra {
        grid-template-columns: repeat(2, 1fr);
    }

    .tc .tc-l2 {
        flex-wrap: wrap;
    }

    .tc .tc-acoes>span {
        opacity: .45;
    }

    .tc .tc-pk-pe {
        flex-wrap: wrap;
    }
}

/* ==========================================================================
   AS TRES SECOES NO MESMO EIXO - o que sobra por secao
   --------------------------------------------------------------------------
   O cabecalho ja e um so (.t-sec-hdr, mais acima). Aqui fica so o que e
   proprio de cada bloco: a margem superior comum e as sobras de estilo antigo
   que precisam ser desligadas quando a secao roda dentro do popup.

   Escopado em .item-post.tarefa de proposito: .subtarefas-section e
   .t-anexos-wrap tambem sao usadas fora do popup da tarefa (listagem do
   espaco, popup do conteudo), e o eixo aqui vale para ESTE popup.
   ========================================================================== */

.item-post.tarefa .subtarefas-section,
.item-post.tarefa .t-conteudos-wrap,
.item-post.tarefa .t-anexos-wrap {
    margin: var(--t-sec-gap, 24px) 0 0;
    padding: 0;
    background: transparent;
}

/* ANEXOS - estado vazio x grade com itens
   A faixa tracejada so existe com a secao VAZIA (footer.php, conteudoAnexos).
   Com arquivos, o ultimo card da grade e o "+" (.t-anexo-novo): mesmo tamanho
   e mesmo raio dos cards de arquivo, tracejado e sem cor de acento - o
   arrastar continua cobrindo o popup inteiro com a capa de soltar. */
.item-post.tarefa .t-upload .t-n {
    color: var(--color-text-01);
    opacity: .55;
    border-color: var(--color-border);
    transition: opacity .2s, background-color .2s;
}

.item-post.tarefa .t-upload .t-n:hover,
.item-post.tarefa .t-upload .t-n:focus-visible {
    opacity: .85;
    background-color: var(--color-hover-01);
    outline: none;
}

.t-anexo-novo {
    padding: 10px 10px 10px 0px;
    cursor: pointer;
    outline: none;
}

.t-anexo-novo-box {
    aspect-ratio: 1;
    border: 1px dashed var(--color-border);
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: var(--color-text-01);
    opacity: .5;
    font-size: 12px;
    transition: opacity .2s, background-color .2s;
}

.t-anexo-novo-box svg {
    width: 20px;
    height: 20px;
}

.t-anexo-novo:hover .t-anexo-novo-box,
.t-anexo-novo:focus-visible .t-anexo-novo-box {
    opacity: .85;
    background-color: var(--color-hover-01);
}

/* No popup do conteudo o mesmo grid serve os anexos, mas la o envio mora no
   botao da aba (e a faixa tambem fica escondida). */
.item-post.conteudo .t-anexo-novo {
    display: none;
}

/* ==========================================================================
   MINHA AGENDA
   --------------------------------------------------------------------------
   A tela reusa o kit .eq-* (Equipes.kpis + .eq-card + Equipes.agendaLista),
   entao aqui so entra o que o kit nao cobre: largura de leitura e o estado
   vazio. Marcacao propria de KPI/periodo foi removida - duplicava o kit e
   deixava a tela com outra cara do resto do produto.
   ========================================================================== */

/* Largura de leitura: a lista da agenda foi desenhada para um card estreito.
   Solta numa pagina inteira a linha estica e o responsavel vai parar na borda. */
.es-agenda {
    max-width: 1080px;
}

.es-agenda .eq-card-agenda {
    margin-top: 14px;
}

.es-ag-zero {
    text-align: center;
    padding: 48px 20px;
}

.es-ag-zero-t {
    font-size: 15px;
    font-weight: 500;
    margin-bottom: 5px;
}

.es-ag-zero-s {
    font-size: 12.5px;
    opacity: .55;
}

/* Trava defensiva: SVG sem width/height herda a largura do container e ocupa
   a tela inteira quando o CSS de escopo nao chega (foi o que aconteceu com a
   lista da agenda antes de .eq-tela entrar no container). Custa nada e impede
   a falha de voltar em qualquer bloco .es-*. */
.es-agenda svg,
.es-config svg,
.es-gerador svg,
.es-ct svg,
.tc svg {
    max-width: 100%;
    max-height: 100%;
}

.es-agenda .eq-agd-item svg,
.es-agenda .eq-agd-dias svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
}

/* ==========================================================================
   EQUIPES > FLUXO e GERADOR - estados que faltavam
   ========================================================================== */

/* A subaba Fluxo vive dentro de .edicao-equipe, que ja tem seu proprio padding. */
.subtab-content[data-subtab="fluxo"] .es-config {
    padding-top: 4px;
}

.es-add-lista-box {
    margin: 10px 0;
}

.es-add-lista-box select {
    width: 100%;
    max-width: 420px;
    height: 34px;
    font-size: 13px;
    border-radius: 8px;
    padding: 0 10px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
}

.es-sel-etapa-lista {
    width: 100%;
    max-width: 260px;
    height: 30px;
    font-size: 12px;
    border-radius: 7px;
    padding: 0 8px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
}

/* Confirmacao silenciosa do save do mapa: a linha pisca em vez de abrir toast
   a cada select trocado (sao dezenas na arvore). */
.es-tbl-mapa tr.es-salvo td {
    background: color-mix(in srgb, #16a34a 12%, transparent);
}

.es-tbl-mapa tr td {
    transition: background .25s ease;
}

/* Popup do gerador nos estados de bloqueio/vazio: sem isto a mensagem ficava
   colada no topo de uma caixa branca gigante. */
.es-gerador-msg {
    padding: 8px;
}

.es-ger-bloqueio {
    text-align: center;
    padding: 40px 28px;
    max-width: 460px;
    margin: 0 auto;
}

.es-ger-bloqueio-t {
    font-size: 16px;
    font-weight: 600;
    margin-bottom: 8px;
}

.es-ger-bloqueio-s {
    font-size: 13px;
    line-height: 1.55;
    opacity: .6;
    margin-bottom: 18px;
}

.es-ger-bloqueio .es-btn {
    display: inline-flex;
}

/* Busca de tarefa na aba "Tarefas" do conteudo. */
.es-ct-vinc {
    margin: 10px 0;
}

.es-ct-vinc-input {
    width: 100%;
    height: 34px;
    font-size: 13px;
    border-radius: 8px;
    padding: 0 10px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
}

.es-ct-vinc-result {
    max-height: 240px;
    overflow-y: auto;
    margin-top: 6px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
}

.es-ct-vinc-result:empty {
    display: none;
}

.es-ct-tcand {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 10px;
    cursor: pointer;
    font-size: 12.5px;
}

.es-ct-tcand:hover {
    background: var(--color-hover-01);
}

.es-ct-tcand-t {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.es-ct-tcand-l {
    font-size: 11px;
    opacity: .55;
    flex: 0 0 auto;
}

.es-ct-tcand-d {
    font-size: 11px;
    opacity: .5;
    font-variant-numeric: tabular-nums;
    flex: 0 0 auto;
}

/* ==========================================================================
   EQUIPES > FLUXO - editor de etapa, modelos de agencia e dropdowns
   --------------------------------------------------------------------------
   Os seletores usam AirpostSelect (.dropdown-generico), nunca <select> nativo
   - DEVELOPMENT_RULES secao 4. Aqui so o encaixe deles nesta tela.
   ========================================================================== */

.es-card-acoes {
    display: flex;
    gap: 8px;
    align-items: center;
}

/* O AirpostSelect vem com grid do sistema (.ipt2-col); nesta tela ele mora
   dentro de celula de tabela e de linha de formulario, entao a calha some. */
.es-config .dropdown-generico {
    padding: 0;
    margin: 0;
    float: none;
}

.es-tbl-mapa .dropdown-generico {
    min-width: 190px;
    max-width: 240px;
}

.es-tbl-mapa .campo-style-02 {
    margin: 0;
}

.es-tbl-mapa td {
    padding: 5px 8px;
}

.es-opt-esp {
    opacity: .55;
}

.es-opt-sep {
    opacity: .35;
    margin: 0 5px;
}

/* ---- editor de etapa ---- */
.es-etapa-editor {
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 16px;
    margin: 12px 0;
    background: var(--color-bg-01);
}

.es-ee-linha {
    display: flex;
    gap: 14px;
    flex-wrap: wrap;
    margin-bottom: 14px;
}

.es-ee-linha:last-of-type {
    margin-bottom: 0;
}

.es-ee-campo {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.es-ee-campo>span {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .04em;
    opacity: .5;
}

.es-ee-nome {
    flex: 1 1 260px;
}

.es-ee-lista {
    flex: 1 1 320px;
    max-width: 420px;
}

.es-ee-dias {
    flex: 0 0 auto;
}

.es-ee-dias {
    flex-direction: row;
    align-items: flex-end;
    gap: 8px;
    flex-wrap: wrap;
}

.es-ee-dias>span {
    flex: 1 0 100%;
}

.es-ee-dias>i {
    font-style: normal;
    font-size: 11.5px;
    opacity: .5;
    padding-bottom: 9px;
}

.es-ee-in-nome,
.es-ee-in-dias {
    height: 36px;
    font-size: 13px;
    border-radius: 9px;
    padding: 0 11px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
}

.es-ee-in-nome {
    width: 100%;
}

.es-ee-in-dias {
    width: 78px;
    text-align: center;
}

.es-ee-cores {
    display: flex;
    gap: 7px;
    flex-wrap: wrap;
}

.es-ee-cor {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    cursor: pointer;
    display: inline-block;
    border: 2px solid transparent;
    box-sizing: border-box;
}

.es-ee-cor:hover {
    transform: scale(1.12);
}

.es-ee-cor.atv {
    border-color: var(--color-text-01);
}

.es-ee-pe {
    display: flex;
    justify-content: flex-end;
    gap: 8px;
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
}

/* ---- modelos prontos de agencia ---- */
.es-modelos {
    border: 1px solid var(--color-border);
    border-radius: 12px;
    padding: 16px;
    margin: 12px 0;
    background: var(--color-bg-01);
}

.es-modelos-pe {
    font-size: 12px;
    line-height: 1.5;
    opacity: .65;
    margin-bottom: 14px;
}

.es-modelos-grid {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.es-modelo {
    border: 1px solid var(--color-border);
    border-radius: 11px;
    padding: 13px 14px;
    background: var(--color-bg);
    display: flex;
    flex-direction: column;
}

.es-modelo:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 28%, transparent);
}

.es-modelo-nome {
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 4px;
}

.es-modelo-desc {
    font-size: 11.5px;
    line-height: 1.45;
    opacity: .55;
    margin-bottom: 10px;
}

.es-modelo-etapas {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 12px;
    flex: 1 1 auto;
}

.es-modelo-et {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    font-size: 11px;
    padding: 3px 8px;
    border-radius: 7px;
    border: 1px solid var(--color-border);
}

.es-modelo-et i {
    font-style: normal;
    opacity: .45;
    margin-left: 4px;
    font-variant-numeric: tabular-nums;
}

.es-modelo .es-btn {
    align-self: flex-start;
}

.es-btn.desabilitado {
    opacity: .5;
    pointer-events: none;
}

/* numeracao da ordem das etapas */
.es-tbl-etapas .es-ord {
    width: 28px;
    text-align: center;
    font-size: 11px;
    opacity: .4;
    font-variant-numeric: tabular-nums;
}

@media (max-width: 760px) {
    .es-ee-linha {
        flex-direction: column;
    }

    .es-ee-lista {
        max-width: none;
    }

    .es-modelos-grid {
        grid-template-columns: 1fr;
    }
}

/* .t-hdr / .t-conteudos-count / .t-conteudos-add sairam daqui: eram do
   cabecalho ANTIGO do bloco de conteudos, que virou .tc-hdr no padrao das
   Subtarefas (setinha + titulo + contador inline). */

/* ===========================================================================
   AIRPOST SELECT - BUSCA DO DROPDOWN (base de TODO preset)
   O AirpostSelect monta sempre o mesmo bloco .dropdown-busca (icone + input)
   para qualquer preset, mas so o .select-perfis tinha skin. Nos outros
   (select-fuso, estudio-select-perfil, es-*) o input caia no estilo nativo do
   navegador: largura fixa de ~150px, sem recuo para o icone (que ficava solto
   na margem) e com a moldura/foco azul do sistema.

   O ancestral vai dentro de :where() de proposito: especificidade ZERO nele,
   entao a skin propria do .select-perfis - e de qualquer preset que queira a
   sua - continua ganhando sem depender da ordem no arquivo.
   =========================================================================== */

:where(.dropdown-generico) .dropdown-busca {
    position: relative;
    padding: 8px;
    border-bottom: 1px solid var(--color-border);
}

:where(.dropdown-generico) .dropdown-busca .ic-busca {
    position: absolute;
    left: 19px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
    opacity: 0.4;
    pointer-events: none;
}

/* Altura vem do padding (nunca de height fixo): assim esta base declara so o
   que o .select-perfis ja declara tambem, e nao vaza propriedade nenhuma para
   a skin dele. */
:where(.dropdown-generico) .dropdown-busca-input {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    padding: 9px 10px 9px 34px;
    font-size: 14px;
    color: var(--color-text-01);
    background: var(--color-bg-01);
    outline: none;
    transition: border-color 0.2s;
}

:where(.dropdown-generico) .dropdown-busca-input::placeholder {
    color: var(--color-text-01);
    opacity: 0.4;
    font-weight: 400;
}

/* Foco na tinta, nao no azul do navegador (interface monocromatica). */
:where(.dropdown-generico) .dropdown-busca-input:focus {
    border-color: var(--color-btn-bg-01);
    box-shadow: none;
}

/* ===========================================================================
   FUSO HORARIO
   Dois lugares, sentidos diferentes: no cadastro da MARCA o fuso decide QUANDO
   o post vai ao ar; no menu da conta e so preferencia pessoal.

   MONOCROMATICO: nada de cor de acento aqui. Hierarquia = opacity + peso, e o
   estado ativo usa a tinta (--color-btn-bg-01). Como as vars sao redefinidas em
   dark.css (:root), tudo abaixo vira tema escuro sozinho - nao duplicar la.
   =========================================================================== */

/* ---------- Dropdown de fuso (aba Sobre da marca e popup da conta) ---------- */

/* O .dropdown2 padrao reserva 8px verticais proprios. Aqui quem manda no
   respiro sao a busca e a lista - sem isto a faixa de busca ficava flutuando
   com um vao em cima e a borda de baixo dela nao encostava nas laterais. */
.select-fuso .campo-style-02 .dropdown2 {
    padding: 0;
    overflow: hidden;
}

.select-fuso .dropdown-lista {
    max-height: 252px;
    overflow-y: auto;
    padding: 6px;
}

.select-fuso .dropdown2 .it {
    padding: 8px 10px;
    border-radius: 10px;
    font-size: 14px;
    font-weight: 500;
    opacity: 1;
    color: var(--color-text-01);
    transition: background 0.18s;
}

.select-fuso .dropdown2 .it:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

.select-fuso .dropdown-lista .it .fuso-it,
.select-fuso .selecionado .fuso-it {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    min-width: 0;
}

/* NA LISTA: offset encostado na direita - vira uma coluna alinhada, facil de
   varrer com o olho de cima a baixo. */
.select-fuso .dropdown-lista .it .fuso-it {
    justify-content: space-between;
}

/* NO CAMPO FECHADO: offset logo DEPOIS do nome. O campo ocupa a linha inteira,
   entao empurrar o GMT para a borda oposta deixa os dois orfaos em cantos
   opostos - ele e sufixo do nome, tem que ler junto. */
.select-fuso .selecionado .fuso-it {
    justify-content: flex-start;
}

/* Nome longo trunca; o offset nunca encolhe (e a informacao que nao pode sumir). */
.select-fuso .fuso-nome {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.select-fuso .fuso-off {
    font-size: 11px;
    opacity: 0.45;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    flex: 0 0 auto;
}

/* A skin do campo de busca (moldura, fundo, recuo do icone e foco na tinta)
   vem da base :where(.dropdown-generico) la em cima - nao repetir aqui. */

.select-fuso .dropdown-vazio {
    padding: 16px 10px;
    text-align: center;
    font-size: 13px;
    opacity: 0.5;
}

.select-fuso .dropdown-lista::-webkit-scrollbar {
    width: 8px;
}

.select-fuso .dropdown-lista::-webkit-scrollbar-thumb {
    background: var(--color-border);
    border-radius: 8px;
    border: 2px solid transparent;
    background-clip: padding-box;
}

/* ---------- Explicacao abaixo do campo (aba Sobre da marca) ---------- */

.fuso-ajuda {
    font-size: 12px;
    line-height: 1.5;
    opacity: 0.55;
    margin: -6px 0 14px;
    color: var(--color-text-01);
}

.fuso-ajuda b {
    font-weight: 600;
    opacity: 0.9;
}

/* ---------- Item "Fuso horario" no menu da conta ---------- */

.it-bt.btn-fuso-conta .txt {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.it-bt.btn-fuso-conta .txt .sub {
    font-size: 11px;
    opacity: 0.5;
    font-weight: 400;
}

/* ---------- Popup do fuso (skin monocromatica do Swal) ----------
   O Swal padrao entra com botao azul e icone colorido. Aqui ele roda com
   buttonsStyling:false e esta skin escopada em .fuso-pop, entao nada disso
   aparece - e nenhum outro Swal do sistema e afetado. */

.swal2-container .swal2-popup.fuso-pop {
    /* o .dropdown2 e absolute e precisa escapar do popup (o global usa hidden) */
    overflow: visible;
    width: 430px;
    max-width: calc(100vw - 32px);
    padding: 26px 24px 20px;
    background: var(--color-bg);
    color: var(--color-text-01);
}

.fuso-pop .swal2-title {
    padding: 0;
    margin: 0 0 6px;
    font-size: 17px;
    font-weight: 600;
    text-align: left;
    color: var(--color-text-01);
}

.fuso-pop .swal2-html-container {
    margin: 0;
    padding: 0;
    overflow: visible;
    text-align: left;
    font-size: 14px;
    color: var(--color-text-01);
}

.fuso-pop-nota {
    font-size: 12.5px;
    line-height: 1.55;
    opacity: 0.55;
    margin: 0 0 16px;
}

.fuso-pop-nota b {
    font-weight: 600;
    opacity: 0.95;
}

.fuso-pop .swal2-actions {
    margin: 20px 0 0;
    gap: 6px;
    justify-content: flex-end;
    width: 100%;
}

/* Confirmar = a tinta. E o unico elemento "cheio" do popup. */
.fuso-pop-ok {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    border: 0;
    border-radius: 100px;
    padding: 9px 22px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: 0.3s;
}

.fuso-pop-ok:hover {
    opacity: 0.85;
}

.fuso-pop-cancel {
    background: none;
    color: var(--color-text-01);
    opacity: 0.55;
    border: 0;
    border-radius: 100px;
    padding: 9px 16px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: 0.3s;
}

.fuso-pop-cancel:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* .ipt2-col e float:left (serve pro grid das abas). Dentro do popup nao ha
   grid nenhum - sem isto o float colapsa a altura do .swal2-html-container e
   os botoes sobem por cima do campo. */
.fuso-pop .select-fuso {
    float: none;
    width: 100%;
    padding: 0;
}

/* Sem o rotulo do campo (label vazio no popup), o "selecionado" assume a
   altura de um input - o padrao .campo-style-02 e 28px, calibrado para conviver
   com o .lbel em cima. */
.fuso-pop .select-fuso .selecionado {
    height: auto;
    min-height: 42px;
    display: flex;
    align-items: center;
    padding: 0 10px;
    line-height: 1.3;
}

.fuso-pop .select-fuso .campo-style-02 {
    border-color: var(--color-border);
    border-radius: 10px;
}

/* Sem .lbel, o top de 46px do padrao deixaria um vao. */
.fuso-pop .select-fuso .dropdown2 {
    top: 48px;
    border-radius: 10px;
}

/* ---------- Alinhamento com os campos vizinhos (aba Sobre da marca) ----------
   O .selecionado padrao nasceu para dropdowns pequenos (28px de altura, 2px de
   recuo). Ao lado de Nome/Segmento/Cidade/UF - que sao .cmp com 35px e recuo de
   10px - ele ficava mais baixo e mais a esquerda que os irmaos. Aqui ele copia
   exatamente a metrica do .cmp para a linha bater. */
.editarPerfis .select-fuso .selecionado {
    height: 35px;
    padding: 0 10px;
    font-size: 16px;
    font-weight: 500;
    line-height: normal;
    display: flex;
    align-items: center;
}

/* O rotulo do fuso e o mais longo do painel. Sem isto ele quebra em duas linhas
   dentro do .lbel (que tem altura fixa de 23px) e invade o valor de baixo. */
.editarPerfis .select-fuso .lbel {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* O dropdown abre abaixo do conjunto rotulo + campo (23px + 35px). */
.editarPerfis .select-fuso .dropdown2 {
    top: 60px;
}

/* A ajuda e legenda DO campo acima: cola nele em vez de flutuar no meio do
   gutter de 14px que o .ipt2-col do popup reserva. */
.editarPerfis .fuso-ajuda {
    margin: -10px 0 14px;
    padding: 0 5px;
}

@media (max-width: 550px) {

    /* ---------- UM EIXO SO DENTRO DO CARD (mobile) ----------
       media.css zera, nesta faixa, o recuo esquerdo do .lbel e do .textarea.cmp
       - mas o <input class="cmp"> continua com os 10px do desktop. Resultado
       dentro do MESMO campo: o titulo colado na borda e o valor recuado, e cada
       tipo de campo comecando num lugar diferente (rotulo 0, input 10, fuso 0).
       A correcao anterior perseguia o rotulo zerado (zerava tambem o fuso), o
       que so espalhava o desalinhamento para os vizinhos Cidade/UF. Aqui todo
       mundo volta para o mesmo eixo de 10px, igual ao desktop. */
    .editarPerfis .campo-style-02 .lbel {
        padding-left: 10px;
    }

    .editarPerfis .campo-style-02 .textarea.cmp {
        padding-left: 10px;
        padding-right: 10px;
    }

    /* Em tela estreita o nome do fuso ja consome a linha toda; o offset
       reencosta na direita para nao ser espremido contra o texto. */
    .editarPerfis .select-fuso .selecionado .fuso-it {
        justify-content: space-between;
        gap: 8px;
    }

    /* Popup do fuso da conta: a lista cheia (252px) + a busca passavam da borda
       de baixo do popup em tela pequena. */
    .fuso-pop .select-fuso .dropdown-lista {
        max-height: 42vh;
    }
}

/* ===========================================================================
   CARTAO RAPIDO DE PESSOA  -  .ap-usercard   (JS: window.AirpostUserCard, footer.php)

   E o popover que abre ao clicar num avatar de usuario (.thumb-user) em
   QUALQUER tela: cluster de responsaveis do conteudo/tarefa, cabecalho do
   planejamento, quadro, fluxo, feed de atividades. Antes cada contexto
   posicionava o proprio .dropdown-default dentro do avatar (e por isso
   precisava de um bloco de CSS por tela); agora o cartao mora no <body> em
   position:fixed e o JS calcula a posicao - nada de recorte por overflow,
   nada de ajuste por contexto.

   MONOCROMATICO: hierarquia por opacity/peso, nada de cor de acento. Como as
   vars de tema sao redefinidas em dark.css (:root), tudo aqui vira tema escuro
   sozinho - a unica excecao e --uc-surface (o preto puro do tema escuro nao
   serve de superficie elevada), sobrescrita la.
   =========================================================================== */

/* ---------- Avatar que abre o cartao ---------- */

/* O avatar so ganha affordance de clique quando REALMENTE abre o cartao - em
   picker/selecao ele continua sendo so uma miniatura. */
.thumb-user-open,
.lst-membros-all .item[data-id] {
    cursor: pointer;
}

.thumb-user-open .thumb-user,
.thumb-user-open.thumb-user,
.lst-membros-all .item[data-id] .thumb-user {
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.thumb-user-open:hover .thumb-user,
.thumb-user-open.thumb-user:hover,
.lst-membros-all .item[data-id]:hover .thumb-user {
    transform: translateY(-1px);
    box-shadow: 0 3px 9px #00000024;
    position: relative;
    z-index: 2;
}

/* Enquanto o cartao esta aberto, o avatar de origem fica "preso" - assim se
   sabe de quem e o cartao mesmo com varios avatares empilhados. */
.uc-origem .thumb-user,
.uc-origem.thumb-user {
    transform: translateY(-1px);
    box-shadow: 0 0 0 2px var(--color-btn-bg-01);
    position: relative;
    z-index: 3;
}

/* ---------- Superficie ---------- */

.ap-usercard {
    position: fixed;
    z-index: 100000;
    width: 286px;
    padding: 14px 14px 10px 14px;
    background: var(--uc-surface);
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 14px 38px -8px #00000026, 0 4px 12px -6px #0000001a;
    font-size: 13px;
    line-height: 1.35;
    text-align: left;
    text-transform: none;
    opacity: 0;
    transform: translateY(-5px) scale(0.985);
    transform-origin: top center;
    transition: opacity 0.14s ease, transform 0.14s ease;
}

.ap-usercard.uc-aberto {
    opacity: 1;
    transform: none;
}

/* Cartao ancorado ACIMA do avatar (sem espaco embaixo): a animacao tem que
   nascer do lado certo, senao parece que ele veio do lugar errado. */
.ap-usercard.uc-acima {
    transform-origin: bottom center;
    transform: translateY(5px) scale(0.985);
}

.ap-usercard.uc-acima.uc-aberto {
    transform: none;
}

/* ---------- Cabecalho: avatar + identificacao ---------- */

.ap-usercard .uc-hdr {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.ap-usercard .uc-avatar {
    flex: 0 0 auto;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background-color: var(--color-bg-01);
    background-size: cover;
    background-position: center;
    border: 1px solid var(--color-border);
    display: grid;
    align-items: center;
    justify-items: center;
    font-size: 15px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--color-text-01);
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
}

.ap-usercard .uc-idt {
    min-width: 0;
    flex: 1 1 auto;
}

.ap-usercard .uc-nome {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ap-usercard .uc-email {
    font-size: 12px;
    opacity: 0.5;
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* "Voce" - so aparece no proprio usuario. */
.ap-usercard .uc-tag {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 6px;
    border-radius: 20px;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.2px;
    vertical-align: middle;
    background: var(--color-bg-01);
    opacity: 0.7;
}

/* ---------- Numeros ---------- */

.ap-usercard .uc-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 4px;
    margin-top: 13px;
    padding: 9px 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.ap-usercard .uc-stat {
    text-align: center;
    min-width: 0;
}

.ap-usercard .uc-stat-num {
    font-size: 16px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
}

.ap-usercard .uc-stat-lbl {
    font-size: 10.5px;
    opacity: 0.45;
    margin-top: 3px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---------- Linha de contexto (ultimo movimento) ---------- */

.ap-usercard .uc-meta {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 9px;
    font-size: 12px;
    opacity: 0.55;
}

.ap-usercard .uc-meta svg {
    flex: 0 0 auto;
    opacity: 0.8;
}

.ap-usercard .uc-meta span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---------- Acoes ---------- */

.ap-usercard .uc-acoes {
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid var(--color-border);
}

.ap-usercard .uc-btn {
    display: flex;
    align-items: center;
    gap: 9px;
    width: 100%;
    padding: 8px 9px;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    transition: background 0.16s ease;
    text-transform: none;
    text-align: left;
}

.ap-usercard .uc-btn:hover {
    background: var(--color-hover-01);
}

.ap-usercard .uc-btn svg {
    flex: 0 0 auto;
    opacity: 0.55;
}

.ap-usercard .uc-btn.uc-btn-remover {
    color: #d64545;
}

.ap-usercard .uc-btn.uc-btn-remover svg {
    stroke: #d64545;
    opacity: 0.75;
}

/* Feedback do "copiar e-mail" sem toast: o proprio botao confirma. */
.ap-usercard .uc-btn.uc-ok .uc-btn-txt::after {
    content: ' · copiado';
    opacity: 0.5;
    font-weight: 400;
}

/* ---------- Carregando ----------
   Nome e avatar ja vem do DOM de origem, entao o skeleton cobre so o que
   depende do servidor (e-mail, numeros e ultimo movimento). */

.ap-usercard .uc-sk {
    border-radius: 6px;
    background: var(--sk-base);
    background-image: linear-gradient(90deg, transparent, var(--sk-glow), transparent);
    background-size: 180px 100%;
    background-repeat: no-repeat;
    animation: uc-shimmer 1.15s infinite;
}

.ap-usercard .uc-email.uc-sk {
    height: 9px;
    width: 60%;
    margin-top: 6px;
}

.ap-usercard .uc-stat .uc-sk {
    height: 11px;
    width: 26px;
    margin: 2px auto 0 auto;
}

.ap-usercard .uc-meta .uc-sk {
    height: 9px;
    width: 55%;
}

@keyframes uc-shimmer {
    0% {
        background-position: -180px 0;
    }

    100% {
        background-position: calc(100% + 180px) 0;
    }
}

.ap-usercard .uc-erro {
    margin-top: 12px;
    padding: 10px 0 2px 0;
    border-top: 1px solid var(--color-border);
    font-size: 12px;
    opacity: 0.5;
}

/* ---------- Mobile ----------
   Tela estreita: o cartao vira uma folha ancorada embaixo, largura cheia.
   O JS reconhece isto e para de calcular coordenadas. */

@media (max-width: 600px) {
    .ap-usercard {
        left: 10px !important;
        right: 10px !important;
        top: auto !important;
        bottom: 10px !important;
        width: auto !important;
        transform-origin: bottom center;
        transform: translateY(10px);
    }

    .ap-usercard.uc-aberto {
        transform: none;
    }
}

/* ============================================================================
   POPUP DE CONTEUDO 2.0 (.pd-v2)  +  BLOCO "TAREFAS" (.ct-*)
   ----------------------------------------------------------------------------
   A raiz da v2 carrega `popup-delta` junto de `pd-v2` - e assim que o conteudo
   renderizado la dentro herda todo o CSS e todos os handlers ja escritos para
   o popup. O preco e que as regras do popup ANTIGO tambem chegam nela, e
   algumas assumem tela cheia (a coluna de comentarios e `position: fixed` na
   borda da viewport). Este bloco existe para dois trabalhos:

     1. ISOLAR  - a v2 nunca aparece pelo .show() do popup antigo;
     2. REENQUADRAR - o que era "colado na viewport" passa a ser "colado na
        janela", para o mesmo HTML funcionar dentro de um quadro flutuante.

   Tudo aqui esta escopado em .pd-v2. Nenhuma regra deste bloco alcanca o
   popup atual.
   ========================================================================== */

/* --- 1. ISOLAMENTO DE VISIBILIDADE ---------------------------------------
   O fluxo antigo faz $('.popup-delta').show() / .hide(), que casaria a v2
   junto. `!important` ganha do `display` inline que o jQuery escreve, entao
   a v2 so obedece a propria classe .atv - e, pelo mesmo motivo, o .hide()
   do popup antigo tambem nao consegue fecha-la pelas costas. */
.pd-v2 {
    display: none !important;
}

.pd-v2.atv {
    display: block !important;
    /* Abaixo do popup antigo (z-index 99) de proposito: abrir uma tarefa
       daqui usa o popup v1, que precisa vir por cima. */
    z-index: 98;
    overflow: hidden;
    --pd2-surface: #fff;
    /* A mesma cor da janela com alfa 0 - `transparent` num gradiente passa pelo
       cinza e deixa uma sombra fantasma no fade acima do editor. */
    --pd2-fade: rgba(255, 255, 255, 0);
}

.pd-v2 .pd2-mask {
    background: rgba(15, 17, 21, 0.42);
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
}

/* --- 2. A JANELA ---------------------------------------------------------
   Nao e tela cheia: e um quadro centrado, com um botao que alterna para tela
   cheia (a preferencia fica em localStorage e vale para a proxima abertura). */
.pd-v2 .pd2-win {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: min(1460px, 94vw);
    height: min(920px, 92vh);
    z-index: 2;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.26), 0 2px 10px rgba(0, 0, 0, 0.10);
    transition: width 0.18s ease, height 0.18s ease, border-radius 0.18s ease;
}

.pd-v2.pd-full .pd2-win {
    width: 100%;
    height: 100%;
    border-radius: 0;
    border: 0;
    box-shadow: none;
}

/* --- 3. BARRA DE TITULO --------------------------------------------------
   A barra tambem e uma `.box-view-perfil-open`: e essa classe que o botao
   "Grade" procura ('.box-view-perfil-open .btn-grade-perfil'), e mante-la
   evita reescrever aquele handler so por causa da casca nova. O que ela traz
   junto e uma ancoragem de tela cheia (`position: fixed`, `top/left: 0`,
   `width: calc(100% - 300px)`) que arrancaria a barra para fora da janela -
   os resets abaixo existem so para desfazer isso. */
.pd-v2 .pd2-hdr {
    position: static;
    top: auto;
    left: auto;
    width: auto;
    z-index: auto;
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    flex: 0 0 auto;
    height: 56px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 10px 0 16px;
    border-bottom: 1px solid var(--color-border);
}

/* Faixa de identidade da janela: a marca no popup de conteudo, o espaco/lista
   no de tarefa. Um so lugar para os dois, para as duas janelas terem o titulo
   no mesmo eixo. */
.pd-v2 .pd2-ident {
    display: flex;
    align-items: center;
    min-width: 0;
}

/* Mesmo motivo do reset acima: `.box-view-perfil-open .perfil-btn` empurra o
   bloco com float + margem para caber no layout de tela cheia. */
.pd-v2 .pd2-perfil {
    float: none;
    margin-left: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    font-size: 14px;
    font-weight: 550;
    color: var(--color-text-01);
    text-decoration: none;
}

.pd-v2 .pd2-perfil:hover {
    background: transparent;
    text-decoration: none;
    opacity: 0.75;
}

.pd-v2 .pd2-perfil .avatar-perfil {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    background-color: var(--color-bg-01);
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
    border: 1px solid var(--color-border);
}

.pd-v2 .pd2-nome {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pd-v2 .pd2-cod {
    font-size: 12px;
    opacity: 0.45;
    flex: 0 0 auto;
}

.pd-v2 .pd2-spacer {
    flex: 1 1 auto;
}

.pd-v2 .pd2-acoes {
    display: flex;
    align-items: center;
    gap: 2px;
    flex: 0 0 auto;
}

.pd-v2 .pd2-btn {
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    cursor: pointer;
    opacity: 0.6;
    fill: var(--color-text-01);
    color: var(--color-text-01);
    transition: 0.15s;
}

.pd-v2 .pd2-btn svg {
    width: 17px;
    height: 17px;
}

.pd-v2 .pd2-btn:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

/* --- 4. MIOLO: conteudo a esquerda, conversa a direita -------------------- */
.pd-v2 .pd2-main {
    flex: 1 1 auto;
    display: flex;
    min-height: 0;
}

.pd-v2 .pd2-scroll {
    flex: 1 1 auto;
    min-width: 0;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 10px 26px 40px 26px;
}

.pd-v2 .pd2-side {
    flex: 0 0 330px;
    width: 330px;
    border-left: 1px solid var(--color-border);
    position: relative;
    overflow: hidden;
}

/* --- 5. REENQUADRAMENTO DO HTML REAPROVEITADO ----------------------------
   O corpo do post e a coluna de atividades sao o MESMO HTML do popup antigo.
   La eles se ancoram na viewport (`position: fixed`, larguras fixas, reserva
   de 315px a direita). Dentro de uma janela flutuante isso vazaria para fora
   do quadro - as regras abaixo trocam essas ancoras pelo fluxo da janela. */
.pd-v2 .item-post {
    float: none !important;
    max-width: 100% !important;
    margin-top: 0px;
}

.pd-v2 .pd2-box {
    max-width: 100%;
}

.pd-v2 .html-conteudo-atividades {
    position: static !important;
    float: none !important;
    top: auto !important;
    right: auto !important;
    width: 100% !important;
    height: 100% !important;
    border-left: 0 !important;
    z-index: auto !important;
}

/* A conversa vira uma coluna flex de duas faixas: cabecalho fixo em cima e o
   historico ocupando o resto. */
.pd-v2 .pd2-side .edicao-page-comentarios {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 0 !important;
}

.pd-v2 .pd2-side .edicao-page-comentarios .topo {
    flex: 0 0 auto;
}

.pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios {
    position: static !important;
    flex: 1 1 auto;
    min-height: 0;
    height: auto !important;
    bottom: auto !important;
    overflow: auto;
    padding: 14px !important;
    /* Coluna flex para o editor poder ir para o fim por `order` - ver abaixo. */
    display: flex;
    flex-direction: column;
}

/* O EDITOR DE COMENTARIO nasce como PRIMEIRO filho de .lst-comentarios, e no
   popup antigo ele so parece estar embaixo porque e `position: fixed` na borda
   da viewport. Numa janela flutuante essa ancora vaza para fora do quadro.

   A correcao e CSS puro DE PROPOSITO: mover o no na abertura funcionaria uma
   vez so - recarregaComentariosPost() faz replaceWith() do bloco inteiro a cada
   comentario novo e a cada tick do polling, e devolveria o editor para dentro
   do historico. Com `order` ele desce sem sair do lugar no DOM; `margin-top:
   auto` cola no fundo quando ha pouca conversa e `sticky` o segura no fundo
   quando ha muita. */
.pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios>* {
    order: 1;
    flex: 0 0 auto;
}

.pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios>.box-add-comentario {
    order: 2;
    position: sticky !important;
    bottom: 0;
    left: auto !important;
    right: auto !important;
    width: auto !important;
    margin-top: auto;
    z-index: 2;
    /* Grudado no fundo ele passa POR CIMA da conversa: sem superficie propria,
       o texto do ultimo comentario aparece atraves do editor. */
    background: var(--pd2-surface);
}

/* A CONVERSA VAZIA (.cm-vazio, kit no coment-editor.css) cresce para ocupar o
   vao entre o cabecalho e o editor - e assim o convite fica no meio da coluna,
   nao encostado na primeira linha. Precisa desta regra porque a de cima manda
   todo filho ser `flex: 0 0 auto`. */
.pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios>.info-zero.cm-vazio {
    flex: 1 1 auto;
    min-height: 170px;
}

/* ==========================================================================
   BLOCO "TAREFAS" DO CONTEUDO (.ct-*)
   --------------------------------------------------------------------------
   A linha e uma .cu-row de verdade (mesma da listagem e das subtarefas), entao
   quase todo o visual ja vem pronto. O que muda e o TRILHO de colunas: aqui
   nao ha prioridade nem data de inicio, e sobram tres alvos estreitos (abrir,
   responsavel, desvincular).
   ========================================================================== */
.pd-v2 .ct-host {
    clear: both;
    width: 100%;
    padding-top: 4px;
}

/* O CABECALHO desta secao e o mesmo das tres do popup da tarefa (.t-sec-hdr,
   montado por htmlSecaoHeader). Aquele kit nasceu escopado em
   `.item-post.tarefa` - natural, porque ate agora so a tarefa tinha secoes - e
   por isso os seletores de la foram ESTENDIDOS para `.pd-v2 .ct-wrap` em vez de
   reescritos aqui: um cabecalho, uma folha. Os tokens de ritmo moram no mesmo
   lugar, entao precisam ser declarados de novo neste escopo - sem isto a secao
   viveria dos valores de fallback do `var()`, que hoje coincidem por acaso e
   deixariam de coincidir na primeira vez que o ritmo da tarefa mudasse. */
.pd-v2 .ct-wrap {
    --t-sec-caret: 24px;
    --t-sec-gap: 24px;
    --t-sec-ttl-gap: 8px;
    --t-sec-ttl-pad: 8px;
    width: 100%;
    margin-top: 10px;
}

.pd-v2 .ct-list {
    --cu-cols: minmax(150px, 1fr) 34px 118px 92px 34px;
    margin-top: 2px;
}

.pd-v2 .ct-row {
    cursor: default;
}

.pd-v2 .ct-row .cu-cell {
    padding: 5px 8px;
}

.pd-v2 .ct-cell-title {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-left: 2px !important;
    min-width: 0;
}

/* Barrinha entre o anel de status e a caixa de marcar - e o mesmo separador do
   print, e serve para o olho nao ler os dois circulos como um controle so.
   Mais baixa que os dois vizinhos de proposito: encostando na altura deles
   viraria uma terceira coluna em vez de um respiro. */
.pd-v2 .ct-sep {
    flex: 0 0 1px;
    width: 1px;
    height: 14px;
    background: var(--color-border);
}

/* A CAIXA DE MARCAR. Nao repete o anel de status: o anel anda uma casa no
   fluxo, ela vai direto ao fim (e volta ao inicio quando desmarcada). */
.pd-v2 .ct-check {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border: 1.6px solid #c9ccd1;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: 0.14s;
    background: transparent;
}

.pd-v2 .ct-check svg {
    width: 13px;
    height: 13px;
    fill: #fff;
    opacity: 0;
    transform: scale(0.6);
    transition: 0.14s;
}

.pd-v2 .ct-check:hover {
    border-color: var(--color-btn-bg-01);
}

.pd-v2 .ct-check:hover svg {
    opacity: 0.28;
    transform: scale(1);
    fill: var(--color-btn-bg-01);
}

/* Marcado usa a TINTA da interface, nunca uma cor de acento: concluido e um
   estado, e o estado ativo do produto e monocromatico. */
.pd-v2 .ct-check.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

.pd-v2 .ct-check.atv svg,
.pd-v2 .ct-check.atv:hover svg {
    opacity: 1;
    transform: scale(1);
    fill: var(--color-btn-text-01);
}

.pd-v2 .ct-check.ct-loading {
    opacity: 0.5;
    pointer-events: none;
}

.pd-v2 .ct-row .cu-row-title-wrap {
    min-width: 0;
    flex: 1 1 auto;
}

.pd-v2 .ct-row .cu-row-title {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: pointer;
    line-height: 22px;
}

.pd-v2 .ct-row .cu-row-title:hover {
    text-decoration: underline;
}

/* Concluida: risco + recuo de peso, igual ao print. */
.pd-v2 .ct-row.is-concluida .cu-row-title {
    text-decoration: line-through;
    opacity: 0.42;
}

.pd-v2 .ct-cell-ico {
    display: flex !important;
    align-items: center;
    justify-content: center;
    padding: 0 !important;
}

.pd-v2 .ct-ico {
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    background: transparent;
    border-radius: 7px;
    cursor: pointer;
    opacity: 0;
    fill: var(--color-text-01);
    color: var(--color-text-01);
    transition: 0.14s;
}

.pd-v2 .ct-ico svg {
    width: 14px;
    height: 14px;
}

/* Os alvos secundarios so aparecem no hover da linha - a lista em repouso
   mostra status, titulo, prazo e responsavel, que e o que se le de relance. */
.pd-v2 .ct-row:hover .ct-ico,
.pd-v2 .ct-row:focus-within .ct-ico {
    opacity: 0.5;
}

.pd-v2 .ct-ico:hover {
    opacity: 1 !important;
    background: var(--color-hover-01);
}

.pd-v2 .ct-cell-membros {
    cursor: pointer;
}

.pd-v2 .ct-cell-membros .lst-membros-all {
    display: flex;
    align-items: center;
}

.pd-v2 .ct-row-add .add-sub-row {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 8px;
    border-radius: 8px;
    font-size: 13px;
    opacity: 0.55;
    cursor: pointer;
    fill: currentColor;
    stroke: currentColor;
}

.pd-v2 .ct-row-add .add-sub-row:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* --- composer de nova tarefa --------------------------------------------- */
.pd-v2 .ct-composer {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
    padding: 10px;
    margin: 6px 0;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    background: var(--color-bg-01);
}

.pd-v2 .ct-comp-input {
    flex: 1 1 220px;
    min-width: 160px;
    height: 34px;
    padding: 0 11px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: var(--pd2-surface);
    color: var(--color-text-01);
    font-size: 13px;
    outline: none;
}

.pd-v2 .ct-comp-lista {
    flex: 0 0 260px;
    max-width: 260px;
}

/* O AirpostSelect nasce com a grade de formulario (.ipt2-col/col-md-*); dentro
   do composer ele e so mais um campo da linha. */
.pd-v2 .ct-comp-lista .ipt2-col {
    width: 100%;
    max-width: 100%;
    padding: 0;
    float: none;
}

.pd-v2 .ct-comp-acoes {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

.pd-v2 .ct-comp-btn {
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    cursor: pointer;
    transition: 0.15s;
}

.pd-v2 .ct-comp-btn:hover {
    background: var(--color-hover-01);
}

.pd-v2 .ct-comp-salvar {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.pd-v2 .ct-comp-salvar:hover {
    opacity: 0.85;
    background: var(--color-btn-bg-01);
}

.pd-v2 .ct-composer.ct-comp-salvando {
    opacity: 0.55;
    pointer-events: none;
}

.pd-v2 .ct-comp-erro {
    display: none;
    flex: 1 1 100%;
    font-size: 12px;
    color: #c62a2f;
}

/* --- tablet: a janela cresce, mas as duas colunas continuam --------------- */
@media (max-width: 1100px) {
    .pd-v2 .pd2-win {
        width: 96vw;
        height: 94vh;
    }

    .pd-v2 .pd2-side {
        flex-basis: 290px;
        width: 290px;
    }
}

/* ============================================================================
   MOBILE (<= 920px) - a janela vira tela e a conversa vira secao
   ----------------------------------------------------------------------------
   920px e o mesmo ponto em que o popup antigo troca de layout, entao os dois
   passam a se comportar igual na mesma largura.

   Duas mudancas, e as duas sao sobre ANCORAGEM:

   1. A JANELA VIRA TELA. Um quadro flutuante com margem so faz sentido quando
      sobra tela em volta; no celular ele so come area util e deixa uma moldura
      inutil. Vira 100%, sem raio nem sombra.

   2. UM SCROLL SO. No desktop ha dois panos que rolam lado a lado (conteudo e
      conversa). Empilhados num celular isso vira uma armadilha: dois scrolls
      aninhados, e o de dentro rouba o gesto do de fora. Aqui o .pd2-main e o
      unico container que rola, e conteudo + conversa sao secoes dele, uma
      embaixo da outra. Por isso todo mundo abaixo perde altura fixa, overflow
      proprio e `sticky`: quem rola e o pai.
   ========================================================================== */
@media (max-width: 920px) {
    .pd-v2 .pd2-win {
        width: 100%;
        height: 100%;
        max-width: none;
        border: 0;
        border-radius: 0;
        box-shadow: none;
    }

    /* O unico pano que rola. */
    .pd-v2 .pd2-main {
        flex-direction: column;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Deixam de ser panos de rolagem e viram blocos na coluna do pai. */
    .pd-v2 .pd2-scroll {
        flex: 0 0 auto;
        overflow: visible;
        padding: 0 14px 18px;
    }

    .pd-v2 .pd2-side {
        flex: 0 0 auto;
        width: 100%;
        height: auto;
        overflow: visible;
        border-left: 0;
        border-top: 1px solid var(--color-border);
    }

    .pd-v2 .html-conteudo-atividades {
        height: auto !important;
    }

    .pd-v2 .pd2-side .edicao-page-comentarios {
        height: auto;
    }

    /* Sem altura propria e sem overflow: a conversa cresce e empurra a pagina,
       em vez de virar uma caixinha rolavel dentro de outra. */
    .pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios {
        max-height: none;
        overflow: visible;
    }

    /* O editor continua sendo o ultimo da coluna (o `order` do desktop segue
       valendo), mas solto no fluxo: colado no fundo ele tamparia a conversa,
       que agora rola junto com o resto da pagina. */
    .pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios>.box-add-comentario {
        position: static !important;
        margin-top: 12px;
    }

    .pd-v2 .ct-list {
        --cu-cols: minmax(120px, 1fr) 32px 96px 76px 32px;
    }
}

/* ---- popup de TAREFA 2.0: o que difere do de conteudo ------------------- */

/* Quadradinho com a inicial do espaco, no lugar do avatar da marca.
   Segue o desenho que o projeto ja usa para espaco (.btns-t-espacolista .item
   .icon): letra branca centrada, peso 600, cantos arredondados. O que muda e a
   MEDIDA - aqui ele ocupa os mesmos 28px do avatar da marca no popup de
   conteudo, para as duas barras de titulo terem a identidade no mesmo eixo.

   Sem esta regra o elemento nascia sem caixa nenhuma: `.pd2-av` sozinho nao
   casa `.pd-v2 .pd2-perfil .avatar-perfil` (a classe que dimensiona o avatar do
   conteudo vem do htmlAvatarPerfil), entao sobrava um span inline com uma cor
   de fundo atras da letra. */
.pd-v2 .pd2-av-espaco {
    width: 28px;
    height: 28px;
    flex: 0 0 28px;
    border-radius: 8px;
    display: grid;
    align-items: center;
    text-align: center;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
}

/* O "..." da tarefa e MOVIDO para ca (ver TarefaV2.abrir). O desenho original
   e `position: fixed` a 319px da borda da tela - coordenada do popup antigo em
   tela cheia. Na barra de titulo ele volta a ser um botao no fluxo, do mesmo
   tamanho dos vizinhos de tela cheia e fechar. */
.pd-v2 .pd2-acoes .btn-t-plus {
    position: static;
    width: 34px;
    height: 34px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    opacity: .6;
    fill: var(--color-text-01);
    transition: 0.15s;
}

.pd-v2 .pd2-acoes .btn-t-plus:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

.pd-v2 .pd2-acoes .btn-t-plus svg {
    width: 17px;
    height: 17px;
}

/* estruturaTarefa() desenha o chip "Espaco / Lista" dentro do corpo - algo que
   fazia sentido quando o popup nao tinha barra de titulo propria. Aqui a barra
   ja mostra isso, e os dois juntos viravam o mesmo nome duas vezes, um embaixo
   do outro. Escondido so nesta casca: o popup antigo segue com o chip. */
.pd-v2-tarefa .btns-t-espacolista {
    display: none;
}

/* ============================================================================
   GRADE DO FEED EM POPUP (.grade-feed-popup)
   ----------------------------------------------------------------------------
   Mesma marcacao da tela (gradeFeedMarkup), montada dentro do #edit-popup-big.
   O CSS da grade e todo global - nada dele estava preso a #htmlSessaoAtual -
   entao aqui so fica o REENQUADRAMENTO: o que a tela mede contra a viewport
   passa a medir contra a caixa do popup.
   ========================================================================== */

.grade-feed-popup {
    padding: 22px 26px 26px;
}

/* Na tela o cabecalho e uma faixa da pagina (sessaoRender); dentro do popup ele
   e o titulo da caixa e precisa dar espaco ao X, que fica em top/right 16px. */
.grade-feed-popup .grade-feed-header {
    padding: 0 44px 16px 0;
    margin: 0;
    border-bottom: 1px solid var(--color-border);
}

.grade-feed-popup .grade-feed-view {
    padding-top: 16px;
}

/* O roteiro fica fixo tambem no popup: quem rola aqui e o
   #edit-popup-big .contant (padding 22px), e o sticky gruda nele. A altura
   desconta o padding da caixa para a coluna caber inteira na janela. */
.grade-feed-popup .gf-lista {
    top: 12px;
    max-height: calc(100vh - 68px);
}

/* No popup a navegacao de mes e o "Abrir na tela" vao para a direita, longe
   do titulo - e o 44px do padding do cabecalho deixa o X livre. */
.grade-feed-popup .grade-feed-header .grade-feed-header-right {
    margin-left: auto;
}

/* ============================================================================
   NOME PERSONALIZADO DO ANEXO
   ----------------------------------------------------------------------------
   Renomear grava so em perfis_posts_upload.NomeOriginal - rotulo de exibicao.
   O objeto no R2 e a coluna Arquivo continuam com o nome de upload, entao
   link, thumb, download e publicacao nao mudam de endereco.
   ========================================================================== */

/* So existe no DOM quando o arquivo foi renomeado: o nome real e um hash de
   upload, e mostra-lo por padrao seria ruido. Cor explicita porque o
   .midia-item herda `color:#fff` (pensado para os rotulos sobre a miniatura) -
   sem isto o nome sairia branco no branco, como acontecia com o .t-data antes
   de ele fixar a propria cor. */
.midias-tarefas .midia-item .t-nome {
    padding: 4px 0px 0px 1px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Terceiro botao do cluster superior-direito: baixar (5), remover (35),
   renomear (65) - mesmo passo de 30px dos vizinhos. */
.midias-tarefas .midia-item .btn-renomear {
    position: absolute;
    top: 5px;
    right: 65px;
}

@media (max-width: 920px) {

    /* No toque os alvos sao ampliados e o cluster ganha folga (baixar 6,
       remover 52) - o terceiro segue o mesmo passo de 46px. */
    .midias-tarefas .midia-item .btn-renomear {
        top: 6px;
        right: 98px;
    }
}

/* ===========================================================================
   QUADRO DE TAREFAS (.type-quadro) - colunas e cartao

   Antes o quadro era um degrau abaixo da lista: cartao com titulo, avatares e
   duas datas por extenso, coluna sem identidade e nenhuma edicao sem abrir o
   popup. Aqui ele passa a mostrar os MESMOS campos da linha e a ser editavel
   pelos mesmos pickers.

   MONOCROMATICO: a superficie e neutra (--color-bg) e a hierarquia e feita com
   opacity + peso. A cor do STATUS entra so como tinta muito baixa da coluna
   (--qd-col, vinda do render) e a cor da PRIORIDADE so no icone da bandeira -
   sao dados do usuario, nao acento de interface.

   Como as vars de tema sao redefinidas em dark.css (:root), tudo aqui vira
   tema escuro sozinho - nao duplicar la.
   =========================================================================== */

/* ---------------------------------- coluna --------------------------------- */

.type-quadro .estrutura-lista {
    gap: 12px;
    align-items: flex-start;
}

.type-quadro .estrutura-lista .group {
    width: 286px;
    min-width: 286px;
}

.group .conteudo-quad,
.type-quadro .lst-conteudos-quad,
.type-quadro .btn-add-tarefa-quad {
    /* Fallback para navegador sem color-mix: tinta neutra do sistema. */
    background: var(--color-bg-01);
}

.group .conteudo-quad {
    background: transparent;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    box-shadow: none;
    overflow: hidden;
}

.type-quadro .hdr-lst-quad {
    background: var(--color-bg-01);
    background: color-mix(in srgb, var(--qd-col, #808080) 2%, transparent);
    padding: 9px 10px 8px 10px;
    border-radius: 0;
}

.type-quadro .hdr-lst-quad .hdr-group {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

/* .titulo-group vem do render com float (heranca da visao de lista); dentro do
   cabecalho do quadro ele e item de flex e o float so atrapalha o alinhamento. */
.type-quadro .hdr-lst-quad .titulo-group {
    float: none;
    margin: 0;
    max-width: 100%;
}

.type-quadro .hdr-lst-quad .total {
    float: none;
    padding: 0;
    min-width: 20px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0 6px;
    border-radius: 9px;
    background: var(--color-hover-01);
    font-size: 11px;
    font-weight: 600;
    opacity: 0.55;
}

/* Nome da lista: no quadro do espaco o mesmo status aparece em varias colunas,
   uma por lista. Sem isto nao da para saber em qual delas se esta soltando. */
.type-quadro .hdr-lst-quad .qd-col-lista {
    flex: 1 1 100%;
    order: 3;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    opacity: 0.4;
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.type-quadro .hdr-lst-quad .qd-col-add {
    margin-left: auto;
    width: 22px;
    height: 22px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: transparent;
    cursor: pointer;
    opacity: 0;
    color: var(--color-text-01);
    transition: opacity 0.14s, background 0.14s;
}

.type-quadro .hdr-lst-quad .qd-col-add svg {
    width: 13px;
    height: 13px;
    opacity: 1;
}

/* "Todas as tarefas" ja esconde o rodape de adicionar (nao ha lista/espaco no
   contexto da tela) - o atalho do cabecalho segue a mesma regra. */
.type-quadro .tarefas-geral .hdr-lst-quad .qd-col-add {
    display: none;
}

.type-quadro .conteudo-quad:hover .qd-col-add {
    opacity: 0.6;
}

.type-quadro .hdr-lst-quad .qd-col-add:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.type-quadro .lst-conteudos-quad {
    background: var(--color-bg-01);
    background: color-mix(in srgb, var(--qd-col, #808080) 2%, transparent);
    padding: 6px 8px 2px 8px;
    max-height: calc(100vh - 186px);
}

.type-quadro .qd-col-vazia {
    border: 1px dashed var(--color-border);
    border-radius: 10px;
    padding: 14px 10px;
    margin: 4px 0 6px 0;
    text-align: center;
    font-size: 11.5px;
    font-weight: 500;
    opacity: 0.3;
    /* Nao pode interceptar o dragover - quem e a zona de drop e a coluna. */
    pointer-events: none;
}

/* Durante o arraste quem marca o lugar e o clone .placeholder do plugin de
   drag; manter o convite "solte aqui" junto dele seria duas caixas vazias. */
.type-quadro .conteudo-quad.over .qd-col-vazia {
    display: none;
}

.type-quadro .conteudo-quad.over {
    outline: none;
    border-color: var(--color-btn-bg-01);
}

.type-quadro .btn-add-tarefa-quad {
    background: var(--color-bg-01);
    background: color-mix(in srgb, var(--qd-col, #808080) 4%, transparent);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 12px 11px 12px;
    border-radius: 0;
    transition: background 0.14s;
}

.type-quadro .btn-add-tarefa-quad:hover {
    background: var(--color-hover-01);
}

.type-quadro .btn-add-tarefa-quad svg {
    float: none;
    width: 12px;
    height: 12px;
    opacity: 0.55;
    color: var(--color-text-01);
}

.type-quadro .btn-add-tarefa-quad .txt {
    float: none;
    padding: 0;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    opacity: 0.55;
}

/* ---------------------------------- cartao --------------------------------- */

.qd-card {
    position: relative;
    display: block;
    padding: 10px 11px 9px 11px;
    margin: 0 0 7px 0;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    background: var(--color-bg);
    color: var(--color-text-01);
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: border-color 0.16s, box-shadow 0.16s, transform 0.16s;
}

.qd-card:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 22%, transparent);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
    transform: translateY(-1px);
}

.qd-card.dragging {
    opacity: 0.4;
}

/* Clone que o setupDynamicDrag insere para marcar o ponto de soltar. */
.qd-card.placeholder {
    opacity: 0.35;
    border-style: dashed;
    box-shadow: none;
    transform: none;
}

/* Tarefa vencida: fio vertical na borda esquerda. E o unico realce de alerta
   do cartao - o chip de data ja carrega o texto. */
.qd-card.is-atrasada::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    bottom: 10px;
    width: 2px;
    border-radius: 0 2px 2px 0;
    background: #d23838;
}

.qd-card.is-concluida {
    opacity: 0.62;
}

.qd-card.is-concluida .qd-titulo {
    text-decoration: line-through;
}

.qd-card .qd-titulo {
    font-size: 13.5px;
    font-weight: 500;
    line-height: 18px;
    letter-spacing: -0.01em;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    word-break: break-word;
}

/* --------------------------- andamento de subtarefas ----------------------- */

.qd-card .qd-sub {
    margin-top: 8px;
}

.qd-card .qd-sub-top {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 600;
    opacity: 0.45;
    margin-bottom: 4px;
}

.qd-card .qd-sub-top svg {
    width: 11px;
    height: 11px;
    flex: 0 0 auto;
}

.qd-card .qd-sub-bar {
    height: 3px;
    border-radius: 3px;
    background: var(--color-hover-01);
    overflow: hidden;
}

.qd-card .qd-sub-bar i {
    display: block;
    height: 100%;
    border-radius: 3px;
    background: var(--color-text-01);
    opacity: 0.35;
    transition: width 0.2s;
}

.qd-card .qd-sub.is-full .qd-sub-bar i {
    opacity: 0.6;
}

/* ---------------------------------- tags ----------------------------------- */

.qd-card .qd-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 7px;
}

.qd-card .qd-tags .cu-content-chain {
    margin: 0;
    padding: 2px 6px 2px 0;
    color: inherit;
    opacity: 0.45;
}

.qd-card .qd-tags .cu-content-chain:hover {
    background: transparent;
    opacity: 0.8;
}

/* --------------------------------- rodape ---------------------------------- */

.qd-card .qd-rodape {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 9px;
    min-height: 24px;
}

/* Com prioridade + inicio + vencimento + "atrasada Xd" o rodape nao cabe em
   286px: os chips quebram para uma segunda linha em vez de vazar da coluna. */
.qd-card .qd-datas {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    flex: 1 1 auto;
    min-width: 0;
    gap: 4px;
    row-gap: 3px;
}

/* Hora so no vencimento - e ela que e prazo. */
.qd-card .qd-dt-ini .qd-hr {
    display: none;
}

.qd-card .qd-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 22px;
    padding: 0 7px;
    border-radius: 6px;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    color: var(--color-text-01);
    opacity: 0.62;
    cursor: pointer;
    transition: background 0.12s, opacity 0.12s, width 0.16s, margin 0.16s;
}

.qd-card .qd-chip svg {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
}

.qd-card .qd-chip:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

.qd-card .qd-chip .qd-hr {
    opacity: 0.6;
    margin-left: 3px;
}

/* Ordem fixa do rodape (prioridade -> inicio -> vencimento), com os campos
   VAZIOS sempre no fim: assim a afordancia que aparece no hover nao empurra o
   que ja estava escrito. */
.qd-card .qd-prio {
    order: 1;
}

.qd-card .qd-dt-ini {
    order: 2;
}

.qd-card .qd-dt-fim {
    order: 3;
}

.qd-card .qd-prio svg {
    fill: var(--qd-prio, currentColor);
}

.qd-card .qd-dt-ini {
    opacity: 0.42;
}

/* Vencimento: so o vencido ganha pintura; hoje/amanha pesam mais no texto. */
.qd-card .qd-dt-fim.hoje,
.qd-card .qd-dt-fim.amanha {
    opacity: 1;
    font-weight: 600;
}

.qd-card .qd-dt-fim.vencido {
    opacity: 1;
    color: #d23838;
    background: rgba(210, 56, 56, 0.09);
}

.qd-card .qd-dt-fim.vencido:hover {
    background: rgba(210, 56, 56, 0.16);
}

.qd-card .qd-dt-flag {
    font-style: normal;
    font-size: 10.5px;
    font-weight: 600;
    opacity: 0.75;
}

/* Campo vazio: colapsado em repouso, abre no hover do cartao. */
.qd-card .qd-chip.is-empty {
    order: 9;
    width: 0;
    min-width: 0;
    padding: 0;
    margin: 0;
    opacity: 0;
    overflow: hidden;
    pointer-events: none;
}

.qd-card:hover .qd-chip.is-empty {
    width: 24px;
    padding: 0 6px;
    opacity: 0.4;
    pointer-events: auto;
}

.qd-card:hover .qd-chip.is-empty:hover {
    opacity: 0.9;
}

/* -------------------------------- responsaveis ------------------------------ */

.qd-card .qd-membros {
    flex: 0 0 auto;
    margin-left: auto;
    display: flex;
    align-items: center;
    border-radius: 20px;
    cursor: pointer;
    transition: filter 0.12s, opacity 0.12s;
}

.qd-card .qd-membros:hover {
    filter: brightness(0.94);
}

.type-quadro .qd-card .qd-membros .lst-membros-all {
    float: none;
    padding: 0;
    display: flex;
    align-items: center;
}

.type-quadro .qd-card .qd-membros .lst-membros-all .item {
    margin: 0 0 0 -6px;
}

.type-quadro .qd-card .qd-membros .lst-membros-all .item:first-child {
    margin-left: 0;
}

.type-quadro .qd-card .qd-membros .lst-membros-all .thumb,
.type-quadro .qd-card .qd-membros .lst-membros-all .thumb-user {
    width: 22px;
    height: 22px;
    font-size: 10px;
    box-shadow: 0 0 0 2px var(--color-bg);
}

.type-quadro .qd-card .qd-membros .lst-membros-all .item-mais {
    width: 22px;
    height: 22px;
    margin: 0 0 0 -6px;
    font-size: 9px;
    position: relative;
    top: 0;
}

.qd-card .qd-membros.is-empty {
    width: 24px;
    height: 24px;
    align-items: center;
    justify-content: center;
    border: 1px dashed var(--color-border);
    color: var(--color-text-01);
    opacity: 0;
    transition: opacity 0.14s;
}

.qd-card:hover .qd-membros.is-empty {
    opacity: 0.45;
}

.qd-card:hover .qd-membros.is-empty:hover {
    opacity: 0.9;
}

.qd-card .qd-membros.is-empty svg {
    width: 14px;
    height: 14px;
}

@media (max-width: 920px) {

    .type-quadro .estrutura-lista .group {
        width: 260px;
        min-width: 260px;
    }

    /* No toque o hover nao existe: os campos vazios do rodape ficam sempre
       visiveis, senao so o popup permitiria preenche-los. */
    .qd-card .qd-chip.is-empty {
        width: 24px;
        padding: 0 6px;
        opacity: 0.4;
        pointer-events: auto;
    }

    .qd-card .qd-membros.is-empty {
        opacity: 0.45;
    }
}

/* ===========================================================================
   PERIODO (duas datas) - .ap-dtp / window.AirpostDataPeriodo
   ---------------------------------------------------------------------------
   Popover unico dos campos de data que andam EM PAR (tarefa: inicio +
   vencimento; objetivo: inicio + termino). Vive no <body> em position:fixed e
   e o JS quem calcula a posicao - igual ao .ap-usercard, pelo mesmo motivo:
   nada de recorte por overflow, nada de CSS por tela.

   Layout, no padrao dos pickers de intervalo modernos:

     +-----------------+------------------------------------+
     | atalhos         |  <  julho 2026    agosto 2026   >  |
     | (coluna)        |  grade de dias (1 ou 2 meses)      |
     +-----------------+------------------------------------+
     | [inicio 09:00 x] -> [vencimento 18:00 x]   acoes      |
     +--------------------------------------------------------+

   O calendario e so a GRADE: o flatpickr entra sem barra de hora e sem
   moldura, e a faixa do intervalo e pintada pelo JS reusando as classes que o
   tema ja estiliza (inRange/startRange/endRange).

   Larguras: o tema fixa o calendario em 318px e cada dayContainer em 298px.
   Aqui os dois viram fluidos (width:100% / flex) e quem manda na largura e o
   popover - assim 1 e 2 meses saem da mesma regra, sem conta de pixel.

   MONOCROMATICO: hierarquia por opacity/peso. A "tinta" (--color-btn-bg-01)
   so marca a ponta ATIVA e o botao de salvar. Como as vars de tema sao
   redefinidas em dark.css (:root), o bloco vira tema escuro sozinho - a
   excecao e --uc-surface, que ja tem elevacao propria la.
   =========================================================================== */

.ap-dtp {
    position: fixed;
    z-index: 1000000;
    width: 470px;
    /* Sem padding: a coluna de atalhos encosta na borda e o rodape tem o seu. */
    background: var(--uc-surface);
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 14px 38px -8px #00000026, 0 4px 12px -6px #0000001a;
    font-size: 13px;
    line-height: 1.35;
    text-align: left;
    text-transform: none;
    overflow: hidden;
    opacity: 0;
    transform: translateY(-5px) scale(0.985);
    transform-origin: top center;
    transition: opacity 0.14s ease, transform 0.14s ease;
}

.ap-dtp.ap-dtp-2m {
    width: 660px;
}

.ap-dtp.ap-dtp-aberto {
    opacity: 1;
    transform: translateY(0) scale(1);
}

.ap-dtp-corpo {
    display: flex;
    align-items: stretch;
}

/* ---------- Coluna de atalhos ---------- */

.ap-dtp-atalhos {
    flex: none;
    width: 148px;
    padding: 8px 7px;
    border-right: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.ap-dtp-atalho {
    padding: 8px 10px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: background 0.15s ease;
}

.ap-dtp-atalho:hover {
    background: var(--color-hover-01);
}

/* Atalho que bate com a selecao atual: da para ver "isto e o mes inteiro" sem
   conferir as duas datas. */
.ap-dtp-atalho.atv {
    background: var(--color-bg-01);
    font-weight: 600;
}

/* ---------- Calendario ---------- */

.ap-dtp-cal {
    flex: 1 1 auto;
    min-width: 0;
    padding: 6px 8px 8px 8px;
}

/* O input so existe para o flatpickr se ancorar; quem aparece e a grade. */
.ap-dtp-cal .ap-dtp-inp {
    display: none;
}

/* Dentro do popover o calendario nao e uma superficie propria - some com a
   moldura e vira fluido (o tema fixa 318px, que so serve para um mes). */
.ap-dtp .flatpickr-calendar.inline {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
}

.ap-dtp .flatpickr-months {
    padding: 0 0 2px 0 !important;
}

.ap-dtp .flatpickr-days,
.ap-dtp .flatpickr-weekdays {
    width: 100% !important;
}

/* Cada mes ocupa metade (ou tudo, com um mes so) - nada de largura fixa. */
.ap-dtp .flatpickr-days .dayContainer,
.ap-dtp .flatpickr-weekdaycontainer {
    flex: 1 1 0 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
}

.ap-dtp .flatpickr-day {
    height: 36px !important;
    line-height: 36px !important;
    border-radius: 10px !important;
}

/* Dias de preenchimento do inicio/fim de mes.
   So acontece com DOIS meses: nesse modo o flatpickr marca os dias vizinhos
   com .hidden e conta com o `visibility: hidden` dele - que mantem o lugar na
   grade. Acontece que este projeto tem um `.hidden { display: none !important }`
   global (topo do painel3.css) e o !important derruba a regra do plugin: os
   espacadores sumiam do layout, a semana inteira escorregava para a esquerda
   (dia 2 de julho, uma quinta, caia embaixo de SEG) e a ultima linha, sem os
   7 elementos, se abria por causa do `justify-content: space-around`. */
.ap-dtp .flatpickr-day.hidden {
    display: block !important;
    visibility: hidden !important;
}

/* Cinto de seguranca do mesmo problema: alinhado a esquerda, uma linha
   incompleta nunca se espalha. */
.ap-dtp .flatpickr-days .dayContainer {
    justify-content: flex-start !important;
}

/* MIOLO da faixa: quadrado e sem sombra.
   Duas coisas se somavam aqui e faziam as celulas "borbulharem" uma sobre a
   outra: (1) a regra de raio logo acima mora no FIM do arquivo e vencia por
   ordem a `.inRange { border-radius: 0 }` do tema (mesma especificidade), e
   (2) o tema herda do flatpickr um `box-shadow: -5px/+5px` que existe so para
   tapar o vao entre celulas - vao que aqui nao existe, porque o tema ja da
   `max-width: none` e as celulas se tocam. Sobrava sombra vazando para fora
   de um retangulo arredondado. */
.ap-dtp .flatpickr-day.inRange {
    border-radius: 0 !important;
    box-shadow: none !important;
}

/* O anel de "hoje" e box-shadow tambem - nao pode morrer junto. */
.ap-dtp .flatpickr-day.inRange.today {
    box-shadow: inset 0 0 0 1.5px var(--fp-today-ring) !important;
}

/* Ponta do intervalo: a face arredondada e a de fora, para a faixa emendar
   sem degrau no miolo. */
.ap-dtp .flatpickr-day.startRange {
    border-radius: 10px 0 0 10px !important;
}

.ap-dtp .flatpickr-day.endRange {
    border-radius: 0 10px 10px 0 !important;
}

/* Data unica (ou as duas pontas no mesmo dia): circulo cheio. */
.ap-dtp .flatpickr-day.startRange.endRange {
    border-radius: 10px !important;
}

/* Separador entre os dois meses (o flatpickr usa um cinza fixo). */
.ap-dtp-2m .dayContainer+.dayContainer {
    box-shadow: -1px 0 0 var(--color-border) !important;
}

/* ---------- Rodape: as duas pontas + acoes ---------- */

.ap-dtp-pe {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px 10px 11px;
    border-top: 1px solid var(--color-border);
}

.ap-dtp-campos {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.ap-dtp-campo {
    min-width: 0;
    padding: 5px 8px 6px 9px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    cursor: pointer;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.ap-dtp-campo:hover {
    background: var(--color-hover-01);
}

/* Ponta ativa: e ela que o proximo clique no calendario altera. */
.ap-dtp-campo.atv {
    border-color: var(--color-btn-bg-01);
    background: var(--color-bg-01);
}

.ap-dtp-campo-lbl {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    opacity: 0.45;
    line-height: 12px;
}

.ap-dtp-campo-linha {
    display: flex;
    align-items: center;
    gap: 5px;
    /* min-height, nao height: a moldura do controle de hora e mais alta que a
       linha de texto e nao ha box-sizing global neste projeto. */
    min-height: 22px;
}

.ap-dtp-campo-val {
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
}

.ap-dtp-campo.vazio .ap-dtp-campo-val {
    font-weight: 500;
    opacity: 0.38;
}

/* Hora da PONTA, do lado da data a que pertence - resolve a duvida que a barra
   de hora do flatpickr criava ("hora de qual das duas?").
   Precisa PARECER campo: como texto cinza solto (a primeira versao) ninguem
   descobria que dava para editar. Relogio + moldura no hover/foco resolvem. */
.ap-dtp-hora-wrap {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    box-sizing: border-box;
    height: 22px;
    margin: 0;
    padding: 0 4px;
    border: 1px solid transparent;
    border-radius: 6px;
    cursor: text;
    transition: background 0.15s ease, border-color 0.15s ease;
}

.ap-dtp-hora-wrap:hover {
    background: var(--color-hover-01);
    border-color: var(--color-border);
}

.ap-dtp-hora-wrap:focus-within {
    background: var(--color-hover-01);
    border-color: var(--color-btn-bg-01);
}

.ap-dtp-hora-wrap svg {
    width: 11px;
    height: 11px;
    flex: none;
    fill: var(--color-text-01);
    opacity: 0.45;
}

.ap-dtp-hora-wrap:hover svg,
.ap-dtp-hora-wrap:focus-within svg {
    opacity: 0.8;
}

.ap-dtp-hora {
    width: 42px;
    padding: 0;
    border: 0;
    background: none;
    color: inherit;
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    line-height: 18px;
    opacity: 0.75;
    cursor: text;
    /* Sem isso o campo de hora nativo desenha fundo branco no tema escuro. */
    color-scheme: light dark;
}

.ap-dtp-hora:focus {
    outline: none;
    opacity: 1;
}

/* O icone nativo e o relogio proprio ficariam duplicados; o nosso e o que
   herda a cor do tema. */
.ap-dtp-hora::-webkit-calendar-picker-indicator {
    display: none;
}

.ap-dtp-hora::-webkit-datetime-edit {
    padding: 0;
}

.ap-dtp-campo-x {
    width: 16px;
    height: 16px;
    padding: 4px;
    border-radius: 50%;
    opacity: 0;
    transition: opacity 0.15s ease, background 0.15s ease;
}

.ap-dtp-campo:hover .ap-dtp-campo-x {
    opacity: 0.45;
}

.ap-dtp-campo-x:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.ap-dtp-campo-x svg {
    width: 8px;
    height: 8px;
    display: block;
    fill: var(--color-text-01);
}

.ap-dtp-seta {
    flex: none;
    opacity: 0.3;
    font-size: 13px;
}

.ap-dtp-acoes {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-left: auto;
}

.ap-dtp-limpar {
    font-size: 12.5px;
    font-weight: 500;
    opacity: 0.5;
    cursor: pointer;
    padding: 6px 4px;
    white-space: nowrap;
}

.ap-dtp-limpar:hover {
    opacity: 1;
}

.ap-dtp-btn {
    padding: 7px 14px 8px 14px;
    border-radius: 9px;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.15s ease, background 0.15s ease;
}

.ap-dtp-cancelar {
    opacity: 0.55;
}

.ap-dtp-cancelar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.ap-dtp-ok {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.ap-dtp-ok.off {
    opacity: 0.3;
    cursor: not-allowed;
}

.ap-dtp-erro {
    display: none;
    padding: 0 11px 10px 11px;
    font-size: 12px;
    line-height: 15px;
    opacity: 0.6;
}

.ap-dtp-erro.mostrar {
    display: block;
}

/* Enquanto o picker esta aberto, o campo de origem fica "preso" - assim se sabe
   de onde ele saiu mesmo com os dois campos empilhados. */
.ap-dtp-origem {
    background: var(--color-hover-01);
}

/* ---------- Mobile ----------
   Tela estreita: o popover vira uma FOLHA ancorada embaixo, largura cheia -
   mesmo padrao (e mesmo corte de 600px) do .ap-usercard. O JS reconhece isto,
   para de calcular coordenadas e para de fechar na rolagem (a folha nao segue
   ancora nenhuma). Um mes so ja vem do JS, que exige 720px para dois. */

@media (max-width: 600px) {
    .ap-dtp {
        left: 10px !important;
        right: 10px !important;
        top: auto !important;
        bottom: 10px !important;
        width: auto !important;
        /* Em paisagem a folha nao pode passar da tela: o corpo e que rola. */
        max-height: calc(100vh - 20px);
        display: flex;
        flex-direction: column;
        transform-origin: bottom center;
        transform: translateY(12px);
    }

    .ap-dtp.ap-dtp-aberto {
        transform: none;
    }

    /* Corpo rola; o rodape com as datas e as acoes fica sempre a vista. */
    .ap-dtp-corpo {
        display: block;
        flex: 1 1 auto;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
    }

    .ap-dtp-pe {
        flex: none;
        flex-wrap: wrap;
        row-gap: 8px;
    }

    .ap-dtp-erro {
        flex: none;
    }

    /* Atalhos viram faixa rolavel no topo. */
    .ap-dtp-atalhos {
        width: auto;
        flex-direction: row;
        gap: 6px;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
        border-right: 0;
        border-bottom: 1px solid var(--color-border);
    }

    .ap-dtp-atalhos::-webkit-scrollbar {
        display: none;
    }

    .ap-dtp-atalho {
        flex: none;
        border: 1px solid var(--color-border);
        border-radius: 100px;
        padding: 7px 12px;
    }

    /* Alvo de toque confortavel na grade (36px e alvo de mouse, nao de dedo). */
    .ap-dtp .flatpickr-day {
        height: 44px !important;
        line-height: 44px !important;
        font-size: 14px !important;
    }

    /* As duas pontas dividem a linha e podem encolher - no desktop elas cabem
       lado a lado, aqui nao. */
    .ap-dtp-campos {
        width: 100%;
    }

    .ap-dtp-campo {
        flex: 1 1 0;
        padding: 6px 8px 7px 9px;
    }

    .ap-dtp-campo-val {
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* Sem hover no toque: o X de limpar a ponta precisa estar sempre visivel,
       senao nao ha como esvaziar a data pelo celular. */
    .ap-dtp-campo-x {
        opacity: 0.4;
    }

    .ap-dtp-acoes {
        width: 100%;
        margin-left: 0;
        justify-content: flex-end;
    }

    .ap-dtp-btn,
    .ap-dtp-limpar {
        padding-top: 9px;
        padding-bottom: 10px;
    }

    /* O relogio tambem vira alvo de dedo (e no celular ele abre o seletor
       nativo de hora, entao precisa acertar de primeira). */
    .ap-dtp-hora-wrap {
        height: 30px;
        padding: 0 6px;
        border-color: var(--color-border);
    }

    .ap-dtp-hora {
        font-size: 13px;
        opacity: 1;
    }
}

/* ---------- Celula de data do popup da tarefa ---------- */

/* Nao e mais um <input> do flatpickr: e texto humanizado com o valor cru em
   data-valor (ver htmlTarefaData). NAO reusa .date-basic - aquela classe tem
   `height: 19px` (metrica de input) e cortava a linha ao meio. */
.tarefa .parametros .valor.data .t-data-txt {
    float: left;
    width: calc(100% - 19px);
    height: 34px;
    line-height: 34px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    text-align: left;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---------- Pill de periodo do objetivo ---------- */

.editarPerfis #tabd2-4 .item-objetivo .data {
    cursor: pointer;
}

.editarPerfis #tabd2-4 .item-objetivo .obj-data-txt {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    white-space: nowrap;
}

/* As duas pontas sao alvos separados: clicar no termino abre o picker ja
   focado nele. */
.editarPerfis #tabd2-4 .item-objetivo .obj-data-de,
.editarPerfis #tabd2-4 .item-objetivo .obj-data-ate {
    border-radius: 5px;
    padding: 0 2px;
    transition: background 0.15s ease;
}

.editarPerfis #tabd2-4 .item-objetivo .obj-data-de:hover,
.editarPerfis #tabd2-4 .item-objetivo .obj-data-ate:hover {
    background: var(--color-hover-01);
}

.editarPerfis #tabd2-4 .item-objetivo .obj-data-sep {
    opacity: 0.4;
}

/* ====================================================================
   CHECKOUT DE ASSINATURA - redesign
   Tudo escopado em .contant-assinatura-new (a raiz do fluxo de contratacao),
   entao nada aqui vaza para a tela "Minha assinatura" nem para o resto do app.

   Por que reescrever: o fluxo tinha cores cravadas (#1c88fd, #2563eb, #000,
   #e67e22, #2ecc71) que sumiam ou brigavam no dark mode, layout em float com
   larguras fixas em %, estilos inline nos botoes e nenhuma nocao de "em que
   passo eu estou". Aqui a regra e: cor so sai de token, estado ativo usa a
   tinta (--color-btn-bg-01) e o layout e grid/flex.
==================================================================== */

.contant-assinatura-new {
    --as-gap: 16px;
    --as-raio: 16px;
    --as-raio-sm: 11px;
}

.contant-assinatura-new .display {
    color: var(--color-text-01);
}

/* ---- Trilha de progresso ------------------------------------------------
   O passo atual e resolvido por :has() na etapa .atv - sem JS de sincronia.
   Etapa de cartao e de formas de pagamento sao o MESMO passo (5). */
.contant-assinatura-new .as-trilha {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 26px;
    padding-bottom: 18px;
    border-bottom: 1px solid var(--color-border);
    overflow-x: auto;
    scrollbar-width: none;
}

.contant-assinatura-new .as-trilha::-webkit-scrollbar {
    display: none;
}

.contant-assinatura-new .as-passo {
    display: flex;
    align-items: center;
    gap: 7px;
    flex: 0 0 auto;
    font-size: 12.5px;
    font-weight: 500;
    opacity: 0.4;
    transition: opacity 0.25s ease;
}

/* Traco de ligacao entre os passos. */
.contant-assinatura-new .as-passo+.as-passo::before {
    content: "";
    width: 18px;
    height: 1px;
    background: currentColor;
    opacity: 0.35;
    margin-right: 1px;
}

.contant-assinatura-new .as-passo-bola {
    width: 21px;
    height: 21px;
    flex: 0 0 21px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid currentColor;
    font-size: 11px;
    font-weight: 700;
}

/* Passo ATUAL: bola preenchida com a tinta + rotulo em peso cheio. */
.contant-assinatura-new:has(.assinatura-etapa.planos.atv) .as-passo[data-p="1"],
.contant-assinatura-new:has(.assinatura-etapa.confg-armazenamento.atv) .as-passo[data-p="2"],
.contant-assinatura-new:has(.assinatura-etapa.confg-ia-creditos.atv) .as-passo[data-p="3"],
.contant-assinatura-new:has(.assinatura-etapa.resumo.atv) .as-passo[data-p="4"],
.contant-assinatura-new:has(.assinatura-etapa.formas-de-pagamento.atv) .as-passo[data-p="5"],
.contant-assinatura-new:has(.assinatura-etapa.forma-de-pagamento-cartao-preencher.atv) .as-passo[data-p="5"] {
    opacity: 1;
    font-weight: 700;
}

.contant-assinatura-new:has(.assinatura-etapa.planos.atv) .as-passo[data-p="1"] .as-passo-bola,
.contant-assinatura-new:has(.assinatura-etapa.confg-armazenamento.atv) .as-passo[data-p="2"] .as-passo-bola,
.contant-assinatura-new:has(.assinatura-etapa.confg-ia-creditos.atv) .as-passo[data-p="3"] .as-passo-bola,
.contant-assinatura-new:has(.assinatura-etapa.resumo.atv) .as-passo[data-p="4"] .as-passo-bola,
.contant-assinatura-new:has(.assinatura-etapa.formas-de-pagamento.atv) .as-passo[data-p="5"] .as-passo-bola,
.contant-assinatura-new:has(.assinatura-etapa.forma-de-pagamento-cartao-preencher.atv) .as-passo[data-p="5"] .as-passo-bola {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    border-color: var(--color-btn-bg-01);
}

/* Passos JA CONCLUIDOS: meio-tom, para dar nocao de avanco. */
.contant-assinatura-new:has(.assinatura-etapa.confg-armazenamento.atv) .as-passo[data-p="1"],
.contant-assinatura-new:has(.assinatura-etapa.confg-ia-creditos.atv) .as-passo[data-p="1"],
.contant-assinatura-new:has(.assinatura-etapa.confg-ia-creditos.atv) .as-passo[data-p="2"],
.contant-assinatura-new:has(.assinatura-etapa.resumo.atv) .as-passo[data-p="1"],
.contant-assinatura-new:has(.assinatura-etapa.resumo.atv) .as-passo[data-p="2"],
.contant-assinatura-new:has(.assinatura-etapa.resumo.atv) .as-passo[data-p="3"],
.contant-assinatura-new:has(.assinatura-etapa.formas-de-pagamento.atv) .as-passo[data-p="1"],
.contant-assinatura-new:has(.assinatura-etapa.formas-de-pagamento.atv) .as-passo[data-p="2"],
.contant-assinatura-new:has(.assinatura-etapa.formas-de-pagamento.atv) .as-passo[data-p="3"],
.contant-assinatura-new:has(.assinatura-etapa.formas-de-pagamento.atv) .as-passo[data-p="4"],
.contant-assinatura-new:has(.assinatura-etapa.forma-de-pagamento-cartao-preencher.atv) .as-passo[data-p="1"],
.contant-assinatura-new:has(.assinatura-etapa.forma-de-pagamento-cartao-preencher.atv) .as-passo[data-p="2"],
.contant-assinatura-new:has(.assinatura-etapa.forma-de-pagamento-cartao-preencher.atv) .as-passo[data-p="3"],
.contant-assinatura-new:has(.assinatura-etapa.forma-de-pagamento-cartao-preencher.atv) .as-passo[data-p="4"] {
    opacity: 0.72;
}

/* Tela de sucesso nao tem passo: a trilha sai de cena. */
.contant-assinatura-new:has(.assinatura-etapa.assinatura-sucess.atv) .as-trilha {
    display: none;
}

/* ---- Cabecalho das etapas ---------------------------------------------- */
.contant-assinatura-new .hrd-popup {
    padding: 0 24px 20px 0;
}

.contant-assinatura-new .hrd-popup h3 {
    font-size: 27px;
    font-weight: 700;
    line-height: 1.15;
    margin: 0 0 8px;
}

.contant-assinatura-new .hrd-popup .description {
    font-size: 13.5px;
    line-height: 1.5;
    opacity: 0.6;
}

.contant-assinatura-new .hrd-popup .bt-voltar {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    text-transform: none;
    letter-spacing: 0;
    font-size: 12.5px;
    font-weight: 600;
    opacity: 0.55;
    padding: 5px 11px 5px 8px;
    margin: 0 0 14px -8px;
    border-radius: 100px;
}

.contant-assinatura-new .hrd-popup .bt-voltar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.contant-assinatura-new .hrd-popup .bt-voltar svg {
    width: 13px;
    height: 13px;
    float: none;
    margin: 0;
    fill: currentColor;
}

/* Precisa de 3 classes: as regras por etapa (.assinatura-etapa.confg-* .plano-nome)
   valem 0,3,0 e venciam o chip, devolvendo padding lateral 0 e o sublinhado. */
.contant-assinatura-new .assinatura-etapa .plano-nome {
    display: inline-block;
    width: fit-content;
    font-size: 12px;
    font-weight: 500;
    padding: 4px 11px;
    margin-bottom: 12px;
    border-radius: 100px;
    background: var(--color-bg-01);
    opacity: 0.85;
}

.contant-assinatura-new .assinatura-etapa .plano-nome strong {
    text-decoration: none;
    font-weight: 700;
}

/* ---- Etapa 1: cards de plano ------------------------------------------- */
.contant-assinatura-new .assinatura-etapa .hrd-popup,
.contant-assinatura-new .assinatura-etapa .lst-planos-select {
    float: none;
    width: 100%;
}

.contant-assinatura-new .lst-planos-select {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
    gap: var(--as-gap);
    align-items: stretch;
}

.contant-assinatura-new .lst-planos-select .item {
    display: flex;
    flex-direction: column;
    position: relative;
    margin: 0;
    padding: 20px 18px 18px;
    border: 1px solid var(--color-border);
    border-radius: var(--as-raio);
    /* --color-bg-01 e nao --color-bg: no dark o popup ja e preto puro, entao um
       card com --color-bg sumiria dentro dele. */
    background: var(--color-bg-01);
    transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.contant-assinatura-new .lst-planos-select .item:hover {
    transform: translateY(-2px);
    border-color: var(--color-text-01);
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.09);
}

/* Plano em destaque: borda cheia na tinta, sem cor de acento. */
.contant-assinatura-new .lst-planos-select .item.is-destaque {
    border-color: var(--color-btn-bg-01);
    box-shadow: 0 0 0 1px var(--color-btn-bg-01) inset;
}

.contant-assinatura-new .lst-planos-select .item.is-atual {
    background: transparent;
    border-style: dashed;
    opacity: 0.72;
}

.contant-assinatura-new .lst-planos-select .item.is-atual:hover {
    transform: none;
    box-shadow: none;
    border-color: var(--color-border);
}

.contant-assinatura-new .lst-planos-select .pl-tag {
    position: absolute;
    top: -9px;
    left: 16px;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 100px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.contant-assinatura-new .lst-planos-select .pl-tag-atual {
    background: var(--color-bg);
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
}

.contant-assinatura-new .lst-planos-select .item .ttl {
    font-size: 15px;
    font-weight: 600;
    line-height: 1.2;
    margin: 0 0 6px;
    opacity: 0.7;
}

.contant-assinatura-new .lst-planos-select .pl-preco {
    display: flex;
    align-items: baseline;
    gap: 2px;
    font-size: 31px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -0.5px;
    margin-bottom: 16px;
}

.contant-assinatura-new .lst-planos-select .pl-moeda {
    font-size: 15px;
    font-weight: 600;
    opacity: 0.5;
    margin-right: 1px;
}

.contant-assinatura-new .lst-planos-select .pl-periodo {
    font-size: 13px;
    font-weight: 500;
    opacity: 0.45;
}

.contant-assinatura-new .lst-planos-select .pl-vantagens {
    list-style: none;
    margin: 0 0 12px;
    padding: 14px 0 0;
    border-top: 1px solid var(--color-border);
    flex: 1 1 auto;
}

.contant-assinatura-new .lst-planos-select .pl-vantagens li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12.5px;
    line-height: 1.45;
    padding: 5px 0;
    opacity: 0.85;
}

.contant-assinatura-new .lst-planos-select .pl-check {
    width: 13px;
    height: 13px;
    flex: 0 0 13px;
    margin-top: 3px;
    opacity: 0.55;
}

.contant-assinatura-new .lst-planos-select .pl-vantagens strong {
    font-weight: 700;
}

/* "Ver todas as funcionalidades" era um gradiente roxo/ciano que nao existe em
   nenhum outro lugar do sistema. Vira link discreto. */
.contant-assinatura-new .lst-planos-select .btn-mais-vantagens {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: fit-content;
    margin: 0 0 14px;
    padding: 0;
    font-size: 12px;
    font-weight: 600;
    color: inherit;
    opacity: 0.55;
    background: none;
    border: 0;
    border-radius: 0;
    cursor: pointer;
    transition: opacity 0.2s ease;
}

.contant-assinatura-new .lst-planos-select .btn-mais-vantagens:hover {
    opacity: 1;
    color: inherit;
    background: none;
    border-color: transparent;
    box-shadow: none;
    text-decoration: underline;
}

.contant-assinatura-new .lst-planos-select .btn-mais-vantagens svg {
    width: 13px;
    height: 13px;
}

/* Botao do card: rodape de largura cheia, nao mais um chip no canto. */
.contant-assinatura-new .lst-planos-select .item .bt-continuar {
    position: static;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    box-sizing: border-box;
    padding: 11px 14px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 100px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    fill: currentColor;
    transition: 0.2s;
}

.contant-assinatura-new .lst-planos-select .item:hover .bt-continuar,
.contant-assinatura-new .lst-planos-select .item.is-destaque .bt-continuar {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    fill: var(--color-btn-text-01);
}

.contant-assinatura-new .lst-planos-select .item .bt-continuar svg {
    width: 14px;
    height: 14px;
    margin: 0;
}

.contant-assinatura-new .lst-planos-select .item .bt-continuar.hidden {
    display: none;
}

/* ---- Etapas 2 e 3: armazenamento e creditos de IA ----------------------
   Eram dois layouts diferentes para a MESMA decisao (slider + preco). Agora
   as duas usam o mesmo par: cabecalho a esquerda, painel de escolha a direita. */
.contant-assinatura-new .assinatura-etapa.confg-armazenamento.atv,
.contant-assinatura-new .assinatura-etapa.confg-ia-creditos.atv {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 24px;
    align-items: start;
    min-height: 0;
}

.contant-assinatura-new .assinatura-etapa.confg-armazenamento .hrd-popup,
.contant-assinatura-new .assinatura-etapa.confg-ia-creditos .hrd-popup {
    width: auto;
    padding-right: 0;
    float: none;
}

.contant-assinatura-new .armazenamento-extra-container {
    width: auto;
    margin: 0;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 22px 20px;
    border: 1px solid var(--color-border);
    border-radius: var(--as-raio);
    background: var(--color-bg-01);
}

.contant-assinatura-new .armazenamento-unidade {
    display: inline-flex;
    gap: 4px;
    align-self: center;
    margin: 0;
    padding: 3px;
    border-radius: 100px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
}

.contant-assinatura-new .btn-unidade {
    padding: 5px 20px;
    border: 0;
    border-radius: 100px;
    background: transparent;
    color: var(--color-text-01);
    opacity: 0.55;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    transition: 0.2s;
}

.contant-assinatura-new .btn-unidade.active {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    opacity: 1;
}

.contant-assinatura-new .armazenamento-info {
    text-align: center;
}

.contant-assinatura-new .armazenamento-valor {
    font-size: 33px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.5px;
}

.contant-assinatura-new .armazenamento-valor .ia-creditos-total {
    display: block;
    margin-top: 4px;
    font-size: 12.5px;
    font-weight: 500;
    opacity: 0.55;
}

.contant-assinatura-new .armazenamento-preco {
    margin-top: 8px;
    font-size: 13px;
    font-weight: 500;
    opacity: 0.7;
}

.contant-assinatura-new .armazenamento-preco strong {
    font-weight: 600;
}

/* Slider monocromatico: o trilho preenchido usa a tinta, nao azul. O gradiente
   inline do JS (atualizarArmazenamento/atualizarIaCreditos) desenha o preenchimento,
   por isso aqui so ficam altura, raio e o thumb. */
.contant-assinatura-new .armazenamento-range {
    width: 100%;
    appearance: none;
    -webkit-appearance: none;
    height: 6px;
    border-radius: 100px;
    outline: none;
    cursor: pointer;
}

.contant-assinatura-new .armazenamento-range::-webkit-slider-thumb {
    appearance: none;
    -webkit-appearance: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    border: 3px solid var(--color-bg);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    cursor: pointer;
    transition: transform 0.15s ease;
}

.contant-assinatura-new .armazenamento-range::-webkit-slider-thumb:hover {
    transform: scale(1.12);
}

.contant-assinatura-new .armazenamento-range::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    border: 3px solid var(--color-bg);
    cursor: pointer;
}

/* Caixa "o que voce ja tem contratado" (aparece so para quem esta alterando). */
.contant-assinatura-new .box-plano-armazenamento-atual {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin: 0;
    padding: 0 0 12px;
    border: 0;
    border-bottom: 1px solid var(--color-border);
    border-radius: 0;
    background: none;
}

.contant-assinatura-new .box-plano-armazenamento-atual h5 {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
    opacity: 0.55;
    margin: 0;
}

.contant-assinatura-new .box-plano-armazenamento-atual .armazenamento {
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.2;
}

/* A segunda .armazenamento (o "em uso", so no passo de armazenamento) desce
   para uma linha propria em vez de disputar espaco na mesma. */
.contant-assinatura-new .box-plano-armazenamento-atual .armazenamento+.armazenamento {
    flex: 1 0 100%;
    text-align: right;
    font-size: 12px;
    font-weight: 500;
    opacity: 0.55;
}

.contant-assinatura-new .ia-creditos-inclusos {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 14px;
    padding: 11px 13px;
    border: 1px solid var(--color-border);
    border-radius: var(--as-raio-sm);
    background: var(--color-bg-01);
    font-size: 12.5px;
    line-height: 1.45;
    color: inherit;
}

.contant-assinatura-new .ia-creditos-inclusos .ico {
    display: block;
    flex: 0 0 15px;
    margin-top: 1px;
    opacity: 0.6;
}

/* Sem este wrapper o texto ficava solto dentro do flex e cada <strong> virava
   uma coluna (a frase quebrava em blocos verticais). */
.contant-assinatura-new .ia-creditos-inclusos .ia-inc-txt {
    flex: 1 1 auto;
    min-width: 0;
}

/* Aviso de piso do downgrade - era style inline laranja. */
.contant-assinatura-new .armazenamento-aviso-minimo {
    margin: 0;
    padding: 10px 12px;
    border-radius: var(--as-raio-sm);
    border: 1px solid rgba(245, 158, 11, 0.35);
    background: rgba(245, 158, 11, 0.1);
    font-size: 12px;
    line-height: 1.45;
    color: inherit;
}

/* ---- Etapa 4: resumo ---------------------------------------------------- */
.contant-assinatura-new .assinatura-etapa.resumo.atv {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 24px;
    align-items: start;
}

.contant-assinatura-new .assinatura-etapa.resumo .hrd-popup {
    width: auto;
    float: none;
}

.contant-assinatura-new .box-fatura-itens {
    float: none;
    width: auto;
    /* sem padding embaixo: o .resumo-fim sangra ate as bordas e ja tem o seu.
       overflow hidden para o raio recortar esse bloco de fundo cheio. */
    padding: 6px 16px 0;
    border: 1px solid var(--color-border);
    border-radius: var(--as-raio);
    background: var(--color-bg-01);
    overflow: hidden;
}

.contant-assinatura-new .box-fatura-itens label {
    display: block;
    width: auto;
    margin: 14px 0 2px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.5px;
    text-transform: uppercase;
    opacity: 0.42;
}

.contant-assinatura-new .box-fatura-itens label:first-child {
    margin-top: 10px;
}

/* Grade de duas colunas: os valores alinham entre si em vez de cada linha
   empurrar o seu para a direita com largura propria. */
.contant-assinatura-new .box-fatura-itens .ft-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 14px;
    width: auto;
    margin: 0;
    padding: 10px 0;
    font-size: 13.5px;
    border-bottom: 1px solid var(--color-border);
}

/* Sublinha explicativa dentro da linha (base de calculo do cupom, origem do
   credito). Vem depois do rotulo, em corpo menor. */
.contant-assinatura-new .box-fatura-itens .ft-item .left em {
    display: block;
    margin-top: 2px;
    font-style: normal;
    font-size: 11.5px;
    font-weight: 400;
    opacity: 0.6;
}

/* Selo no item que RECEBE o desconto. Sem ele, com armazenamento e IA na conta,
   o cliente calcula a porcentagem sobre o total e acha que o cupom falhou. */
.contant-assinatura-new .box-fatura-itens .ft-selo {
    display: inline-block;
    margin-left: 7px;
    padding: 1px 7px;
    border-radius: 100px;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.2px;
    color: #16a34a;
    background: rgba(22, 163, 74, 0.12);
    vertical-align: 1px;
}

/* Subtotal fecha a lista de itens: e sobre ele que o desconto e lido. */
.contant-assinatura-new .box-fatura-itens .ft-subtotal {
    font-weight: 600;
    border-bottom: 0;
    padding-bottom: 4px;
}

.contant-assinatura-new .box-fatura-itens .ft-item .left,
.contant-assinatura-new .box-fatura-itens .ft-item .right {
    float: none;
    width: auto;
}

.contant-assinatura-new .box-fatura-itens .ft-item .right {
    font-weight: 600;
    white-space: nowrap;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.contant-assinatura-new .box-fatura-itens .ft-desconto .right {
    color: #16a34a;
}

.contant-assinatura-new .box-fatura-itens .ft-nota-desconto {
    color: #16a34a;
    font-weight: 600;
}

/* Fechamento: sai da lista e vira um bloco proprio, para o total nao ser
   apenas "mais uma linha" com fonte maior. */
.contant-assinatura-new .box-fatura-itens .resumo-fim {
    margin: 12px -16px 0;
    padding: 14px 16px;
    background: var(--color-bg);
}

/* Linha da recorrencia: mesma grade do total, mas discreta. Ela informa o
   compromisso ("todo mes cobra X"); o destaque continua sendo o que se paga
   agora. Quando os dois numeros coincidem, o peso diferente evita parecer erro. */
.contant-assinatura-new .box-fatura-itens .rs-recorrencia {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 14px;
    padding-bottom: 9px;
    margin-bottom: 9px;
    border-bottom: 1px solid var(--color-border);
    font-size: 13px;
    opacity: 0.72;
}

.contant-assinatura-new .box-fatura-itens .rs-rec-lbl {
    text-transform: capitalize;
}

.contant-assinatura-new .box-fatura-itens .rs-rec-val {
    font-weight: 600;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.contant-assinatura-new .box-fatura-itens .rs-total {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: baseline;
    gap: 14px;
}

.contant-assinatura-new .box-fatura-itens .rs-total-lbl {
    font-size: 13.5px;
    font-weight: 600;
}

.contant-assinatura-new .box-fatura-itens .rs-total-val {
    font-size: 26px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -0.6px;
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.contant-assinatura-new .box-fatura-itens .rs-nota {
    margin-top: 7px;
    font-size: 12px;
    line-height: 1.45;
    opacity: 0.6;
}

.contant-assinatura-new .box-fatura-itens .rs-nota strong {
    font-weight: 600;
}

/* Cupom: caso de excecao, nao decisao. Fechado por padrao, sem caixa nem fundo
   - so um link discreto. Quem tem cupom acha; quem nao tem nem para para ler. */
.contant-assinatura-new .box-cupom {
    margin: 20px 0 0;
    padding: 0;
    border: 0;
    background: none;
}

.contant-assinatura-new .box-cupom .cupom-toggle {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 10px 5px 8px;
    margin-left: -8px;
    border-radius: 100px;
    font-size: 12.5px;
    font-weight: 500;
    opacity: 0.55;
    cursor: pointer;
    transition: 0.2s;
}

.contant-assinatura-new .box-cupom .cupom-toggle:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.contant-assinatura-new .box-cupom .cupom-toggle svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}

.contant-assinatura-new .box-cupom .cupom-corpo {
    display: none;
    padding-top: 10px;
}

.contant-assinatura-new .box-cupom.is-aberto .cupom-corpo {
    display: block;
}

/* Aplicado: o link vira confirmacao verde, sem virar caixa. */
.contant-assinatura-new .box-cupom.is-aplicado .cupom-toggle {
    opacity: 1;
    font-weight: 600;
    color: #16a34a;
}

.contant-assinatura-new .box-cupom .cupom-container {
    display: flex;
    gap: 6px;
}

.contant-assinatura-new .box-cupom .cupom-container input {
    flex: 1 1 auto;
    float: none;
    width: auto;
    height: 36px;
    box-sizing: border-box;
    padding: 0 12px;
    font-size: 13px;
    border: 1px solid var(--color-border);
    border-radius: 100px;
    background: var(--color-bg);
    color: inherit;
}

/* Secundario de proposito: o botao principal da tela e "Continuar para
   pagamento". Aplicar cupom nao pode competir com ele. */
.contant-assinatura-new .box-cupom .cupom-container .aplicar-cupom {
    flex: 0 0 auto;
    float: none;
    margin: 0;
    padding: 0 18px;
    height: 36px;
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 600;
    border-radius: 100px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
    cursor: pointer;
    transition: 0.2s;
}

.contant-assinatura-new .box-cupom .cupom-container .aplicar-cupom:hover {
    background: var(--color-hover-01);
    border-color: var(--color-text-01);
}

.contant-assinatura-new .box-cupom .cupom-regra {
    margin-top: 8px;
    font-size: 11.5px;
    line-height: 1.4;
    opacity: 0.6;
}

/* ---- Etapa 5: formas de pagamento e cartao ------------------------------ */
.contant-assinatura-new .assinatura-etapa.formas-de-pagamento.atv,
.contant-assinatura-new .assinatura-etapa.forma-de-pagamento-cartao-preencher.atv {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 6fr);
    gap: 24px;
    align-items: start;
}

.contant-assinatura-new .assinatura-etapa .contant-right {
    float: none;
    width: auto;
}

.contant-assinatura-new .lst-formas-pagamento .item-forma-pagamemento {
    border-radius: var(--as-raio-sm);
    border: 1px solid var(--color-border);
    transition: 0.2s;
}

.contant-assinatura-new .lst-formas-pagamento .item-forma-pagamemento:hover {
    border-color: var(--color-text-01);
    transform: translateY(-1px);
}

.contant-assinatura-new .plano-escolhido {
    padding: 14px 16px;
    border: 1px solid var(--color-border);
    border-radius: var(--as-raio-sm);
    background: var(--color-bg-01);
}

.contant-assinatura-new .plano-escolhido .valor {
    font-size: 15px;
    font-weight: 600;
}

.contant-assinatura-new .plano-escolhido .nome {
    font-size: 12.5px;
    opacity: 0.65;
    margin-top: 3px;
}

/* margin inteira: o `.cartao .info-pagto` legado deixava 4px/3px de lado e o
   texto ficava recuado em relacao aos campos logo acima. */
.contant-assinatura-new .info-pagto {
    margin: 14px 0 0;
    font-size: 11.5px;
    line-height: 1.5;
    opacity: 0.55;
}

/* ---- Rodape de acoes ---------------------------------------------------- */
.contant-assinatura-new .assinatura-etapa.confg-armazenamento.atv::after,
.contant-assinatura-new .assinatura-etapa.confg-ia-creditos.atv::after,
.contant-assinatura-new .assinatura-etapa.resumo.atv::after,
.contant-assinatura-new .assinatura-etapa.formas-de-pagamento.atv::after,
.contant-assinatura-new .assinatura-etapa.forma-de-pagamento-cartao-preencher.atv::after {
    content: none;
}

.contant-assinatura-new .ftr-popup {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    float: none;
    width: 100%;
    padding: 18px 0 0;
    margin-top: 0;
    border-top: 1px solid var(--color-border);
    grid-column: 1 / -1;
}

.contant-assinatura-new .ftr-popup.ftr-centro {
    justify-content: center;
}

.contant-assinatura-new .ftr-popup .bt {
    float: none;
    width: auto;
    min-width: 150px;
    margin: 0;
    padding: 12px 26px;
    font-size: 14px;
    font-weight: 600;
    text-align: center;
    border-radius: 100px;
    background: transparent;
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    cursor: pointer;
    transition: 0.2s;
}

.contant-assinatura-new .ftr-popup .bt:hover {
    background: var(--color-hover-01);
}

.contant-assinatura-new .ftr-popup .bt.bt-proximo {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    border-color: var(--color-btn-bg-01);
}

.contant-assinatura-new .ftr-popup .bt.bt-proximo:hover {
    opacity: 0.88;
    background: var(--color-btn-bg-01);
}

/* ---- Sucesso ------------------------------------------------------------ */
.contant-assinatura-new .box-assinatura-sucesso {
    text-align: center;
    padding: 10px 0 0;
}

.contant-assinatura-new .box-assinatura-sucesso h3 {
    font-size: 26px;
    font-weight: 700;
    margin: 0 0 6px;
}

.contant-assinatura-new .box-assinatura-sucesso h5 {
    font-size: 14px;
    font-weight: 500;
    opacity: 0.55;
    margin: 0;
}

.contant-assinatura-new .box-assinatura-sucesso .icon {
    width: 116px;
    height: 116px;
    padding: 30px;
    box-sizing: border-box;
    margin: 26px auto;
    border: 0;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    display: flex;
    align-items: center;
    justify-content: center;
}

.contant-assinatura-new .box-assinatura-sucesso .icon svg {
    width: 100%;
    height: auto;
    fill: var(--color-btn-text-01) !important;
}

.contant-assinatura-new .box-assinatura-sucesso .ftr-popup {
    border-top: 0;
    padding-bottom: 8px;
}

/* ---- Responsivo --------------------------------------------------------- */
@media (max-width: 760px) {

    .contant-assinatura-new .assinatura-etapa.confg-armazenamento.atv,
    .contant-assinatura-new .assinatura-etapa.confg-ia-creditos.atv,
    .contant-assinatura-new .assinatura-etapa.resumo.atv,
    .contant-assinatura-new .assinatura-etapa.formas-de-pagamento.atv,
    .contant-assinatura-new .assinatura-etapa.forma-de-pagamento-cartao-preencher.atv {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .contant-assinatura-new .hrd-popup {
        padding-right: 0;
    }

    .contant-assinatura-new .hrd-popup h3 {
        font-size: 23px;
    }

    /* Trilha vira so as bolas: os rotulos nao cabem lado a lado. */
    .contant-assinatura-new .as-passo-nome {
        display: none;
    }

    .contant-assinatura-new .as-passo {
        gap: 0;
    }

    .contant-assinatura-new .ftr-popup {
        flex-direction: column-reverse;
    }

    .contant-assinatura-new .ftr-popup .bt {
        width: 100%;
        box-sizing: border-box;
    }
}

/* Trilho do slider antes do JS desenhar o preenchimento (evita input "pelado"
   no primeiro paint). O gradiente real vem de trilhoSliderAssinatura(). */
.contant-assinatura-new .armazenamento-range {
    background: var(--color-bg-01);
}

/* O checkout ganhou grid de planos: com 730px fixos as colunas ficavam
   espremidas. Cresce ate o limite do .boxpop (900px) e encolhe sozinho. */
.contant-assinatura-new.popup-contant-estrutura-02 {
    width: 100%;
    max-width: 860px;
}

/* ---- Formulario de cartao: itens que so existiam para UM tema --------------
   O bloco .cartao foi escrito no claro e remendado no dark.css. Sobraram tres
   detalhes cravados em branco, invisiveis no tema claro. Aqui viram token, e a
   especificidade (3 classes) passa na frente do dark.css sem desfazer o que ele
   corrige de verdade (fundo do campo, cor do label e do input). */
.contant-assinatura-new .cartao .form-group svg {
    fill: currentColor;
    opacity: 0.3;
}

.contant-assinatura-new .cartao .btn-what {
    border-color: var(--color-border);
    opacity: 0.65;
}

.contant-assinatura-new .cartao .form-group.focused {
    border-color: var(--color-text-01);
}

/* Erro de servidor nas abas da assinatura. O detalhe tecnico fica colapsado:
   e o painel do dono da conta, e sem ele diagnosticar exigia o log do servidor. */
.contant-assinatura-user .as-erro {
    padding: 14px 16px;
    border: 1px solid rgba(220, 38, 38, 0.35);
    background: rgba(220, 38, 38, 0.07);
    border-radius: 14px;
    font-size: 13px;
    line-height: 1.5;
}

.contant-assinatura-user .as-erro p {
    margin: 0;
}

.contant-assinatura-user .as-erro details {
    margin-top: 9px;
}

.contant-assinatura-user .as-erro summary {
    cursor: pointer;
    font-size: 12px;
    opacity: 0.7;
}

.contant-assinatura-user .as-erro code {
    display: block;
    margin-top: 7px;
    padding: 9px 11px;
    border-radius: 9px;
    background: var(--color-bg-01);
    font-size: 11.5px;
    line-height: 1.5;
    word-break: break-word;
    white-space: pre-wrap;
}

/* Paginador das abas da assinatura (extrato de IA). Contrato igual ao do admin:
   {pagina, totalPaginas, total}. */
.contant-assinatura-user .as-paginacao {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.contant-assinatura-user .as-pag-info {
    font-size: 12px;
    opacity: 0.55;
}

.contant-assinatura-user .as-pag-btns {
    display: flex;
    align-items: center;
    gap: 8px;
}

.contant-assinatura-user .as-pag-atual {
    font-size: 12px;
    opacity: 0.55;
    min-width: 48px;
    text-align: center;
}

.contant-assinatura-user .as-pag-bt {
    padding: 6px 14px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-text-01);
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    border-radius: 100px;
    cursor: pointer;
    transition: 0.18s;
}

.contant-assinatura-user .as-pag-bt:hover:not(:disabled) {
    background: var(--color-hover-01);
    border-color: var(--color-text-01);
}

.contant-assinatura-user .as-pag-bt:disabled {
    opacity: 0.35;
    cursor: default;
}

/* Enquanto troca de pagina, a tabela recua em vez de piscar vazia. */
.contant-assinatura-user .ia-extrato.is-carregando {
    opacity: 0.5;
    pointer-events: none;
}

/* Bloco "quando a cota de IA reinicia" (aba Creditos de IA). Fica logo abaixo do
   card de consumo: e a pergunta seguinte de quem viu os creditos acabando. */
.contant-assinatura-user .ia-ciclo {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    margin-top: 12px;
    padding: 13px 15px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg-01);
}

.contant-assinatura-user .ia-ciclo svg {
    width: 18px;
    height: 18px;
    flex: 0 0 18px;
    margin-top: 1px;
    opacity: 0.55;
}

.contant-assinatura-user .ia-ciclo-txt strong {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
    margin-bottom: 2px;
}

.contant-assinatura-user .ia-ciclo-txt span {
    font-size: 12px;
    line-height: 1.45;
    opacity: 0.6;
}

/* Renovacao proxima (<= 3 dias) e atrasada ganham cor semantica - nao e estado
   ativo de interface, entao nao entra na regra monocromatica. */
.contant-assinatura-user .ia-ciclo.perto {
    border-color: rgba(245, 158, 11, 0.4);
    background: rgba(245, 158, 11, 0.08);
}

.contant-assinatura-user .ia-ciclo.perto svg {
    color: #f59e0b;
    opacity: 1;
}

.contant-assinatura-user .ia-ciclo.atrasado {
    border-color: rgba(220, 38, 38, 0.4);
    background: rgba(220, 38, 38, 0.07);
}

.contant-assinatura-user .ia-ciclo.atrasado svg {
    color: #dc2626;
    opacity: 1;
}

/* ====================================================================
   CANCELAMENTO DE ASSINATURA - fluxo em etapas (#edit-popup-mini)
   Etapa visivel controlada por data-etapa no container.
==================================================================== */
.cancel-fluxo {
    padding: 20px 22px 22px;
    color: var(--color-text-01);
}

.cancel-fluxo .cx-etapa {
    display: none;
}

.cancel-fluxo[data-etapa="1"] .cx-etapa[data-e="1"],
.cancel-fluxo[data-etapa="2"] .cx-etapa[data-e="2"],
.cancel-fluxo[data-etapa="3"] .cx-etapa[data-e="3"],
.cancel-fluxo[data-etapa="4"] .cx-etapa[data-e="4"] {
    display: block;
}

.cancel-fluxo h3 {
    font-size: 21px;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 6px;
}

.cancel-fluxo .cx-sub {
    font-size: 13.5px;
    line-height: 1.5;
    opacity: 0.62;
    margin: 0 0 18px;
}

/* Voltar: seta reaproveita o icone de renovacao girado. */
.cancel-fluxo .cx-voltar {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 600;
    opacity: 0.55;
    padding: 5px 11px 5px 8px;
    margin: 0 0 12px -8px;
    border-radius: 100px;
    cursor: pointer;
}

.cancel-fluxo .cx-voltar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.cancel-fluxo .cx-voltar svg {
    width: 13px;
    height: 13px;
    transform: scaleX(-1);
}

/* ---- Etapa 1: motivos ---- */
.cancel-fluxo .cx-motivo {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 15px;
    margin-bottom: 8px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    cursor: pointer;
    transition: 0.18s;
}

.cancel-fluxo .cx-motivo:hover {
    border-color: var(--color-text-01);
    background: var(--color-hover-01);
    transform: translateY(-1px);
}

.cancel-fluxo .cx-motivo-txt {
    flex: 1 1 auto;
    min-width: 0;
}

.cancel-fluxo .cx-motivo-txt strong {
    display: block;
    font-size: 14px;
    font-weight: 600;
}

.cancel-fluxo .cx-motivo-txt span {
    font-size: 12.5px;
    opacity: 0.55;
}

.cancel-fluxo .cx-motivo svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    opacity: 0.35;
}

/* ---- Etapa 2: alternativa ---- */
.cancel-fluxo .cx-opcao {
    display: flex;
    align-items: center;
    gap: 14px;
    flex-wrap: wrap;
    padding: 15px 16px;
    margin-top: 12px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg-01);
}

.cancel-fluxo .cx-opcao-txt {
    flex: 1 1 220px;
    min-width: 0;
}

.cancel-fluxo .cx-opcao-txt strong {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 3px;
}

.cancel-fluxo .cx-opcao-txt span {
    font-size: 12.5px;
    line-height: 1.45;
    opacity: 0.62;
}

.cancel-fluxo .cx-opcao-bt {
    flex: 0 0 auto;
    padding: 9px 18px;
    font-size: 13px;
    font-weight: 600;
    border-radius: 100px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    text-decoration: none;
    cursor: pointer;
    transition: 0.18s;
}

.cancel-fluxo .cx-opcao-bt:hover {
    opacity: 0.88;
    color: var(--color-btn-text-01);
}

/* ---- Etapa 3: consequencias ---- */
.cancel-fluxo .cx-consequencias {
    list-style: none;
    margin: 0 0 18px;
    padding: 0;
}

.cancel-fluxo .cx-consequencias li {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 9px 0;
    font-size: 13px;
    line-height: 1.5;
    border-bottom: 1px solid var(--color-border);
}

.cancel-fluxo .cx-consequencias li:last-child {
    border-bottom: 0;
}

.cancel-fluxo .cx-consequencias svg {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    margin-top: 2px;
    opacity: 0.45;
}

.cancel-fluxo .cx-label {
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    opacity: 0.65;
    margin-bottom: 6px;
}

.cancel-fluxo .cx-comentario {
    width: 100%;
    box-sizing: border-box;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    background: var(--color-bg);
    color: inherit;
    font-size: 13px;
    font-family: inherit;
    resize: vertical;
}

/* ---- Acoes ---- */
.cancel-fluxo .cx-acoes {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: flex-end;
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid var(--color-border);
}

.cancel-fluxo .cx-acoes-centro {
    justify-content: center;
    border-top: 0;
}

.cancel-fluxo .cx-bt {
    padding: 11px 22px;
    font-size: 13.5px;
    font-weight: 600;
    text-align: center;
    border-radius: 100px;
    cursor: pointer;
    transition: 0.18s;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    border: 1px solid var(--color-btn-bg-01);
}

.cancel-fluxo .cx-bt:hover {
    opacity: 0.88;
}

/* Seguir/cancelar sao secundarios de PESO, nunca escondidos: a saida precisa
   estar sempre visivel e clicavel. */
.cancel-fluxo .cx-bt-sec {
    background: transparent;
    color: var(--color-text-01);
    border-color: var(--color-border);
}

.cancel-fluxo .cx-bt-sec:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

.cancel-fluxo .cx-bt-perigo {
    background: transparent;
    color: #dc2626;
    border-color: rgba(220, 38, 38, 0.45);
}

.cancel-fluxo .cx-bt-perigo:hover {
    background: rgba(220, 38, 38, 0.08);
    opacity: 1;
}

/* ---- Etapa 4: despedida ---- */
.cancel-fluxo .cx-fim-ico {
    width: 62px;
    height: 62px;
    margin: 4px auto 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-bg-01);
}

.cancel-fluxo .cx-fim-ico svg {
    width: 26px;
    height: 26px;
    opacity: 0.6;
}

.cancel-fluxo .cx-etapa[data-e="4"] {
    text-align: center;
}

.cancel-fluxo .cx-fim-txt {
    margin-bottom: 4px;
}

@media (max-width: 560px) {
    .cancel-fluxo .cx-acoes {
        flex-direction: column-reverse;
    }

    .cancel-fluxo .cx-bt {
        width: 100%;
        box-sizing: border-box;
    }
}

/* ==================================================================
   TELA INICIAL - linha de tarefa/conteudo dos blocos "em aberto"
   ------------------------------------------------------------------
   A linha e: [status] [titulo] .......... [urgencia] [vencimento] [pessoas].
   O lado direito e informacao de apoio: fica em voz baixa (opacidade) e
   so ganha contraste no hover da linha. Vencido e a unica excecao - ele
   PRECISA gritar mesmo parado, com a mesma pintura do cartao do quadro.
   As classes .ii-novo/.ii-flash/.ii-saindo sao do polling item a item
   (atualizaBlocoInicio, em browse/index.php).
   ================================================================== */

/* Grupo sem nenhum item: apagado e sem clique (o clique abriria uma
   caixa vazia, ja que o container dos itens agora existe sempre). */
.dash-bloco-info .ls-totais .t-it.is-vazio {
    opacity: 0.2;
    pointer-events: none;
}

.dash-inner-items .inner-item {
    gap: 8px;
    min-width: 0;
}

.dash-inner-items .inner-item .st-icon {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

/* O titulo cede espaco (elipse) para o lado direito caber inteiro, mas nunca
   some de vez - dai o min-width em vez de 0. */
.dash-inner-items .inner-item .item-titulo {
    flex: 1 1 auto;
    min-width: 40px;
}

.dash-inner-items .inner-item .ii-meta {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.dash-inner-items .inner-item .ii-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    line-height: 1;
    white-space: nowrap;
    opacity: 0.5;
    transition: opacity 0.2s ease;
}

.dash-inner-items .inner-item:hover .ii-chip {
    opacity: 0.85;
}

.dash-inner-items .inner-item .ii-chip svg {
    width: 11px;
    height: 11px;
    flex-shrink: 0;
}

.dash-inner-items .inner-item .ii-chip .qd-hr {
    opacity: 0.6;
    margin-left: 3px;
}

/* Urgencia: a cor e do dado (mesma paleta de prioridade do resto do
   sistema), entao ela vem da var e nao da tinta da interface. */
.dash-inner-items .inner-item .ii-prio {
    opacity: 0.85;
}

.dash-inner-items .inner-item .ii-prio svg {
    fill: var(--ii-prio, currentColor);
}

.dash-inner-items .inner-item .ii-prazo.hoje,
.dash-inner-items .inner-item .ii-prazo.amanha {
    opacity: 0.9;
    font-weight: 600;
}

.dash-inner-items .inner-item .ii-prazo.vencido,
.dash-inner-items .inner-item:hover .ii-prazo.vencido {
    opacity: 1;
    color: #d23838;
    font-weight: 600;
}

/* Responsaveis: mesmos avatares do resto do sistema, so menores. */
.dash-inner-items .inner-item .ii-membros {
    flex-shrink: 0;
    display: flex;
    align-items: center;
}

.dash-inner-items .inner-item .ii-membros .lst-membros-all {
    float: none;
    clear: none;
    padding: 0;
    display: flex;
    align-items: center;
}

.dash-inner-items .inner-item .ii-membros .lst-membros-all .item {
    float: none;
    margin-right: -6px;
}

.dash-inner-items .inner-item .ii-membros .thumb-user {
    width: 20px;
    height: 20px;
    font-size: 8px;
    margin: 0;
    border-width: 1.5px;
}

.dash-inner-items .inner-item .ii-membros .item-mais {
    float: none;
    font-size: 9px;
    height: 20px;
    width: 20px;
    line-height: 20px;
    text-align: center;
    border-radius: 50%;
    background: var(--color-hover-01);
    margin-left: 8px;
    opacity: 0.7;
}

/* ---- Transicoes do polling item a item ---- */
/* Item que acabou de entrar na lista: cresce da propria altura em vez de
   aparecer do nada, para o olho perceber que a lista MUDOU. */
.dash-inner-items .inner-item.ii-novo {
    animation: ii-entrada 0.32s ease;
}

@keyframes ii-entrada {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* Item que mudou de conteudo: um brilho curto, sem mexer no layout. */
.dash-inner-items .inner-item.ii-flash {
    animation: ii-destaque 1.4s ease;
}

@keyframes ii-destaque {

    0%,
    100% {
        background-color: transparent;
    }

    15% {
        background-color: var(--color-hover-01);
    }
}

/* Deslize curto de proposito: o .ls-totais e uma caixa de 260px com
   `overflow: auto` (media.css, min-width 901px) e a linha so tem ~9px de folga
   lateral - um deslocamento maior faria nascer barra de rolagem horizontal
   dentro do bloco durante a animacao. */
.dash-inner-items .inner-item.ii-saindo {
    opacity: 0;
    transform: translateX(4px);
    transition: opacity 0.25s ease, transform 0.25s ease;
    pointer-events: none;
}

/* Tela estreita: a urgencia fica so na bandeirinha colorida (o nome dela
   comeria o titulo, que e a informacao principal da linha). */
@media (max-width: 560px) {
    .dash-inner-items .inner-item .ii-prio span {
        display: none;
    }

    .dash-inner-items .inner-item .ii-meta {
        gap: 6px;
    }
}

/* =========================================================================
   METRICAS DE UM CONTEUDO - popup "..." do post > Metricas  (.mp-v2)
   -------------------------------------------------------------------------
   A pele antiga (.metric-item com valor 57px azul #007bff) era clara fixa e
   colorida: no tema escuro - que e o padrao do app - o numero sumia. Aqui e
   tudo monocromatico (tinta herdada + opacity), como o resto da interface,
   entao serve aos dois temas sem override no dark.css.
   ========================================================================= */
.contant-metrica-conteudo.mp-v2 {
    max-width: 100%;
    width: 100%;
    padding: 24px;
    box-sizing: border-box;
    color: inherit;
    font-family: inherit;
}

.contant-metrica-conteudo.mp-v2 h3 {
    font-size: 19px;
    font-weight: 700;
    margin: 0;
    text-align: left;
    letter-spacing: -.01em;
}

.contant-metrica-conteudo.mp-v2 .mp-sub {
    font-size: 13px;
    opacity: .5;
    margin: 3px 0 18px;
}

/* Abas das redes: a pilula ativa usa a tinta do sistema, nunca um acento. */
.contant-metrica-conteudo.mp-v2 .tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0 0 18px 0;
}

.contant-metrica-conteudo.mp-v2 .tabs .tab {
    float: none;
    margin: 0;
    font-size: 12.5px;
    font-weight: 600;
    padding: 6px 13px;
    border-radius: 999px;
    cursor: pointer;
    background: transparent;
    color: inherit;
    border: 1px solid var(--color-border);
    opacity: .6;
    transition: opacity .18s ease, background-color .18s ease;
}

.contant-metrica-conteudo.mp-v2 .tabs .tab:hover {
    opacity: 1;
    background: rgba(127, 127, 127, .1);
}

.contant-metrica-conteudo.mp-v2 .tabs .tab.atv {
    opacity: 1;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    border-color: var(--color-btn-bg-01);
}

.contant-metrica-conteudo.mp-v2 .mp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    gap: 10px;
}

.contant-metrica-conteudo.mp-v2 .mp-item {
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 14px 15px;
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(15, 23, 42, .04);
    min-width: 0;
}

.contant-metrica-conteudo.mp-v2 .mp-item-val {
    font-size: 26px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.02em;
}

.contant-metrica-conteudo.mp-v2 .mp-item-tit {
    font-size: 12.5px;
    font-weight: 600;
    margin-top: 6px;
    opacity: .8;
}

.contant-metrica-conteudo.mp-v2 .mp-item-desc {
    font-size: 11px;
    opacity: .45;
    margin-top: 3px;
    line-height: 1.35;
}

/* Interacoes + taxa: leitura derivada, por isso vem depois e mais discreta
   que os numeros que a rede entregou. */
.contant-metrica-conteudo.mp-v2 .mp-destaque {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 10px;
}

.contant-metrica-conteudo.mp-v2 .mp-destaque-i {
    flex: 1 1 150px;
    border: 1px dashed var(--color-border);
    border-radius: 14px;
    padding: 12px 15px;
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    min-width: 0;
}

.contant-metrica-conteudo.mp-v2 .mp-destaque-i span {
    font-size: 12px;
    opacity: .6;
}

.contant-metrica-conteudo.mp-v2 .mp-destaque-i strong {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.01em;
}

.contant-metrica-conteudo.mp-v2 .mp-rodape {
    font-size: 11.5px;
    opacity: .45;
    margin-top: 14px;
}

/* Estado vazio: enquanto a rede nao devolve numero, o popup explica o porque
   em vez de mostrar uma grade de zeros (ou o "Nenhuma metrica encontrada."). */
.contant-metrica-conteudo.mp-v2 .mp-vazio {
    text-align: center;
    padding: 34px 24px 30px;
    border: 1px dashed var(--color-border);
    border-radius: 16px;
}

.contant-metrica-conteudo.mp-v2 .mp-vazio-ico {
    width: 52px;
    height: 52px;
    margin: 0 auto 14px;
    border-radius: 15px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(127, 127, 127, .1);
    opacity: .65;
}

.contant-metrica-conteudo.mp-v2 .mp-vazio-ico svg {
    width: 24px;
    height: 24px;
}

.contant-metrica-conteudo.mp-v2 .mp-vazio-tit {
    font-size: 15.5px;
    font-weight: 700;
    letter-spacing: -.01em;
}

.contant-metrica-conteudo.mp-v2 .mp-vazio-txt {
    font-size: 13px;
    opacity: .6;
    line-height: 1.5;
    margin: 7px auto 0;
    max-width: 430px;
}

.contant-metrica-conteudo.mp-v2 .mp-vazio-meta {
    display: inline-block;
    margin-top: 10px;
    font-size: 11.5px;
    opacity: .75;
}

@media (max-width: 560px) {
    .contant-metrica-conteudo.mp-v2 {
        padding: 18px;
    }

    .contant-metrica-conteudo.mp-v2 .mp-grid {
        grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
    }
}

/* =====================================================================
   BANDEJA DE UPLOADS (.up-tray) - padrao Google Drive
   ---------------------------------------------------------------------
   Janela fixa no canto inferior direito que substituiu o overlay
   bloqueante (.progressUpload). Fica por cima dos popups (#edit-popup,
   z 999) e por baixo do cropper / swal / #loading, que sao modais de
   acao direta do usuario.

   MONOCROMATICO: anel de progresso e barra usam a tinta
   (--color-btn-bg-01). A unica cor e o vermelho de ERRO, que e sinal de
   estado, nao decoracao.
   ===================================================================== */

.up-tray {
    position: fixed;
    right: 22px;
    bottom: 22px;
    z-index: 9999999999;
    width: 374px;
    max-width: calc(100vw - 24px);
    background: var(--up-surface);
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 18px 44px -12px #00000033, 0 6px 16px -8px #00000021;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
    transform: translateY(12px) scale(0.99);
    transition: opacity 0.16s ease, transform 0.16s ease, visibility 0.16s;
    text-align: left;
}

.up-tray.up-on {
    opacity: 1;
    visibility: visible;
    transform: none;
}

/* ---------- Cabecalho ---------- */

.up-tray .up-hdr {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 8px 0 16px;
    height: 50px;
    border-bottom: 1px solid var(--color-border);
}

.up-tray .up-hdr-tit {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    cursor: pointer;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.up-tray .up-hdr-btns {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 2px;
}

/* Barra fina do progresso geral, colada na base do cabecalho. */
.up-tray .up-hdr-barra {
    position: absolute;
    left: 0;
    right: 0;
    bottom: -1px;
    height: 2px;
    opacity: 0;
    transition: opacity 0.2s ease;
}

.up-tray.up-ocupado .up-hdr-barra {
    opacity: 1;
}

.up-tray .up-hdr-barra>i {
    display: block;
    height: 100%;
    width: 0;
    background: var(--color-btn-bg-01);
    transition: width 0.2s ease;
}

/* ---------- Botoes ---------- */

.up-tray .up-b {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 30px;
    min-width: 30px;
    padding: 0 6px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    font-size: 11.5px;
    font-weight: 600;
    font-family: inherit;
    opacity: 0.55;
    transition: opacity 0.14s ease, background 0.14s ease;
}

.up-tray .up-b:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.up-tray .up-b svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
    flex: 0 0 auto;
}

.up-tray .up-min svg {
    transition: transform 0.18s ease;
}

/* ---------- Minimizado: so o cabecalho ---------- */

.up-tray.up-min-on .up-lista {
    display: none;
}

.up-tray.up-min-on .up-min svg {
    transform: rotate(180deg);
}

/* ---------- Lista ---------- */

.up-tray .up-lista {
    max-height: 314px;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 6px;
}

.up-tray .up-item {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 7px 8px;
    border-radius: 11px;
    min-width: 0;
}

.up-tray .up-item:hover {
    background: var(--color-hover-01);
}

.up-tray .up-ico {
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(127, 127, 127, 0.11);
    background-size: cover;
    background-position: center;
}

.up-tray .up-ico svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
    opacity: 0.5;
}

/* Miniatura local do arquivo (blob URL no style inline): sem o fundo cinza,
   que apareceria por tras de PNG com transparencia. */
.up-tray .up-ico-img {
    background-color: transparent;
}

.up-tray .up-txt {
    flex: 1 1 auto;
    min-width: 0;
}

.up-tray .up-nome {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.up-tray .up-sub {
    display: flex;
    align-items: center;
    gap: 5px;
    margin-top: 2px;
    font-size: 11.5px;
    opacity: 0.55;
    min-width: 0;
}

.up-tray .up-sub-txt,
.up-tray .up-sub-dest {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.up-tray .up-sub-dest {
    flex: 0 1 auto;
}

.up-tray .up-sub-sep {
    flex: 0 0 auto;
    opacity: 0.6;
}

.up-tray .up-dir {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 2px;
}

/* Acoes so aparecem no hover da linha - a lista precisa ficar limpa. */
.up-tray .up-acao {
    opacity: 0;
    pointer-events: none;
}

.up-tray .up-item:hover .up-acao {
    opacity: 0.55;
    pointer-events: auto;
}

.up-tray .up-item:hover .up-acao:hover {
    opacity: 1;
}

/* Concluido e erro sao os momentos em que o usuario QUER a acao: o botao
   de abrir o local e o de repetir ficam visiveis sem depender do hover.
   Precisa da mesma especificidade da regra de hover acima (por isso o
   .up-item), senao o hover da linha REBAIXARIA o botao de 0.7 para 0.55. */
.up-tray .up-item.up-e-ok .up-abrir,
.up-tray .up-item.up-e-erro .up-repetir,
.up-tray .up-item.up-e-erro .up-abrir {
    opacity: 0.7;
    pointer-events: auto;
}

/* ---------- Estado: anel de progresso ---------- */

.up-tray .up-st {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.up-tray .up-st svg {
    width: 100%;
    height: 100%;
}

.up-tray .up-anel svg {
    transform: rotate(-90deg);
}

.up-tray .up-anel circle {
    fill: none;
    stroke-width: 2.4;
    stroke-linecap: round;
}

.up-tray .up-anel-tr {
    stroke: rgba(127, 127, 127, 0.24);
}

.up-tray .up-anel-ar {
    stroke: var(--color-btn-bg-01);
    transition: stroke-dashoffset 0.2s ease;
}

/* Na fila: o anel vazio pulsa de leve para nao parecer travado. */
.up-tray .up-anel-fila {
    animation: up-pulso 1.4s ease-in-out infinite;
}

@keyframes up-pulso {

    0%,
    100% {
        opacity: 0.35;
    }

    50% {
        opacity: 0.8;
    }
}

.up-tray .up-st-ok svg {
    width: 19px;
    height: 19px;
    fill: currentColor;
    opacity: 0.85;
}

.up-tray .up-st-cancel svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
    opacity: 0.4;
}

/* Erro e o unico ponto colorido: aqui a cor E o dado. */
.up-tray .up-st-erro svg {
    width: 18px;
    height: 18px;
    fill: #e83a3a;
}

.up-tray .up-e-erro .up-sub {
    opacity: 0.85;
    color: #e83a3a;
}

.up-tray .up-e-cancelado .up-nome {
    text-decoration: line-through;
    opacity: 0.5;
}

/* ---------- Mobile ---------- */

@media (max-width: 640px) {
    .up-tray {
        right: 10px;
        left: 10px;
        bottom: 10px;
        width: auto;
        max-width: none;
        border-radius: 14px;
    }

    .up-tray .up-lista {
        max-height: 46vh;
    }

    .up-tray .up-abrir span {
        display: none;
    }
}

/* =====================================================================
   BOTAO "RECORTAR" NAS MIDIAS (.btn-recortar)
   ---------------------------------------------------------------------
   Reabre o cropper do upload em cima de uma imagem que ja esta no R2 e
   substitui o arquivo no lugar. Entra no mesmo cluster superior-direito
   dos vizinhos, seguindo o passo que cada contexto ja usa:

     midia do conteudo : baixar (5)  remover (35) recortar (65)
     anexos            : baixar (5)  remover (35) renomear (65) recortar (95)

   Herda tudo de .midia-item .bt - aqui so a posicao e o traco do icone.
   ===================================================================== */

/* `color: #fff` NAO e decoracao: o icone e de TRACO e a base
   (.item-post.conteudo .bt) so define `fill: #fff`, nunca `color`. Sem esta
   linha o currentColor do stroke cai na cor de texto herdada e o botao sai
   escuro no meio dos vizinhos brancos. Mesma correcao que .btn-editar-ia e
   .btn-alterar-capa ja carregam. */
.midia-item .btn-recortar {
    position: absolute;
    top: 5px;
    right: 65px;
    color: #fff;
}

.midia-item .btn-recortar svg {
    fill: none;
    stroke: currentColor;
}

.midias-tarefas .midia-item .btn-recortar {
    right: 95px;
}

/* No toque os alvos sao ampliados e o cluster ganha folga (baixar 6,
   remover 52, renomear 98) - o recorte segue o mesmo passo de 46px.
   As DUAS condicoes existem de proposito: os vizinhos nao usam a mesma.
   baixar/remover deslocam em (hover:none)/(pointer:coarse) e renomear em
   max-width 920px, entao o recorte precisa acompanhar as duas para nunca
   ficar sobreposto. */
@media (hover: none),
(pointer: coarse) {
    .midia-item .btn-recortar {
        top: 6px;
        right: 98px;
    }

    .midias-tarefas .midia-item .btn-recortar {
        right: 144px;
    }
}

@media (max-width: 920px) {
    .midia-item .btn-recortar {
        top: 6px;
        right: 98px;
    }

    .midias-tarefas .midia-item .btn-recortar {
        right: 144px;
    }
}

/* =====================================================================
   LIMITE DE IA DE TEXTO - aviso de cota esgotada
   Disparado por window.iaTextoBloqueio() (footer.php). Fica no rodape a
   direita para nao cobrir o campo que a pessoa acabou de tentar gerar.
   Monocromatico: usa a tinta do tema, nao cor de acento.
   ===================================================================== */
.ia-limite-aviso {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 99999;
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: 380px;
    padding: 14px 16px;
    border-radius: 13px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 12px 32px rgba(0, 0, 0, .22);
    opacity: 0;
    transform: translateY(12px);
    transition: opacity .22s ease, transform .22s ease;
}

.ia-limite-aviso.on {
    opacity: 1;
    transform: translateY(0);
}

.ia-limite-aviso>svg {
    flex: 0 0 auto;
    opacity: .85;
}

.ia-limite-aviso .txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.35;
}

.ia-limite-aviso .txt b {
    font-size: 13px;
    font-weight: 600;
}

.ia-limite-aviso .txt span {
    font-size: 12px;
    opacity: .8;
}

.ia-limite-aviso .fechar {
    flex: 0 0 auto;
    margin-left: 4px;
    padding: 0 4px;
    font-size: 20px;
    line-height: 1;
    cursor: pointer;
    opacity: .6;
}

.ia-limite-aviso .fechar:hover {
    opacity: 1;
}

@media (max-width: 620px) {
    .ia-limite-aviso {
        right: 12px;
        left: 12px;
        bottom: 12px;
        max-width: none;
    }
}

/* ===========================================================================
   PROPRIO PERFIL dentro do painel de pessoas (.painel-pessoa.pp-eu)
   "Meu perfil" nao tem mais tela propria: e o mesmo painel de qualquer pessoa,
   com acoes de dono no cabecalho. Monocromatico - nada de cor de acento.
   =========================================================================== */
.painel-pessoa .pp-avatar-wrap {
    position: relative;
    flex: 0 0 auto;
}

.painel-pessoa .pp-avatar-bt {
    position: absolute;
    right: -4px;
    bottom: -4px;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    cursor: pointer;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    border: 2px solid var(--color-bg);
    transition: transform .15s ease;
}

.painel-pessoa .pp-avatar-bt:hover {
    transform: scale(1.08);
}

.painel-pessoa .pp-eu-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px;
}

.painel-pessoa .pp-eu-bt {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 7px 12px;
    border-radius: 9px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s ease, border-color .15s ease, opacity .15s ease;
}

.painel-pessoa .pp-eu-bt:hover {
    background: var(--color-hover-01);
}

.painel-pessoa .pp-eu-sair {
    opacity: .62;
}

.painel-pessoa .pp-eu-sair:hover {
    opacity: 1;
}

/* Bloco de edicao inline (nome + celular), abre sob o cabecalho */
.painel-pessoa .pp-eu-form {
    display: none;
    padding: 16px 18px 18px 18px;
    border-bottom: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

.painel-pessoa .pp-eu-form.aberto {
    display: block;
}

.mp-campos {
    display: flex;
    gap: 14px;
}

.mp-campo {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    flex: 1 1 0;
    min-width: 0;
}

.mp-campo>span {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--color-text-01);
    opacity: .7;
}

.mp-campo input {
    width: 100%;
    height: 42px;
    padding: 0 12px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
    font-size: 14px;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease;
}

.mp-campo input:focus {
    border-color: var(--color-btn-bg-01);
    box-shadow: 0 0 0 3px var(--color-hover-01);
}

.mp-campo input::placeholder {
    color: var(--color-text-01);
    opacity: .35;
}

.mp-form-acoes {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 14px;
}

.mp-cancelar {
    padding: 9px 14px;
    border-radius: 9px;
    cursor: pointer;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    opacity: .6;
}

.mp-cancelar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.mp-salvar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 40px;
    padding: 0 22px;
    border-radius: 10px;
    cursor: pointer;
    font-size: 13.5px;
    font-weight: 600;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    transition: opacity .15s ease;
}

.mp-salvar:hover {
    opacity: .85;
}

.mp-sk-campo {
    height: 42px;
    border-radius: 10px;
    margin: 0 0 10px 0;
}

@media (max-width: 620px) {
    .mp-campos {
        flex-direction: column;
    }

    .painel-pessoa .pp-eu-acoes {
        width: 100%;
    }
}

/* --- Cartoes de numeros da Visao geral (.pp-stats) ------------------------
   Monocromatico por padrao. So "Para hoje" e "Vencidos" ganham tom, e apenas
   quando o numero e maior que zero - cor aqui e sinal, nao decoracao. */
.painel-pessoa .pp-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
    padding: 14px 4px 4px 4px;
}

.painel-pessoa .pp-stat {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 14px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg-01);
}

.painel-pessoa .pp-stat b {
    font-size: 22px;
    font-weight: 700;
    line-height: 1.1;
    letter-spacing: -.02em;
    color: var(--color-text-01);
}

.painel-pessoa .pp-stat span {
    font-size: 12px;
    color: color-mix(in srgb, var(--color-text-01) 55%, transparent);
}

.painel-pessoa .pp-stat.is-alerta b {
    color: #b45309;
}

.painel-pessoa .pp-stat.is-risco b {
    color: #e0444b;
}

@media (max-width: 620px) {
    .painel-pessoa .pp-stats {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ===========================================================================
   PAINEL DA PESSOA - layout de DUAS COLUNAS no desktop
   Coluna esquerda: foto, dados e o menu de abas (vertical).
   Coluna direita: o conteudo da aba ativa.
   O DOM e o MESMO do mobile (hdr -> form -> tabs -> body); quem reposiciona e o
   grid-template-areas. Nada de markup condicional, entao todos os handlers de
   aba, upload e edicao continuam valendo nos dois layouts.
   Abaixo do breakpoint nada disso se aplica e a tela volta a ser empilhada.
   =========================================================================== */
@media (min-width: 940px) {

    /* O box e estreito por padrao (900px). Com o painel dentro, ele vira uma
       janela de trabalho. Mesmo padrao :has() ja usado por outros conteudos. */
    #edit-popup .contant .boxpop:has(.painel-pessoa) {
        max-width: 1140px;
        width: 100%;
    }

    .painel-pessoa {
        display: grid;
        grid-template-columns: 272px minmax(0, 1fr);
        grid-template-rows: auto auto 1fr;
        grid-template-areas:
            "lado corpo"
            "form corpo"
            "abas corpo";
        padding: 0;
        max-height: 82vh;
    }

    .painel-pessoa .pp-hdr {
        grid-area: lado;
        flex-direction: column;
        align-items: flex-start;
        gap: 14px;
        border-bottom: 0;
        padding: 24px 20px 18px 20px;
    }

    .painel-pessoa .pp-hdr-infs {
        padding-top: 0;
        width: 100%;
    }

    .painel-pessoa .pp-sub {
        white-space: normal;
    }

    /* Empilha os botoes de dono: a coluna nao tem largura para dois lado a lado */
    .painel-pessoa .pp-eu-acoes {
        flex-direction: column;
        align-items: stretch;
    }

    .painel-pessoa .pp-eu-form {
        grid-area: form;
        border-bottom: 0;
        background: transparent;
        padding: 0 20px 16px 20px;
    }

    /* Na coluna estreita os campos nao cabem lado a lado. E uma regra de
       CONTEXTO, nao de viewport: o mesmo popup pode estar largo com a coluna
       estreita, entao media query de tela nao resolveria. */
    .painel-pessoa .pp-eu-form .mp-campos {
        flex-direction: column;
    }

    /* Abas viram menu vertical */
    .painel-pessoa .pp-tabs {
        grid-area: abas;
        flex-direction: column;
        align-content: start;
        gap: 2px;
        padding: 0 12px 20px 12px;
        border-bottom: 0;
        overflow-x: hidden;
        overflow-y: auto;
    }

    .painel-pessoa .pp-tab {
        padding: 9px 12px;
        border-bottom: 0;
        border-radius: 9px;
        text-align: left;
        white-space: normal;
        transition: color .2s, background .2s;
    }

    .painel-pessoa .pp-tab:hover {
        background: var(--color-hover-01);
    }

    .painel-pessoa .pp-tab.atv {
        background: var(--color-hover-01);
        border-color: transparent;
    }

    /* Conteudo da aba ativa, com rolagem propria e a divisoria entre colunas */
    .painel-pessoa .pp-body {
        grid-area: corpo;
        border-left: 1px solid var(--color-border);
        padding: 20px 22px;
        min-width: 0;
    }

    .painel-pessoa .pp-pane {
        padding-right: 8px;
    }

    /* O cabecalho de secao ja e o titulo da coluna da direita: sem a linha de
       info repetindo o que o lado esquerdo mostra, sobra respiro. */
    .painel-pessoa .pp-stats {
        padding-top: 0;
    }

    /* 4 cartoes em 1 linha so quando ha espaco real; senao 2x2. */
    @media (max-width: 1100px) {
        .painel-pessoa .pp-stats {
            grid-template-columns: repeat(2, 1fr);
        }
    }
}

/* ===========================================================================
   AGENDA DA PESSOA (.pp-agd)
   Colunas CONTINUAS: uma grade unica dividida por linhas de 1px, nao cartoes
   soltos com respiro entre eles - com espaco escasso, o gap roubava largura do
   conteudo e era o que mais espremia os titulos.
   =========================================================================== */
.painel-pessoa .pp-agd {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

/* Barra de opcoes */
.painel-pessoa .pp-agd-barra {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    padding: 0 0 12px 0;
}

.painel-pessoa .pp-agd-seg {
    display: inline-flex;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    overflow: hidden;
}

.painel-pessoa .pp-agd-seg button {
    border: 0;
    background: transparent;
    padding: 6px 11px;
    font-size: 12.5px;
    font-weight: 500;
    color: color-mix(in srgb, var(--color-text-01) 60%, transparent);
    cursor: pointer;
    font-family: inherit;
    transition: background .15s ease, color .15s ease;
}

.painel-pessoa .pp-agd-seg button:hover {
    background: var(--color-hover-01);
}

.painel-pessoa .pp-agd-seg button.atv {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-weight: 600;
}

.painel-pessoa .pp-agd-check {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0 0 0 auto;
    font-size: 12.5px;
    color: color-mix(in srgb, var(--color-text-01) 60%, transparent);
    cursor: pointer;
}

.painel-pessoa .pp-agd-resumo {
    font-size: 12.5px;
    color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
    padding: 0 0 8px 0;
}

/* --- Modo GRADE ---------------------------------------------------------- */
.painel-pessoa .pp-agd-grade {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(178px, 1fr);
    gap: 0;
    overflow-x: auto;
    overflow-y: hidden;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.painel-pessoa .pp-agd-col {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border-right: 1px solid var(--color-border);
}

/* Sem borda nas pontas: a grade encosta na largura util em vez de desenhar uma
   moldura que "corta" o conteudo ao rolar. */
.painel-pessoa .pp-agd-col:last-child {
    border-right: 0;
}

.painel-pessoa .pp-agd-col.is-fds {
    background: color-mix(in srgb, var(--color-text-01) 3%, transparent);
}

.painel-pessoa .pp-agd-col.is-hoje .pp-agd-col-hdr {
    box-shadow: inset 0 -2px 0 var(--color-btn-bg-01);
}

.painel-pessoa .pp-agd-col-hdr {
    position: sticky;
    top: 0;
    z-index: 1;
    display: flex;
    align-items: baseline;
    gap: 5px;
    padding: 10px 12px;
    background: var(--color-bg);
    border-bottom: 1px solid var(--color-border);
}

.painel-pessoa .pp-agd-col.is-fds .pp-agd-col-hdr {
    background: transparent;
}

.painel-pessoa .pp-agd-col-hdr b {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--color-text-01);
}

.painel-pessoa .pp-agd-wd,
.painel-pessoa .pp-agd-mes {
    font-size: 10.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: color-mix(in srgb, var(--color-text-01) 42%, transparent);
}

.painel-pessoa .pp-agd-qt {
    margin-left: auto;
    min-width: 19px;
    height: 19px;
    padding: 0 6px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.painel-pessoa .pp-agd-col-body {
    display: flex;
    flex-direction: column;
    padding: 6px;
    gap: 4px;
    flex: 1 1 auto;
    min-height: 190px;
}

/* --- Modo LISTA ---------------------------------------------------------- */
.painel-pessoa .pp-agd-lista {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--color-border);
}

.painel-pessoa .pp-agd-dia {
    border-bottom: 1px solid var(--color-border);
    padding: 10px 0 12px 0;
}

.painel-pessoa .pp-agd-dia-hdr {
    display: flex;
    align-items: baseline;
    gap: 8px;
    padding: 0 4px 8px 4px;
}

.painel-pessoa .pp-agd-dia-hdr b {
    font-size: 17px;
    font-weight: 700;
    letter-spacing: -.02em;
    color: var(--color-text-01);
}

.painel-pessoa .pp-agd-dia-hdr span:not(.pp-agd-qt) {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: color-mix(in srgb, var(--color-text-01) 42%, transparent);
}

.painel-pessoa .pp-agd-dia.is-hoje .pp-agd-dia-hdr b {
    color: var(--color-btn-bg-01);
}

.painel-pessoa .pp-agd-dia-lst {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
    gap: 4px;
}

/* --- Item (compartilhado pelos dois modos) -------------------------------- */
.painel-pessoa .pp-agd-item {
    display: flex;
    gap: 8px;
    align-items: stretch;
    padding: 7px 8px;
    border-radius: 8px;
    cursor: pointer;
    min-width: 0;
    transition: background .15s ease;
}

.painel-pessoa .pp-agd-item:hover {
    background: var(--color-hover-01);
}

.painel-pessoa .pp-agd-bar {
    flex: 0 0 3px;
    width: 3px;
    border-radius: 3px;
}

.painel-pessoa .pp-agd-corpo {
    min-width: 0;
    flex: 1 1 auto;
}

.painel-pessoa .pp-agd-linha1 {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 2px;
}

.painel-pessoa .pp-agd-hora {
    font-size: 11px;
    font-weight: 600;
    color: color-mix(in srgb, var(--color-text-01) 58%, transparent);
}

.painel-pessoa .pp-agd-kind {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 1px 5px;
    border-radius: 5px;
    background: var(--color-hover-01);
    color: color-mix(in srgb, var(--color-text-01) 55%, transparent);
}

.painel-pessoa .pp-agd-ttl {
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.32;
    color: var(--color-text-01);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.painel-pessoa .pp-agd-ctx {
    font-size: 11px;
    margin-top: 2px;
    color: color-mix(in srgb, var(--color-text-01) 45%, transparent);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.painel-pessoa .pp-agd-item.is-atraso .pp-agd-bar {
    background: #e0444b !important;
}

.painel-pessoa .pp-agd-item.is-feito {
    opacity: .5;
}

.painel-pessoa .pp-agd-item.is-feito .pp-agd-ttl {
    text-decoration: line-through;
}

/* --- Cargos da pessoa (Equipes) ------------------------------------------ */
.painel-pessoa .pp-cargos {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.painel-pessoa .pp-cargo {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 9px;
    border-radius: 20px;
    border: 1px solid var(--color-border);
    font-size: 11.5px;
    font-weight: 500;
    color: var(--color-text-01);
}

.painel-pessoa .pp-cargo i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 auto;
}

/* A agenda encosta nas bordas do painel: a grade sangra o padding lateral do
   .pp-body (20px 22px no desktop). Sem isso sobrava uma faixa vazia de cada
   lado e as colunas ficavam ainda mais estreitas do que precisavam. */
@media (min-width: 940px) {
    .painel-pessoa .pp-pane[data-tab="agenda"] {
        padding-right: 0;
    }

    .painel-pessoa .pp-agd-barra,
    .painel-pessoa .pp-agd-resumo {
        padding-right: 22px;
    }

    .painel-pessoa .pp-agd-grade,
    .painel-pessoa .pp-agd-lista {
        margin-left: -22px;
        margin-right: -22px;
    }

    .painel-pessoa .pp-agd-lista .pp-agd-dia {
        padding-left: 22px;
        padding-right: 22px;
    }

    /* Colunas mais largas quando ha espaco: o limite util aqui e a coluna da
       direita (~800px), entao 178px mantem 4 dias visiveis sem espremer. */
    .painel-pessoa .pp-agd-grade {
        grid-auto-columns: minmax(186px, 1fr);
    }
}

/* ===========================================================================
   GALERIA DE FOTO DO USUARIO (.gu-pop) - vive no #edit-popup-mini
   =========================================================================== */
.gu-pop {
    padding: 26px 26px 22px 26px;
}

.gu-topo {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 18px;
}

.gu-topo h1 {
    font-size: 19px;
    font-weight: 600;
    margin: 0;
    color: var(--color-text-01);
}

.gu-topo span {
    font-size: 13px;
    color: color-mix(in srgb, var(--color-text-01) 55%, transparent);
}

.gu-input {
    display: none;
}

.gu-drop {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 22px 16px;
    border: 1.5px dashed var(--color-border);
    border-radius: 14px;
    cursor: pointer;
    color: var(--color-text-01);
    transition: border-color .18s ease, background .18s ease;
}

.gu-drop:hover {
    border-color: var(--color-btn-bg-01);
    background: var(--color-hover-01);
}

.gu-drop b {
    font-size: 14px;
    font-weight: 600;
}

.gu-drop span {
    font-size: 12px;
    color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
}

/* Cota */
.gu-cota {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
}

.gu-cota-bar {
    flex: 1 1 auto;
    height: 5px;
    border-radius: 4px;
    background: var(--color-hover-01);
    overflow: hidden;
}

.gu-cota-bar>i {
    display: block;
    height: 100%;
    border-radius: 4px;
    background: var(--color-btn-bg-01);
    transition: width .3s ease;
}

.gu-cota>span {
    font-size: 11.5px;
    white-space: nowrap;
    color: color-mix(in srgb, var(--color-text-01) 55%, transparent);
}

.gu-cota.is-cheio .gu-cota-bar>i {
    background: #e0444b;
}

/* Grade de imagens */
.gu-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(88px, 1fr));
    gap: 8px;
    margin-top: 16px;
    max-height: 300px;
    overflow-y: auto;
}

.gu-item {
    position: relative;
    padding-top: 100%;
    border-radius: 10px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-hover-01);
    cursor: pointer;
    border: 2px solid transparent;
    transition: border-color .15s ease, transform .15s ease;
}

.gu-item:hover {
    transform: translateY(-2px);
}

.gu-item.atv {
    border-color: var(--color-btn-bg-01);
}

.gu-item-x {
    position: absolute;
    top: 4px;
    right: 4px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    line-height: 1;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    opacity: 0;
    transition: opacity .15s ease;
}

.gu-item:hover .gu-item-x {
    opacity: 1;
}

.gu-item.atv .gu-item-ok {
    position: absolute;
    left: 6px;
    bottom: 6px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
}

.gu-item.atv .gu-item-ok::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 2px;
    width: 4px;
    height: 8px;
    border: solid var(--color-btn-text-01);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.gu-vazio {
    margin-top: 16px;
    padding: 20px;
    text-align: center;
    border-radius: 12px;
    background: var(--color-bg-01);
    font-size: 13px;
    color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
}

/* ===========================================================================
   APARENCIA / TEMA (.tema-pop)
   Os cartoes sao VERTICAIS: com a miniatura ao lado do texto sobrava tao pouca
   largura que "Sempre claro" quebrava em duas linhas. Empilhado, a previa fica
   grande (que e a graca) e o texto tem a largura inteira do cartao.
   As previas sao desenhadas em CSS - nenhuma imagem para carregar e continuam
   corretas se a paleta mudar.
   =========================================================================== */
.tema-pop {
    padding: 26px 26px 22px 26px;
}

.tema-topo {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 18px;
}

.tema-topo h1 {
    font-size: 19px;
    font-weight: 600;
    margin: 0;
    color: var(--color-text-01);
}

.tema-topo span {
    font-size: 13px;
    color: color-mix(in srgb, var(--color-text-01) 55%, transparent);
}

/* Tres opcoes na mesma linha, mesmo peso visual */
.tema-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
}

.tema-card,
.tema-auto-hdr {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    padding: 12px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    cursor: pointer;
    background: var(--color-bg);
    transition: border-color .18s ease, background .18s ease, transform .18s ease;
}

.tema-card:hover,
.tema-auto-hdr:hover {
    background: var(--color-hover-01);
    transform: translateY(-2px);
}

/* Selecionado sem borda dura: var(--color-btn-bg-01) e branco PURO no tema
   escuro, e uma moldura branca de 1px em volta do cartao pesa demais. Um tom
   intermediario da propria tinta marca o mesmo sem gritar. */
.tema-card.atv,
.tema-auto.atv .tema-auto-hdr {
    border-color: color-mix(in srgb, var(--color-btn-bg-01) 45%, transparent);
    background: var(--color-hover-01);
}

.tema-card-inf {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    padding-right: 22px;
}

.tema-card-inf b {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-01);
}

.tema-card-inf span {
    font-size: 11.5px;
    line-height: 1.3;
    color: color-mix(in srgb, var(--color-text-01) 52%, transparent);
}

/* Marca de selecionado, no canto - fora do fluxo, para nao roubar largura */
.tema-check {
    position: absolute;
    right: 12px;
    bottom: 12px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.6px solid var(--color-border);
    transition: border-color .18s ease, background .18s ease;
}

.tema-card.atv .tema-check,
.tema-auto.atv .tema-check {
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
}

.tema-card.atv .tema-check::after,
.tema-auto.atv .tema-check::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 2px;
    width: 5px;
    height: 9px;
    border: solid var(--color-btn-text-01);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* --- PREVIA: uma telinha do Airpost, desenhada em CSS -------------------- */
.tema-mini {
    position: relative;
    width: 100%;
    height: 74px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    overflow: hidden;
    display: flex;
    flex: 0 0 auto;
}

/* coluna lateral + corpo, imitando o layout do sistema */
.tema-mini::before {
    content: '';
    width: 26%;
    height: 100%;
    flex: 0 0 auto;
}

.tema-mini i {
    position: absolute;
    height: 5px;
    border-radius: 3px;
}

.tema-mini i:nth-child(1) {
    left: 32%;
    top: 12px;
    width: 42%;
}

.tema-mini i:nth-child(2) {
    left: 32%;
    top: 25px;
    width: 58%;
}

.tema-mini i:nth-child(3) {
    left: 32%;
    top: 38px;
    width: 50%;
}

/* claro */
.tema-mini-claro {
    background: #ffffff;
}

.tema-mini-claro::before {
    background: #f1f2f5;
    border-right: 1px solid #e4e6ea;
}

.tema-mini-claro i {
    background: #d5d8de;
}

.tema-mini-claro i:nth-child(1) {
    background: #8b909b;
}

/* escuro */
.tema-mini-escuro {
    background: #0d0e10;
}

.tema-mini-escuro::before {
    background: #17181b;
    border-right: 1px solid #26282c;
}

.tema-mini-escuro i {
    background: #34363b;
}

.tema-mini-escuro i:nth-child(1) {
    background: #6f747e;
}

/* automatico: as duas metades, cortadas na diagonal */
.tema-mini-auto {
    background: #0d0e10;
}

.tema-mini-auto::before {
    background: #17181b;
    border-right: 1px solid #26282c;
}

.tema-mini-auto::after {
    content: '';
    position: absolute;
    inset: 0;
    background: #ffffff;
    clip-path: polygon(0 0, 62% 0, 30% 100%, 0 100%);
}

.tema-mini-auto i {
    z-index: 1;
}

.tema-mini-auto i:nth-child(1) {
    background: #8b909b;
}

.tema-mini-auto i:nth-child(2),
.tema-mini-auto i:nth-child(3) {
    background: #3a3d43;
}

/* --- Bloco de horarios ---------------------------------------------------- */
.tema-auto {
    display: contents;
}

.tema-auto-cfg {
    display: none;
    grid-column: 1 / -1;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin-top: 12px;
    padding: 14px;
    border-radius: 12px;
    background: var(--color-bg-01);
    border: 1px solid var(--color-border);
}

.tema-auto.atv .tema-auto-cfg {
    display: grid;
}

.tema-hora {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.tema-hora label {
    font-size: 11.5px;
    font-weight: 500;
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
}

.tema-hora input {
    width: 100%;
    height: 42px;
    padding: 0 10px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    color: var(--color-text-01);
    font-size: 15px;
    font-family: inherit;
    outline: none;
}

.tema-hora input:focus {
    border-color: var(--color-btn-bg-01);
    box-shadow: 0 0 0 3px var(--color-hover-01);
}

/* A nota ocupa a LINHA INTEIRA. Espremida na lateral ela quebrava palavra por
   palavra - era o pior estrago visual do popup. */
.tema-agora {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    font-size: 12.5px;
    line-height: 1.4;
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
}

.tema-agora b {
    color: var(--color-text-01);
    font-weight: 600;
}

.tema-agora-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #f0c000;
    box-shadow: 0 0 0 3px color-mix(in srgb, #f0c000 22%, transparent);
    flex: 0 0 auto;
}

.tema-agora-dot.is-escuro {
    background: #5b6070;
    box-shadow: 0 0 0 3px color-mix(in srgb, #5b6070 25%, transparent);
}

.tema-nota {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid var(--color-border);
    font-size: 12px;
    line-height: 1.45;
    color: color-mix(in srgb, var(--color-text-01) 48%, transparent);
}

@media (max-width: 560px) {
    .tema-pop {
        padding: 22px 18px 18px 18px;
    }

    .tema-cards {
        grid-template-columns: 1fr;
    }

    .tema-auto-cfg {
        grid-template-columns: 1fr;
    }
}

/* Botao de tema da tela de Inicio, no modo AUTOMATICO.
   Sem borda na tinta e SEM distintivo no handle: a tinta e branco puro no tema
   escuro, entao a moldura pesava; e o selo por cima do icone de lua/sol so
   sujava um controle pequeno. Quem diz o modo e o rotulo - "AUTOMATICO" nas
   duas pontas, que ja e inequivoco. O handle segue a hora, como deve. */

/* =========================================================================
   NOTIFICACOES AGRUPADAS (sininho) - kit .ntf-*
   -------------------------------------------------------------------------
   Cada assunto (uma tarefa / um conteudo) e UM cartao. Quando ha mais de um
   aviso sobre o mesmo assunto, o cartao ganha as folhas da pilha (.ntf-pilha)
   e abre revelando os anteriores, igual a central do iPhone.

   Estrutura:
     .ntf-grupo
        .ntf-frente        <- abraca SO o cartao (referencia da pilha)
           .ntf-pilha > i  <- folhas de tras (so quando ha 2+ avisos)
           .ntf-card       <- o aviso mais recente, opaco
        .ntf-itens         <- avisos anteriores (altura animada pelo JS)
        .ntf-toggle        <- "N notificacoes anteriores" / "Mostrar menos"

   Monocromatico: nada de cor de acento. A unica cor e o ponto azul de nao
   lida, que ja era o padrao desta tela.
   ========================================================================= */
.t-menu-notificacoes {
    /* Curva padrao do sistema (mesma dos kits .eq-*, .pl-*, .cn-*) */
    --ntf-ease: cubic-bezier(.16, 1, .3, 1);
    /* 290px apertava o cartao com avatar + tag + data na mesma linha */
    max-width: min(332px, calc(100vw - 38px));
}

/* Topo folgado: titulo e pilulas Geral/Comentarios flutuam por cima da
   lista (.header-popup e absoluto), entao o respiro tem que vir do padding */
.t-menu-notificacoes .lst-notificacoes {
    padding: 75px 9px 8px 9px;
}

.t-menu-notificacoes .lst-notificacoes h3 {
    font-size: 10px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    opacity: 0.42;
    margin: 14px 0px 7px 4px;
}

.t-menu-notificacoes .lst-notificacoes h3:first-child {
    margin-top: 2px;
}

.t-menu-notificacoes .ntf-grupo {
    position: relative;
    margin: 0px 0px 7px 0px;
}

.t-menu-notificacoes .ntf-grupo.ntf-multi {
    margin-bottom: 11px;
}

.t-menu-notificacoes .ntf-frente {
    position: relative;
    z-index: 1;
    transition: transform 0.24s var(--ntf-ease);
}

.t-menu-notificacoes .ntf-frente:hover {
    transform: translateY(-1px);
}

/* Folhas de tras: mesmo tamanho do cartao, empurradas para baixo e estreitadas.
   Como o cartao e opaco, so a beirada de cada folha aparece. */
.t-menu-notificacoes .ntf-pilha {
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    z-index: 0;
    pointer-events: none;
}

.t-menu-notificacoes .ntf-pilha i {
    position: absolute;
    top: 0px;
    right: 0px;
    bottom: 0px;
    left: 0px;
    border-radius: 14px;
    background: var(--ntf-folha);
    transform-origin: bottom center;
    transition: transform 0.34s var(--ntf-ease), opacity 0.26s var(--ntf-ease);
}

.t-menu-notificacoes .ntf-pilha i:nth-child(1) {
    transform: translateY(5px) scaleX(0.945);
}

.t-menu-notificacoes .ntf-pilha i:nth-child(2) {
    transform: translateY(10px) scaleX(0.875);
    opacity: 0.5;
}

/* Aberto: as folhas voltam para dentro do cartao e somem */
.t-menu-notificacoes .ntf-grupo.aberto .ntf-pilha i {
    transform: none;
    opacity: 0;
}

.t-menu-notificacoes .ntf-card {
    position: relative;
    z-index: 1;
    display: flex;
    gap: 9px;
    padding: 10px 11px 11px 10px;
    border-radius: 14px;
    background: var(--ntf-surface);
    cursor: pointer;
    transition: box-shadow 0.24s var(--ntf-ease), background 0.2s;
}

.t-menu-notificacoes .ntf-frente:hover .ntf-card {
    box-shadow: 0px 7px 17px -9px #00000045;
}

.t-menu-notificacoes .ntf-av {
    flex: 0 0 auto;
    display: flex;
    padding-top: 1px;
}

.t-menu-notificacoes .ntf-av .thumb-user {
    width: 26px;
    height: 26px;
    font-size: 9px;
    margin: 0px;
    flex: 0 0 auto;
}

/* Varias pessoas no mesmo assunto: avatares sobrepostos, o mais recente na frente */
.t-menu-notificacoes .ntf-av-multi .thumb-user {
    width: 24px;
    height: 24px;
    font-size: 8px;
}

/* Avatar de quem agiu por ULTIMO fica na frente: z-index desce ao longo da fila */
.t-menu-notificacoes .ntf-av-multi .thumb-user+.thumb-user {
    margin-left: -10px;
}

.t-menu-notificacoes .ntf-av-multi .thumb-user {
    position: relative;
}

.t-menu-notificacoes .ntf-av-multi .thumb-user:nth-child(1) {
    z-index: 3;
}

.t-menu-notificacoes .ntf-av-multi .thumb-user:nth-child(2) {
    z-index: 2;
}

.t-menu-notificacoes .ntf-av-multi .thumb-user:nth-child(3) {
    z-index: 1;
}

.t-menu-notificacoes .ntf-ctx {
    flex: 1 1 auto;
    min-width: 0px;
    padding-right: 15px;
}

.t-menu-notificacoes .ntf-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 6px;
    margin-bottom: 4px;
}

.t-menu-notificacoes .ntf-topo .tag {
    display: flex;
    align-items: center;
    gap: 4px;
    float: initial;
    width: fit-content;
    margin: 0px;
    padding: 0px;
    background: none;
    color: inherit;
    line-height: 1;
    font-size: 8.5px;
    font-weight: 500;
    letter-spacing: 0.9px;
    text-transform: uppercase;
    opacity: 0.5;
}

.t-menu-notificacoes .ntf-topo .tag svg {
    width: 10px;
    height: 10px;
    flex: 0 0 auto;
}

.t-menu-notificacoes .ntf-dt {
    flex: 0 0 auto;
    font-size: 9px;
    font-weight: 300;
    opacity: 0.4;
    white-space: nowrap;
}

.t-menu-notificacoes .ntf-card .ttl {
    font-size: 12.5px;
    font-weight: 600;
    line-height: 16px;
    margin-bottom: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.t-menu-notificacoes .ntf-num {
    font-size: 11px;
    font-weight: 500;
    opacity: 0.35;
    margin-left: 4px;
}

.t-menu-notificacoes .ntf-card .msg {
    font-size: 11.5px;
    font-weight: 300;
    line-height: 15px;
    opacity: 0.72;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.t-menu-notificacoes .ntf-card .msg b {
    font-weight: 500;
    opacity: 0.92;
}

/* Ponto de nao lida: mesma linguagem do item antigo, agora no cartao */
.t-menu-notificacoes .ntf-grupo.new .ntf-card::after {
    content: "";
    display: block;
    position: absolute;
    right: 9px;
    top: 11px;
    width: 7px;
    height: 7px;
    border-radius: 100px;
    background: #0064e0;
    box-shadow: 0px 0px 7px #0064e0;
}

/* Atalho para abrir o assunto sem precisar expandir a pilha */
.t-menu-notificacoes .ntf-abrir {
    position: absolute;
    right: 6px;
    bottom: 7px;
    padding: 3px;
    line-height: 0;
    border-radius: 7px;
    opacity: 0;
    cursor: pointer;
    transition: opacity 0.2s, background 0.2s;
}

.t-menu-notificacoes .ntf-abrir svg {
    width: 12px;
    height: 12px;
}

.t-menu-notificacoes .ntf-frente:hover .ntf-abrir {
    opacity: 0.45;
}

.t-menu-notificacoes .ntf-abrir:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Avisos anteriores. A altura e escrita em px pelo JS (notificacaoGrupoAbre):
   e a unica forma de animar suave sem saber a altura antes de montar. */
.t-menu-notificacoes .ntf-itens {
    height: 0px;
    overflow: hidden;
    transition: height 0.34s var(--ntf-ease);
}

.t-menu-notificacoes .ntf-itens .item {
    margin-left: 12px;
    padding: 6px 7px;
    opacity: 0;
    transform: translateY(-7px);
    transition: opacity 0.26s var(--ntf-ease), transform 0.34s var(--ntf-ease), background 0.2s;
}

.t-menu-notificacoes .ntf-grupo.aberto .ntf-itens .item {
    opacity: 1;
    transform: none;
    /* cascata: cada linha entra logo depois da anterior */
    transition-delay: calc(var(--i, 0) * 34ms);
}

.t-menu-notificacoes .ntf-itens .item .icon {
    width: 28px;
    top: calc(50% - 10px);
}

.t-menu-notificacoes .ntf-itens .item .icon .thumb-user {
    width: 20px;
    height: 20px;
    font-size: 7px;
    margin: 0px;
}

.t-menu-notificacoes .ntf-itens .item .contexto {
    min-height: 20px;
    padding-left: 27px;
    padding-right: 14px;
}

.t-menu-notificacoes .ntf-itens .item .contexto .msg {
    font-size: 11px;
    line-height: 14px;
    margin-bottom: 2px;
}

.t-menu-notificacoes .ntf-itens .item .contexto .msg b {
    font-weight: 500;
    opacity: 0.95;
}

.t-menu-notificacoes .ntf-itens .item .contexto .dt {
    text-align: left;
    font-size: 8.5px;
}

.t-menu-notificacoes .ntf-itens .item.new::after {
    width: 6px;
    height: 6px;
    right: 4px;
    top: calc(50% - 3px);
}

/* Barra de expandir/recolher, alinhada com o texto do cartao */
.t-menu-notificacoes .ntf-toggle {
    display: flex;
    align-items: center;
    gap: 4px;
    width: fit-content;
    /* 13px no topo: as folhas da pilha descem ate 10px abaixo do cartao */
    margin: 13px 0px 0px 41px;
    padding: 3px 6px;
    border-radius: 8px;
    font-size: 10px;
    font-weight: 500;
    opacity: 0.45;
    cursor: pointer;
    transition: margin 0.3s var(--ntf-ease), opacity 0.2s, background 0.2s;
}

/* Aberto: sem folhas embaixo do cartao, a barra pode subir */
.t-menu-notificacoes .ntf-grupo.aberto .ntf-toggle {
    margin-top: 3px;
}

.t-menu-notificacoes .ntf-toggle:hover {
    opacity: 0.9;
    background: var(--color-hover-01);
}

.t-menu-notificacoes .ntf-toggle svg {
    width: 11px;
    height: 11px;
    transition: transform 0.3s var(--ntf-ease);
}

.t-menu-notificacoes .ntf-grupo.aberto .ntf-toggle svg {
    transform: rotate(180deg);
}

.t-menu-notificacoes .ntf-menos {
    display: none;
}

.t-menu-notificacoes .ntf-grupo.aberto .ntf-qtd {
    display: none;
}

.t-menu-notificacoes .ntf-grupo.aberto .ntf-menos {
    display: inline;
}

.t-menu-notificacoes .ntf-skeleton .pre-loading {
    padding: 2px 0px;
}

/* ===========================================================================
   POPUPS DE CRIACAO - "Novo conteudo" e "Nova tarefa"            (kit .cr-*)
   ---------------------------------------------------------------------------
   Um kit so para os dois popups. Antes eram dois dialetos: o de conteudo com
   os campos `campostyle2*` (caixa com borda e rotulo dentro) e o de tarefa com
   `.ipt-v3` + a barra preta `.configs-lista-tarefas`. O JS esta no fim do
   browse/footer.php (window.AirpostCriar + popupCriarConteudo/popupCriarTarefa).

   Eixo: um campo de texto grande (o que a pessoa veio escrever) e, embaixo,
   os atributos como CHIPS - o mesmo gesto do composer inline de tarefa.
   Tudo monocromatico: o "ativo" e a tinta do sistema (--color-btn-bg-01),
   nunca um acento. As unicas cores sao DADO (cor do status, da prioridade,
   do espaco) ou o glow azul do botao primario, que ja e do kit do site.
   =========================================================================== */
:root {
    --cr-surface: #fff;
    --cr-raio: 22px;
    --cr-raio-campo: 12px;
    --cr-ease: cubic-bezier(.16, 1, .3, 1);
    --cr-menu-surface: #fff;
    --cr-menu-sombra: 0 18px 44px -18px rgba(16, 24, 40, .34), 0 2px 8px rgba(0, 0, 0, .07);
}

/* O boxpop e compartilhado por dezenas de popups; a largura de cada um e
   responsabilidade do conteudo, por isso ela mora aqui e nao no #edit-popup. */
#edit-popup .contant .boxpop:has(.cr-pop),
#edit-popup-mini .contant .boxpop:has(.cr-pop) {
    width: 100%;
    max-width: 588px;
    border-radius: var(--cr-raio);
}

/* O kit tambem roda no #edit-popup-mini: quando quem abre o popup JA ESTA
   dentro do #edit-popup (o popup da marca, no "Gerar objetivos com IA"), a
   casca precisa ser outra, senao a tela de quem chamou e apagada.
   Duas correcoes da casca mini, as mesmas que o .cf-pop faz: ela nasce com
   width: calc(100% - 399px) (largura pensada para conviver com o painel da
   direita) e com overflow no boxpop - aqui quem rola e o .cr-body. */
#edit-popup-mini:has(.cr-pop) {
    width: 100%;
}

#edit-popup-mini .contant .boxpop:has(.cr-pop) {
    overflow: hidden;
}

.cr-pop {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 60px);
    font-size: 14px;
}

/* ---------- Cabecalho ---------- */
.cr-hdr {
    padding: 24px 52px 14px 22px;
    /* 52 a direita = folga do .btn-close */
    flex: 0 0 auto;
}

.cr-hdr-ttl {
    font-size: 20px;
    font-weight: 550;
    letter-spacing: -.02em;
    line-height: 1.2;
    color: var(--color-text-01);
}

/* Icone opcional antes do titulo (hoje so o traco da IA). Ele herda a TINTA do
   texto: a IA do produto nao tem cor propria - o selo em degrade azul do popup
   antigo era o unico ponto colorido de um kit monocromatico. */
.cr-hdr-ttl>svg {
    width: 17px;
    height: 17px;
    fill: var(--color-text-01);
    opacity: .8;
    margin-right: 7px;
    vertical-align: -1px;
}

.cr-hdr-sub {
    font-size: 12.5px;
    opacity: .55;
    margin-top: 4px;
    line-height: 1.45;
}

/* ---------- Corpo ---------- */
.cr-body {
    padding: 0 22px 4px 22px;
    overflow: auto;
    flex: 1 1 auto;
}

/* ---------- Linha de contexto (marca / espaco > lista) ----------
   E o "onde isto vai nascer". Fica acima do campo de texto porque muda o
   significado de tudo o que vem depois (quem pode ser responsavel, quais
   redes existem, quais status a lista tem). */
.cr-marca,
.cr-local {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    max-width: 100%;
    padding: 5px 10px 5px 5px;
    margin-bottom: 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    cursor: pointer;
    transition: background .18s var(--cr-ease), border-color .18s var(--cr-ease);
}

.cr-marca:hover,
.cr-local:hover {
    background: var(--color-hover-01);
}

/* Marca resolvida pelo contexto (planejamento): mostrar, nao deixar trocar. */
.cr-marca.fixa {
    cursor: default;
    border-style: dashed;
}

.cr-marca.fixa:hover {
    background: transparent;
}

.cr-marca .cr-marca-av,
.cr-marca .avatar-perfil {
    width: 24px;
    height: 24px;
    min-width: 24px;
    border-radius: 8px;
    background-size: cover;
    background-position: center;
    font-size: 10px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cr-marca-av-vazio {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: var(--color-bg-01);
    fill: var(--color-text-01);
    opacity: .5;
}

.cr-marca-nome,
.cr-local-txt {
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    color: var(--color-text-01);
}

.cr-marca-nome.vazio {
    opacity: .5;
    font-weight: 400;
}

.cr-marca-caret {
    display: flex;
    fill: var(--color-text-01);
    opacity: .45;
}

.cr-local-icone {
    width: 22px;
    height: 22px;
    min-width: 22px;
    border-radius: 7px;
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cr-local-sep {
    opacity: .4;
    margin: 0 5px;
}

/* ---------- Campo principal ----------
   Sem rotulo: o placeholder ja diz o que e, e o popup inteiro tem uma
   pergunta so. Cresce com o texto ate um teto. */
.cr-principal-input {
    width: 100%;
    border: 0;
    background: transparent;
    resize: none;
    padding: 0 0 12px 0;
    font-size: 20px;
    font-weight: 500;
    line-height: 1.35;
    letter-spacing: -.015em;
    color: var(--color-text-01);
    outline: none;
    /* Teto generoso + rolagem propria: com um teto curto o texto longo era
       cortado atras dos chips, sem barra e sem aviso de que continuava. */
    max-height: 40vh;
    overflow-y: auto;
    font-family: inherit;
}

.cr-principal-input::placeholder {
    opacity: .32;
    font-weight: 400;
}

/* ---------- Chips ---------- */
.cr-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding-bottom: 4px;
}

.cr-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 10px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: transparent;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    transition: background .18s var(--cr-ease), border-color .18s var(--cr-ease);
    max-width: 100%;
}

/* Os chips e os botoes do rodape sao <button>: sem isto o navegador desenha o
   anel azul de foco por cima do kit inteiro depois de cada clique. O foco de
   TECLADO continua visivel (:focus-visible). */
.cr-pop button:focus {
    outline: none;
}

.cr-pop button:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
}

.cr-chip:hover {
    background: var(--color-hover-01);
}

/* Vazio = convite (traco interrompido + rotulo apagado); preenchido = valor. */
.cr-chip:not(.filled) {
    border-style: dashed;
}

.cr-chip:not(.filled) .cr-chip-txt {
    opacity: .55;
    font-weight: 400;
}

.cr-chip>svg {
    fill: var(--color-text-01);
    opacity: .55;
    flex: 0 0 auto;
}

.cr-chip.filled>svg {
    opacity: .75;
}

.cr-chip-txt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Cor do status/prioridade e DADO, por isso sobrevive ao monocromatico.
   O anel de status e o `.st-icon` global (window.htmlIconeStatus), o mesmo do
   dropdown do conteudo e da listagem - inclusive o preenchimento por
   porcentagem. Aqui ele so perde o `float: left` que as outras telas dao a
   ele, porque chip e item de menu sao flex. */
.cr-chip .st-icon,
.cr-menu-item .st-icon {
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.cr-flag {
    display: inline-flex;
    flex: 0 0 auto;
}

.cr-flag svg {
    width: 13px;
    height: 13px;
}

/* Avatares empilhados dentro do chip */
.cr-pilha {
    display: inline-flex;
    align-items: center;
}

.cr-pilha>* {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px;
    border-radius: 50% !important;
    margin: 0 0 0 -6px !important;
    border: 1.5px solid var(--cr-surface);
    background-size: cover;
    background-position: center;
    font-size: 8px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    float: none !important;
}

.cr-pilha>*:first-child {
    margin-left: 0 !important;
}

.cr-pilha-mais {
    font-size: 11px;
    font-weight: 600;
    opacity: .6;
    margin-left: 5px;
    border: 0 !important;
    width: auto !important;
    min-width: 0;
}

/* ---------- Redes ---------- */
.cr-redes {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 14px;
    padding-top: 13px;
    border-top: 1px solid var(--color-border);
}

.cr-redes-lbl {
    font-size: 12px;
    opacity: .5;
}

.cr-redes-lst {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

/* Cada rede e o logotipo + o nome + a marca de selecionado. O logo mantem a
   forma da marca (e reconhecimento, nao decoracao), mas herda a TINTA - a
   interface e monocromatica, e cinco logos coloridos lado a lado roubariam a
   atencao do texto que a pessoa veio escrever. */
.cr-rede {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 34px;
    padding: 0 11px 0 9px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    transition: border-color .18s var(--cr-ease), background .18s var(--cr-ease), color .18s var(--cr-ease);
}

.cr-rede-logo {
    display: flex;
    align-items: center;
    opacity: .35;
    transition: opacity .18s var(--cr-ease);
}

.cr-rede-logo svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
}

.cr-rede:hover {
    background: var(--color-hover-01);
}

.cr-rede:hover .cr-rede-logo {
    opacity: .75;
}

/* Nao selecionado: o rotulo recua e a marca de check some, mas o espaco dela
   fica reservado - sem isso o botao pula de largura ao ser marcado. */
.cr-rede-nome {
    opacity: .5;
    transition: opacity .18s var(--cr-ease);
}

.cr-rede-ck {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    fill: var(--color-btn-text-01);
    transition: background .18s var(--cr-ease), border-color .18s var(--cr-ease);
}

.cr-rede-ck svg {
    opacity: 0;
    transition: opacity .14s var(--cr-ease);
}

/* Selecionado: o chip continua vazado - so o check ganha tinta, e o logo e o
   nome sobem para a cor cheia. Uma fileira de chips pretos pesava mais que o
   proprio conteudo. */
.cr-rede.atv .cr-rede-logo,
.cr-rede.atv .cr-rede-nome {
    opacity: 1;
}

.cr-rede.atv .cr-rede-ck {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    fill: var(--color-btn-text-01);
}

.cr-rede.atv .cr-rede-ck svg {
    opacity: 1;
}

/* Conectada na marca, mas o formato nao publica nela (YouTube em Imagem,
   TikTok em Stories...). Continua visivel - sumir faria a pessoa procurar a
   rede - e o tooltip (data-title) diz o motivo. aria-disabled em vez de
   disabled: botao desabilitado nao dispara o hover que abre o tooltip. */
.cr-rede.indisp {
    cursor: not-allowed;
    border-style: dashed;
    opacity: .5;
}

.cr-rede.indisp:hover {
    background: transparent;
}

.cr-rede.indisp .cr-rede-logo {
    opacity: .45;
}

.cr-rede.indisp .cr-rede-ck {
    visibility: hidden;
}

/* ---------- Bloco recolhido (campos longos) ---------- */
.cr-mais {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--color-border);
}

.cr-mais-hdr {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px 3px 4px;
    margin-left: -4px;
    border: 0;
    background: transparent;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--color-text-01);
    opacity: .65;
    cursor: pointer;
    transition: opacity .18s var(--cr-ease), background .18s var(--cr-ease);
}

.cr-mais-hdr:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.cr-mais-hdr svg {
    fill: var(--color-text-01);
    transform: rotate(-90deg);
    transition: transform .2s var(--cr-ease);
}

.cr-mais.aberto .cr-mais-hdr {
    opacity: 1;
}

.cr-mais.aberto .cr-mais-hdr svg {
    transform: rotate(0deg);
}

.cr-mais-body {
    display: grid;
    grid-template-rows: 0fr;
    opacity: 0;
    visibility: hidden;
    transition: grid-template-rows .32s var(--cr-ease), opacity .22s var(--cr-ease), visibility 0s linear .32s;
}

.cr-mais.aberto .cr-mais-body {
    grid-template-rows: 1fr;
    opacity: 1;
    visibility: visible;
    transition: grid-template-rows .32s var(--cr-ease), opacity .26s var(--cr-ease) .06s, visibility 0s;
}

/* Recolhido, o conteudo continua medido (a altura dos campos ja esta certa ao
   abrir) - so fica cortado pela linha 0fr. */
.cr-mais-in {
    min-height: 0;
    overflow: hidden;
}

/* O respiro de cima e um bloco DENTRO do recorte: como padding, ele ficava
   para fora da linha 0fr e o bloco fechado sobrava com 10px. */
.cr-mais-in::before {
    content: "";
    display: block;
    height: 10px;
}

.cr-campo {
    margin-bottom: 10px;
}

.cr-campo label {
    display: block;
    font-size: 11.5px;
    font-weight: 500;
    opacity: .55;
    margin: 0 0 5px 2px;
}

.cr-campo textarea {
    width: 100%;
    min-height: 72px;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--cr-raio-campo);
    background: transparent;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--color-text-01);
    resize: vertical;
    outline: none;
    font-family: inherit;
    transition: border-color .18s var(--cr-ease);
}

.cr-campo textarea:focus {
    border-color: var(--color-text-01);
}

.cr-campo textarea::placeholder {
    opacity: .35;
}

/* ---------- Rodape ---------- */
.cr-ftr {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    padding: 13px 22px;
    margin-top: 6px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
    border-radius: 0 0 var(--cr-raio) var(--cr-raio);
}

.cr-ftr-lef {
    flex: 1 1 auto;
    min-width: 0;
}

.cr-ftr-rig {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.cr-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 36px;
    padding: 0 17px;
    border: 1px solid transparent;
    border-radius: 13px;
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    background: transparent;
    color: var(--color-text-01);
    transition: transform .2s var(--cr-ease), box-shadow .2s var(--cr-ease), background .18s var(--cr-ease), opacity .18s var(--cr-ease);
}

.cr-btn-primary {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.cr-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.cr-btn-primary:disabled {
    opacity: .55;
    cursor: default;
    transform: none;
    box-shadow: none;
}

.cr-btn-ghost {
    opacity: .6;
}

.cr-btn-ghost:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.cr-btn-ia {
    padding: 0 13px;
    border-color: var(--color-border);
    font-weight: 500;
    opacity: .8;
}

.cr-btn-ia svg {
    fill: var(--color-text-01);
}

.cr-btn-ia:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Contador de caracteres - so aparece perto do limite (80%), porque os campos
   tem tetos reais de coluna (o Tema/Objetivo tem apenas 200) e antes o texto
   era truncado em silencio na hora de gravar. */
.cr-contador {
    font-size: 11px;
    opacity: .45;
    text-align: right;
    margin: -6px 2px 8px 0;
    font-variant-numeric: tabular-nums;
}

.cr-contador.no-limite {
    opacity: .9;
    font-weight: 600;
}

/* ---------- Regua do tema (Novo conteudo) ----------
   O tema e o TITULO (coluna de 200). O contador fica sempre a vista no canto,
   e o "Mais detalhes?" a esquerda leva direto para as observacoes - e o
   caminho certo para quem quer escrever mais. */
.cr-tema-rod {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: -6px 0 10px 0;
    min-height: 24px;
}

.cr-tema-mais {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 3px 8px 3px 4px;
    margin-left: -4px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--color-text-01);
    opacity: .5;
    cursor: pointer;
    transition: opacity .18s var(--cr-ease), background .18s var(--cr-ease);
}

.cr-tema-mais svg {
    width: 10px;
    height: 10px;
    fill: var(--color-text-01);
}

.cr-tema-mais:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Observacoes ja abertas: o atalho perde o sentido. */
.cr-pop:has(.cr-mais.aberto) .cr-tema-mais {
    opacity: 0;
    visibility: hidden;
    transition: opacity .18s var(--cr-ease), visibility 0s linear .18s;
}

.cr-tema-cnt {
    display: inline-block;
    transform-origin: right center;
    margin-left: auto;
    font-size: 11.5px;
    font-variant-numeric: tabular-nums;
    color: var(--color-text-01);
    opacity: .38;
    transition: opacity .18s var(--cr-ease);
}

.cr-tema-cnt.perto {
    opacity: .75;
}

.cr-tema-cnt.passou {
    opacity: 1;
    font-weight: 650;
}

.cr-tema-cnt.pula {
    animation: cr-cnt-pula .38s var(--cr-ease);
}

@keyframes cr-cnt-pula {
    0% {
        transform: scale(1);
    }

    40% {
        transform: scale(1.22);
    }

    100% {
        transform: scale(1);
    }
}

/* Passou do limite: em vez de cortar o texto, o popup oferece os dois
   caminhos. O "Criar" fica travado (.cr-bloq) ate o tema voltar a caber. */
/* Abre pela ALTURA (linha 0fr -> 1fr), entao o que esta embaixo desce junto
   em vez de pular. A caixa entra com fade e um leve deslize. */
.cr-tema-aviso-wrap {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .34s var(--cr-ease);
}

.cr-tema-aviso-wrap.aberto {
    grid-template-rows: 1fr;
}

.cr-tema-aviso-in {
    min-height: 0;
    overflow: hidden;
}

.cr-tema-aviso-wrap .cr-tema-aviso {
    opacity: 0;
    transform: translateY(-6px) scale(.985);
    transition: opacity .2s var(--cr-ease), transform .3s var(--cr-ease);
}

.cr-tema-aviso-wrap.aberto .cr-tema-aviso {
    opacity: 1;
    transform: none;
    transition: opacity .26s var(--cr-ease) .08s, transform .34s var(--cr-ease) .04s;
}

.cr-tema-aviso {
    margin: 0 0 12px 0;
    padding: 11px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--cr-raio-campo);
    background: var(--color-hover-01);
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--color-text-01);
}

.cr-tema-aviso-txt {
    opacity: .8;
}

.cr-tema-aviso-txt b {
    font-weight: 600;
}

.cr-tema-aviso-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 9px;
}

.cr-tema-aviso-wrap.aberto .cr-tema-aviso.pulsa {
    animation: cr-pulsa .42s var(--cr-ease);
}

@keyframes cr-pulsa {

    0%,
    100% {
        transform: none;
    }

    25% {
        transform: translateX(-4px);
    }

    60% {
        transform: translateX(3px);
    }
}

.cr-btn-sm {
    height: 30px;
    padding: 0 12px;
    gap: 6px;
    border-radius: 10px;
    font-size: 12.5px;
}

.cr-btn svg {
    flex: 0 0 auto;
}

.cr-btn-primary svg {
    fill: var(--color-btn-text-01);
}

.cr-salvar {
    transition: transform .2s var(--cr-ease), box-shadow .2s var(--cr-ease), background .18s var(--cr-ease), opacity .28s var(--cr-ease);
}

.cr-btn.cr-bloq,
.cr-btn.cr-bloq:hover {
    opacity: .38;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* ---------- Midia e anexos escolhidos na criacao ---------- */
.cr-arqs {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 10px;
}

.cr-arqs-midias,
.cr-arqs-anexos {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.cr-arq-mid,
.cr-arq-add {
    position: relative;
    width: 64px;
    height: 64px;
    border-radius: 11px;
    overflow: hidden;
    flex: 0 0 auto;
}

.cr-arq-mid {
    border: 1px solid var(--color-border);
    background: var(--color-hover-01);
}

.cr-arq-mid.novo,
.cr-arq-anx.novo {
    animation: cr-arq-entra .34s var(--cr-ease) both;
}

.cr-arq-mid.saindo,
.cr-arq-anx.saindo {
    animation: cr-arq-sai .17s var(--cr-ease) forwards;
    pointer-events: none;
}

@keyframes cr-arq-entra {
    from {
        opacity: 0;
        transform: scale(.82) translateY(4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes cr-arq-sai {
    to {
        opacity: 0;
        transform: scale(.82);
    }
}

.cr-arq-mid img,
.cr-arq-mid video {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cr-arq-play {
    position: absolute;
    left: 6px;
    bottom: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .55);
    fill: #fff;
    pointer-events: none;
}

.cr-arq-ord {
    position: absolute;
    left: 5px;
    top: 5px;
    padding: 1px 5px;
    border-radius: 6px;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    pointer-events: none;
}

.cr-arq-mid .cr-arq-rm {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .6);
    fill: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity .16s var(--cr-ease);
}

.cr-arq-mid:hover .cr-arq-rm,
.cr-arq-mid .cr-arq-rm:focus-visible {
    opacity: 1;
}

.cr-arq-add {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px dashed var(--color-border);
    background: transparent;
    cursor: pointer;
    transition: background .18s var(--cr-ease);
}

.cr-arq-add svg {
    fill: var(--color-text-01);
    opacity: .5;
}

.cr-arq-add:hover {
    background: var(--color-hover-01);
}

.cr-arq-anx {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    max-width: 100%;
    height: 32px;
    padding: 0 4px 0 6px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    font-size: 12.5px;
    color: var(--color-text-01);
}

.cr-arq-ext {
    flex: 0 0 auto;
    padding: 2px 5px;
    border-radius: 5px;
    background: var(--color-hover-01);
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.cr-arq-nome {
    min-width: 0;
    max-width: 190px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cr-arq-tam {
    flex: 0 0 auto;
    font-size: 11.5px;
    opacity: .45;
    font-variant-numeric: tabular-nums;
}

.cr-arq-anx .cr-arq-rm {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    fill: var(--color-text-01);
    opacity: .45;
    cursor: pointer;
    transition: opacity .16s var(--cr-ease), background .16s var(--cr-ease);
}

.cr-arq-anx .cr-arq-rm:hover {
    opacity: 1;
    fill: #e83a3a;
    background: var(--color-hover-01);
}

.cr-arqs-nota {
    font-size: 12px;
    line-height: 1.45;
    opacity: .7;
}

.cr-arqs-ajustar {
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    font-weight: 600;
    color: var(--color-text-01);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

/* ---------- Subtarefas na criacao (Nova tarefa) ----------
   Lista enxuta: cada linha e um campo editavel e o ultimo inclui a proxima. */
.cr-subs {
    margin-top: 10px;
    padding: 6px 4px 6px 4px;
    border: 1px solid var(--color-border);
    border-radius: var(--cr-raio-campo);
}

.cr-subs.novo {
    animation: cr-ia-entra .26s var(--cr-ease);
}

.cr-subs-lst {
    max-height: 220px;
    overflow-y: auto;
}

.cr-sub,
.cr-sub-cmp {
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 32px;
    padding: 0 6px 0 10px;
    border-radius: 8px;
}

.cr-sub:hover {
    background: var(--color-hover-01);
}

.cr-sub.novo {
    animation: cr-arq-entra .28s var(--cr-ease) both;
}

.cr-sub.saindo {
    animation: cr-arq-sai .17s var(--cr-ease) forwards;
    pointer-events: none;
}

.cr-sub-dot {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    border: 1.5px solid var(--color-text-01);
    border-radius: 50%;
    opacity: .35;
}

.cr-sub-txt,
.cr-sub-novo {
    flex: 1 1 auto;
    min-width: 0;
    height: 30px;
    padding: 0;
    border: 0;
    background: transparent;
    font-family: inherit;
    font-size: 13.5px;
    color: var(--color-text-01);
    outline: none;
}

.cr-sub-novo::placeholder {
    color: var(--color-text-01);
    opacity: .4;
}

.cr-sub-rm {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    fill: var(--color-text-01);
    opacity: 0;
    cursor: pointer;
    transition: opacity .16s var(--cr-ease);
}

.cr-sub:hover .cr-sub-rm,
.cr-sub:focus-within .cr-sub-rm {
    opacity: .45;
}

.cr-sub .cr-sub-rm:hover {
    opacity: 1;
    fill: #e83a3a;
}

.cr-sub-cmp>svg {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    fill: var(--color-text-01);
    opacity: .45;
}

.cr-sub-dica {
    flex: 0 0 auto;
    padding: 1px 6px;
    border: 1px solid var(--color-border);
    border-radius: 5px;
    font-size: 10.5px;
    opacity: 0;
    transition: opacity .16s var(--cr-ease);
}

.cr-sub-novo:not(:placeholder-shown)+.cr-sub-dica {
    opacity: .5;
}

/* ---------- "Criar mais uma" + confirmacao no subtitulo ---------- */
.cr-maisuma {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    opacity: .75;
    cursor: pointer;
    user-select: none;
    transition: opacity .18s var(--cr-ease);
}

.cr-maisuma:hover,
.cr-maisuma:has(input:checked) {
    opacity: 1;
}

.cr-feito {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    animation: cr-ia-entra .26s var(--cr-ease);
}

.cr-feito svg {
    flex: 0 0 auto;
    fill: var(--color-text-01);
}

.cr-feito-txt {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cr-feito-abrir {
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    font: inherit;
    font-weight: 600;
    color: var(--color-text-01);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

/* Com a confirmacao, o subtitulo sobe para a tinta cheia por um instante. */
.cr-hdr-sub:has(.cr-feito) {
    opacity: .85;
}

/* Arrastando arquivo por cima do popup. A caixa e um elemento de verdade
   (nao ::after) para o texto ter acento. Fica no .cr-body, mas o berco
   posicionado e o .cr-pop - cobre o popup inteiro. */
.cr-drop {
    display: flex;
    opacity: 0;
    visibility: hidden;
    transform: scale(.98);
    transition: opacity .18s var(--cr-ease), transform .24s var(--cr-ease), visibility 0s linear .18s;
    position: absolute;
    inset: 8px;
    z-index: 6;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 1.5px dashed var(--color-text-01);
    border-radius: calc(var(--cr-raio) - 6px);
    background: var(--cr-surface);
    color: var(--color-text-01);
    pointer-events: none;
    text-align: center;
    padding: 20px;
}

.cr-drop svg {
    width: 26px;
    height: 26px;
    fill: var(--color-text-01);
    opacity: .6;
    margin-bottom: 4px;
}

.cr-drop-ttl {
    font-size: 15px;
    font-weight: 600;
}

.cr-drop-sub {
    font-size: 12.5px;
    opacity: .55;
}

.cr-pop.cr-arrastando .cr-drop {
    opacity: 1;
    visibility: visible;
    transform: none;
    transition: opacity .18s var(--cr-ease), transform .24s var(--cr-ease), visibility 0s;
}

/* ---------- Texto livre para a IA (.cr-ia-brief) ----------
   Mesma camada da revisao, com um campo grande no lugar dos campos gerados. */
.cr-ia-brief .cr-brief-sub {
    white-space: normal;
}

.cr-brief-txt {
    display: block;
    width: 100%;
    height: 240px;
    min-height: 140px;
    max-height: 56vh;
    padding: 12px 14px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: transparent;
    font-family: inherit;
    font-size: 14.5px;
    line-height: 1.55;
    color: var(--color-text-01);
    resize: vertical;
    outline: none;
    transition: border-color .18s var(--cr-ease);
}

.cr-brief-txt:focus {
    border-color: var(--color-text-01);
}

.cr-brief-txt::placeholder {
    color: var(--color-text-01);
    opacity: .38;
}

.cr-brief-rod {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 7px;
    font-size: 12px;
    line-height: 1.45;
}

.cr-brief-dica {
    opacity: .5;
}

.cr-brief-cnt {
    margin-left: auto;
    opacity: .5;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* ===========================================================================
   CAMADA DE REVISAO DA IA
   Fica DENTRO do .cr-pop, cobrindo-o: o que se esta criando continua visivel
   por tras e nao ha um segundo modal disputando z-index com o #edit-popup.
   =========================================================================== */
.cr-ia {
    position: absolute;
    inset: 0;
    z-index: 5;
    display: flex;
    flex-direction: column;
    background: var(--cr-surface);
    border-radius: var(--cr-raio);
    animation: cr-ia-entra .22s var(--cr-ease);
}

@keyframes cr-ia-entra {
    from {
        opacity: 0;
        transform: translateY(6px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.cr-ia-box {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-height: 0;
}

.cr-ia-hdr {
    flex: 0 0 auto;
    padding: 22px 52px 12px 22px;
    /* 52 a direita = folga do .btn-close */
}

.cr-ia-ttl {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 17px;
    font-weight: 550;
    letter-spacing: -.02em;
    color: var(--color-text-01);
}

.cr-ia-ttl svg {
    fill: var(--color-text-01);
}

/* Depois de um ajuste, o subtitulo repete o pedido - uma linha so; o texto
   inteiro fica no tooltip. */
.cr-ia-sub {
    font-size: 12.5px;
    opacity: .55;
    margin-top: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cr-ia-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding: 0 22px 10px 22px;
    overscroll-behavior: contain;
}

/* Nota que explica por que um campo nao veio (formato sem legenda, por ex.) */
.cr-ia-nota {
    padding: 9px 12px;
    margin-bottom: 10px;
    border: 1px dashed var(--color-border);
    border-radius: var(--cr-raio-campo);
    font-size: 12.5px;
    opacity: .6;
    line-height: 1.45;
}

/* ---------- Doca: pedido de ajuste + acoes ----------
   Nao rola com o corpo. O pedido e um composer de chat (campo que cresce ate
   ~5 linhas + botao de enviar), com atalhos de pedidos comuns acima. */
.cr-ia-doca {
    flex: 0 0 auto;
    border-top: 1px solid var(--color-border);
    background: var(--cr-surface);
    border-radius: 0 0 var(--cr-raio) var(--cr-raio);
}

.cr-ia-ajuste {
    padding: 12px 22px 14px 22px;
}

.cr-ia-sug {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}

.cr-ia-sug-it {
    flex: 0 0 auto;
    height: 28px;
    padding: 0 11px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: transparent;
    font-size: 12.5px;
    font-weight: 500;
    white-space: nowrap;
    color: var(--color-text-01);
    opacity: .7;
    cursor: pointer;
    transition: opacity .18s var(--cr-ease), background .18s var(--cr-ease);
}

.cr-ia-sug-it:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.cr-ia-cmp {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    padding: 5px 5px 5px 14px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--cr-surface);
    cursor: text;
    transition: border-color .18s var(--cr-ease), box-shadow .18s var(--cr-ease);
}

.cr-ia-cmp:focus-within {
    border-color: var(--color-text-01);
    box-shadow: 0 10px 28px -18px rgba(16, 24, 40, .35);
}

/* O campo cresce com o texto (cp-auto) ate o teto; dali para a frente rola
   por dentro. O !important vence o overflow:hidden que o campoAutoAltura
   escreve inline - sem ele o texto alem do teto ficaria invisivel. */
.cr-ia-cmp .cr-ia-ajuste-txt {
    flex: 1 1 auto;
    min-width: 0;
    height: 34px;
    max-height: 128px;
    padding: 7px 0;
    border: 0;
    background: transparent;
    font-size: 14px;
    line-height: 20px;
    color: var(--color-text-01);
    resize: none;
    outline: none;
    font-family: inherit;
    overflow-y: auto !important;
}

.cr-ia-cmp .cr-ia-ajuste-txt::placeholder {
    color: var(--color-text-01);
    opacity: .4;
}

.cr-ia-enviar {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 0;
    border-radius: 11px;
    background: var(--color-btn-bg-01);
    fill: var(--color-btn-text-01);
    cursor: pointer;
    transition: opacity .18s var(--cr-ease), transform .2s var(--cr-ease);
}

.cr-ia-enviar:hover {
    transform: translateY(-1px);
}

/* Campo vazio: o enviar recua (clicar so devolve o foco ao campo). */
.cr-ia-ajuste-txt:placeholder-shown+.cr-ia-enviar {
    opacity: .25;
    transform: none;
    cursor: default;
}

.cr-ia-ftr {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
    border-radius: 0 0 var(--cr-raio) var(--cr-raio);
    flex-wrap: wrap;
}

.cr-ia-ftr-sp {
    flex: 1 1 auto;
}

/* Botao de contorno: as duas acoes de "tentar de novo" ficam disponiveis sem
   competir com o primario. */
.cr-btn-out {
    border-color: var(--color-border);
    font-weight: 500;
    opacity: .85;
}

.cr-btn-out:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Saida da camada (crIaSai) e o formulario voltando por baixo dela. */
.cr-ia.saindo {
    animation: cr-ia-sai .14s var(--cr-ease) forwards;
    pointer-events: none;
}

@keyframes cr-ia-sai {
    to {
        opacity: 0;
        transform: translateY(4px);
    }
}

.cr-pop.cr-volta>.cr-hdr,
.cr-pop.cr-volta>.cr-body,
.cr-pop.cr-volta>.cr-ftr {
    animation: cr-ia-entra .26s var(--cr-ease);
}

/* O .cr-pop precisa ser o berco da camada. */
.cr-pop {
    position: relative;
}

/* A CAMADA DA IA CRESCE COM O TEXTO.
   Presa em `inset: 0`, ela herdava a altura do popup que cobre - o "Novo
   conteudo" fechado tem ~480px, e a legenda gerada (ate 2000 caracteres)
   aparecia numa janelinha de 3 linhas com rolagem. Com a camada aberta, o
   formulario de tras sai do fluxo (o fundo dela e opaco, nada dele aparecia)
   e ela passa a ditar a altura do popup, ate o teto da tela; dai em diante
   quem rola e o .cr-ia-body.
   Sem suporte a :has() fica o desenho antigo (absoluto) - nada quebra. */
.cr-pop:has(> .cr-ia)>.cr-hdr,
.cr-pop:has(> .cr-ia)>.cr-body,
.cr-pop:has(> .cr-ia)>.cr-ftr {
    display: none;
}

.cr-pop:has(> .cr-ia)>.cr-ia {
    position: relative;
    inset: auto;
    flex: 1 1 auto;
    min-height: 0;
}

.cr-pop:has(> .cr-ia)>.cr-ia .cr-ia-box {
    height: auto;
    flex: 1 1 auto;
}

/* Campo que cresce com o texto (window.campoAutoAltura): arrastar a alca
   para encolher esconderia o texto que ele acabou de mostrar. */
.cr-campo textarea.cp-auto,
.cr-ia-ajuste textarea.cp-auto,
.lt-pop .lt-campo textarea.cp-auto {
    resize: none;
}

/* O chip de data nao tem input proprio: o flatpickr precisa de um, entao o JS
   cria um descartavel e o ancora no chip (positionElement). Ele nao pode
   ocupar espaco nem receber clique. */
.cr-fp-hidden {
    position: fixed;
    top: 0;
    left: 0;
    width: 0;
    height: 0;
    padding: 0;
    border: 0;
    opacity: 0;
    pointer-events: none;
}

/* ===========================================================================
   MENUS DOS CHIPS
   Um so componente para marca, canal+tipo, status, pessoas, prioridade e
   lista. `position: fixed` porque o popup rola por dentro.
   =========================================================================== */
.cr-menu {
    position: fixed;
    z-index: 100000;
    min-width: 216px;
    max-width: 340px;
    padding: 6px;
    background: var(--cr-menu-surface);
    border: 1px solid var(--color-border);
    border-radius: 14px;
    box-shadow: var(--cr-menu-sombra);
}

.cr-menu-busca {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 4px 8px 8px 8px;
    border-bottom: 1px solid var(--color-border);
    margin-bottom: 5px;
}

.cr-menu-busca svg {
    fill: var(--color-text-01);
    opacity: .4;
    flex: 0 0 auto;
}

.cr-menu-busca-input {
    width: 100%;
    border: 0;
    background: transparent;
    outline: none;
    font-size: 13px;
    color: var(--color-text-01);
}

.cr-menu-busca-input::placeholder {
    opacity: .4;
}

.cr-menu-lst,
.cr-menu-grupo {
    max-height: 296px;
    overflow: auto;
}

.cr-menu-grupo {
    max-height: none;
    overflow: visible;
}

.cr-menu-ttl {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 7px 8px 4px 8px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    opacity: .45;
}

.cr-menu-item {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px;
    border-radius: 9px;
    font-size: 13px;
    cursor: pointer;
    transition: background .14s var(--cr-ease);
}

.cr-menu-item:hover {
    background: var(--color-hover-01);
}

/* Selecionado: realce fraco + marca de verificacao desenhada em CSS, sem cor. */
.cr-menu-item.atv {
    background: var(--color-hover-01);
    font-weight: 600;
}

.cr-menu-item.atv::after {
    content: "";
    width: 5px;
    height: 9px;
    margin-left: auto;
    flex: 0 0 auto;
    border: solid var(--color-text-01);
    border-width: 0 1.8px 1.8px 0;
    transform: rotate(45deg) translateY(-1px);
}

.cr-menu-txt {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cr-menu-item .cr-menu-av,
.cr-menu-item .avatar-perfil,
.cr-menu-item .thumb {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px;
    border-radius: 8px !important;
    background-size: cover;
    background-position: center;
    margin: 0 !important;
    font-size: 9px !important;
    display: flex;
    align-items: center;
    justify-content: center;
    float: none !important;
}

.cr-menu-vazio {
    padding: 14px 10px;
    text-align: center;
    font-size: 12.5px;
    opacity: .5;
}

/* Nota de rodape do menu: explica a opcao que nao tem valor visivel (o
   "Automatico" da quantidade de objetivos). Nao e item, nao recebe clique. */
.cr-menu-dica {
    padding: 8px 8px 4px 8px;
    margin-top: 4px;
    border-top: 1px solid var(--color-border);
    font-size: 11.5px;
    line-height: 1.45;
    opacity: .5;
}

/* --- Canal + tipo: duas colunas, a da direita reage a da esquerda --- */
.cr-menu-ct {
    min-width: 340px;
}

.cr-ct {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4px;
}

.cr-ct-col {
    min-width: 0;
}

.cr-ct-col+.cr-ct-col {
    border-left: 1px solid var(--color-border);
    padding-left: 4px;
}

/* --- Status do conteudo: mesma marcacao do menu de status da tarefa, so um
       pouco mais largo (os nomes das etapas sao maiores). --- */
.cr-menu-status {
    min-width: 248px;
}

/* ---------- Mobile ---------- */
@media (max-width: 640px) {

    #edit-popup .contant .boxpop:has(.cr-pop),
    #edit-popup-mini .contant .boxpop:has(.cr-pop) {
        max-width: 100%;
    }

    .cr-hdr {
        padding: 20px 48px 12px 16px;
    }

    .cr-body {
        padding: 0 16px 4px 16px;
    }

    .cr-principal-input {
        font-size: 18px;
    }

    .cr-ftr {
        padding: 11px 16px;
        flex-wrap: wrap;
    }

    .cr-ftr-lef {
        order: 2;
        flex: 1 0 100%;
    }

    .cr-ftr-rig {
        order: 1;
        flex: 1 0 100%;
        justify-content: flex-end;
    }

    .cr-btn-ia {
        width: 100%;
    }

    .cr-menu {
        max-width: calc(100vw - 24px);
    }

    .cr-menu-ct {
        min-width: 0;
        width: calc(100vw - 24px);
    }
}

/* ===========================================================================
   OBJETIVOS - IA (aprimorar no card + gerar em lote)
   ---------------------------------------------------------------------------
   O botao do card reusa a classe .btn-aprimorar (mesmo popup e mesmo endpoint
   das legendas); aqui so damos a ele a forma de icone da barra do objetivo.
   =========================================================================== */
#tabd2-4 .objetivos-head-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

/* "Gerar com IA" espelha o botao "+ Adicionar objetivo" (mesma altura, mesmo
   raio, mesmo peso) - sem isto ele cai no `.btn` generico, que nao controla o
   tamanho do SVG e desenhava a estrela em tamanho natural. */
.editarPerfis .btn-objetivos-ia {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    width: auto;
    margin: 0;
    padding: 9px 15px;
    border-radius: var(--ap-radius-sm);
    border: 1px solid var(--ap-line);
    background: var(--color-bg);
    color: var(--color-text-01);
    fill: var(--color-text-01);
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    float: none;
    flex: none;
    transition: background .15s ease, border-color .15s ease;
}

.editarPerfis .btn-objetivos-ia:hover {
    background: var(--ap-hover);
    border-color: var(--ap-faint);
    transform: none;
}

.editarPerfis .btn-objetivos-ia svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
    flex: none;
}

/* Botao de IA do card: aparece no hover, como as demais acoes da barra. */
.item-objetivo .obj-btn-ia {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    padding: 0;
    border: 0;
    border-radius: 7px;
    background: transparent;
    cursor: pointer;
    opacity: 0;
    transition: opacity .16s ease, background .16s ease;
}

.item-objetivo:hover .obj-btn-ia,
.item-objetivo .obj-btn-ia:focus-visible {
    opacity: .55;
}

.item-objetivo .obj-btn-ia:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-objetivo .obj-btn-ia svg {
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
}

/* --- Popup "Gerar objetivos com IA" -------------------------------------
   Nao tem mais CSS proprio: ele passou a ser a casca dos popups de criacao
   (kit .cr-*, no bloco "POPUPS DE CRIACAO" deste arquivo), montada dentro do
   #edit-popup-mini porque o #edit-popup e o popup da MARCA de onde ele sai.
   O que era campo com rotulo (periodo e quantidade) virou CHIP, e o botao em
   degrade virou o primario do kit. */

/* ===========================================================================
   TELA DE PLANEJAMENTO - cabecalho de contexto            (redesign 08/2026)
   ---------------------------------------------------------------------------
   DUAS COISAS EXPLICAM O QUE ESTAVA "QUEBRADO" AQUI, e as duas sao herdadas:

   1. AS FAIXAS NAO COMPARTILHAVAM EIXO. #lst-posts, #sessoes-planejamento,
      #menu-exbicao e #header-lst-posts sao `max-width:1300px; margin:auto`,
      cada um com um padding lateral diferente (10px, 10px, 9px, 0); ja
      .header-baixo e .totais-desc-conteudos nao tinham max-width nenhum e
      ocupavam a tela toda. Em monitor largo cada bloco comecava numa coluna
      diferente. Abaixo todas passam pelo MESMO eixo (1300px + 15px).

   2. O LAYOUT ORIGINAL E TODO `float` com largura fixa (.totais-objetivos 60%
      / .totais-datas 40%, .container-status-header 275px, .metas-qtd
      float:right, .grafics float:left, os .item das abas float:left).
      Estilizar por cima sem ZERAR esses floats foi o que desmontou o arranjo
      na primeira tentativa - cada regra aqui desliga o antigo antes de montar
      o novo em flex.

   Monocromatico: a unica cor e o DADO (cor do status cadastrado pelo usuario).
   =========================================================================== */

/* --- EIXO DA COLUNA ------------------------------------------------------
   UMA regua para a tela inteira, e ela e ditada pelo CONTEUDO: o calendario
   (#lst-posts) e o objeto principal e sangra na largura toda da area
   (.view-planejamento #lst-posts { max-width: initial !important }, la em
   cima). Enquanto o cabecalho vivia numa caixa de 1300px centrada e o
   calendario ocupava tudo, a tela tinha DUAS reguas - e em 1920px o cabecalho
   flutuava no meio de um calendario que ia de borda a borda.

   Agora os quatro blocos (cards, barra, resumo e o proprio calendario) tem a
   MESMA borda esquerda e direita, em qualquer largura. O recuo lateral e o
   unico numero que manda nisso: mexeu aqui, mexeu na coluna inteira.

   Escopado em #htmlSessaoAtual/.view-planejamento para nao mexer no
   #header-lst-posts (a barra fixa, que ja tem eixo proprio). */
#htmlSessaoAtual .header-baixo,
.view-planejamento .header-baixo,
#htmlSessaoAtual .totais-desc-conteudos,
.view-planejamento .totais-desc-conteudos,
#htmlSessaoAtual .pl-barra,
.view-planejamento .pl-barra,
.view-planejamento #lst-posts {
    box-sizing: border-box;
    max-width: none;
    margin-left: 0;
    margin-right: 0;
    padding-left: var(--pl-eixo, 15px);
    padding-right: var(--pl-eixo, 15px);
}

/* --- Faixa Objetivos + Datas: duas colunas flex, nao mais floats % --------
   align-items: STRETCH (e nao flex-start) porque os dois cards sao a MESMA
   faixa: com flex-start cada um parava na altura do proprio conteudo e a
   dupla terminava em linhas diferentes - um card de 109px ao lado de outro de
   128px era o desalinhamento mais visivel do bloco. */
#htmlSessaoAtual .header-baixo,
.view-planejamento .header-baixo {
    display: flex;
    align-items: stretch;
    gap: 16px;
    padding-top: 16px;
    padding-bottom: 20px;
}

/* O .clear do HTML traz o clearfix .clear::after (painel3.css:232). Num
   container flex esse pseudo vira um ITEM de largura zero - e paga um `gap`
   inteiro. Resultado: a dupla de cards terminava 16px antes da borda direita
   do eixo, desalinhada do resumo e do calendario por um vao que nao existia em
   lugar nenhum do CSS. Mesmo tratamento ja usado em .lst-membros .item. */
#htmlSessaoAtual .header-baixo::after,
.view-planejamento .header-baixo::after {
    content: none;
}

.header-baixo .pl-card {
    float: none;
    width: auto;
    padding: 14px 16px 10px 16px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-sizing: border-box;
    transition: border-color .2s cubic-bezier(.16, 1, .3, 1);
}

/* Objetivos tem textos longos; datas sao linhas curtas. 1.4 : 1 mantem a
   proporcao antiga (60/40) sem depender de porcentagem + float. */
.header-baixo .totais-objetivos.pl-card {
    flex: 1.4 1 0;
    min-width: 0;
}

.header-baixo .totais-datas.pl-card {
    flex: 1 1 0;
    min-width: 0;
}

.header-baixo .pl-card:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 22%, transparent);
}

.header-baixo .pl-card-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

/* h5 original e float:left com font-size 16 - aqui ele e item de flex. */
.header-baixo .pl-card-hdr h5 {
    float: none;
    margin: 0;
    padding: 0;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -.01em;
    color: var(--color-text-01);
}

.header-baixo .pl-card-cont {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 20px;
    height: 18px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--color-bg-01);
    font-size: 11px;
    font-weight: 600;
    opacity: .65;
}

.header-baixo .pl-card-sp {
    flex: 1 1 auto;
}

/* O lapis so aparece no hover do card - e uma acao secundaria. */
.header-baixo .pl-card .btn-edit-p {
    position: static;
    float: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    margin: 0;
    border-radius: 8px;
    cursor: pointer;
    opacity: 0;
    transition: opacity .16s ease, background .16s ease;
}

.header-baixo .pl-card:hover .btn-edit-p {
    opacity: .5;
}

.header-baixo .pl-card .btn-edit-p:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.header-baixo .pl-card .btn-edit-p svg {
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
}

.header-baixo .pl-card .lst {
    float: none;
    width: auto;
}

/* --- Itens dos dois paineis ---------------------------------------------- */
.header-baixo .totais-obj-item,
.header-baixo .totais-data-item {
    float: none;
    width: auto;
    padding: 8px 0;
    border-top: 1px solid color-mix(in srgb, var(--color-border) 60%, transparent);
}

.header-baixo .totais-obj-item:first-child,
.header-baixo .totais-data-item:first-child {
    border-top: 0;
    padding-top: 2px;
}

/* A LINHA E UMA GRADE, e o selo de conteudos tem COLUNA PROPRIA.
   Sem coluna, ele ficaria colado no fim de cada texto - e como os textos tem
   comprimentos diferentes, os selos desceriam a lista em zigue-zague. Estreito,
   a data sobe para a sua propria faixa e o selo acompanha o texto; largo (ver o
   @container adiante) os tres dividem a mesma linha e o selo encosta na direita.
   Estas regras vem ANTES do @container de proposito: @container nao soma
   especificidade, entao o que viesse depois no arquivo venceria o arranjo largo. */
.header-baixo .totais-obj-item {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "data  data"
        "texto selo";
    align-items: baseline;
    column-gap: 12px;
}

.header-baixo .totais-obj-item .data {
    grid-area: data;
}

.header-baixo .totais-obj-item .texto {
    grid-area: texto;
}

/* O selo: contagem de conteudos escritos para este direcionamento. Apagado em
   repouso (e informacao de apoio, nao a linha), inteiro no hover - onde ele se
   anuncia como clicavel. Monocromatico: a tinta do app, nunca cor de acento. */
.header-baixo .totais-obj-item .obj-pl-n {
    grid-area: selo;
    align-self: center;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 7px;
    margin: 0;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1;
    opacity: .5;
    cursor: pointer;
    transition: opacity .14s ease, background .14s ease, border-color .14s ease;
}

.header-baixo .totais-obj-item .obj-pl-n:hover {
    opacity: 1;
    background: var(--color-hover-01);
    border-color: var(--color-text-01);
}

.header-baixo .totais-obj-item .obj-pl-n svg {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
    fill: currentColor;
}

/* A data e o "quando", nao o conteudo: menor e mais apagada, para o texto do
   objetivo ser o que se le primeiro. */
.header-baixo .totais-obj-item .data,
.header-baixo .totais-data-item .data {
    float: none;
    width: auto;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .01em;
    opacity: .45;
    margin: 0 0 2px 0;
    padding: 0;
}

.header-baixo .totais-obj-item .texto,
.header-baixo .totais-data-item .titulo {
    float: none;
    width: auto;
    padding: 0;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--color-text-01);
    opacity: .92;
}

/* Data importante: data e titulo na MESMA linha (sao curtos e emparelhados).
   As regras antigas (`.totais-datas .totais-data-item .data|.titulo`) cravam
   float + largura de 68px / calc(100% - 69px) e empatam em especificidade com
   as daqui - o escopo repetido tira a disputa da ordem do arquivo. */
.header-baixo .totais-datas .totais-data-item .data {
    float: none;
    width: auto;
}

.header-baixo .totais-datas .totais-data-item .titulo {
    float: none;
    width: auto;
}

.header-baixo .totais-data-item {
    display: flex;
    align-items: baseline;
    gap: 10px;
}

.header-baixo .totais-data-item::after {
    content: none;
}

/* --- Cards largos: usar a largura, nao so esticar ------------------------
   Com o eixo unico da coluna, em 1920px cada card passa de 900px. Esticar um
   paragrafo ate la e ruim de ler (linha de 150 caracteres) e deixa o card com
   cara de vazio.

   A resposta e por CONTAINER QUERY, nao por media query: quem decide o arranjo
   e a largura do CARD, nao a da janela. O mesmo card muda de tamanho quando o
   menu lateral abre/fecha e quando a visao "Apresentacao" reserva 186px - com
   @media essas tres situacoes precisariam de tres pontos de quebra que nao
   existem. (color-mix e :has() ja sao usados neste arquivo; @container e da
   mesma geracao.) */
.header-baixo .pl-card {
    container-type: inline-size;
}

/* Cabe a data ao lado do texto: o objetivo passa a ter o mesmo desenho da data
   importante (quando | o que), e a faixa inteira ganha um eixo interno. */
@container (min-width: 520px) {
    .header-baixo .totais-obj-item {
        grid-template-columns: auto minmax(0, 1fr) auto;
        grid-template-areas: "data texto selo";
        column-gap: 18px;
    }

    .header-baixo .totais-obj-item .data {
        margin-bottom: 0;
        white-space: nowrap;
    }
}

/* Teto de leitura. O card cresce com o eixo, o TEXTO nao: passando disso a
   linha fica longa demais para o olho voltar ao comeco da proxima. */
.header-baixo .totais-obj-item .texto,
.header-baixo .totais-data-item .titulo {
    max-width: 86ch;
}

.header-baixo .totais-data-item .data {
    margin-bottom: 0;
    flex: 0 0 auto;
}

.header-baixo .msg-null {
    padding: 6px 0 10px 0;
    font-size: 12.5px;
    opacity: .45;
}

/* --- Barra de controle: conjunto a esquerda, visao a direita --------------
   Os dois trilhos dividem UMA linha. Antes eram duas faixas empilhadas com a
   faixa de numeros no meio delas - a segunda ficava perdida a meia altura da
   tela, longe do calendario que ela controla.
   Os dois filhos carregam o eixo antigo (max-width 1300 + padding) das regras
   herdadas; dentro da barra quem manda e a barra. */
#htmlSessaoAtual .pl-barra,
.view-planejamento .pl-barra {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    padding-top: 2px;
    padding-bottom: 12px;
}

.pl-barra #sessoes-planejamento,
.pl-barra #menu-exbicao {
    max-width: none;
    margin: 0;
    padding: 0;
    display: block;
}

/* OS DOIS GRUPOS NAO PODEM TER A MESMA CASCA. Sao controles de niveis
   diferentes e, iguais, a linha virava "quatro abas" sem hierarquia:

   CONJUNTO (Conteudos/Tarefas) = navegacao. Troca O QUE esta na tela, entao
   se comporta como titulo de secao: texto grande, sem caixa, contraste feito
   com peso + tinta (o inativo apaga). E a leitura mais forte da faixa.

   VISAO (Calendario/Apresentacao) = opcao de exibicao. Troca COMO a mesma
   lista aparece, entao e um controle: pequeno, contornado, com a pilula da
   tinta marcando o ativo. */
#sessoes-planejamento .pl-seg {
    display: inline-flex;
    align-items: baseline;
    gap: 15px;
    padding: 0;
    border-radius: 0;
    background: transparent;
}

#sessoes-planejamento .pl-seg .item {
    display: inline-flex;
    align-items: baseline;
    float: none;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 21px;
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: -.02em;
    color: var(--color-text-01);
    opacity: .3;
    cursor: pointer;
    transition: opacity .18s ease;
}

#sessoes-planejamento .pl-seg .item:hover {
    opacity: .6;
}

#sessoes-planejamento .pl-seg .item.atv {
    opacity: 1;
    cursor: default;
}

/* Trilho contornado: some o fundo cheio, entra a borda de 1px. Fica leve ao
   lado do texto grande da esquerda e le como botao, nao como aba. */
#menu-exbicao .pl-seg {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    padding: 2px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
}

#menu-exbicao .pl-seg .item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 10px;
    border: 0;
    border-radius: 8px;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1;
    color: var(--color-text-01);
    opacity: .5;
    cursor: pointer;
    float: none;
    margin: 0;
    background: transparent;
    transition: opacity .18s ease, background .18s ease;
}

#menu-exbicao .pl-seg .item:hover {
    opacity: .8;
    background: var(--color-hover-01);
}

/* A tinta marca o ativo (regra da casa: estado ativo nunca e cor de acento). */
#menu-exbicao .pl-seg .item.atv {
    opacity: 1;
    font-weight: 600;
    color: var(--color-btn-text-01);
    background: var(--color-btn-bg-01);
    cursor: default;
}

#menu-exbicao .pl-seg .item svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
    float: none;
    margin: 0;
}

/* O dark.css pinta `#menu-exbicao .item.atv svg` de BRANCO e empata em
   especificidade com a regra acima (1 id, 2 classes, 1 elemento) - como ele
   carrega depois, o icone sumia dentro da pilula branca do modo escuro. Uma
   classe a mais desempata e devolve o icone a cor do texto do botao. */
#menu-exbicao .pl-seg .item.atv svg {
    fill: currentColor;
}

/* --- Faixa de resumo: UMA faixa, duas linhas -----------------------------
   O arranjo anterior era duas colunas (tipos a esquerda, resumo numa coluna
   fixa de 320px a direita). Como a coluna da direita empilhava total + barra
   + legenda + meta, ela ficava ~150px mais alta que a da esquerda e sobrava
   um retangulo vazio no meio da tela - o buraco do print.

   Agora e um cartao so, com a mesma casca dos cards de Objetivos/Datas:
     linha 1 = leitura  (total | tipos | meta do mes)
     linha 2 = barra de status na largura inteira + legenda

   Hierarquia: UM numero grande (o total). Os tipos eram tres numeros de 26px
   competindo com ele; viraram icone + rotulo + contagem. */
#htmlSessaoAtual .totais-desc-conteudos,
.view-planejamento .totais-desc-conteudos {
    float: none;
    margin-bottom: 14px;
}

.totais-desc-conteudos .pl-resumo {
    box-sizing: border-box;
    display: block;
    padding: 14px 16px 15px 16px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
}

.totais-desc-conteudos .pl-tot-top {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 20px;
}

/* --- Total geral: o unico numero grande da faixa -------------------------
   O antigo `.view-planejamento .totais-desc-conteudos .container-total-header`
   e `float:right` (0,3,0) - dai o escopo repetido para o float sair. */
#htmlSessaoAtual .totais-desc-conteudos .container-total-header,
.view-planejamento .totais-desc-conteudos .container-total-header {
    float: none;
    width: auto;
    margin: 0;
    padding: 0;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 6px;
    line-height: 1;
}

.totais-desc-conteudos .container-total-header .txt-tot {
    float: none;
    font-size: 30px;
    font-weight: 600;
    letter-spacing: -.03em;
    line-height: 1;
    color: var(--color-text-01);
}

.totais-desc-conteudos .container-total-header .txt-tot-lbl {
    font-size: 12.5px;
    font-weight: 500;
    opacity: .5;
}

/* --- Tipos: leitura secundaria, em linha ---------------------------------
   .grafics era `float:left` + `gap:4px` em `.view-planejamento
   .totais-desc-conteudos .grafics` (0,3,0) - um seletor de DUAS classes aqui
   perderia por especificidade e o float continuaria valendo. Por isso o
   escopo repetido (vale para o label e o .total logo abaixo tambem). */
#htmlSessaoAtual .totais-desc-conteudos .grafics,
.view-planejamento .totais-desc-conteudos .grafics {
    float: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 18px;
    padding-left: 20px;
    border-left: 1px solid var(--color-border);
    min-width: 0;
}

.totais-desc-conteudos .totais-desc-item {
    float: none;
    margin: 0;
    padding: 0;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    cursor: default;
}

.totais-desc-conteudos .tdi-ico {
    display: inline-flex;
    align-items: center;
    opacity: .45;
}

.totais-desc-conteudos .tdi-ico svg {
    width: 13px;
    height: 13px;
    display: block;
    fill: currentColor;
    color: var(--color-text-01);
}

/* O antigo `.view-planejamento .totais-desc-conteudos .totais-desc-item label`
   crava min-width:66px + padding-left (0,3,0) e o dark.css crava a cor - sem
   repetir o escopo o rotulo continuaria reservando largura fixa. */
#htmlSessaoAtual .totais-desc-conteudos .totais-desc-item label,
.view-planejamento .totais-desc-conteudos .totais-desc-item label {
    display: inline;
    float: none;
    min-width: 0;
    margin: 0;
    padding: 0;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1;
    color: var(--color-text-01);
    opacity: .5;
    cursor: inherit;
}

#htmlSessaoAtual .totais-desc-conteudos .totais-desc-item .total,
.view-planejamento .totais-desc-conteudos .totais-desc-item .total {
    float: none;
    margin: 0;
    padding: 0;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.01em;
    color: var(--color-text-01);
}

/* --- Meta do mes: rotulo + barra + numero, encostada a direita ------------
   ATENCAO: a regra antiga `.metas-qtd div` (pill cinza) pega TODOS os divs
   descendentes - inclusive .meta-barra. Por isso o reset abaixo e no
   descendente, nao so no .meta-item. O ::after de clearfix vira um item de
   flex fantasma (e mais um `gap`), entao sai. */
.totais-desc-conteudos .metas-qtd {
    clear: none;
    float: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 18px;
    margin: 0 0 0 auto;
    padding: 0;
    font-size: inherit;
    opacity: 1;
}

.totais-desc-conteudos .metas-qtd::after {
    content: none;
}

.totais-desc-conteudos .metas-qtd div {
    float: none;
    padding: 0;
    margin: 0;
    background: transparent;
    border-radius: 0;
}

.totais-desc-conteudos .meta-item {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    cursor: default;
}

.totais-desc-conteudos .meta-lbl {
    font-size: 12.5px;
    font-weight: 500;
    opacity: .5;
    white-space: nowrap;
}

.totais-desc-conteudos .meta-barra {
    width: 58px;
    height: 5px;
    flex: 0 0 auto;
    border-radius: 999px;
    background: var(--color-bg-01);
    overflow: hidden;
}

/* A barra usa a TINTA do sistema, nao uma cor de acento: meta batida nao e
   uma categoria de dado, e um estado da interface. */
.totais-desc-conteudos .meta-barra span {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: var(--color-text-01);
    opacity: .3;
    transition: width .35s cubic-bezier(.16, 1, .3, 1);
}

.totais-desc-conteudos .meta-item.meta-ok .meta-barra span {
    opacity: .8;
}

.totais-desc-conteudos .meta-num {
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    color: var(--color-text-01);
    white-space: nowrap;
}

.totais-desc-conteudos .meta-num span {
    opacity: .45;
    font-weight: 500;
}

/* --- Barra de status + legenda -------------------------------------------
   Na largura inteira da faixa: na coluna de 320px uma fatia de 1 em 22 tinha
   14px de largura e nao dava para ver nem acertar com o mouse. */
.totais-desc-conteudos .container-status-header {
    float: none;
    width: auto;
    margin: 14px 0 0 0;
}

.totais-desc-conteudos #progress-status {
    float: none;
    width: 100%;
    display: flex;
    height: 4px;
    margin: 0;
    border: 0;
    border-radius: 999px;
    overflow: hidden;
    background: var(--color-bg-01);
}

.totais-desc-conteudos #progress-status .status-item {
    float: none;
    height: 100%;
    min-width: 3px;
    border-radius: 0;
    cursor: default;
    transition: width .3s cubic-bezier(.16, 1, .3, 1), opacity .16s ease;
}

/* Fatias vizinhas de cores parecidas viravam um bloco so; o filete e a propria
   cor de fundo desenhada POR CIMA (box-shadow nao ocupa espaco, entao as
   larguras em % continuam somando 100). */
.totais-desc-conteudos #progress-status .status-item+.status-item {
    box-shadow: -1.5px 0 0 var(--color-bg);
}

.totais-desc-conteudos .ps-legenda {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    margin-top: 11px;
}

.totais-desc-conteudos .ps-leg-item {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--color-text-01);
    opacity: .62;
    white-space: nowrap;
    cursor: default;
    transition: opacity .16s ease;
}

.totais-desc-conteudos .ps-leg-item i {
    width: 8px;
    height: 8px;
    border-radius: 3px;
    flex: 0 0 auto;
}

.totais-desc-conteudos .ps-leg-item b {
    font-weight: 600;
    opacity: .85;
}

/* Barra e legenda como um objeto so: o mouse em qualquer um dos dois apaga o
   resto e acende o par (fatia + rotulo). A classe vem do JS porque nenhum
   seletor CSS liga dois irmaos por um data-atributo em comum. */
.totais-desc-conteudos .container-status-header.ps-focando .status-item,
.totais-desc-conteudos .container-status-header.ps-focando .ps-leg-item {
    opacity: .25;
}

.totais-desc-conteudos .container-status-header.ps-focando .status-item.ps-alvo,
.totais-desc-conteudos .container-status-header.ps-focando .ps-leg-item.ps-alvo {
    opacity: 1;
}

/* --- Telas estreitas -----------------------------------------------------
   Quando a linha de leitura quebra, o filete que separava o total dos tipos
   deixa de separar coisa nenhuma (viraria um risco solto no comeco da linha
   de baixo) e sai. */
@media (max-width: 980px) {

    #htmlSessaoAtual .header-baixo,
    .view-planejamento .header-baixo {
        flex-direction: column;
        gap: 12px;
    }

    .header-baixo .pl-card {
        width: 100%;
    }

    .totais-desc-conteudos .pl-tot-top {
        gap: 10px 16px;
    }
}

@media (max-width: 620px) {

    #htmlSessaoAtual .pl-barra,
    .view-planejamento .pl-barra {
        flex-direction: column;
        align-items: stretch;
    }

    /* Nada de esticar: o conjunto e texto (alinhado a esquerda, como titulo de
       secao) e a visao e um controle pequeno que desce logo abaixo dele. Em
       largura total a pilula preta do ativo viraria uma tarja no meio da tela. */
    #sessoes-planejamento .pl-seg .item {
        font-size: 16px;
    }

    /* A meta e empurrada para a direita por `margin-left:auto` - o que so faz
       sentido enquanto ela divide a LINHA com os tipos. Quando a faixa quebra,
       ela cai numa linha so dela e o auto vira um recuo gigante que a deixa
       boiando no canto, longe do numero a que se refere. */
    #htmlSessaoAtual .totais-desc-conteudos .metas-qtd,
    .view-planejamento .totais-desc-conteudos .metas-qtd {
        margin-left: 0;
    }

    /* Abaixo daqui os tipos quebram para a linha de baixo e o filete que
       separava o total deles viraria um risco solto no comeco da linha. */
    #htmlSessaoAtual .totais-desc-conteudos .grafics,
    .view-planejamento .totais-desc-conteudos .grafics {
        gap: 6px 14px;
        padding-left: 0;
        border-left: 0;
    }
}

/* =========================================================================
   METRICAS - BOTAO "SINCRONIZAR METRICAS"
   -------------------------------------------------------------------------
   Reusa a pilula do seletor de periodo (.bi-periodo-btn) de proposito: sao
   dois controles do mesmo painel de filtros e criar um segundo estilo de
   botao ali so faria a barra parecer remendada.

   Fica encostado a direita, colado no botao de download - os dois sao ACOES,
   enquanto periodo e redes (a esquerda) sao FILTROS.
   ========================================================================= */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-filters-panel .bi-sinc-btn {
    margin-left: auto;
}

/* O download ja carregava o margin-left:auto; com o botao de sincronizar na
   frente, os dois autos dividiriam o espaco e abririam um buraco no meio. */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-filters-panel .bi-sinc-btn+#btndownloadgridmetricas {
    margin-left: 0;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-sinc-btn .bi-ic-sinc {
    width: 16px;
    height: 16px;
    opacity: 0.6;
}

/* Rodando: a seta gira e o botao para de aceitar clique - a importacao leva
   minutos e clicar de novo so empilharia pedido. */
.contant-metrica-perfil-conteudo.bi-dashboard .bi-sinc-btn.rodando {
    opacity: 0.65;
    pointer-events: none;
}

.contant-metrica-perfil-conteudo.bi-dashboard .bi-sinc-btn.rodando .bi-ic-sinc {
    animation: bi-sinc-gira 1.1s linear infinite;
}

@keyframes bi-sinc-gira {
    to {
        transform: rotate(360deg);
    }
}

/* ===========================================================================
   AirpostConfirmar (.cf-*) - POPUP MINI DE CONFIRMACAO / AVISO
   ---------------------------------------------------------------------------
   Vive dentro da casca #edit-popup-mini (mascara, botao de fechar e fadeOut
   vem de la). Aqui e so o conteudo: icone, titulo, corpo e a dupla de botoes.

   Mesma linguagem do kit .cr- dos popups de criacao - raio 13 no botao, ease
   de saida suave, tipografia com letter-spacing negativo no titulo - para o
   sistema nao ganhar um segundo dialeto de popup.

   MONOCROMATICO: o botao de acao e a tinta do sistema (--color-btn-bg-01) e
   todo o resto e a cor do texto com opacidade. As redes nos chips entram como
   DADO (logo da marca), nao como enfeite.
   =========================================================================== */
/* A casca nasceu com width: calc(100% - 399px) - largura pensada para conviver
   com o painel da direita. Um dialogo de confirmacao nao tem esse contexto: ele
   e do sistema, nao da tela, e aparecer descentralizado num dashboard de largura
   inteira e o tipo de detalhe que denuncia remendo. So o .cf-pop centraliza na
   janela; os outros popups mini seguem como estavam. */
#edit-popup-mini:has(.cf-pop) {
    width: 100%;
}

#edit-popup-mini .contant .boxpop:has(.cf-pop) {
    max-width: 428px;
    border-radius: 20px;
    overflow: hidden;
}

.cf-pop {
    display: flex;
    flex-direction: column;
    font-size: 14px;
    color: var(--color-text-01);
    animation: cf-entra .22s cubic-bezier(.16, 1, .3, 1);
}

@keyframes cf-entra {

    /* conteudo que mora DENTRO de uma casca que ja cresce (glass-folha): so
       fade e subida, sem uma segunda escala somando na primeira */
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* ---------- Cabecalho ---------- */
.cf-hdr {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    /* 50 a direita = folga do .btn-close da casca */
    padding: 24px 50px 0 22px;
}

.cf-ico {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    background: var(--color-hover-01);
    border: 1px solid var(--color-border);
}

.cf-ico svg {
    width: 18px;
    height: 18px;
    color: var(--color-text-01);
    fill: none;
    opacity: .8;
}

.cf-hdr-txt {
    min-width: 0;
    padding-top: 2px;
}

.cf-hdr-txt h4 {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.25;
}

.cf-hdr-txt span {
    display: block;
    margin-top: 3px;
    font-size: 12.5px;
    line-height: 1.4;
    opacity: .55;
}

/* ---------- Corpo ---------- */
.cf-body {
    padding: 15px 22px 2px 22px;
    font-size: 13.5px;
    line-height: 1.55;
}

.cf-body p {
    margin: 0 0 11px 0;
}

.cf-body p:last-child {
    margin-bottom: 0;
}

/* Chips das redes: respondem "o que exatamente vai ser buscado" antes da
   frase ser lida. */
.cf-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0 0 12px 0;
}

.cf-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 11px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    font-size: 12.5px;
    font-weight: 500;
}

.cf-chip svg {
    width: 13px;
    height: 13px;
    fill: var(--color-text-01);
    opacity: .65;
}

/* ---------- Lista de pontos ---------- */
.cf-lista {
    list-style: none;
    margin: 13px 0 0 0;
    padding: 13px 0 0 0;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.cf-lista li {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    font-size: 12.5px;
    line-height: 1.5;
    opacity: .72;
}

.cf-lista svg {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
    margin-top: 4px;
    fill: var(--color-text-01);
    opacity: .45;
}

/* ---------- Rodape ---------- */
.cf-ftr {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 17px 22px 19px 22px;
    margin-top: 18px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

.cf-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 36px;
    padding: 0 17px;
    border: 1px solid transparent;
    border-radius: 13px;
    font-size: 13.5px;
    font-weight: 600;
    font-family: inherit;
    cursor: pointer;
    background: transparent;
    color: var(--color-text-01);
    transition: transform .2s cubic-bezier(.16, 1, .3, 1), box-shadow .2s cubic-bezier(.16, 1, .3, 1), background .18s ease, opacity .18s ease;
}

.cf-btn-primary {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.cf-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.cf-btn-primary:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--color-hover-01), 0 0 0 4px var(--color-border);
}

.cf-btn-ghost {
    opacity: .6;
}

.cf-btn-ghost:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Em tela estreita os botoes ocupam a linha inteira: alvo de toque maior e
   nada de dois botoes espremidos no canto. */
@media (max-width: 480px) {
    .cf-ftr {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .cf-btn {
        width: 100%;
        height: 42px;
    }
}

/* ===========================================================================
   OBJETIVOS - PENDENCIA (nao salvo) e MESA DE REVISAO DA IA
   ---------------------------------------------------------------------------
   Dois problemas do mesmo lugar, resolvidos aqui:

   1) O card novo/editado era visualmente IGUAL ao ja gravado. As classes de
      estado ('insert'/'update') existiam so para o salvar ler. Agora elas
      pintam: faixa na borda esquerda + etiqueta no cabecalho do card, mais
      uma barra de pendencias no topo da aba e um ponto na aba do menu lateral
      (quem esta em outra aba precisa enxergar que ficou coisa por salvar).

   2) O que a IA gera passa antes por uma MESA DE REVISAO (.obj-rev, dentro do
      #edit-popup-medium) em vez de cair direto na lista.

   Monocromatico, como o resto do sistema: o destaque e a tinta
   (--color-btn-bg-01 / --color-text-01), nunca uma cor de acento.
   =========================================================================== */

/* ---------- 1. Etiqueta de pendencia no card ---------- */
.editarPerfis #tabd2-4 .item-objetivo .obj-flag {
    flex: none;
    padding: 3px 9px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.4;
    white-space: nowrap;
    border: 1px dashed var(--ap-faint);
    color: var(--ap-muted);
}

/* Sem estado = sem etiqueta (o span continua no DOM p/ ser reescrito). */
.editarPerfis #tabd2-4 .item-objetivo .obj-flag:empty {
    display: none;
}

/* Novo pesa mais que editado: ainda nao existe no banco. */
.editarPerfis #tabd2-4 .item-objetivo .obj-flag.novo {
    border-style: solid;
    border-color: transparent;
    background: var(--ap-fill);
    color: var(--ap-fill-text);
}

/* Faixa na lateral: da para varrer a lista e achar o pendente sem ler etiqueta. */
.editarPerfis #tabd2-4 .item-objetivo.insert,
.editarPerfis #tabd2-4 .item-objetivo.update {
    box-shadow: inset 3px 0 0 0 var(--ap-fill);
}

.editarPerfis #tabd2-4 .item-objetivo.update {
    box-shadow: inset 3px 0 0 0 var(--ap-faint);
}

/* ---------- Barra de pendencias (topo da aba) ---------- */
.editarPerfis .obj-pend-bar {
    display: none;
    align-items: center;
    gap: 11px;
    margin-bottom: 14px;
    padding: 11px 12px 11px 14px;
    border: 1px solid var(--ap-line);
    border-left: 3px solid var(--ap-fill);
    border-radius: var(--ap-radius);
    background: var(--ap-soft);
}

.editarPerfis .obj-pend-bar.mostrar {
    display: flex;
    animation: obj-pend-entra .22s cubic-bezier(.16, 1, .3, 1);
}

@keyframes obj-pend-entra {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.editarPerfis .obj-pend-ico {
    flex: none;
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
}

.editarPerfis .obj-pend-ico svg {
    width: 17px;
    height: 17px;
    fill: var(--color-text-01);
}

.editarPerfis .obj-pend-txt {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.35;
}

.editarPerfis .obj-pend-txt strong {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-01);
}

.editarPerfis .obj-pend-det {
    font-size: 11.5px;
    color: var(--ap-muted);
}

.editarPerfis .obj-pend-det:empty {
    display: none;
}

.editarPerfis .obj-pend-salvar {
    flex: none;
    margin-left: auto;
    height: 32px;
    padding: 0 15px;
    border: 0;
    border-radius: 10px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    transition: transform .2s cubic-bezier(.16, 1, .3, 1), box-shadow .2s cubic-bezier(.16, 1, .3, 1);
}

.editarPerfis .obj-pend-salvar:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 28px -14px rgba(37, 99, 235, .55);
}

/* Ponto na aba do menu: sinaliza a pendencia de fora da aba Objetivos. */
.editarPerfis.obj-com-pendencia .tabd2-link[data-tab="#tabd2-4"] {
    position: relative;
}

.editarPerfis.obj-com-pendencia .tabd2-link[data-tab="#tabd2-4"]::after {
    content: "";
    position: absolute;
    top: 50%;
    right: 10px;
    width: 7px;
    height: 7px;
    margin-top: -3.5px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
}

@media (max-width: 640px) {
    .editarPerfis .obj-pend-bar {
        flex-wrap: wrap;
    }

    .editarPerfis .obj-pend-salvar {
        width: 100%;
        margin-left: 0;
        height: 38px;
    }
}

/* ---------- 2. Mesa de revisao dos objetivos gerados ---------- */
/* A casca nasceu com width: calc(100% - 399px) (largura pensada p/ conviver com
   o painel da direita). A mesa de revisao e um dialogo do sistema: centraliza
   na janela inteira, como o .cf-pop ja faz no popup mini. */
#edit-popup-medium:has(.obj-rev) {
    width: 100%;
}

#edit-popup-medium .contant .boxpop:has(.obj-rev) {
    max-width: 720px;
    border-radius: 20px;
    overflow: hidden;
}

/* O dialogo de confirmacao precisa vencer a mesa de revisao: as duas cascas
   nascem com z-index 9999 e a mini vem ANTES no HTML, entao empataria embaixo. */
#edit-popup-mini:has(.cf-pop) {
    z-index: 10050;
}

.obj-rev {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 90px);
    font-size: 14px;
    color: var(--color-text-01);
    animation: cf-entra .22s cubic-bezier(.16, 1, .3, 1);
}

/* Cabecalho */
.obj-rev-head {
    display: flex;
    align-items: center;
    gap: 12px;
    /* 50 a direita = folga do .btn-close da casca */
    padding: 22px 50px 16px 22px;
}

.obj-rev-badge {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    border-radius: 13px;
    background: linear-gradient(135deg, #0064e0, #22a8e0);
    box-shadow: 0 6px 16px rgba(0, 100, 224, .3);
}

.obj-rev-badge svg {
    width: 21px;
    height: 21px;
    fill: #fff;
}

.obj-rev-head-txt h4 {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.25;
}

.obj-rev-head-txt p {
    margin: 3px 0 0;
    font-size: 12.5px;
    line-height: 1.4;
    opacity: .55;
}

/* Barra de selecao + acoes do lote */
.obj-rev-barra {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 22px;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

.obj-rev-todos {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    cursor: pointer;
    user-select: none;
}

.obj-rev-contagem {
    font-size: 12.5px;
    font-style: normal;
    font-weight: 500;
    opacity: .6;
}

.obj-rev-barra-acoes {
    display: flex;
    gap: 6px;
    margin-left: auto;
}

/* Caixa do checkbox: quadrado proprio (o input nativo nao acompanha o kit). */
.obj-rev-todos input,
.obj-rev-item-check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.obj-rev-todos span,
.obj-rev-item-check span {
    position: relative;
    display: block;
    width: 17px;
    height: 17px;
    border: 1.5px solid var(--color-border);
    border-radius: 5px;
    background: transparent;
    transition: background .15s ease, border-color .15s ease;
}

.obj-rev-todos input:checked+span,
.obj-rev-item-check input:checked+span {
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
}

/* O "V" e uma MASCARA, nao uma imagem: a cor vem de --color-btn-text-01 e
   acompanha o tema. Como imagem colorida ele seria branco fixo e sumiria no
   escuro, onde o quadrado marcado fica branco. */
.obj-rev-todos input:checked+span::after,
.obj-rev-item-check input:checked+span::after {
    content: "";
    position: absolute;
    inset: 0;
    background: var(--color-btn-text-01);
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 20.4 1.3 12.7l2.8-2.8L9 14.8 20.9 3l2.8 2.8z'/%3E%3C/svg%3E") no-repeat center/10px 10px;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9 20.4 1.3 12.7l2.8-2.8L9 14.8 20.9 3l2.8 2.8z'/%3E%3C/svg%3E") no-repeat center/10px 10px;
}

/* Botoes da mesa */
.obj-rev-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 32px;
    padding: 0 13px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s ease, opacity .15s ease, transform .2s cubic-bezier(.16, 1, .3, 1);
}

.obj-rev-btn:hover:not(:disabled) {
    background: var(--color-hover-01);
}

.obj-rev-btn:disabled {
    opacity: .4;
    cursor: default;
}

/* Lista */
.obj-rev-lista {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 14px 22px 4px;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.obj-rev-vazio {
    display: none;
    padding: 34px 22px;
    text-align: center;
    font-size: 13px;
    opacity: .5;
}

.obj-rev-vazio.mostrar {
    display: block;
}

/* Item */
.obj-rev-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 11px 12px 12px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    background: transparent;
    transition: border-color .15s ease, opacity .15s ease;
}

/* Desmarcado continua visivel (da para reler antes de decidir), mas recuado. */
.obj-rev-item:not(.sel) {
    opacity: .5;
}

.obj-rev-item:hover {
    border-color: var(--color-text-01);
}

.obj-rev-item-check {
    flex: none;
    padding-top: 7px;
    cursor: pointer;
}

.obj-rev-item-corpo {
    flex: 1 1 auto;
    min-width: 0;
}

.obj-rev-item-topo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.obj-rev-data {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 4px 11px;
    border-radius: 100px;
    background: var(--color-bg-01);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    transition: background .15s ease;
}

.obj-rev-data:hover {
    background: var(--color-hover-01);
}

.obj-rev-data svg {
    width: 13px;
    height: 13px;
    flex: none;
    fill: var(--color-text-01);
    opacity: .5;
}

.obj-rev-data i {
    font-style: normal;
    opacity: .4;
    padding: 0 2px;
}

.obj-rev-item-acoes {
    display: flex;
    gap: 2px;
    margin-left: auto;
}

.obj-rev-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    cursor: pointer;
    opacity: 0;
    transition: opacity .16s ease, background .16s ease;
}

.obj-rev-item:hover .obj-rev-ico,
.obj-rev-ico:focus-visible {
    opacity: .6;
}

.obj-rev-ico:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Lote em regeracao: as acoes de linha param de convidar ao clique (os
   handlers ja ignoram, isto so conta a mesma historia visualmente). */
.obj-rev.ocupado .obj-rev-item:hover .obj-rev-ico,
.obj-rev.ocupado .obj-rev-ico:hover {
    opacity: .2;
    background: transparent;
    cursor: default;
}

.obj-rev-ico svg {
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
}

.obj-rev-texto {
    display: block;
    width: 100%;
    min-height: 44px;
    margin: 0;
    padding: 0;
    border: 0;
    background: none;
    outline: none;
    resize: none;
    font-family: inherit;
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--color-text-01);
    overflow: hidden;
}

.obj-rev-texto::placeholder {
    opacity: .35;
}

/* Caixa de instrucao (item e lote): fechada por padrao. */
.obj-rev-instr {
    display: none;
}

.obj-rev-instr.aberta {
    display: block;
    animation: obj-pend-entra .2s cubic-bezier(.16, 1, .3, 1);
}

.obj-rev-instr-lote.aberta {
    padding: 12px 22px 0;
}

.obj-rev-instr-item.aberta {
    margin-top: 10px;
    padding-top: 11px;
    border-top: 1px dashed var(--color-border);
}

.obj-rev-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    margin-bottom: 8px;
}

.obj-rev-chip {
    padding: 5px 11px;
    border: 1px solid var(--color-border);
    border-radius: 100px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12px;
    cursor: pointer;
    opacity: .75;
    transition: opacity .15s ease, background .15s ease;
}

.obj-rev-chip:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.obj-rev-instr-txt {
    display: block;
    width: 100%;
    min-height: 62px;
    box-sizing: border-box;
    padding: 9px 12px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 13px;
    line-height: 1.5;
    outline: none;
    resize: vertical;
    transition: border-color .18s ease;
}

.obj-rev-instr-txt:focus {
    border-color: var(--color-text-01);
}

.obj-rev-instr-acoes {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
    margin-top: 8px;
}

.obj-rev-instr-ok {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-weight: 600;
}

.obj-rev-instr-ok:hover:not(:disabled) {
    background: var(--color-btn-bg-01);
    transform: translateY(-1px);
}

/* Item esperando a IA: o conteudo apaga e tres pontos ocupam o lugar - a
   linha nao pode sumir da lista, senao a pessoa perde a referencia de onde
   estava o objetivo que mandou refazer. */
.obj-rev-item.carregando .obj-rev-item-corpo,
.obj-rev-item.carregando .obj-rev-item-check {
    opacity: .25;
    pointer-events: none;
}

.obj-rev-load {
    display: none;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    gap: 5px;
}

.obj-rev-item.carregando .obj-rev-load {
    display: flex;
}

.obj-rev-load span {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-text-01);
    opacity: .35;
    animation: obj-rev-pulso 1s infinite ease-in-out;
}

.obj-rev-load span:nth-child(2) {
    animation-delay: .15s;
}

.obj-rev-load span:nth-child(3) {
    animation-delay: .3s;
}

@keyframes obj-rev-pulso {

    0%,
    100% {
        opacity: .2;
        transform: scale(.8);
    }

    50% {
        opacity: .8;
        transform: scale(1);
    }
}

/* Rodape */
.obj-rev-ftr {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    padding: 15px 22px 17px;
    margin-top: 12px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

.obj-rev-cancelar {
    margin-right: auto;
    border-color: transparent;
    opacity: .6;
}

.obj-rev-inserir {
    height: 36px;
    padding: 0 17px;
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 13.5px;
    font-weight: 600;
}

.obj-rev-inserir:hover:not(:disabled) {
    background: var(--color-btn-bg-01);
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

/* Botao alternativo do dialogo de confirmacao (3a saida): ancorado a esquerda
   para nao virar "mais um" ao lado do par cancelar/confirmar. */
.cf-btn-alt {
    margin-right: auto;
}

/* Rotulo de botao NUNCA quebra linha. Com duas saidas sobrava largura e o
   assunto nao aparecia; com tres ("Sair sem salvar" / "Continuar editando" /
   "Salvar e fechar") os 428px do dialogo estouram e o texto partia no meio. */
.cf-btn {
    white-space: nowrap;
}

/* Tres rotulos na mesma linha pedem mais largura e um respiro menor dentro de
   cada botao - so no dialogo que tem a terceira saida; os de dois botoes
   seguem no tamanho de antes. */
#edit-popup-mini .contant .boxpop:has(.cf-btn-alt) {
    max-width: 540px;
}

.cf-ftr:has(.cf-btn-alt) {
    gap: 6px;
    padding-left: 18px;
    padding-right: 18px;
}

.cf-ftr:has(.cf-btn-alt) .cf-btn {
    padding: 0 14px;
}

/* Abaixo disso os tres nao cabem lado a lado: empilha antes de espremer.
   column-reverse mantem a acao principal no topo (a ordem do HTML e
   alternativo > cancelar > confirmar). */
@media (max-width: 600px) {
    .cf-ftr:has(.cf-btn-alt) {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .cf-ftr:has(.cf-btn-alt) .cf-btn {
        width: 100%;
        height: 42px;
        margin-right: 0;
    }
}

@media (max-width: 560px) {
    .obj-rev-barra {
        flex-wrap: wrap;
    }

    .obj-rev-barra-acoes {
        width: 100%;
        margin-left: 0;
    }

    .obj-rev-barra-acoes .obj-rev-btn {
        flex: 1;
    }

    .obj-rev-ftr {
        flex-direction: column-reverse;
        align-items: stretch;
    }

    .obj-rev-ftr .obj-rev-btn {
        width: 100%;
        height: 40px;
        margin-right: 0;
    }

    .obj-rev-ico {
        opacity: .6;
    }
}

@media (max-width: 480px) {
    .cf-btn-alt {
        margin-right: 0;
    }
}

/* O kit .cf- zera o fill do icone (nasceu com icones de traco). Quando o
   dialogo recebe um SVG preenchido, esta classe devolve o fill sem mexer no
   comportamento padrao dos demais. */
.cf-ico svg.cf-ico-fill {
    fill: var(--color-text-01);
    stroke: none;
}

/* ===========================================================================
   GERAR CONTEUDOS EM LOTE                                       (kit .lt-*)
   ---------------------------------------------------------------------------
   Substitui o antigo `.contant-criar-lote`, que tinha cabecalho e rodape em
   `position:absolute` (o corpo era empurrado por um `padding-top:94px`), duas
   colunas em float com larguras calculadas na mao, o azul #007bff cravado em
   cada estado e uma segunda copia inteira no dark.css so para repintar cores.

   Aqui a casca e a mesma dos popups de criacao (kit .cr-*): flex em coluna -
   cabecalho fixo, corpo rolavel, rodape fixo - e TUDO em token, entao o tema
   escuro sai de graca e nao existe mais um segundo arquivo para manter.

   MONOCROMATICO: o "ativo" (passo atual, tipo escolhido, chip selecionado,
   botao primario) e a tinta do sistema - `--color-btn-bg-01`, preta no claro
   e branca no escuro. As unicas cores sao DADO (o anel do status, o avatar da
   marca) e o vermelho de acao destrutiva no hover do remover.

   O JS e window.AirpostLote, no browse/footer.php.
   =========================================================================== */

/* O boxpop e compartilhado por dezenas de popups; a largura de cada um e
   responsabilidade do conteudo. O lote e mais largo que o de criacao porque
   os cards das etapas 2 e 3 mostram dois campos lado a lado. */
#edit-popup .contant .boxpop:has(.lt-pop) {
    width: 100%;
    max-width: 748px;
    /* O boxpop e item de um flex; sem `min-width:0` ele nunca encolhe abaixo do
       min-content do rodape e o popup vaza para fora da tela no celular. */
    min-width: 0;
    border-radius: var(--cr-raio);
    overflow: hidden;
}

.lt-pop {
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 60px);
    font-size: 14px;
    color: var(--color-text-01);
}

/* ---------- Cabecalho ---------- */
.lt-hdr {
    flex: 0 0 auto;
    padding: 22px 52px 0 22px;
    /* 52 a direita = folga do .btn-close da casca */
    border-bottom: 1px solid var(--color-border);
}

.lt-hdr-ttl {
    font-size: 20px;
    font-weight: 550;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.lt-hdr-sub {
    font-size: 12.5px;
    opacity: .55;
    margin-top: 4px;
    line-height: 1.45;
}

/* ---------- Trilha das etapas ----------
   Passo cumprido vira atalho de volta: o lote fica na memoria, entao voltar
   nao custa nada. Passo que ainda nao existe fica inerte (disabled). */
.lt-passos {
    display: flex;
    align-items: center;
    gap: 2px;
    margin: 14px 0 0 -8px;
    padding-bottom: 10px;
    flex-wrap: wrap;
}

.lt-passo {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 5px 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 500;
    opacity: .45;
    cursor: default;
    transition: opacity .18s var(--cr-ease), background .18s var(--cr-ease);
}

.lt-passo.feito,
.lt-passo.livre {
    cursor: pointer;
    opacity: .7;
}

.lt-passo.feito:hover,
.lt-passo.livre:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.lt-passo.atual {
    opacity: 1;
    font-weight: 600;
}

.lt-passo-n {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    border: 1px solid var(--color-border);
    border-radius: 50%;
    font-size: 10.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.lt-passo-n svg {
    width: 9px;
    height: 9px;
    fill: var(--color-text-01);
}

.lt-passo.atual .lt-passo-n {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.lt-passo.feito .lt-passo-n {
    border-color: var(--color-text-01);
}

/* traco ligando um passo ao outro */
.lt-passo:not(:last-child)::after {
    content: "";
    width: 14px;
    height: 1px;
    margin-left: 6px;
    background: var(--color-border);
}

/* ---------- Corpo ---------- */
.lt-body {
    flex: 1 1 auto;
    overflow: auto;
    padding: 18px 22px 8px 22px;
    /* A barra de rolagem que aparece quando os campos crescem nao pode
       estreitar os campos - a quebra de linha mudaria e a altura calculada
       deixaria de servir (Windows/Linux; o macOS usa barra sobreposta). */
    scrollbar-gutter: stable;
}

/* Inserindo no planejamento: a fila de POSTs ja esta rodando, entao mexer no
   lote (voltar de etapa, refazer, apagar card) so criaria divergencia entre o
   que esta na tela e o que ja foi gravado. */
.lt-pop.lt-ocupado .lt-body {
    pointer-events: none;
    opacity: .55;
}

.lt-pop.lt-ocupado .lt-ftr-lef,
.lt-pop.lt-ocupado .lt-btn:not(.carregando) {
    pointer-events: none;
    opacity: .45;
}

.lt-sec {
    margin-top: 22px;
}

.lt-sec-hdr {
    display: flex;
    align-items: baseline;
    gap: 8px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.lt-sec-hdr h4 {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.lt-sec-hdr span {
    font-size: 12px;
    opacity: .5;
}

.lt-nota {
    display: flex;
    gap: 8px;
    margin-top: 10px;
    font-size: 12px;
    line-height: 1.5;
    opacity: .5;
}

.lt-nota svg {
    flex: 0 0 auto;
    margin-top: 2px;
    fill: var(--color-text-01);
}

/* Chips, passos e botoes sao <button>: sem isto o navegador desenha o anel
   azul de foco por cima do kit depois de cada clique. O foco de TECLADO
   continua visivel (:focus-visible). */
.lt-pop button:focus,
.lt-mini button:focus {
    outline: none;
}

.lt-pop button:focus-visible,
.lt-mini button:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
}

/* ---------- Chips (marca, periodo, etapa, tipo, data) ----------
   Mesmo gesto dos chips do popup de criacao: vazio = rotulo neutro com
   opacidade; preenchido = o valor no lugar do rotulo. */
.lt-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    max-width: 100%;
    height: 34px;
    padding: 0 11px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background .18s var(--cr-ease), border-color .18s var(--cr-ease), opacity .18s var(--cr-ease);
}

.lt-chip:hover {
    background: var(--color-hover-01);
}

.lt-chip:not(.filled) {
    opacity: .6;
}

/* Marca resolvida pelo contexto (planejamento): mostrar, nao deixar trocar. */
.lt-chip.fixo {
    cursor: default;
    border-style: dashed;
}

.lt-chip.fixo:hover {
    background: transparent;
}

.lt-chip>svg {
    flex: 0 0 auto;
    fill: var(--color-text-01);
    opacity: .6;
}

.lt-chip.filled>svg {
    opacity: .85;
}

.lt-chip-txt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lt-chip-caret {
    display: flex;
    flex: 0 0 auto;
    margin-left: -1px;
}

.lt-chip-caret svg {
    fill: var(--color-text-01);
    opacity: .4;
}

.lt-chip .avatar-perfil.lt-av {
    width: 20px;
    height: 20px;
    min-width: 20px;
    border-radius: 6px;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 9px;
    font-weight: 600;
}

/* O anel de status vem do htmlIconeStatus (a cor ali e DADO, nao enfeite);
   o `float` que ele traz das listagens precisa ser desligado, como no .cr-chip. */
.lt-chip .st-icon {
    float: none !important;
    padding: 0 !important;
    margin: 0 !important;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
}

.lt-ctx {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ---------- Tipos + stepper (etapa 1) ---------- */
.lt-tipos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(196px, 1fr));
    gap: 8px;
}

.lt-tipo {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 8px 8px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--cr-raio-campo);
    transition: border-color .18s var(--cr-ease), background .18s var(--cr-ease);
}

.lt-tipo:hover {
    background: var(--color-hover-01);
}

/* Escolhido = tinta na borda, nunca uma cor de acento. */
.lt-tipo.tem {
    border-color: var(--color-text-01);
    background: var(--color-hover-01);
}

.lt-tipo-ico {
    display: flex;
    flex: 0 0 auto;
    opacity: .4;
}

.lt-tipo-ico svg {
    fill: var(--color-text-01);
}

.lt-tipo.tem .lt-tipo-ico {
    opacity: .9;
}

.lt-tipo-nome {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.lt-step {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    border: 1px solid var(--color-border);
    border-radius: 100px;
    background: var(--color-bg);
    overflow: hidden;
}

.lt-step-btn {
    width: 27px;
    height: 27px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: pointer;
    transition: background .16s var(--cr-ease), opacity .16s var(--cr-ease);
}

.lt-step-btn svg {
    fill: var(--color-text-01);
    opacity: .65;
}

.lt-step-btn:hover:not(:disabled) {
    background: var(--color-hover-01);
}

.lt-step-btn:disabled {
    opacity: .25;
    cursor: default;
}

.lt-pop input.lt-step-num {
    width: 30px;
    height: 27px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-text-01);
    box-shadow: none;
    outline: none;
    text-align: center;
    font-size: 13.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    box-sizing: border-box;
}

/* ---------- Medidor do lote ---------- */
.lt-medidor {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 12px;
}

.lt-medidor-barra {
    flex: 1 1 auto;
    height: 4px;
    border-radius: 100px;
    background: var(--color-hover-01);
    overflow: hidden;
}

.lt-medidor-barra i {
    display: block;
    height: 100%;
    border-radius: 100px;
    background: var(--color-text-01);
    opacity: .7;
    transition: width .25s var(--cr-ease);
}

.lt-medidor-txt {
    flex: 0 0 auto;
    font-size: 12px;
    opacity: .55;
    font-variant-numeric: tabular-nums;
}

.lt-medidor-txt b {
    font-weight: 600;
}

.lt-medidor.cheio .lt-medidor-txt {
    opacity: .9;
    font-weight: 600;
}

.lt-limpar {
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12px;
    opacity: .45;
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.lt-limpar:hover {
    opacity: .8;
}

/* ---------- Campos ---------- */
.lt-campo {
    min-width: 0;
}

.lt-campo label {
    display: block;
    margin: 0 0 5px 2px;
    font-size: 11.5px;
    font-weight: 500;
    opacity: .55;
}

.lt-pop .lt-campo textarea {
    width: 100%;
    box-sizing: border-box;
    min-height: 76px;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--cr-raio-campo);
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 13.5px;
    line-height: 1.5;
    resize: vertical;
    outline: none;
    box-shadow: none;
    transition: border-color .18s var(--cr-ease);
}

.lt-pop .lt-campo textarea:focus {
    border-color: var(--color-text-01);
}

.lt-pop .lt-campo textarea::placeholder {
    opacity: .35;
}

.lt-contador {
    margin: 4px 2px 0 0;
    text-align: right;
    font-size: 11px;
    opacity: .4;
    font-variant-numeric: tabular-nums;
}

.lt-contador.perto {
    opacity: .85;
    font-weight: 600;
}

/* Nos cards o contador so aparece perto do teto da coluna - tres "0/2000"
   por conteudo seria ruido puro. */
.lt-card .lt-contador {
    display: none;
}

.lt-card .lt-contador.perto {
    display: block;
}

/* ---------- Cards (etapas 2 e 3) ---------- */
.lt-lista-hdr {
    margin-bottom: 12px;
}

.lt-lista-hdr h4 {
    font-size: 15px;
}

.lt-cards {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.lt-card {
    border: 1px solid var(--color-border);
    border-radius: var(--cr-raio-campo);
    overflow: hidden;
    transition: border-color .18s var(--cr-ease), box-shadow .2s var(--cr-ease), opacity .2s var(--cr-ease), transform .2s var(--cr-ease);
}

.lt-card:hover {
    box-shadow: 0 6px 20px -14px rgba(0, 0, 0, .5);
}

.lt-card-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: var(--color-bg-01);
    border-bottom: 1px solid var(--color-border);
}

.lt-card-n {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    flex: 0 0 auto;
    border-radius: 7px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 11px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.lt-card-hdr .lt-chip {
    height: 30px;
    font-size: 12.5px;
    background: var(--color-bg);
}

.lt-card-hdr .lt-chip:hover {
    background: var(--color-hover-01);
}

.lt-card-acoes {
    display: flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
}

.lt-ico-btn {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: var(--color-bg);
    cursor: pointer;
    opacity: .6;
    transition: opacity .16s var(--cr-ease), background .16s var(--cr-ease), border-color .16s var(--cr-ease);
}

.lt-ico-btn svg {
    fill: var(--color-text-01);
}

.lt-ico-btn:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Vermelho so aqui: acao destrutiva no hover, a mesma convencao do "remover"
   dos anexos. */
.lt-excluir:hover {
    border-color: #e83a3a4d;
    background: #e83a3a14;
}

.lt-excluir:hover svg {
    fill: #e83a3a;
}

.lt-card-body {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    padding: 12px;
}

.lt-card-body .lt-campo.full,
.lt-card-body .lt-card-redes {
    grid-column: 1 / -1;
}

/* Nos cards os campos crescem com o texto (.cp-auto); um piso alto so
   deixaria buraco branco embaixo de uma linha de objetivo. */
.lt-card .lt-campo textarea {
    min-height: 52px;
}

/* ---------- Redes (padrao do lote e por card) ----------
   Mesmo chip do "Novo conteudo" (.cr-rede), um degrau menor. No card ele vem
   depois dos textos, separado por um filete - e a ultima decisao do item. */
.lt-card-redes:empty {
    display: none;
}

.lt-redes.cr-redes {
    margin-top: 0;
    gap: 8px;
}

.lt-card .lt-redes.cr-redes {
    padding-top: 11px;
}

.lt-redes-padrao.cr-redes {
    padding-top: 0;
    border-top: 0;
}

.lt-redes .cr-rede {
    height: 30px;
    padding: 0 9px 0 8px;
    gap: 6px;
    font-size: 12px;
}

.lt-redes .cr-rede-logo svg {
    width: 14px;
    height: 14px;
}

.lt-redes-nota {
    font-size: 12px;
    line-height: 1.45;
    opacity: .5;
}

.lt-redes-padrao+.lt-redes-nota {
    margin-top: 8px;
}

.lt-card-redes>.lt-redes-nota {
    padding-top: 11px;
    border-top: 1px solid var(--color-border);
}

.lt-card.saindo {
    opacity: 0;
    transform: scale(.98);
}

/* Item que acabou de voltar da IA (ou de entrar no lote). */
.lt-card.atualizado {
    animation: lt-destaque .9s var(--cr-ease);
}

@keyframes lt-destaque {
    from {
        border-color: var(--color-text-01);
        box-shadow: 0 0 0 3px var(--color-hover-01);
    }

    to {
        border-color: var(--color-border);
        box-shadow: 0 0 0 0 transparent;
    }
}

/* Card mudando de lugar depois de trocar a data (FLIP). */
.lt-card.realocando {
    position: relative;
    z-index: 3;
    box-shadow: 0 12px 30px -12px rgba(0, 0, 0, .45);
}

/* ---------- Vazio e "adicionar" ---------- */
.lt-vazio {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    padding: 34px 20px;
    border: 1px dashed var(--color-border);
    border-radius: var(--cr-raio-campo);
    font-size: 13px;
    opacity: .45;
}

.lt-vazio svg {
    fill: var(--color-text-01);
}

.lt-add {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    margin: 12px 0 4px 0;
    padding: 11px 16px;
    border: 1.5px dashed var(--color-border);
    border-radius: var(--cr-raio-campo);
    background: transparent;
    color: var(--color-text-01);
    font-size: 13.5px;
    font-weight: 500;
    cursor: pointer;
    opacity: .7;
    transition: opacity .18s var(--cr-ease), background .18s var(--cr-ease), border-color .18s var(--cr-ease);
}

.lt-add svg {
    fill: var(--color-text-01);
}

.lt-add:hover {
    opacity: 1;
    background: var(--color-hover-01);
    border-style: solid;
}

/* ---------- Avisos inline ----------
   O que falta preencher e dito ao lado do controle que precisa de atencao -
   um modal para avisar "escolha a marca" tira a pessoa da tarefa. */
.lt-alerta {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-top: 10px;
    padding: 9px 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-bg-01);
    font-size: 12.5px;
    line-height: 1.45;
}

.lt-alerta svg {
    flex: 0 0 auto;
    margin-top: 2px;
    fill: var(--color-text-01);
    opacity: .55;
}

.lt-piscar {
    border-radius: var(--cr-raio-campo);
    animation: lt-piscar .7s var(--cr-ease);
}

@keyframes lt-piscar {
    0% {
        box-shadow: 0 0 0 0 var(--color-hover-01);
    }

    45% {
        box-shadow: 0 0 0 7px var(--color-hover-01);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(0, 0, 0, 0);
    }
}

/* ---------- Rodape ---------- */
.lt-ftr {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 0 0 auto;
    flex-wrap: wrap;
    padding: 13px 22px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
    border-radius: 0 0 var(--cr-raio) var(--cr-raio);
}

.lt-ftr-lef {
    display: flex;
    align-items: center;
    gap: 10px;
    flex: 1 1 auto;
    min-width: 0;
}

.lt-ftr-rig {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.lt-resumo {
    font-size: 12px;
    opacity: .5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-variant-numeric: tabular-nums;
}

/* ---------- Botoes ---------- */
.lt-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 36px;
    padding: 0 17px;
    border: 1px solid transparent;
    border-radius: 13px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13.5px;
    font-weight: 600;
    cursor: pointer;
    transition: transform .2s var(--cr-ease), box-shadow .2s var(--cr-ease), background .18s var(--cr-ease), opacity .18s var(--cr-ease);
}

.lt-btn svg {
    fill: currentColor;
    flex: 0 0 auto;
}

/* o icone de IA e compartilhado e ja traz margem propria; aqui quem espaca
   e o gap do flex */
.lt-btn .ico-ia-estrelas {
    margin-right: 0;
    vertical-align: 0;
}

.lt-btn-primary {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.lt-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.lt-btn-primary:disabled {
    opacity: .6;
    cursor: default;
    transform: none;
    box-shadow: none;
}

.lt-btn-ia {
    border-color: var(--color-border);
    font-weight: 500;
    opacity: .85;
}

.lt-btn-ia:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.lt-btn-ghost {
    opacity: .6;
}

.lt-btn-ghost:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.lt-btn-voltar {
    height: 32px;
    padding: 0 13px;
    border-color: var(--color-border);
    font-size: 12.5px;
    font-weight: 500;
    opacity: .75;
}

.lt-btn-voltar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Insercao em fila: o proprio botao vira o indicador de progresso. */
.lt-btn.carregando::before {
    content: "";
    width: 13px;
    height: 13px;
    border-radius: 50%;
    border: 2px solid currentColor;
    border-top-color: transparent;
    opacity: .85;
    animation: lt-gira .7s linear infinite;
}

@keyframes lt-gira {
    to {
        transform: rotate(360deg);
    }
}

/* ===========================================================================
   POPUPS MINI DO LOTE (.lt-mini) - "adicionar conteudo", "refazer com IA" e
   o "pedir ajuste" do card do conteudo. Vivem dentro da casca
   #edit-popup-mini e falam a mesma lingua do AirpostConfirmar (.cf-*).
   =========================================================================== */
#edit-popup-mini:has(.lt-mini) {
    width: 100%;
}

#edit-popup-mini .contant .boxpop:has(.lt-mini) {
    max-width: 468px;
    border-radius: 20px;
    overflow: hidden;
}

.lt-mini {
    display: flex;
    flex-direction: column;
    font-size: 14px;
    color: var(--color-text-01);
    animation: lt-mini-entra .22s var(--cr-ease);
}

@keyframes lt-mini-entra {
    from {
        opacity: 0;
        transform: translateY(8px) scale(.985);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.lt-mini-hdr {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    padding: 24px 50px 0 22px;
    /* 50 a direita = folga do .btn-close da casca */
}

.lt-mini-ico {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    flex: 0 0 auto;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    background: var(--color-hover-01);
}

.lt-mini-ico svg {
    width: 17px;
    height: 17px;
    margin: 0;
    fill: var(--color-text-01);
    opacity: .8;
}

.lt-mini-txt {
    min-width: 0;
    padding-top: 2px;
}

.lt-mini-txt h4 {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.25;
}

.lt-mini-txt span {
    display: block;
    margin-top: 3px;
    font-size: 12.5px;
    line-height: 1.4;
    opacity: .55;
}

.lt-mini-body {
    padding: 16px 22px 4px 22px;
}

.lt-mini-body label {
    display: block;
    margin: 0 0 6px 2px;
    font-size: 11.5px;
    font-weight: 500;
    opacity: .55;
}

.lt-mini-body>*+label {
    margin-top: 14px;
}

.lt-mini-input {
    width: 100%;
    box-sizing: border-box;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: var(--cr-raio-campo);
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 13.5px;
    line-height: 1.5;
    outline: none;
    box-shadow: none;
    transition: border-color .18s var(--cr-ease), box-shadow .18s var(--cr-ease);
}

textarea.lt-mini-input {
    min-height: 88px;
    resize: vertical;
}

.lt-mini-input:focus {
    border-color: var(--color-text-01);
}

.lt-mini-input::placeholder {
    opacity: .35;
}

.lt-mini-input.erro {
    border-color: #e83a3a;
    box-shadow: 0 0 0 3px #e83a3a1f;
}

.lt-mini-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.lt-mini-chips+.lt-mini-input {
    margin-top: 10px;
}

.lt-mini-chips.erro {
    border-radius: 12px;
    box-shadow: 0 0 0 3px #e83a3a1f;
}

.lt-mini-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 11px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 500;
    cursor: pointer;
    opacity: .75;
    transition: opacity .16s var(--cr-ease), background .16s var(--cr-ease), border-color .16s var(--cr-ease);
}

.lt-mini-chip svg {
    fill: var(--color-text-01);
    opacity: .6;
}

.lt-mini-chip:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Selecionado = tinta do sistema (o tipo escolhido, o motivo marcado). */
.lt-mini-chip.atv {
    opacity: 1;
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.lt-mini-chip.atv svg {
    fill: var(--color-btn-text-01);
    opacity: 1;
}

/* Atalho de ajuste ja jogado no texto: some da frente sem sumir da tela. */
.lt-mini-chip.usado {
    opacity: .4;
}

.lt-mini .lt-add-data {
    max-width: 100%;
}

.lt-mini-ftr {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex-wrap: wrap;
    margin-top: 16px;
    padding: 15px 22px 17px 22px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

/* ---------- Telas estreitas ---------- */
@media (max-width: 750px) {
    #edit-popup .contant .boxpop:has(.lt-pop) {
        max-width: 100%;
    }

    .lt-pop {
        max-height: calc(100vh - 30px);
    }

    .lt-hdr {
        padding: 18px 46px 0 16px;
    }

    .lt-body {
        padding: 14px 16px 6px 16px;
    }

    .lt-ftr {
        padding: 11px 16px;
    }

    /* No celular a trilha vira so os numeros + o passo atual escrito. */
    .lt-passo:not(.atual) .lt-passo-t {
        display: none;
    }

    .lt-tipos {
        grid-template-columns: 1fr;
    }

    .lt-card-body {
        grid-template-columns: 1fr;
    }

    .lt-ftr-lef {
        order: 2;
        width: 100%;
        flex: 1 1 100%;
    }

    .lt-ftr-rig {
        order: 1;
        width: 100%;
        flex: 1 1 100%;
    }

    .lt-ftr-rig .lt-btn {
        flex: 1 1 auto;
    }

    .lt-mini-hdr {
        padding: 20px 46px 0 16px;
    }

    .lt-mini-body {
        padding: 14px 16px 4px 16px;
    }

    .lt-mini-ftr {
        padding: 13px 16px 15px 16px;
    }

    .lt-mini-ftr .lt-btn {
        flex: 1 1 auto;
    }
}

/* ==========================================================================
   TRILHO DE PROPRIEDADES DO CONTEUDO (.pp-*)
   --------------------------------------------------------------------------
   Substitui a faixa horizontal `.grupo-btns-tips` no cabecalho do
   `.item-post.conteudo` (popup 2.0 e cartoes do planejamento). Antes: canal,
   data e redes lado a lado, rotulo por cima, e o status jogado na coluna da
   midia. Agora: uma LINHA por propriedade, rotulo a esquerda e valor ao lado -
   o mesmo idioma do `.parametros` do popup da tarefa.

   POR QUE LISTA E NAO FAIXA
   A faixa nao tinha para onde crescer: cada campo novo espremia os vizinhos, e
   a data de entrega era o campo que estourava. Uma lista aceita a proxima
   propriedade sem redesenho - que e exatamente o que aconteceu aqui.

   O QUE ESTE BLOCO NAO FAZ
   Nao estiliza os valores. Status, dropdown de canal, datepicker, redes e
   avatares continuam vindo dos componentes de sempre (`.status`,
   `.campo-style-02`, `.redes-ativas`, `.box-membros`); o trilho so os
   REENQUADRA - tira o float, apaga o rotulo interno (que agora e o .pp-lbl) e
   colapsa as margens pensadas para a faixa. Por isso quase toda regra abaixo e
   um reset, e nao pintura nova.
   ========================================================================== */

/* --- 0. A REGUA ----------------------------------------------------------
   Duas medidas mandam em tudo aqui e estao em var para nao se perderem em
   numeros soltos por dez regras:

     --pp-lbl   largura da coluna de rotulos;
     --pp-inset recuo interno dos valores CLICAVEIS (data, canal).

   O `--pp-inset` e a razao de existir a var: o alvo de clique precisa de
   padding para o realce de hover ter corpo, mas esse padding empurrava o TEXTO
   9px para a direita - e o status, as redes e os avatares (que nao tem padding)
   ficavam alinhados numa vertical e as datas noutra. A borda esquerda do valor
   saia serrilhada. A correcao e devolver o mesmo recuo em margem negativa: o
   realce cresce para fora, o texto fica na regua. */
.item-post .pp-rail {
    --pp-lbl: 140px;
    --pp-inset: 9px;
    float: left;
    width: 100%;
    max-width: 620px;
    padding: 4px 0 18px 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

/* A linha nao tem separador de proposito: com 6 linhas curtas, o filete vira
   grade e pesa mais que os proprios dados. Quem separa e o respiro + o realce
   de hover no valor. */
.item-post .pp-row {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    min-height: 32px;
}

/* O rotulo e uma caixa da ALTURA DA PRIMEIRA LINHA do valor, centrada. Assim
   ele acompanha a primeira linha quando o valor quebra em duas (status com
   varios botoes de acao) em vez de escorregar para o meio do bloco - que era o
   que desalinhava a linha "Responsavel". */
.item-post .pp-lbl {
    flex: 0 0 var(--pp-lbl);
    width: var(--pp-lbl);
    min-height: 32px;
    display: flex;
    align-items: center;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
    color: var(--color-text-01);
    opacity: 0.5;
    /* Nunca quebra a coluna: "Data de entrega" e o mais longo e cabe folgado.
       O sufixo de fuso, que estourava, virou etiqueta do VALOR. */
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.item-post .pp-val {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    min-height: 32px;
}

/* --- 1. CAMPOS campostyle2* DENTRO DO TRILHO ----------------------------
   `.ipt2-col` nasce como coluna de grid do Bootstrap (float + padding lateral)
   e o `.campo-style-02` traz o rotulo por cima. Aqui os dois viram um valor
   inline: sem float, sem largura de coluna, sem rotulo interno. */
.item-post .pp-val .ipt2-col {
    float: none;
    width: auto;
    max-width: 100%;
    padding: 0;
    margin: 0;
}

.item-post .pp-val .campo-style-02 {
    border: 0 !important;
    padding: 0;
    margin: 0;
    background: none;
    min-height: 0 !important;
}

/* O rotulo interno some - quem rotula agora e o .pp-lbl da linha. Fica no DOM
   (o helper campostyle2* e compartilhado com outras telas) e sai so aqui. */
.item-post .pp-val .campo-style-02 .lbel {
    display: none;
}

.item-post .pp-val .campo-style-02 .inpt {
    padding: 0;
    margin: 0;
    border: 0;
}

/* O ALVO CLICAVEL. Todo valor editavel do trilho - data, canal - usa a mesma
   caixa: raio 8, realce so no hover. E o padrao de "campo que parece texto ate
   voce passar o mouse" das telas de propriedade.

   `margin-left: -var(--pp-inset)` e o que mantem a coluna alinhada: o padding
   da caixa cresce para FORA (para dentro do respiro de 10px entre rotulo e
   valor), entao o texto comeca exatamente onde comecam a pilula de status, os
   icones de rede e os avatares - que nao tem caixa. Sem isso a coluna de
   valores fica com duas verticais diferentes. */
.item-post .pp-val .campo-style-02 .selecionado,
.item-post .pp-val .campo-style-02 .datepicker.form-control,
.item-post .pp-val .campo-style-02 .datepicker-date.form-control,
.item-post .pp-val .campo-style-02 input.form-control {
    height: auto !important;
    min-height: 30px;
    line-height: 20px;
    padding: 5px var(--pp-inset) !important;
    margin: 0 0 0 calc(var(--pp-inset) * -1);
    font-size: 14.5px;
    font-weight: 550;
    border: 1px solid transparent;
    border-radius: 8px;
    background: none;
    box-shadow: none;
    cursor: pointer;
    transition: background-color 0.15s ease, border-color 0.15s ease;
    /* O input de data nasce com a largura do tema; aqui ele encolhe para o
       tamanho do texto, senao a caixa de hover vira uma barra larga e vazia. */
    width: auto;
    max-width: 100%;
}

.item-post .pp-val .campo-style-02 .selecionado:hover,
.item-post .pp-val .campo-style-02 .datepicker.form-control:hover,
.item-post .pp-val .campo-style-02 .datepicker-date.form-control:hover,
.item-post .pp-val .campo-style-02 input.form-control:hover,
.item-post .pp-val .campo-style-02 input.form-control:focus {
    background: var(--color-hover-01);
    border-color: var(--color-border);
}

/* A regra antiga pintava o rotulo de azul no hover do canal/data. O rotulo nao
   existe mais aqui, e a interface e monocromatica: quem responde ao mouse e a
   caixa acima. */
.item-post .pp-val .campo-style-02:hover .lbel {
    color: inherit;
}

/* ENTREGA VAZIA. O conteudo pode nao ter prazo interno - e o estado de toda a
   base ate agora. Sem texto o input vira um retangulo invisivel e a linha fica
   com o rotulo solto, parecendo defeito. O placeholder ("Sem data de entrega",
   declarado no campostyle2datepicker) diz o estado E continua sendo o alvo de
   clique para definir. Tom de rotulo, nao de valor: e ausencia, nao dado. */
.item-post .pp-row-entrega .campo-style-02 input.form-control::placeholder {
    color: var(--color-text-01);
    opacity: 0.38;
    font-weight: 500;
}

/* A largura de um input vazio nao acompanha o placeholder - ele encolheria a
   uns poucos pixels e o alvo de clique sumiria. `:placeholder-shown` restringe
   isto ao campo VAZIO: preenchido, a caixa volta a ter o tamanho do texto, em
   vez de arrastar 80px de vazio atras da data. */
.item-post .pp-row-entrega .campo-style-02 input.form-control:placeholder-shown {
    min-width: 170px;
}

/* --- 2. LINHA DE STATUS --------------------------------------------------
   O status e os botoes de acao (Aprovar / Agendar / Ajuste) dividem a linha:
   os dois falam do mesmo assunto - em que ponto do fluxo a peca esta. */
.item-post .pp-row-status .pp-val {
    gap: 8px;
}

.item-post .pp-row-status .status {
    float: none;
    flex: 0 0 auto;
}

/* O bloco de acoes vinha com margem negativa para encaixar colado no status na
   coluna da esquerda. Dentro do trilho quem espaca e o `gap`. */
.item-post .pp-row-status .group-actions-status {
    float: none;
    margin-left: 0;
    padding: 0;
    height: auto;
    gap: 6px;
    flex-wrap: wrap;
}

.item-post .pp-row-status .group-actions-status .btn {
    float: none;
    padding: 4px 10px;
    height: 29px;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    transition: background-color 0.15s ease;
}

.item-post .pp-row-status .group-actions-status .btn:hover {
    background: var(--color-hover-01);
}

.item-post .pp-row-status .group-actions-status .btn svg {
    float: none;
    margin: 0;
}

/* Sem acao contextual no status atual o container fica vazio - e um flex vazio
   ainda consome o `gap`, deixando um buraco depois da pill. */
.item-post .pp-row-status .group-actions-status:empty {
    display: none;
}

/* --- 3. REDES E RESPONSAVEIS --------------------------------------------- */
.item-post .pp-row-redes .redes-ativas {
    float: none;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 3px;
}

.item-post .pp-row-redes .redes-ativas .redes-item {
    float: none;
    margin-right: 0;
}

.item-post .pp-row-membros .box-membros {
    float: none;
    padding: 0;
    min-width: 0;
    display: flex;
    align-items: center;
}

.item-post .pp-row-membros .box-membros .membros {
    padding: 0;
    display: flex;
    align-items: center;
}

/* A LISTA DE PESSOAS EM UMA LINHA SO.
   `.lst-membros-all` e float por heranca e os avatares se sobrepoem por
   `margin-right: -7px`. Em flex a sobreposicao continua (a margem negativa vale
   igual) e o "+" para de cair para a linha de baixo. */
.item-post .pp-row-membros .lst-membros-all {
    float: none;
    padding: 0;
    display: flex;
    align-items: center;
}

.item-post .pp-row-membros .lst-membros-all .item {
    float: none;
}

/* O BOTAO "+" PRECISA DO ESTILO DE VOLTA.
   Ele era desenhado por `.grupo-btns-tips .box-membros .btn-add-membro` - e a
   faixa `.grupo-btns-tips` deixou de existir quando o trilho entrou. Sem estas
   regras o "+" perde o disco e o alinhamento: vira um SVG de 24px solto, que
   estoura a altura da linha e quebra para baixo dos avatares. */
.item-post .pp-row-membros .btn-add-membro {
    flex: 0 0 auto;
    float: none;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    /* +7px anula a sobreposicao do ultimo avatar: colado nele o "+" leria como
       mais uma pessoa da pilha, e nao como uma acao. */
    margin-left: 7px;
    background: var(--color-bg-01);
    border-radius: 50%;
    opacity: 0.6;
    cursor: pointer;
    transition: opacity 0.15s ease, background 0.15s ease;
}

.item-post .pp-row-membros .btn-add-membro:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .pp-row-membros .btn-add-membro svg {
    width: 15px;
    height: 15px;
    fill: var(--color-text-01);
}

/* Nenhum responsavel: sobra so o "+", que sem a margem de descolamento fica
   deslocado da regua dos outros valores. */
.item-post .pp-row-membros .lst-membros-all .btn-add-membro:first-child {
    margin-left: 0;
}

/* --- 4. ETIQUETA DA ENTREGA ---------------------------------------------
   Diz, em uma palavra, o que a data sozinha nao diz: se o prazo passou e
   quanta folga sobra ate a publicacao. Monocromatica por padrao - a cor entra
   so no atraso, que e a unica leitura que pede acao. */
.item-post .pp-flag {
    flex: 0 0 auto;
    font-size: 11.5px;
    font-weight: 550;
    line-height: 1;
    padding: 5px 8px;
    border-radius: 7px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    opacity: 0.55;
    white-space: nowrap;
}

.item-post .pp-flag.is-vencido {
    background: rgba(214, 45, 45, 0.10);
    color: #c62828;
    opacity: 1;
}

.item-post .pp-flag.is-ajustado {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    opacity: 1;
}

/* --- 5. RESPONSIVO -------------------------------------------------------
   O corte e o mesmo 920px que ja governa a coluna esquerda do popup: abaixo
   dele as duas colunas viram uma so, e uma regua de 140px para o rotulo comeria
   metade da largura. A linha empilha (rotulo em cima, valor embaixo). */
@media (max-width: 920px) {
    .item-post .pp-rail {
        max-width: 100%;
        gap: 6px;
    }

    .item-post .pp-row {
        flex-direction: column;
        align-items: stretch;
        gap: 1px;
        min-height: 0;
    }

    .item-post .pp-lbl {
        flex: 0 0 auto;
        width: auto;
        min-height: 0;
        font-size: 12px;
    }

    .item-post .pp-val {
        min-height: 30px;
    }

    /* O recuo negativo continua valendo, e pela mesma razao do desktop: aqui o
       rotulo fica ACIMA do valor, entao o texto da data precisa comecar no
       mesmo x do rotulo. Sem ele a data ficaria 9px adentro da vertical. */
    .item-post .pp-val .campo-style-02 .selecionado,
    .item-post .pp-val .campo-style-02 .datepicker.form-control,
    .item-post .pp-val .campo-style-02 .datepicker-date.form-control,
    .item-post .pp-val .campo-style-02 input.form-control {
        margin-left: calc(var(--pp-inset) * -1);
    }
}

/* ==========================================================================
   CHIP "ORDENAR" - publicacao x entrega
   --------------------------------------------------------------------------
   Nao e um controle novo: e o mesmo `.bfr-grupo-btn` da barra de filtros
   rapidos, reusado no planejamento (que nao carrega aquela barra). Por isso as
   regras base do botao deixaram de ser escopadas em `.barra-filtros-rapidos` -
   sao do BOTAO, nao da barra. O que sobra aqui e o encaixe no #menu-exbicao e a
   nota de rodape do popover.
   ========================================================================== */

/* No planejamento o chip fica ao lado do trilho Calendario | Lista. `middle`
   porque o #menu-exbicao e um bloco com filhos inline: sem isso o chip
   assentaria na linha de base e ficaria alguns pixels abaixo do trilho. */
#menu-exbicao .bfr-grupo-btn {
    vertical-align: middle;
    margin-left: 8px;
}

/* Nota do popover de ordem: explica o que acontece com quem nao tem entrega -
   a duvida que o proprio controle levanta. */
.bfr-pop-nota {
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid var(--color-border);
    font-size: 11.5px;
    line-height: 1.35;
    color: var(--color-text-01);
    opacity: .5;
}

/* Canais que nao publicam em rede (impresso, interno, PDF) ja escondiam
   `.redes-ativas`. No trilho isso deixaria a LINHA de pe com o rotulo "Redes" e
   nada ao lado - some a linha inteira. */
.item-post[data-local="3"] .pp-row-redes,
.item-post[data-local="4"] .pp-row-redes,
.item-post[data-local="5"] .pp-row-redes,
.item-post[data-local="99"] .pp-row-redes {
    display: none;
}

/* ==========================================================================
   CHIP DE DATA DE ENTREGA NAS LISTAGENS (.ct-entrega)
   --------------------------------------------------------------------------
   Mesma marcacao no cartao do QUADRO (.conteudo-item .data) e na linha da
   LISTA (celula de data), porque e a mesma informacao - muda so o entorno.
   Aparece apenas quando o conteudo tem prazo PROPRIO; sem isso ele carimbaria
   "Entrega" em cima da data de publicacao de todo item que nunca teve prazo.

   Monocromatico por padrao. A unica cor e o prazo VENCIDO, que e a leitura que
   pede acao - e ela ja e a mesma do `.pp-flag.is-vencido` do popup, para o
   atraso ter uma cor so no produto inteiro.
   ========================================================================== */

.ct-entrega {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    margin-top: 3px;
    padding: 2px 7px 2px 5px;
    border-radius: 6px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    font-size: 11px;
    font-weight: 550;
    line-height: 1.45;
    white-space: nowrap;
    opacity: 0.65;
}

.ct-entrega svg {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
}

/* "Entrega" e rotulo, a data e o dado: o peso separa os dois dentro de um chip
   que precisa caber na largura de um cartao de quadro. */
.ct-entrega i {
    font-style: normal;
    font-weight: 500;
    opacity: 0.7;
}

/* A hora que o qdDataCurta anexa nao cabe aqui: no chip o que importa e o DIA
   do prazo, e "8 ago 18:00" quebraria o cartao do quadro. */
.ct-entrega .qd-hr {
    display: none;
}

.ct-entrega.is-vencido {
    background: rgba(214, 45, 45, 0.10);
    color: #c62828;
    opacity: 1;
}

/* Na LINHA da lista o chip divide a celula com a data grande e a contagem
   ("Vencido ha 2 dias"), entao ele desce para a propria linha. */
.conteudo-item td .ct-entrega {
    display: flex;
    width: -moz-fit-content;
    width: fit-content;
}

/* No CARTAO do quadro o bloco .data e o cabecalho do cartao; o chip entra
   abaixo da data de publicacao, alinhado com ela. */
.conteudo-item .data .ct-entrega {
    display: flex;
    width: -moz-fit-content;
    width: fit-content;
}

/* ==========================================================================
   COLUNA "DATA ENTREGA" DA TELA DE PRODUCAO DE CONTEUDOS (.td-entrega)
   --------------------------------------------------------------------------
   A tela de producao lista o trabalho EM ABERTO, entao o prazo de entrega e
   coluna de primeira classe - nao um chip espremido dentro da celula de
   agendamento (era assim antes desta coluna existir; o chip continua so no
   CARTAO do quadro, onde nao ha colunas).

   Vem ANTES da data de agendamento de proposito: e a data que a equipe
   persegue, e as duas juntas leem na ordem em que acontecem (entrega ->
   publicacao).

   `.alerta`, usada na celula de agendamento, NAO pinta nada aqui: aquela regra
   e escopada em `.lst-tarefas-planejamento`, que nao envolve esta tabela. Por
   isso a coluna traz o proprio estado.
   ========================================================================== */

.table-01 .td-entrega {
    font-size: 13px;
    white-space: nowrap;
}

/* Vencido usa o MESMO vermelho do chip do quadro e da etiqueta do popup - o
   atraso tem uma cor so no produto inteiro. */
.table-01 .td-entrega.is-vencido {
    color: #c62828;
    font-weight: 550;
}

/* CELULA VAZIA = travessao, nao texto. "Sem entrega" escrito por extenso
   repetia-se dezenas de vezes numa coluna cuja maioria das linhas ainda nao tem
   prazo, e a palavra pesava mais que as datas de verdade. O travessao ocupa a
   celula (celula em branco parece dado faltando por erro) sem disputar leitura.

   `tabular-nums` alinha o traco com os digitos das outras linhas, senao ele
   flutua fora da coluna optica das datas. */
.table-01 .td-entrega .td-sem-entrega {
    color: var(--color-text-01);
    opacity: 0.28;
    font-variant-numeric: tabular-nums;
}

/* ===========================================================================
   QUADRO DO ESPACO - uma FAIXA por LISTA, lado a lado
   ---------------------------------------------------------------------------
   No espaco o quadro mistura listas: o mesmo nome de status aparece em varias
   colunas e nada diz de qual lista e cada uma. A estrutura de agrupamento ja
   existia (.group-lista-pai > .hdr-lista-pai + .conteudo-lista-status), usada
   so na exibicao em lista. Agora quem decide agrupar e o ESCOPO - espaco sim,
   lista direta nao. O JS marca .quadro-agrupado no container.

        [ LISTA A                ] [ LISTA B        ] [ LISTA C ...
        [ st1 | st2 | st3        ] [ st1 | st2      ] [ st1 | ...

   ---------------------------------------------------------------------------
   TUDO EM UM BLOCO SO, DE PROPOSITO
   ---------------------------------------------------------------------------
   A cadeia de altura precisa estar inteira para funcionar: basta UM elo sem
   `min-height: 0` e o flex se recusa a encolher abaixo do conteudo - a lista
   para de rolar e o estouro vaza para a pagina. Espalhar isso em regras
   somadas ao longo do arquivo foi o que fez o comportamento oscilar a cada
   ajuste. Aqui a cadeia esta escrita de uma vez, na ordem em que acontece.

   As regras genericas do quadro (`.type-quadro .estrutura-lista .group`) poem
   display:inline-block, float e max-height em vh nessas mesmas caixas - por
   isso cada propriedade e reafirmada, mesmo quando parece redundante.
   =========================================================================== */

/* 1. TRILHO - a unica altura fixa e a unica rolagem horizontal.
      --qd-faixa-topo e o que existe ACIMA do trilho. E o unico numero a
      ajustar: sobrou espaco embaixo, aumente; a faixa passa da tela, diminua.
      dvh e nao vh: no celular a barra do navegador entra e sai. */
.type-quadro .estrutura-lista.quadro-agrupado {
    --qd-faixa-topo: 62px;
    height: calc(100dvh - var(--qd-faixa-topo));
    display: flex;
    flex-direction: row;
    align-items: stretch;
    overflow-x: auto;
    overflow-y: hidden;
}

/* 2. FAIXA (lista) - largura pelo conteudo, altura cheia, coluna por dentro. */
.type-quadro .estrutura-lista.quadro-agrupado>.group-lista-pai {
    flex: 0 0 auto;
    width: auto;
    min-width: 0;
    height: 100%;
    min-height: 0;
    margin-bottom: 0;
    display: flex;
    flex-direction: column;
}

/* 3. CABECALHO DA FAIXA - tamanho proprio, nao disputa o que sobra. */
.type-quadro .estrutura-lista.quadro-agrupado>.group-lista-pai>.hdr-lista-pai {
    flex: 0 0 auto;
}

/* 4. FILEIRA DE STATUS - ocupa o resto. A rolagem horizontal NAO fica aqui:
      quem rola e o trilho (1), senao ficam duas barras concorrentes. */
.type-quadro .estrutura-lista.quadro-agrupado .conteudo-lista-status {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: row;
    align-items: stretch;
    gap: 10px;
    overflow: visible;
    padding-bottom: 11px;
}

/* 5. COLUNA DE STATUS - altura cheia da faixa. NAO vira flex column: o botao
      "Adicionar tarefa" nao e filho direto de .group (ha um wrapper no meio),
      entao distribuir por flex nao alcanca ele. A coluna fica em fluxo normal,
      como na lista direta, e o limite vai na LISTA (7) - que e como o quadro
      da lista direta ja resolve isso hoje. */
.type-quadro .estrutura-lista.quadro-agrupado .conteudo-lista-status>.group {
    flex: 0 0 auto;
    float: none;
    height: 100%;
    min-height: 0;
}

/* 6. (vago - o botao nao precisa mais de regra propria: ele fica FORA da area
      que rola, entao aparece sempre.) */

/* 7. LISTA DE CARTOES - a UNICA que rola, e SEMPRE mais baixa que a coluna.
      A reserva de 104px e o cabecalho do status (~44px) + o botao "Adicionar
      tarefa" (~44px) + respiro. E o mesmo principio da lista direta, que usa
      calc(100vh - 169px): a lista nunca ocupa a altura toda, entao o que vem
      depois dela sobra visivel por construcao - sem depender de flex.

      max-height em % resolve contra a COLUNA (que tem height:100%), nao contra
      a viewport: cada faixa se ajusta sozinha ao trilho. */
.type-quadro .estrutura-lista.quadro-agrupado .conteudo-lista-status .lst-conteudos-quad {
    /* !important e preciso aqui, e so aqui: .tarefas-geral .lst-conteudos-quad
       (painel3.css ~21690) usa max-height: calc(100vh - 130px) !important.
       Aquele limite e da viewport e ignora a faixa - dentro do agrupamento ele
       vencia a regra desta cadeia, e era por isso que a coluna ficava mais
       curta do que a faixa permitia.

       A reserva de 92px e o cabecalho do status (~44px) + o botao "Adicionar
       tarefa" (~40px, padding 10/11 + conteudo) + folga. Medido do proprio CSS
       (.btn-add-tarefa-quad, linha ~50812). Sobrou espaco: aumente a reserva;
       o botao encostou no fim: diminua. */
    max-height: calc(100% - 92px) !important;
    overflow-y: auto;
    overflow-x: hidden;
}

/* 8. Cabecalho da faixa gruda no topo dela ao rolar os cartoes. */
/* Cabecalho da faixa: sem fundo proprio. Ele existia para o sticky nao deixar
   os cartoes passarem por tras - mas a faixa ja tem borda e o titulo se le bem
   sobre o fundo da tela. Menos peso visual num elemento que so rotula. */
.type-quadro .estrutura-lista.quadro-agrupado .hdr-lista-pai {
    position: sticky;
    top: 0;
    z-index: 2;
    background: transparent;
}

/* ===========================================================================
   TELA DE WORKFLOW - kit .wf-*   (Fases 3 e 4)
   Catalogos reutilizaveis da operacao: CARGOS e ORGANIZACOES DE STATUS.
   MONOCROMATICO: o ativo e a tinta (--color-btn-bg-01). A unica cor de cada
   linha e o ponto do proprio cargo/etapa, que e dado do usuario, nao acento.
   =========================================================================== */
#wf-host {
    padding: 0 0 40px;
    /* Derivados de --color-text-01 / --color-bg, que o dark.css inverte. Assim
       o kit vira junto com o tema sem uma linha em dark.css - mesmo padrao das
       vars --eq-* do kit de Equipes. NAO usar literais: foi o que quebrou a
       primeira versao desta tela (botao branco com texto branco no escuro). */
    --wf-line: var(--color-border);
    --wf-text-2: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    --wf-hover: var(--color-hover-01);
    color: var(--color-text-01);
}

#wf-host .wf-corpo {
    padding: 15px;
}

/* --- cabecalho do bloco --- */
#wf-host .wf-hdr {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 16px;
}

#wf-host .wf-ttl h5 {
    margin: 0 0 4px;
    font-size: 16px;
    font-weight: 600;
}

#wf-host .wf-desc {
    display: block;
    font-size: 13px;
    line-height: 1.55;
    color: var(--wf-text-2);
    /* 560px = ~75 caracteres. Em 680 a descricao virava um paragrafo de tres
       linhas correndo a largura da tela, e o olho perdia o comeco da proxima. */
    max-width: 560px;
}

#wf-host .wf-desc b {
    color: var(--color-text-01);
    font-weight: 600;
}

#wf-host .wf-bt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    border-radius: 12px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
    flex-shrink: 0;
}

#wf-host .wf-bt svg {
    width: 15px;
    height: 15px;
    fill: var(--color-btn-text-01);
}

#wf-host .wf-bt:hover {
    opacity: .88;
}

/* O kit `.wf-lst` / `.wf-item` / `.wf-dot` FOI REMOVIDO com a lista de linhas
   dos cargos, unico lugar que os usava. O cartao `.wf-cargo` esta mais abaixo. */
#wf-host .wf-cargo-desc {
    font-size: 12px;
    color: var(--wf-text-2);
    margin-top: 2px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#wf-host .wf-tag {
    font-size: 11px;
    padding: 3px 9px;
    border-radius: 20px;
    border: 1px solid var(--wf-line);
    color: var(--wf-text-2);
    white-space: nowrap;
}

/* AS ACOES FICAM VISIVEIS, com peso baixo, ganhando contraste no hover do
   cartao. Escondidas ate o hover elas so existiriam para quem ja sabe que
   existem. */
#wf-host .wf-acoes {
    display: flex;
    gap: 2px;
    flex-shrink: 0;
    opacity: .62;
    transition: opacity .15s;
}

#wf-host .wf-vazio {
    padding: 34px 20px;
    text-align: center;
    font-size: 13px;
    line-height: 1.7;
    color: var(--wf-text-2);
    border: 1px dashed var(--wf-line);
    border-radius: 12px;
}

#wf-host .wf-vazio b {
    color: var(--color-text-01);
    font-weight: 600;
}

/* O kit `.wf-form` FOI REMOVIDO - e vale saber por que, para nao voltar.
   ------------------------------------------------------------------------
   Ele usava `var(--wf-line)` e `var(--wf-text-2)`, declaradas em `#wf-host`
   (a TELA). O formulario abre dentro de `#edit-popup-mini`, que esta FORA
   desse escopo - as vars ficavam indefinidas, `border: 1px solid var(--wf-line)`
   virava declaracao invalida, e o campo aparecia SEM BORDA NENHUMA, parecendo
   texto solto. O rotulo herdava o texto grande do popup pelo mesmo motivo.
   Nao quebrou de forma barulhenta: quebrou parecendo "design ruim".

   REGRA: formulario de popup usa `.wsf-*`, que declara as proprias vars e nao
   depende de ancestral nenhum. */

/* ===========================================================================
   SELETOR DE WORKSPACE - ocupa o lugar da marca da plataforma no topo da
   barra lateral. Rotulo pequeno em cima, nome grande embaixo, caret a direita.
   SEMPRE visivel, com "Geral" como padrao.
   Raios e curva do kit premium (--eq-radius-*, --eq-ease); a sidebar nao
   herda os tokens --eq-*, entao aqui eles sao redeclarados a partir dos
   mesmos aliases do sistema.
   =========================================================================== */
#ws-switcher {
    --ws-t2: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    --ws-t3: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    --ws-ease: cubic-bezier(.16, 1, .3, 1);
    position: relative;
    /* flex: 1; */
    min-width: 0;
}

#ws-switcher .ws-sw-atual {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 0px 6px 0px 6px;
    margin-left: -5px;
    border-radius: 8px;
    cursor: pointer;
    min-width: 0;
    transition: background .18s var(--ws-ease);
}

#ws-switcher .ws-sw-atual:hover {
    background: var(--color-hover-01);
}

#ws-switcher .ws-sw-cor {
    width: 3px;
    height: 24px;
    border-radius: 11px;
    flex-shrink: 0;
    background: #8c8c8c;
    margin-top: 0px;
    display: none;
}

#ws-switcher .ws-sw-txt {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 1px;
}

#ws-switcher .ws-sw-rot {
    font-size: 8px;
    font-weight: 400;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--ws-t3);
    line-height: 1;
}

#ws-switcher .ws-sw-nome {
    font-size: 18px;
    font-weight: 600;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#ws-switcher .ws-sw-caret {
    width: 15px;
    height: 15px;
    fill: var(--ws-t3);
    flex-shrink: 0;
    margin-left: auto;
    transition: transform .18s var(--ws-ease);
    position: relative;
    top: 1.2px;
}

#ws-switcher.aberto .ws-sw-caret {
    transform: rotate(180deg);
}

/* ! `position: fixed`, e NAO `absolute`. A `.menu-sistema` tem
   `overflow: hidden` e 261px de largura: um filho absoluto de 290px era
   CORTADO na borda da barra lateral - o botao "Equipes" aparecia pela metade e
   o medidor do plano lia "3 de" em vez de "3 de 10".

   Sair do fluxo com `fixed` tira o dropdown do contexto que recorta, e e o
   mesmo caminho que o AirpostPicker ja usa no projeto pela mesma razao. O preco
   e que top/left passam a ser calculados no JS a cada abertura - ver
   posicionarDropdown() no modulo do seletor. */
.ws-sw-lst {
    /* ! AS VARS SAO REDECLARADAS AQUI, e nao herdadas.
       O dropdown deixou de ser filho de #ws-switcher (virou portal no <body>),
       e --ws-t2/--ws-t3/--ws-ease estavam declaradas LA. Sem esta redeclaracao
       elas ficariam indefinidas, `color: var(--ws-t2)` viraria declaracao
       invalida e o menu apareceria com o texto preto puro, sem hierarquia -
       quebrando parecendo "design ruim", nao erro.
       E exatamente a armadilha que o kit .wf-form ja pagou neste arquivo. */
    --ws-t2: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    --ws-t3: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    --ws-ease: cubic-bezier(.16, 1, .3, 1);
    display: none;
    position: fixed;
    width: 290px;
    max-width: calc(100vw - 24px);
    /* Acima da barra lateral e do conteudo, e ABAIXO dos popups (#edit-popup e
       999). O dropdown fecha ao abrir o checkout, mas se um dia nao fechar, ele
       nao pode aparecer por cima do modal. */
    z-index: 900;
    padding: 6px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    /* Superficie propria: --color-bg vira preto puro no escuro e um dropdown
       sobre a sidebar preta sumiria. Mesma razao do --uc-surface. */
    background: var(--uc-surface);
    box-shadow: 0 18px 40px -20px rgba(16, 24, 40, .55);
}

.ws-sw-lst.aberto {
    display: block;
}

/* ---------- cabecalho: identidade do workspace + plano ---------- */
.ws-sw-lst .ws-sw-hdr {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 10px 9px 12px;
}

.ws-sw-lst .ws-sw-av {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
    background: #8c8c8c;
}

.ws-sw-lst .ws-sw-hdr-txt {
    min-width: 0;
    flex: 1;
}

.ws-sw-lst .ws-sw-hdr-nome {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-01);
    line-height: 1.25;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ws-sw-lst .ws-sw-hdr-sub {
    font-size: 11.5px;
    color: var(--ws-t3);
    margin-top: 2px;
    line-height: 1.3;
}

.ws-sw-lst .ws-sw-sep-ponto {
    opacity: .5;
}

/* Link, nao botao: e uma saida secundaria dentro de uma linha de texto */
.ws-sw-lst .ws-sw-up {
    color: var(--color-text-01);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
    opacity: .75;
}

.ws-sw-lst .ws-sw-up:hover {
    opacity: 1;
}

/* ---------- duas acoes de destaque, lado a lado ---------- */
.ws-sw-lst .ws-sw-btns {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    padding: 0 3px;
}

.ws-sw-lst .ws-sw-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px 8px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--ws-t2);
    cursor: pointer;
    transition: background .18s var(--ws-ease), color .18s var(--ws-ease), border-color .18s var(--ws-ease);
}

.ws-sw-lst .ws-sw-btn svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    flex-shrink: 0;
}

.ws-sw-lst .ws-sw-btn:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

/* ---------- rotulo de secao ---------- */
.ws-sw-lst .ws-sw-ttl {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ws-t3);
    padding: 2px 11px 6px;
}

.ws-sw-lst .ws-sw-grupo {
    max-height: 232px;
    overflow-y: auto;
}

.ws-sw-lst .ws-sw-it {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ws-t2);
    cursor: pointer;
    transition: background .18s var(--ws-ease), color .18s var(--ws-ease);
}

.ws-sw-lst .ws-sw-it:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

/* O ativo NAO inverte mais para preto solido: com o cabecalho logo acima
   mostrando o mesmo workspace, o bloco escuro no meio da lista competia com ele
   e pesava o menu. Realce leve + check comunica o mesmo com menos tinta. */
.ws-sw-lst .ws-sw-it.atv {
    background: var(--color-hover-01);
    color: var(--color-text-01);
    font-weight: 600;
}

/* O tique existe em TODOS os itens e so aparece no ativo. Quem manda e a classe
   `.atv`, porque a troca de workspace acontece sem reload: ela move a classe, e
   um <svg> que so fosse impresso no item ativo ficaria congelado no workspace
   em que o menu foi pintado. */
.ws-sw-lst .ws-sw-ck {
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
    flex-shrink: 0;
    opacity: .8;
    display: none;
}

.ws-sw-lst .ws-sw-it.atv .ws-sw-ck {
    display: block;
}

.ws-sw-lst .ws-sw-it-nome {
    flex: 1;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ws-sw-lst .ws-sw-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.ws-sw-lst .ws-sw-hint {
    font-size: 11px;
    color: var(--ws-t3);
}

.ws-sw-lst .ws-sw-it.atv .ws-sw-hint {
    opacity: .7;
}

/* ---------- medidor de uso do plano ---------- */
.ws-sw-lst .ws-sw-uso {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 11px 4px;
    font-size: 10.5px;
    color: var(--ws-t3);
}

.ws-sw-lst .ws-sw-uso-bar {
    flex: 1;
    height: 4px;
    border-radius: 99px;
    background: var(--color-bg-01);
    overflow: hidden;
}

.ws-sw-lst .ws-sw-uso-bar span {
    display: block;
    height: 100%;
    border-radius: 99px;
    background: #245cfb;
}

.ws-sw-lst .ws-sw-uso-bar span.cheio {
    background: #ef5350;
}

/* ---------- rodape: criar ---------- */
.ws-sw-lst .ws-sw-novo {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
    padding: 10px 11px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    transition: background .18s var(--ws-ease);
}

.ws-sw-lst .ws-sw-novo svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
    flex-shrink: 0;
}

.ws-sw-lst .ws-sw-novo:hover {
    background: var(--color-hover-01);
}

/* Teto do plano atingido: continua clicavel (abre o convite ao upgrade),
   mas nao se apresenta como uma acao disponivel */
.ws-sw-lst .ws-sw-novo.bloq {
    opacity: .45;
}

.ws-sw-lst .ws-sw-sep {
    height: 1px;
    background: var(--color-border);
    margin: 6px 5px;
}

.ws-sw-lst .ws-sw-ac {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px;
    border-radius: 12px;
    font-size: 13px;
    font-weight: 500;
    color: var(--ws-t3);
    cursor: pointer;
    transition: background .18s var(--ws-ease), color .18s var(--ws-ease);
}

.ws-sw-lst .ws-sw-ac svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
    flex-shrink: 0;
}

.ws-sw-lst .ws-sw-ac:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

/* ===========================================================================
   CHIPS DE CLASSIFICACAO - o que sobrou do kit .wsp-*.
   ---------------------------------------------------------------------------
   O popup de duas colunas (.wsp-hdr / .wsp-lado / .wsp-painel) foi substituido
   pelo kit .wcfg-*, com navegacao. As 32 regras daquela casca foram removidas
   junto; o que ficou aqui sao os CHIPS e o formulario de criar, que o kit novo
   REUSA dentro da aba "Marcas e espacos".

   Kit .wsp-* original, para contexto historico:
   -------------------------------------------------------------------------
   Usa os tokens --eq-* que `#edit-popup-medium .conteudo` JA define (radius,
   escala de texto em 4 niveis, ease, superficie elevada). A primeira versao
   inventava --wsp-line/--wsp-mute proprios e por isso destoava do resto do
   painel: raios diferentes, cinzas diferentes e nenhuma curva de animacao.

   Ritmo de espacamento do kit: 8 / 12 / 16 / 24 / 32.
   Geral NAO aparece aqui: e a sentinela 0, nao uma linha que se edite.
   =========================================================================== */
.wsp {
    display: flex;
    flex-direction: column;
    /* A casca (.boxpop) NAO tem padding - cada consumidor poe o seu. Sem isto o
       conteudo encostava na borda e o cabecalho corria por baixo do .btn-close.
       Mesmos numeros do .obj-rev, que usa esta mesma casca. */
    padding: 22px 22px 24px;
    max-height: calc(100vh - 90px);
    color: var(--eq-text);
}

/* 50 a direita = folga do .btn-close da casca. */



/* ---------- coluna da esquerda ---------- */


/* SELECAO da coluna: fundo suave + texto forte, nao bloco preto.
   O preto solido fica reservado aos CHIPS, onde "ligado" precisa ser
   inequivoco. Usar a mesma tinta nos dois fazia a coluna competir com o
   conteudo - dois pretos na tela e nenhum deles significando a mesma coisa. */

.wsp-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex-shrink: 0;
}

.wsp-dot.g {
    width: 10px;
    height: 10px;
}

.wsp-novo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    padding: 9px 12px;
    border-radius: var(--eq-radius-sm);
    font-size: 13px;
    font-weight: 500;
    color: var(--eq-text-3);
    cursor: pointer;
    transition: background .18s var(--eq-ease), color .18s var(--eq-ease);
}

.wsp-novo svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.wsp-novo:hover {
    background: var(--eq-bg-mute);
    color: var(--eq-text);
}

/* Teto do plano atingido: o botao continua clicavel (abre o convite ao upgrade),
   mas nao se apresenta como uma acao disponivel */

/* ---------- medidor de uso do plano ---------- */




/* ---------- painel do selecionado ---------- */




/* Os GRUPOS e ITENS da aba "Marcas e espacos" vivem no kit .wcfg-*, no fim
   deste arquivo. Eles ERAM chips .wsp-* aqui, e estavam quebrados por um motivo
   que o proprio cabecalho do kit .wcfg-* avisa: chip usava os tokens --eq-*, que
   `#edit-popup-medium .conteudo` declara e o `#edit-popup-big` - onde este popup
   abre - NAO herda. Sem borda, sem superficie e sem escala de texto, a lista
   inteira aparecia como texto solto. */


/* --- WORKSPACE HERDADO (do dono da conta) -------------------------------
   Ele aparece na mesma lista dos proprios, com etiqueta, porque escondido
   seria pior: o nome ja esta no seletor do topo e nao achar o mesmo nome
   aqui vira "sumiu". A etiqueta e cinza e discreta de proposito - o item
   nao e um alerta, e um fato. Interface MONOCROMATICA: nada de cor de
   acento para diferenciar estado. */


/* Aviso de LEITURA: mesma casca do aviso de workspace vazio, sem o tracejado
   - tracejado ali quer dizer "falta fazer algo", e aqui nao falta nada. */



/* ===========================================================================
   FORMULARIO DE WORKSPACE - kit .wsf-*, dentro da casca .cf-* do
   AirpostConfirmar (#edit-popup-mini).
   -------------------------------------------------------------------------
   Kit proprio em vez do .wf-form generico porque este formulario tem uma
   paleta, e paleta pede ritmo proprio. A casca mini NAO expoe os tokens
   --eq-*, entao eles sao redeclarados aqui a partir dos mesmos aliases do
   sistema - nunca literais.
   =========================================================================== */
/* O interruptor de comportamento do tipo. Cartao inteiro clicavel, e nao so a
   caixa: o alvo de 13px e o pior de acertar, e aqui o que se le e a frase. */
.wf-cap-sw {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 13px;
    border: 1px solid var(--wsf-linha);
    border-radius: 10px;
    cursor: pointer;
}

.wf-cap-sw.atv {
    border-color: color-mix(in srgb, var(--color-text-01) 45%, transparent);
    background: color-mix(in srgb, var(--color-text-01) 5%, transparent);
}

.wf-cap-sw input {
    margin: 2px 0 0;
    flex: 0 0 auto;
}

.wf-cap-txt {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.wf-cap-txt b {
    font-size: 13px;
    font-weight: 600;
}

.wf-cap-txt i {
    font-style: normal;
    font-size: 12px;
    line-height: 1.45;
    color: var(--wsf-t3);
}

/* O botao de comportamento na linha do catalogo: mesma familia do de formatos,
   que fica ao lado dele. */
#wf-host .wf-cat-cap {
    border: 1px dashed var(--wf-line);
    background: none;
    color: var(--wf-text-2);
    font: inherit;
    font-size: 11.5px;
    padding: 3px 9px;
    border-radius: 20px;
    cursor: pointer;
    white-space: nowrap;
}

#wf-host .wf-cat-cap:hover {
    border-color: var(--wf-fio);
    color: var(--color-text-01);
}

/* ! ESTES FORMULARIOS NAO SAO DESCENDENTES DE `#wf-host`, e por isso tem
   tokens proprios. `--wf-line` e `--wf-text-2` sao declaradas la; usadas aqui,
   ficam INDEFINIDAS - e var indefinida invalida a declaracao inteira em CSS, nao
   cai para um padrao. A borda simplesmente nao existe e a cor rebaixada vira a
   herdada. Era o que fazia o contador "7/7" e o atalho "limpar" da matriz de
   pares sairem em branco puro, com o mesmo peso do nome do tipo que deviam
   acompanhar. Mesmo bug que o aviso em footer.php ~31990 diz ter corrigido: ele
   volta toda vez que uma regra nova e escrita longe daquele comentario.
   `--wsf-t3` ja era o equivalente exato de `--wf-text-2` (os dois 52%). */
.wsf {
    --wsf-t2: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    --wsf-t3: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    --wsf-linha: color-mix(in srgb, var(--color-text-01) 13%, transparent);
    --wsf-ease: cubic-bezier(.16, 1, .3, 1);
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.wsf-campo {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.wsf-rot {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--wsf-t3);
}

.wsf-i {
    width: 100%;
    /* 13.5px = a fonte do .cf-body. Maior que isso e o campo fica maior que
       o proprio texto do popup, que foi como ficou na primeira versao. */
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-bg);
    color: var(--color-text-01);
    font-size: 13.5px;
    font-weight: 500;
    font-family: inherit;
    transition: border-color .18s var(--wsf-ease), box-shadow .18s var(--wsf-ease);
}

.wsf-i::placeholder {
    color: var(--wsf-t3);
    font-weight: 400;
}

.wsf-i:focus {
    outline: none;
    border-color: color-mix(in srgb, var(--color-text-01) 35%, transparent);
    box-shadow: 0 0 0 3px var(--color-hover-01);
}

/* Paleta: 8 opcoes conferidas nos dois temas. O marcado ganha um anel da
   propria cor, com folga para o anel nao encostar na pastilha. */
.wsf-cores {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    /* Respiro embaixo: a paleta tem so 22px de altura e, com o gap padrao do
       .wsf, ela encostava no rotulo do campo SEGUINTE - lia como se as cores
       pertencessem ao proximo campo, nao ao proprio. */
    padding-bottom: 3px;
}

.wsf-cor {
    width: 22px;
    height: 22px;
    padding: 0;
    border: none;
    border-radius: 50%;
    background: var(--wsf-c);
    cursor: pointer;
    position: relative;
    transition: transform .18s var(--wsf-ease), box-shadow .18s var(--wsf-ease);
}

.wsf-cor:hover {
    transform: scale(1.1);
}

.wsf-cor.atv {
    box-shadow: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--wsf-c);
}

.wsf-cor:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 3px;
}

.wsf-nota {
    margin: 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: var(--color-hover-01);
    font-size: 12px;
    line-height: 1.5;
    color: var(--wsf-t3);
}

/* Dica sob o campo. Existe para tirar explicacao de DENTRO do rotulo: rotulos
   como "Ao concluir, move o conteudo para" quebravam em duas linhas e a coluna
   de campos perdia o alinhamento. O rotulo diz O QUE E, a dica diz PARA QUE. */
.wsf-dica {
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--wsf-t3);
}

/* Dois campos curtos na mesma linha (prazo + %, permissao + valor). Sem isto
   um popup de 6 campos vira uma coluna longa que exige rolagem para achar o
   botao Salvar. */
.wsf-dupla {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

/* O <select> nativo nao herda a fonte nem some com a seta do sistema. */
select.wsf-i {
    appearance: none;
    -webkit-appearance: none;
    padding-right: 34px;
    background-image: linear-gradient(45deg, transparent 50%, currentColor 50%),
        linear-gradient(135deg, currentColor 50%, transparent 50%);
    background-position: calc(100% - 17px) calc(50% + 1px), calc(100% - 12px) calc(50% + 1px);
    background-size: 5px 5px, 5px 5px;
    background-repeat: no-repeat;
    cursor: pointer;
}

/* Checkbox integrado ao kit .wsf-* */
.wsf-campo-check {
    display: flex;
    flex-direction: column;
    gap: 6px;
    cursor: pointer;
    user-select: none;
    margin-top: 4px;
}

.wsf-campo-check .wsf-check-row {
    display: flex;
    align-items: center;
    gap: 9px;
}

.wsf-campo-check input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    width: 18px;
    height: 18px;
    margin: 0;
    border: 1.5px solid var(--color-border, #cbd5e1);
    border-radius: 5px;
    background: var(--color-bg, #ffffff);
    cursor: pointer;
    position: relative;
    flex-shrink: 0;
    transition: background-color .15s ease, border-color .15s ease;
}

.wsf-campo-check input[type="checkbox"]:before {
    display: none !important;
}

.wsf-campo-check input[type="checkbox"]:checked {
    background-color: var(--color-btn-bg-01, #2563eb);
    border-color: var(--color-btn-bg-01, #2563eb);
}

.wsf-campo-check input[type="checkbox"]:checked:after {
    content: "";
    display: block;
    position: absolute;
    top: 2px;
    left: 5px;
    width: 5px;
    height: 9px;
    /* cor do texto SOBRE a tinta: no escuro a caixa marcada e branca */
    border: solid var(--color-btn-text-01, #ffffff);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.wsf-campo-check input[type="checkbox"]:focus-visible {
    outline: none;
    box-shadow: 0 0 0 3px var(--color-hover-01, rgba(37, 99, 235, 0.2));
}

/* ===========================================================================
   FASE 6 - MATRIZ DE ACESSO DA EQUIPE  (pessoa x marca/espaco)
   ---------------------------------------------------------------------------
   ! AS REGRAS DA CELULA MUDARAM DE LUGAR: elas moram agora no bloco
   `.equipe-acessos .ac-cel` la em cima (procure por "A CELULA DA MATRIZ DE
   ACESSO"), junto do resto do kit da matriz.

   O QUE HAVIA AQUI, e por que saiu: este bloco era um OVERRIDE tardio que
   pintava a celula em MONOCROMATICO - ligada = tinta do sistema, desligada =
   `color: transparent`. Ele foi escrito para matar o tique que a primeira
   versao desenhava por cima da sigla (`content: none`, logo abaixo), e resolvia
   aquilo. Mas trazia dois problemas proprios:

     . com uma cor so, "Admin" e "Editor" ficavam com EXATAMENTE a mesma
       aparencia. A matriz existe para varredura, e a pergunta que se faz nela
       ("quem virou admin de que?") deixava de ter resposta visual;
     . `color: transparent` na celula desligada apagava qualquer pista de que
       ali cabia um clique - a coluna vazia parecia decoracao.

   Estar DEPOIS no arquivo tambem o tornava uma armadilha: qualquer melhoria
   feita no bloco principal era silenciosamente desfeita aqui, sem nada
   indicando onde procurar. Por isso ele nao foi "corrigido" no lugar; foi
   removido, e o kit voltou a ter um dono so.
   =========================================================================== */

/* Os ESPACOS entram na mesma tabela, atras de um filete. Duas tabelas lado a
   lado quebrariam a leitura por LINHA - e ler a linha e o ponto da matriz. */
.equipe-acessos .th-espaco.primeiro,
.equipe-acessos .td-cel.primeiro {
    border-left: 1px solid var(--color-border);
}

.equipe-acessos .ac-esp-logo {
    border-radius: 6px;
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-btn-bg-01);
}

/* A coluna TUDO - a linha inteira num clique. Mostra "3/8" porque o numero
   responde de relance a pergunta que a coluna existe para responder. */
.equipe-acessos .th-tudo {
    text-align: center;
    white-space: nowrap;
}

.equipe-acessos .td-tudo {
    text-align: center;
}

.equipe-acessos .ac-tudo {
    display: inline-block;
    min-width: 40px;
    padding: 2px 8px;
    border-radius: 999px;
    border: 1.5px solid var(--color-border);
    font-size: 11px;
    font-weight: 600;
    color: var(--color-text-01);
    opacity: .75;
    cursor: pointer;
    user-select: none;
    transition: background .12s, border-color .12s, opacity .12s;
}

.equipe-acessos .ac-tudo:hover {
    opacity: 1;
    border-color: var(--color-text-01);
}

.equipe-acessos .ac-tudo.on {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    opacity: 1;
}

.equipe-acessos .ac-tudo.saving {
    opacity: .4;
    pointer-events: none;
}

/* Escolha de NIVEL: o cargo sugere, a celula decide. Popover proprio porque
   um <select> por celula numa matriz de 12x8 vira formulario de imposto de
   renda - o mesmo motivo que fez os chips vencerem no popup de workspace. */
.ac-niveis-pop {
    position: absolute;
    z-index: 100000;
    /* 262px = cabe a linha "Edita e administra a marca: convida gente..." em
       duas linhas. Mais estreito e ela vira quatro e o menu fica mais alto que
       a tabela; mais largo e a descricao cabe numa linha so e o menu passa a
       cobrir metade da matriz. */
    min-width: 262px;
    max-width: 262px;
    padding: 5px;
    border-radius: 12px;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
    box-shadow: 0 12px 32px rgb(0 0 0 / 14%);
}

/* CADA OPCAO DIZ O QUE FAZ. So o nome nao decide nada: "Editor Admin" e
   "Editor" sao dois rotulos parecidos para dois poderes bem diferentes, e a
   diferenca (convidar gente, mexer em integracao) e justamente o que nao cabe
   no nome. */
.ac-niveis-pop .ac-nivel {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 8px 10px;
    border-radius: 8px;
    font-size: 12.5px;
    color: var(--color-text-01);
    cursor: pointer;
}

/* A bolinha reusa as classes .n-* do nivel (ver o bloco da pastilha): e a MESMA
   cor que a celula vai ganhar depois do clique, entao o menu mostra o resultado
   antes de ele acontecer.
   `background: currentColor` SOBRESCREVE o fundo esmaecido das .n-*: numa
   bolinha de 9px, 14% de tinta e indistinguivel de cinza. */
.ac-niveis-pop .ac-nivel-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 0;
    flex-shrink: 0;
    margin-top: 4px;
    background: currentColor;
}

.ac-niveis-pop .ac-nivel-txt b {
    display: block;
    font-weight: 600;
    line-height: 1.35;
}

.ac-niveis-pop .ac-nivel-txt i {
    display: block;
    font-style: normal;
    font-size: 11.5px;
    line-height: 1.4;
    margin-top: 1px;
    color: color-mix(in srgb, var(--color-text-01) 52%, transparent);
}

.ac-niveis-pop .ac-nivel:hover {
    background: color-mix(in srgb, var(--color-text-01) 7%, transparent);
}

.ac-niveis-pop .ac-nivel.atv {
    background: color-mix(in srgb, var(--color-text-01) 10%, transparent);
}

.ac-niveis-pop .ac-nivel-off {
    display: block;
    margin-top: 4px;
    padding-top: 9px;
    border-top: 1px solid var(--color-border);
    border-radius: 0 0 8px 8px;
    color: var(--ac-perigo);
}

/* A PREVIA DA REVOGACAO - sair da equipe nao revoga nada sozinho. */
.ac-revoga {
    margin-top: 10px;
    max-height: 240px;
    overflow-y: auto;
    border: 1px solid var(--color-border);
    border-radius: 12px;
}

.ac-revoga .ac-rv {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 12px;
    border-top: 1px solid var(--color-border);
    font-size: 13px;
    cursor: pointer;
}

.ac-revoga .ac-rv:first-child {
    border-top: none;
}

.ac-revoga .ac-rv-n {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ac-revoga .ac-rv-t {
    flex-shrink: 0;
    padding: 1px 7px;
    border-radius: 999px;
    border: 1px solid var(--color-border);
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    opacity: .55;
}

/* =========================================================================
   CONFIG DE ETAPA NA LINHA DO STATUS  (popup Editar status da lista)
   -------------------------------------------------------------------------
   Resumo do que esta configurado - cargo, prazo e de/para - do lado direito
   da linha, entre o titulo e o menu de tres pontos.

   ! A linha e float com altura fixa (37px) e o input tem largura em
   calc(100% - 81px). Entrar no fluxo normal empurraria o menu para fora da
   caixa; por isso o resumo e ABSOLUTO e o input encolhe pela classe
   `.tem-cfg`, marcada pelo JS.

   Monocromatico: so o pontinho do cargo tem cor, e ela vem do proprio cargo.
   ========================================================================= */
.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .st-cfg-resumo {
    position: absolute;
    right: 38px;
    top: 0;
    height: 35px;
    display: flex;
    align-items: center;
    gap: 8px;
    max-width: 45%;
    overflow: hidden;
    pointer-events: none;
    text-transform: none;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .st-cfg-i {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    line-height: 1;
    white-space: nowrap;
    opacity: 0.55;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item .st-cfg-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex: 0 0 6px;
}

.editar-lista .estrutura-list-status-edit .lst-edicao-status .item.tem-cfg .titulo {
    width: calc(55% - 81px);
}

/* =========================================================================
   WORKFLOW - aba STATUS DE CONTEUDO
   -------------------------------------------------------------------------
   Segmento e a caixa; status sao as linhas dentro dela. O que e FIXO (do
   worker, ou terminal de que as telas dependem) e desenhado apagado e com o
   selo "travado": aparece no mapa, nao aceita edicao.

   Monocromatico - o unico ponto de cor e o dot do proprio status.
   ========================================================================= */
#wf-host .wf-aviso-fabrica {
    border: 1px dashed var(--wf-line);
    border-radius: 6px;
    padding: 10px 12px;
    margin-bottom: 14px;
    font-size: 13px;
    color: var(--wf-text-2);
    line-height: 1.5;
}

#wf-host .wf-vazio-mini {
    padding: 10px 12px;
    font-size: 12px;
    color: var(--wf-text-2);
}

/* =============================================================================
   GALERIA DE MODELOS DE WORKFLOW  (.wf-modelos)
   -----------------------------------------------------------------------------
   O que ela vende nao e "status prontos" - e os CAMINHOS prontos. Amarrar
   Decupagem a Video e Criativo a Anuncio sao dezenas de cliques um a um num
   quadro de nove colunas, e e a configuracao que ninguem faz. Por isso o cartao
   destaca `nCaminhos` com cor propria, e a etapa com recorte ganha uma borda
   tracejada na fila em miniatura: o olho encontra o diferencial antes de ler.

   O cartao e um BLOCO DE LEITURA, nao um item de lista: quem escolhe modelo
   esta comparando processos, e comparar exige ver a fila inteira de etapas de
   dois deles ao mesmo tempo. Por isso a grade e de 320px minimos e nao uma
   coluna, e por isso a fila de etapas quebra em varias linhas em vez de rolar.

   ! Tudo em token --wf-* / --color-*, como o resto do kit. Literais aqui
   repetiriam o bug que derrubou a primeira versao desta tela: botao branco com
   texto branco no tema escuro.
   ========================================================================== */
#wf-host .wf-hdr-bts {
    display: flex;
    align-items: center;
    gap: 8px;
    flex-shrink: 0;
}

/* O botao SECUNDARIO da dupla do cabecalho. "Modelos" e "Novo segmento" fazem
   coisas de peso diferente - dois botoes preenchidos lado a lado disputariam a
   mesma atencao e nenhum dos dois pareceria a acao principal. */
#wf-host .wf-bt-2 {
    background: transparent;
    border: 1px solid var(--wf-line);
    color: var(--color-text-01);
}

#wf-host .wf-bt-2 svg {
    fill: currentColor;
    opacity: .7;
}

#wf-host .wf-bt-2:hover {
    background: var(--wf-hover);
    opacity: 1;
}

#wf-host .wf-bt-2.atv {
    background: var(--wf-hover);
    border-color: color-mix(in srgb, var(--color-text-01) 24%, transparent);
}

/* ! ESTE BLOCO NAO E MAIS DESCENDENTE DE `#wf-host`, e por isso declara os
   proprios tokens. A galeria virou POPUP (`#edit-popup-mini`), e `--wf-line`,
   `--wf-text-2`, `--wf-hover` e `--wf-sombra` sao declaradas la em `#wf-host`.
   Var indefinida INVALIDA A DECLARACAO INTEIRA em CSS - nao cai para um padrao.
   Sem isto, a galeria abriria sem bordas, sem sombra e com todo texto na mesma
   tinta, e nada falharia para denunciar. Mesmo tropeco que a matriz de pares e
   as regras de `.wsf` ja deram; e o preco de mover um bloco de casca.

   Os valores sao os mesmos de `#wf-host`, derivados dos tokens base - entao a
   galeria continua identica quando desenhada dentro da tela. */
.wf-modelos {
    --wf-line: var(--color-border);
    --wf-text-2: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    --wf-hover: var(--color-hover-01);
    --wf-sombra: 0 1px 2px color-mix(in srgb, var(--color-text-01) 6%, transparent);
    border: 1px solid var(--wf-line);
    border-radius: 16px;
    padding: 16px 18px 18px;
    margin-bottom: 18px;
    background: color-mix(in srgb, var(--color-text-01) 2%, transparent);
}

.wf-modelos-hdr {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 16px;
}

.wf-modelos-ttl b {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 3px;
}

.wf-modelos-ttl span {
    display: block;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--wf-text-2);
    max-width: 760px;
}

.wf-modelos-ttl span b {
    display: inline;
    font-size: inherit;
    color: var(--color-text-01);
}

.wf-modelos-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
    gap: 12px;
}

/* O cartao e uma COLUNA FLEX com o botao empurrado para o fim: sem isso, dois
   cartoes lado a lado com descricoes de tamanhos diferentes terminam com os
   botoes em alturas diferentes, e a grade inteira parece torta. */
.wf-modelo {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--wf-line);
    border-radius: 14px;
    padding: 14px 15px 15px;
    background: var(--color-bg);
    transition: border-color .18s ease, box-shadow .18s ease;
}

/* O convite do quadro vazio: a faixa de aviso com um botao no fim. */
#wf-host .wf-convite-modelos {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 4px 12px;
}

#wf-host .wf-convite-modelos .wf-bt {
    margin-left: auto;
    flex: 0 0 auto;
}

/* O MODELO DE DESTAQUE. Linha inteira da grade e moldura de tinta: e o unico
   cartao que a pessoa deve conseguir escolher sem ler os outros cinco. */
.wf-modelo-hero {
    grid-column: 1 / -1;
    border-color: color-mix(in srgb, var(--color-text-01) 38%, transparent);
    background: color-mix(in srgb, var(--color-text-01) 3%, transparent);
}

.wf-modelo-hero .wf-modelo-nome {
    font-size: 15px;
}

.wf-modelo-selo.hero {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.wf-modelo-quem-hero {
    margin: -2px 0 0;
    font-size: 12px;
    line-height: 1.5;
    color: var(--wf-text-2);
}

.wf-modelo:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 26%, transparent);
    box-shadow: var(--wf-sombra);
}

.wf-modelo-topo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 6px;
}

.wf-modelo-nome {
    font-size: 14.5px;
    font-weight: 600;
}

.wf-modelo-selo {
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: 2px 7px;
    border-radius: 100px;
    background: var(--wf-hover);
    color: var(--wf-text-2);
}

.wf-modelo-desc {
    margin: 0 0 11px;
    font-size: 12.5px;
    line-height: 1.55;
    color: var(--wf-text-2);
}

/* A FILA DE ETAPAS - o quadro de amanha, em miniatura. */
/* ============================================================================
   AS ETAPAS DO MODELO, AGRUPADAS POR FASE.
   Substitui a fila unica de pastilhas com setas: com doze etapas ela quebrava
   em tres linhas, as setas caiam no fim de cada uma e o fluxo parecia dar
   meia-volta - alem de sugerir que as doze acontecem em sequencia, quando as de
   Producao sao paralelas.

   Aqui as FASES correm na horizontal e as etapas de cada uma descem embaixo:
   e a mesma forma do quadro que o modelo vai criar.
   ============================================================================ */
.wf-modelo-fases {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 4px 6px;
    margin-bottom: 12px;
}

.wf-modelo-fase {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 3px;
    min-width: 0;
}

.wf-modelo-fase-rot {
    font-size: 9.5px;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--wf-text-2);
    margin-bottom: 1px;
}

/* A seta entre FASES, nao entre etapas - e alinhada com a primeira pastilha,
   nao com o rotulo da fase, senao ela flutua acima do conteudo. */
.wf-modelo-fseta {
    color: var(--wf-text-2);
    font-size: 13px;
    line-height: 1;
    padding-top: 22px;
    flex: 0 0 auto;
}

.wf-modelo-et {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    padding: 3px 8px;
    border: 1px solid var(--wf-line);
    border-radius: 100px;
    font-size: 11.5px;
    color: var(--color-text-01);
    white-space: nowrap;
}

.wf-modelo-et b {
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* O prazo da etapa, rebaixado: e informacao de apoio, nao o nome. */
.wf-modelo-et em {
    font-style: normal;
    font-size: 10px;
    color: var(--wf-text-2);
    flex: 0 0 auto;
}

.wf-modelo-et i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* A ETAPA DE CLIENTE e a que distingue um modelo do outro - e a unica com cor
   propria nesta galeria. */
.wf-modelo-et.cli {
    border-color: color-mix(in srgb, var(--ac-cliente) 45%, transparent);
    color: var(--ac-cliente);
}

.wf-modelo-et.cli em {
    color: color-mix(in srgb, var(--ac-cliente) 70%, transparent);
}

/* O fim da linha: contorno solido e um pouco mais forte, para o olho achar
   onde o fluxo termina sem contar as pastilhas. */
.wf-modelo-et.fim {
    border-color: color-mix(in srgb, var(--color-text-01) 30%, transparent);
}

/* O RECORTE EM TEXTO, embaixo da etapa. Antes era so um contorno tracejado, que
   dizia "esta etapa nao vale para tudo" sem dizer para o que ela vale. */
.wf-modelo-rec {
    font-size: 10px;
    line-height: 1.3;
    color: var(--wf-text-2);
    padding: 0 9px 2px;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* No DESTAQUE as fases ganham coluna de verdade e uma divisoria entre elas: o
   cartao tem a largura toda, e sem separacao as cinco colunas leem como uma
   lista so. */
.wf-modelo-hero .wf-modelo-fases {
    gap: 0;
    align-items: stretch;
}

.wf-modelo-hero .wf-modelo-fase {
    flex: 1 1 0;
    padding: 0 12px;
    border-left: 1px solid var(--wf-line);
}

.wf-modelo-hero .wf-modelo-fase:first-child {
    padding-left: 0;
    border-left: 0;
}

.wf-modelo-hero .wf-modelo-fseta {
    display: none;
    /* a divisoria ja separa; a seta viraria ruido */
}

/* Na coluna larga do destaque o recorte QUEBRA em vez de truncar: "imagem/
   video/carrossel/storie/..." cortado no meio nao diz mais do que nao dizer. */
.wf-modelo-hero .wf-modelo-rec {
    white-space: normal;
    overflow: visible;
}

.wf-modelo-nums {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 12px;
    font-size: 11.5px;
    color: var(--wf-text-2);
    margin-bottom: 11px;
}

.wf-modelo-nums b {
    color: var(--color-text-01);
    font-weight: 600;
}

.wf-modelo-nums .rec b {
    color: var(--ac-editor);
}

.wf-modelo-nums .cli b {
    color: var(--ac-cliente);
}

.wf-modelo-cargos {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    padding-top: 10px;
    border-top: 1px dashed var(--wf-line);
    margin-bottom: 10px;
}

.wf-modelo-cargos-rot {
    font-size: 11px;
    color: var(--wf-text-2);
    margin-right: 2px;
}

.wf-modelo-cargo {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11.5px;
    color: var(--color-text-01);
}

.wf-modelo-cargo i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
}

/* `margin-top: auto` e o que alinha os botoes de cartoes vizinhos: o texto
   "para quem" tem altura variavel e ele absorve a diferenca. */
.wf-modelo-quem {
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--wf-text-2);
    font-style: italic;
    margin-bottom: 12px;
}

.wf-modelo-bt {
    margin-top: auto;
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--wf-line);
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 550;
    cursor: pointer;
    transition: background .18s ease, border-color .18s ease;
}

.wf-modelo-bt:hover {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* A lista do "o que ficou" no popup de balanco. Sem marcador: o item ja e uma
   linha nomeada, e a bolinha so competiria com o numero a direita. */
.cf-lista-simples {
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.cf-lista-simples li {
    font-size: 13px;
    color: var(--color-text-01);
}

.cf-lista-simples li span {
    color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
    font-size: 12px;
}

/* A regra responsiva de `.wf-modelos-grid` MUDOU PARA media.css, que e onde o
   kit manda breakpoint morar (ver a nota no topo daquele arquivo). Ela tambem
   trazia um 720px que nao existia em mais lugar nenhum - foi alinhada aos 900px
   que o resto do quadro ja usa. Era a UNICA @media com regra `wf-` neste
   arquivo. */

/* --- WORKFLOW: o CARTAO DO CARGO e as listas de caixa (Fase D) ----------- */
/* UM CARTAO POR CARGO. A lista de borda unica punha o risco ENTRE o cargo e o
   resumo dele, e nenhum entre esse resumo e o cargo seguinte: cada faixa que o
   olho separava era o fim de um cargo com o comeco do proximo. */
#wf-host .wf-cargo-lst {
    display: flex;
    flex-wrap: wrap;
    /* Coluna mais larga que linha: a 612px de cartao, 10px entre as duas
       colunas deixa o par lendo como um bloco so. */
    gap: 10px 14px;
    /* A LISTA E O CONTAINER da consulta de duas colunas logo abaixo. */
    container-type: inline-size;
}

#wf-host .wf-cargo {
    flex: 0 0 100%;
    min-width: 0;
    /* A base de flex e content-box: sem isto os 2px de borda saem POR FORA dos
       100% e o cartao estoura a lista por dois pixels. */
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--wf-line);
    border-radius: 14px;
    overflow: hidden;
    transition: border-color .12s, box-shadow .12s;
}

/* DUAS COLUNAS QUANDO CABE. Sozinho o cartao chega a 1238px no popup: nome,
   selos e acoes encostam nos extremos e o meio fica vazio. A 900px de lista
   cada coluna fica com 443px, que ainda comporta a linha inteira sem quebrar;
   abaixo disso volta a uma coluna.

   CONTAINER QUERY e nao @media, pela mesma razao do `.pl-card` mais acima:
   quem decide o arranjo e a largura da LISTA, e ela nao acompanha a janela -
   o popup trava em 1560px e a coluna de abas come 236px fixos, entao de 1560
   para cima a janela cresce e a lista nao. */
@container (min-width: 900px) {
    #wf-host .wf-cargo {
        flex-basis: calc(50% - 7px);
    }
}

#wf-host .wf-cargo:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 20%, transparent);
    box-shadow: var(--wf-sombra);
}

#wf-host .wf-cargo:hover .wf-acoes {
    opacity: 1;
}

#wf-host .wf-cargo-topo {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
}

/* A cor do cargo com tamanho de ancora, no lugar do ponto de 10px. O par
   tinta/fundo vem inline de statusPaleta; aqui so a forma. */
#wf-host .wf-cargo-av {
    flex: 0 0 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
}

#wf-host .wf-cargo-id {
    flex: 1;
    min-width: 0;
}

#wf-host .wf-cargo-nome {
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#wf-host .wf-cargo-tags {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-shrink: 0;
}

/* O CORPO: as duas perguntas que definem o cargo, cada uma um botao. */
#wf-host .wf-cargo-corpo {
    /* Cresce ate o fim do cartao: os dois da mesma linha empatam altura e sem
       isto a faixa tingida pararia no meio do mais baixo. */
    flex: 1;
    border-top: 1px solid var(--wf-line);
    background: var(--wf-col-bg);
}

#wf-host .wf-cr {
    width: 100%;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 8px 12px;
    border: 0;
    background: transparent;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .12s;
}

#wf-host .wf-cr+.wf-cr {
    border-top: 1px solid var(--wf-line);
}

#wf-host .wf-cr:hover {
    background: var(--wf-hover);
}

#wf-host .wf-cr:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: -2px;
}

#wf-host .wf-cr-rot {
    flex: 0 0 60px;
    color: var(--wf-text-2);
    text-transform: uppercase;
    font-size: 10.5px;
    letter-spacing: 0.05em;
    line-height: 22px;
}

/* ATENCAO: era `var(--wf-text-1)`, var que nunca foi declarada - a declaracao
   inteira caia e o valor ficava do mesmo tom do rotulo ao lado. */
#wf-host .wf-cr-v {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    color: var(--color-text-01);
    font-size: 12px;
}

#wf-host .wf-cr-v.vazio {
    color: var(--wf-text-2);
    font-style: italic;
    line-height: 22px;
}

/* O lapis acende no hover da linha: parado seria mais um botao permanente. */
#wf-host .wf-cr-lapis {
    flex: 0 0 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--wf-text-2);
    opacity: 0;
    transition: opacity .12s;
}

#wf-host .wf-cr-lapis svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
}

#wf-host .wf-cr:hover .wf-cr-lapis,
#wf-host .wf-cr:focus-visible .wf-cr-lapis {
    opacity: 1;
}

/* PASTILHA de status e de pessoa. A cor do status vem inline de statusPaleta,
   nunca do par CorFundo/CorTexto cru. */
#wf-host .wf-chip {
    gap: 5px;
    max-width: 230px;
    height: 22px;
    padding: 0 8px;
    border-radius: 6px;
    font-size: 11.5px;
    font-weight: 500;
}

#wf-host .wf-chip-nome {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#wf-host .wf-chip-pes {
    padding-left: 2px;
    background: var(--color-bg);
    border: 1px solid var(--wf-line);
}

#wf-host .wf-chip-pes .thumb-user {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin: 0;
    font-size: 8px;
    box-shadow: none;
}

#wf-host .wf-chip-mais {
    border: 1px dashed var(--wf-line);
    color: var(--wf-text-2);
}

.wf-cx-lst {
    max-height: 320px;
    overflow-y: auto;
    border: 1px solid var(--wsf-linha);
    border-radius: 6px;
}

.wf-cx {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 11px;
    cursor: pointer;
}

.wf-cx+.wf-cx {
    border-top: 1px solid var(--wsf-linha);
}

.wf-cx input {
    margin: 0;
    flex: 0 0 auto;
}

.wf-cx-t {
    flex: 1;
    font-size: 13px;
}

.wf-cx-s {
    font-size: 11px;
    color: var(--wsf-t3);
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

/* --- DIRECIONAMENTOS: o seletor de tipo na barra do item (Fase H) -------- */
.item-objetivo .obj-tipo {
    border: 1px solid var(--color-border-01, #00000022);
    background: transparent;
    color: inherit;
    border-radius: 5px;
    font-size: 11px;
    padding: 2px 6px;
    max-width: 140px;
    cursor: pointer;
}

.item-objetivo .obj-tipo:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 1px;
}

/* =========================================================================
   PILHAS NO QUADRO DE CONTEUDO - kit .cq-*
   -------------------------------------------------------------------------
   Dentro de um status, conteudos da MESMA marca com os MESMOS responsaveis
   viram um cartao so com folhas atras, e abrem revelando os demais - igual a
   central de notificacoes do iPhone.

   Estrutura:
     .cq-grupo.cq-multi
        .cq-frente          <- abraca SO o cartao da frente (referencia da pilha)
           .cq-pilha > i    <- as folhas de tras
           .conteudo-item   <- o cartao real, que continua arrastavel
           .cq-n            <- o contador, ancorado no canto do cartao
        .cq-itens           <- os demais (altura animada pelo JS)
        .cq-toggle          <- "ver os outros N" / "juntar"

   ! O CARTAO DO QUADRO E TRANSPARENTE (`background: none !important` em
   .type-quadro .conteudo-item). As folhas por isso sao CONTORNO, sem
   preenchimento - folha com fundo branco viraria um retangulo claro por cima
   da coluna tingida, que e exatamente o oposto de "tem cartoes atras".

   ! As folhas sao absolutas e vivem em z-index negativo dentro de .cq-frente.
   Com z-index positivo elas passam na frente e comem o clique do cartao.

   Monocromatico: nada de cor de acento. A pilha se explica pela forma.
   ========================================================================= */
.cq-grupo {
    --cq-ease: cubic-bezier(.2, .9, .3, 1);
    --cq-linha: #00000017;
    --cq-linha-forte: #00000030;
    position: relative;
    /* Espaco para as folhas assomarem embaixo do cartao. Some quando aberto,
       porque ai quem ocupa o lugar sao os itens de verdade.
       Tem de caber a aba mais baixa (5px de deslocamento + 9px de altura),
       senao ela encosta no proximo cartao da coluna. */
    padding-bottom: 18px;
    transition: padding-bottom .3s var(--cq-ease);
}

.cq-grupo.aberto {
    padding-bottom: 0;
}

/* Respiro DEPOIS da pilha. Sem ele o proximo cartao da coluna encosta no
   rodape e parece fazer parte do grupo - foi o que aconteceu na primeira
   renderizacao: um cartao solto parecia ser a pilha de baixo. */
.cq-grupo+.conteudo-item,
.cq-grupo+.cq-grupo,
.conteudo-item+.cq-grupo {
    margin-top: 9px;
}

.type-quadro .cq-grupo+.conteudo-item {
    margin-top: 9px !important;
}

.cq-frente {
    position: relative;
    z-index: 1;
}

/* O `.conteudo-item` do quadro traz `margin-top: 5px`. Com o cabecalho logo
   acima, esse respiro vira um degrau entre o numero e o cartao que ele conta -
   e a pilha deixa de ler como uma coisa so. */
.cq-frente>.conteudo-item {
    margin-top: 3px !important;
}

.cq-pilha {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: -1;
}

/* ! A FOLHA COMECA ONDE O CARTAO ACABA (`top: 100%`), e isso nao e detalhe.
   O cartao do quadro e TRANSPARENTE (`background: none !important`): qualquer
   coisa desenhada atras dele aparece ATRAVESSANDO o texto. A primeira versao
   punha a folha atras do cartao inteiro e o resultado foi uma borda cortando a
   ultima linha do titulo.

   Entao a folha nao e um cartao atras - e uma ABA embaixo: sem borda de cima,
   arredondada so nos cantos de baixo, como se fosse o rodape do proximo. */
.cq-pilha i {
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 9px;
    display: block;
    border: 1px solid var(--cq-linha);
    border-top: none;
    border-radius: 0 0 9px 9px;
    background: color-mix(in srgb, currentColor 3.5%, transparent);
    transform-origin: 50% 0;
    transition: transform .32s var(--cq-ease), opacity .32s var(--cq-ease);
}

/* Duas abas: a de tras aparece por baixo da primeira, mais estreita e mais
   apagada. A profundidade vem do recuo lateral somado ao deslocamento. */
.cq-pilha i:nth-child(1) {
    transform: scaleX(.955);
    opacity: .8;
}

.cq-pilha i:nth-child(2) {
    transform: translateY(5px) scaleX(.9);
    opacity: .5;
}

/* Hover: a pilha ABRE UM POUCO. E o sinal de que ha mais coisa ali - sem isso
   a pessoa precisa ler o rodape para descobrir que o cartao e uma pilha. */
.cq-grupo:not(.aberto):hover .cq-pilha i:nth-child(1) {
    transform: translateY(2px) scaleX(.955);
    opacity: .95;
}

.cq-grupo:not(.aberto):hover .cq-pilha i:nth-child(2) {
    transform: translateY(9px) scaleX(.9);
    opacity: .7;
}

.cq-grupo:not(.aberto):hover {
    padding-bottom: 22px;
}

/* Aberto: as folhas somem - quem representa os itens agora sao os proprios. */
.cq-grupo.aberto .cq-pilha i {
    transform: translateY(0) scaleX(1);
    opacity: 0;
}

/* O cabecalho da pilha ("N conteudos juntos") FOI REMOVIDO: ele dizia em
   palavras o que as abas ja dizem pela forma e repetia o numero que o rodape
   ja conta. Eram tres avisos para o mesmo fato, e uma linha de altura a mais
   em cada grupo. */





.cq-grupo .cq-itens {
    height: 0;
    overflow: hidden;
    transition: height .3s var(--cq-ease);
}

/* --- O RODAPE -----------------------------------------------------------
   Discreto e alinhado a esquerda, na coluna do texto do cartao. Centralizado
   e em largura cheia ele competia com o proprio cartao. */
.cq-grupo .cq-toggle {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin: 8px 0 2px 0;
    /* Mesma coluna do cabecalho: numero em cima, chevron embaixo, na mesma
       vertical da borda esquerda do cartao. */
    margin-left: 2px;
    padding: 3px 9px 3px 7px;
    font-size: 11.5px;
    line-height: 1.4;
    opacity: .6;
    cursor: pointer;
    border-radius: 20px;
    border: 1px solid transparent;
    user-select: none;
    transition: opacity .2s, border-color .2s, background .2s;
}

/* Chevron desenhado com borda: dois lados de um quadrado girado. Evita um SVG
   a mais no HTML de cada pilha, e sao dezenas por tela.
   ! O quadrado girado 45deg fica MAIS ALTO do que largo na caixa dele. Sem o
   `margin-top` negativo ele empurra a linha de base e o texto sobe - foi o que
   deixou o "V" flutuando fora do lugar na primeira versao. */
.cq-grupo .cq-toggle::before {
    content: '';
    width: 6px;
    height: 6px;
    flex: 0 0 6px;
    margin-top: -3px;
    border-right: 1.4px solid currentColor;
    border-bottom: 1.4px solid currentColor;
    transform: rotate(45deg);
    transition: transform .3s var(--cq-ease);
}

.cq-grupo.aberto .cq-toggle::before {
    transform: rotate(-135deg);
    margin-top: 2px;
}

.cq-grupo .cq-toggle:hover {
    opacity: 1;
    border-color: var(--cq-linha);
    background: #00000008;
}

.cq-grupo .cq-toggle:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 2px;
    opacity: 1;
}

.cq-grupo .cq-menos {
    display: none;
}

.cq-grupo.aberto .cq-qtd {
    display: none;
}

.cq-grupo.aberto .cq-menos {
    display: inline;
}

/* =========================================================================
   WORKFLOW - O FLUXOGRAMA DOS STATUS   (kit .wf-fx-*)
   -------------------------------------------------------------------------
   Um quadro de FASES: cada segmento e uma coluna, e a sequencia das colunas,
   da esquerda para a direita, e o caminho que o conteudo percorre. Dentro da
   coluna os status ficam empilhados e ligados por um conector com seta.

   ! O EIXO HORIZONTAL E DO SEGMENTO, nunca do status. Sao 18 status e 5
   segmentos: enfileirar os 18 obrigaria a truncar o nome de cada um - e o
   nome e a informacao. Cinco colunas cabem na tela com o nome inteiro, o
   cargo e os selos de cada no. Isso tambem e o que separa este desenho da
   trilha vertical que ele substituiu: nao e a vertical que estava errada, e
   que o segmento nunca tinha ganhado um eixo proprio.

   ! MONOCROMATICO. A unica cor da tela e a bolinha do proprio status e o
   ponto do cargo - dado do usuario, nunca acento da interface. O estado ativo
   (pilula do filtro, interruptor ligado) e a TINTA, --color-btn-bg-01.

   ! NADA DE LITERAL DE COR. As vars saem de --color-text-01 / --color-bg,
   que o dark.css inverte, entao o kit vira junto com o tema sem uma linha la.
   Foi um literal que produziu o botao branco sobre fundo branco no escuro na
   primeira versao desta tela.

   ! AS CLASSES DO ARRASTAR SAO AS ANTIGAS: coluna `.wf-seg`, pilha
   `.wf-status-lst`, cartao `.wf-status`. O setupDynamicDrag le esses tres, e
   renomear qualquer um deles quebra o arrastar sem erro nenhum no console.
   ========================================================================= */
#wf-host {
    /* Superficie do cartao contra a faixa da coluna. No claro a coluna e um
       veu de preto sobre o branco; no escuro, o mesmo veu de branco sobre o
       preto - a relacao entre os dois se inverte sozinha. */
    --wf-col-bg: color-mix(in srgb, var(--color-text-01) 4%, transparent);
    --wf-card: var(--color-bg);
    --wf-fio: color-mix(in srgb, var(--color-text-01) 20%, transparent);
    --wf-sombra: 0 1px 2px color-mix(in srgb, var(--color-text-01) 6%, transparent);
    --wf-sombra-alta: 0 6px 18px -8px color-mix(in srgb, var(--color-text-01) 34%, transparent);
    /* O UNICO tom nao-monocromatico da tela, e so onde ha o que consertar.
       ! Ele e MISTURADO com a cor do texto de proposito: #d92d20 puro tem
       3,4:1 contra o preto do tema escuro - reprova em texto pequeno, e o
       aviso que menos pode ser dificil de ler e justamente o de configuracao
       quebrada. Misturado, ele escurece no claro e clareia no escuro sozinho,
       sem uma linha no dark.css. */
    --wf-alerta: color-mix(in srgb, #d92d20 76%, var(--color-text-01));
    /* A MESMA cor da faixa da coluna, so que OPACA. A --wf-col-bg e um veu
       (color-mix com transparent), e um degrade feito com ela deixaria o nome
       da fase aparecer por baixo da barra de acoes em vez de some-lo. */
    --wf-col-solido: color-mix(in srgb, var(--color-text-01) 4%, var(--color-bg));
}

/* --- a barra: filtro de um lado, leitura do quadro do outro -------------- */
#wf-host .wf-fx-barra {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px 18px;
    margin-bottom: 14px;
}

#wf-host .wf-fx-barra .wf-filtro {
    margin-bottom: 0;
}

/* ! A FILA DE CANAIS OCUPA A LINHA INTEIRA, e isso e `flex-basis: 100%` e nao
   um `<br>`. `.wf-fx-barra` e um flex com `space-between`, entao um terceiro
   item entrava na MESMA linha e ia parar na ponta direita, colado no resumo -
   lido como um filtro irmao do de tipos, quando ele DEPENDE dele. Forcando a
   quebra, o resumo volta para o lado da fila de tipos e a cascata fica legivel. */
#wf-host .wf-fx-barra .wf-filtro-canal {
    flex: 1 0 100%;
    order: 3;
}

#wf-host .wf-fx-resumo {
    display: flex;
    align-items: center;
    order: 2;
    gap: 14px;
    font-size: 12px;
    color: var(--wf-text-2);
    white-space: nowrap;
}

#wf-host .wf-fx-rn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

#wf-host .wf-fx-rn b {
    font-weight: 600;
    color: var(--color-text-01);
}

/* O unico vermelho da tela, e so quando ha o que consertar: status de cliente
   sem os dois destinos e um beco sem saida para quem clica no link. */
#wf-host .wf-fx-rn.alerta,
#wf-host .wf-fx-rn.alerta b {
    color: var(--wf-alerta);
}

#wf-host .wf-fx-rn svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
}

/* --- o quadro ------------------------------------------------------------
   Rola na horizontal quando as fases nao cabem, e nunca empurra a tela: e o
   proprio quadro que ganha a barra, nao o #htmlSessaoAtual. */
/* O INVOLUCRO existe para as bordas de fade: o board e quem rola, entao um
   pseudo-elemento dele viajaria com o conteudo em vez de ficar na borda. */
#wf-host .wf-fx-board-wrap {
    position: relative;
}

#wf-host .wf-fx-board-wrap::before,
#wf-host .wf-fx-board-wrap::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 14px;
    /* nao cobre a barra de rolagem */
    width: 68px;
    pointer-events: none;
    /* o fade nao pode roubar clique do cartao embaixo */
    opacity: 0;
    transition: opacity .18s;
    z-index: 2;
}

/* ! COR OPACA, `--color-bg` e nao `--color-bg-01`. A mesma regra que obrigou a
   existir `--wf-col-solido` logo acima: `--color-bg-01` e um VEU (rgba), e um
   degrade partindo dele nao esconde nada - as colunas apareceriam atras do fade
   inteiro em vez de sumirem na borda. */
#wf-host .wf-fx-board-wrap::before {
    left: 0;
    background: linear-gradient(to right, var(--color-bg) 18%, transparent);
}

#wf-host .wf-fx-board-wrap::after {
    right: 0;
    background: linear-gradient(to left, var(--color-bg) 18%, transparent);
}

#wf-host .wf-fx-board-wrap.tem-esq::before,
#wf-host .wf-fx-board-wrap.tem-dir::after {
    opacity: 1;
}

/* OS BOTOES DE ROLAGEM. Ficam POR CIMA do fade (z-index maior) e centrados na
   altura do quadro. Nascem escondidos: um botao de rolar num quadro que nao
   rola e um controle que nao faz nada, e a pessoa aprende a desconfiar dos
   outros. */
/* Centrado de novo - e agora esta certo. Enquanto o quadro tinha a altura da
   coluna mais alta (mil pixels era comum), `top: 50%` jogava o botao para o
   rodape e muitas vezes abaixo da dobra; a correcao da epoca foi ancorar em
   150px. Com o quadro limitado a altura da tela, o meio E o meio da vista. */
#wf-host .wf-fx-rolar {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 3;
    display: none;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    padding: 0;
    border: 1px solid var(--wf-fio);
    border-radius: 50%;
    background: var(--wf-col-solido);
    color: var(--color-text-01);
    cursor: pointer;
    box-shadow: var(--wf-sombra-alta);
    transition: background .14s, border-color .14s;
}

#wf-host .wf-fx-rolar svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

#wf-host .wf-fx-rolar:hover {
    background: var(--color-bg);
    border-color: var(--color-text-01);
}

#wf-host .wf-fx-rolar-esq {
    left: 6px;
}

#wf-host .wf-fx-rolar-dir {
    right: 6px;
}

#wf-host .wf-fx-board-wrap.tem-esq .wf-fx-rolar-esq,
#wf-host .wf-fx-board-wrap.tem-dir .wf-fx-rolar-dir {
    display: flex;
}

#wf-host .wf-fx-board {
    display: flex;
    align-items: stretch;
    gap: 0;
    overflow-x: auto;
    overflow-y: visible;
    padding: 2px 2px 14px;
    scrollbar-width: thin;
}

#wf-host .wf-fx-board::-webkit-scrollbar {
    height: 8px;
}

#wf-host .wf-fx-board::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--color-text-01) 22%, transparent);
    border-radius: 4px;
}

#wf-host .wf-fx-board::-webkit-scrollbar-thumb:hover {
    background: color-mix(in srgb, var(--color-text-01) 38%, transparent);
}

/* A seta ENTRE as colunas - o unico lugar em que o fluxo e desenhado na
   horizontal, e o que diz que as colunas sao uma sequencia e nao um menu. */
#wf-host .wf-fx-seta {
    flex: 0 0 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--wf-text-2);
    opacity: .5;
}

#wf-host .wf-fx-seta svg {
    width: 18px;
    height: 18px;
    fill: currentColor;
}

/* --- a coluna: uma fase -------------------------------------------------- */
/* ! 264px E O VALOR DE FORA DO POPUP, e hoje nao ha "fora do popup": a tela
   so e montada dentro de `.wcfg-embed`, onde o override mais abaixo neste
   arquivo troca para 230px. A regra fica como piso para um host futuro, mas
   quem mede a coluna na tela mede 230. */
#wf-host .wf-fx-col {
    flex: 0 0 264px;
    width: 264px;
    min-height: 300px;
    display: flex;
    flex-direction: column;
    background: var(--wf-col-bg);
    border: 1px solid transparent;
    border-radius: 14px;
    padding: 12px 11px;
}

/* A fase de FABRICA nao aceita edicao: contorno tracejado em vez de faixa
   cheia, para a diferenca ser visivel antes de a pessoa tentar mexer. */
#wf-host .wf-fx-col.fixo {
    background: transparent;
    border: 1px dashed var(--wf-line);
}

#wf-host .wf-fx-col-hdr {
    position: relative;
    margin-bottom: 12px;
}

#wf-host .wf-fx-col-linha {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    /* ! PISO DE ALTURA. A barra de acoes tem 24px e o cadeado da fase fixa
       tem 13px: sem o piso, o cabecalho da coluna travada ficava 4px mais
       baixo e a primeira linha de cartoes desalinhava entre as colunas - de
       relance parece um cartao fora do lugar, nao um cabecalho menor. */
    min-height: 24px;
}

/* O numero da fase. Monocromatico: e ordinal, nao categoria. */
#wf-host .wf-fx-num {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    color: var(--wf-text-2);
    background: color-mix(in srgb, var(--color-text-01) 8%, transparent);
}

#wf-host .wf-fx-col-nome {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -.005em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#wf-host .wf-fx-col-trava {
    flex: 0 0 auto;
    display: inline-flex;
    color: var(--wf-text-2);
    opacity: .6;
}

#wf-host .wf-fx-col-trava svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
}

#wf-host .wf-fx-col-sub {
    display: flex;
    align-items: baseline;
    gap: 7px;
    margin: 3px 0 0 28px;
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--wf-text-2);
}

#wf-host .wf-fx-col-n::before {
    content: '·';
    margin-right: 7px;
}

/* ! SEM CATEGORIA, SEM SEPARADOR. `CAT[...] || ''` (footer.php ~30927) emite o
   span VAZIO quando `Categoria` e 0 - e o proprio JS admite o caso ali ao lado,
   no `data-cat`. O `.` e o `gap` do flex continuavam, e o subtitulo abria com
   ". 3 status": um ponto flutuando sozinho antes do numero. */
#wf-host .wf-fx-col-cat:empty {
    display: none;
}

#wf-host .wf-fx-col-cat:empty+.wf-fx-col-n::before {
    content: none;
}

/* --- botao de icone: a acao que so aparece quando serve ------------------- */
#wf-host .wf-ib {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    padding: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--wf-text-2);
    cursor: pointer;
    transition: background .12s, color .12s;
}

#wf-host .wf-ib svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
    pointer-events: none;
}

#wf-host .wf-ib:hover {
    background: color-mix(in srgb, var(--color-text-01) 9%, transparent);
    color: var(--color-text-01);
}

/* Destrutiva so no hover, mesma regra do resto da casa: vermelho permanente
   em cinco colunas de cartoes vira ruido e a tela e monocromatica parada. */
#wf-host .wf-ib-perigo:hover {
    background: color-mix(in srgb, var(--wf-alerta) 13%, transparent);
    color: var(--wf-alerta);
}

#wf-host .wf-ib:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 1px;
}

/* ! ABSOLUTA, e nao um item de flex com `margin-left: auto`. Como item ela
   reservava ~100px de largura o tempo todo, mesmo invisivel - e "Briefing com
   o cliente" virava "Briefing com o cli..." numa coluna que tinha espaco de
   sobra. Fora do fluxo, o nome usa a coluna inteira e so e coberto no hover,
   com o mesmo degrade dos cartoes. */
#wf-host .wf-fx-col-acoes {
    position: absolute;
    top: 0;
    right: 0;
    padding-left: 14px;
    border-radius: 8px;
    background: linear-gradient(to right, transparent, var(--wf-col-solido) 14px);
    opacity: 0;
}

#wf-host .wf-fx-col:hover .wf-fx-col-acoes,
#wf-host .wf-fx-col:focus-within .wf-fx-col-acoes {
    opacity: 1;
}

/* --- a pilha de status ---------------------------------------------------
   `flex: 1` de proposito: a area vazia embaixo do ultimo cartao continua
   sendo alvo de drop, e e ela que faz uma coluna curta aceitar um status
   arrastado sem a pessoa ter de mirar no ultimo pixel da lista. */
#wf-host .wf-status-lst {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 0;
}

#wf-host .wf-status-lst.over {
    border-radius: 10px;
    background: color-mix(in srgb, var(--color-text-01) 3%, transparent);
}

/* --- o no do fluxograma --------------------------------------------------- */
#wf-host .wf-fx-no {
    position: relative;
    background: var(--wf-card);
    border: 1px solid var(--wf-line);
    border-radius: 12px;
    padding: 9px 10px 10px;
    box-shadow: var(--wf-sombra);
    cursor: pointer;
    transition: transform .14s, box-shadow .14s, border-color .14s, opacity .18s;
}

#wf-host .wf-fx-no:hover {
    transform: translateY(-2px);
    box-shadow: var(--wf-sombra-alta);
    border-color: var(--wf-fio);
}

#wf-host .wf-status[draggable="true"] {
    cursor: grab;
}

#wf-host .wf-fx-no.dragging {
    opacity: .4;
}

/* O FANTASMA do arrastar. E um CLONE do cartao (o setupDynamicDrag clona),
   entao sem esta regra ele apareceria como um segundo cartao identico e a
   pessoa nao saberia qual dos dois e o de verdade. */
#wf-host .wf-fx-no.placeholder {
    background: transparent;
    border: 1px dashed var(--wf-fio);
    box-shadow: none;
    opacity: .5;
}

#wf-host .wf-fx-no.placeholder * {
    visibility: hidden;
}

/* O CONECTOR. Linha embaixo de cada no (`::after`) e a ponta da seta em cima
   do proximo (`::before`) - os dois presos ao no, nunca a um elemento no meio
   da lista: assim eles acompanham o cartao ao ser arrastado, e `:first-child`
   / `:last-child` cortam as pontas soltas sem nenhum numero magico. */
#wf-host .wf-fx-no::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 100%;
    width: 1px;
    height: 20px;
    background: var(--wf-fio);
}

#wf-host .wf-fx-no::before {
    content: '';
    position: absolute;
    left: 50%;
    top: -9px;
    width: 6px;
    height: 6px;
    margin-left: -3px;
    border-right: 1px solid var(--wf-fio);
    border-bottom: 1px solid var(--wf-fio);
    transform: rotate(45deg);
}

#wf-host .wf-status-lst>.wf-fx-no:last-child::after,
#wf-host .wf-status-lst>.wf-fx-no:first-child::before {
    display: none;
}

#wf-host .wf-fx-no.fixo {
    border-style: dashed;
    box-shadow: none;
    cursor: default;
}

#wf-host .wf-fx-no.fixo:hover {
    transform: none;
    box-shadow: none;
}

/* Config incompleta: contorno vermelho fraco, e so nesse caso. */
#wf-host .wf-fx-no.alerta {
    border-color: color-mix(in srgb, var(--wf-alerta) 42%, transparent);
}

/* FORA DO CAMINHO do tipo escolhido: apagado e com o conector tracejado. A
   informacao continua legivel de proposito - o status sai do caminho, nao da
   tela, e ele precisa continuar clicavel para voltar. */
/* ! FORA DO CAMINHO NAO PODE SER `opacity` NO CARTAO. `opacity` cria um
   grupo de composicao: o filho NUNCA fica mais opaco que o pai, entao o
   proprio interruptor herdava os 42% e virava ilegivel - justamente o unico
   controle que a pessoa precisa acertar num cartao desligado. Era esse o
   motivo de "reativar" nao ficar claro, e nao o tamanho do botao.

   Aqui quem recua e cada PARTE (o texto, o ponto, os ramos), e o botao de
   reativar fica de fora do recuo, em forca total. */
#wf-host .wf-fx-no.fora {
    background: transparent;
    border-style: dashed;
    box-shadow: none;
}

#wf-host .wf-fx-no.fora:hover {
    transform: none;
    box-shadow: none;
}

#wf-host .wf-fx-no.fora .wf-fx-nome,
#wf-host .wf-fx-no.fora .wf-fx-desc,
#wf-host .wf-fx-no.fora .wf-fx-ramos,
#wf-host .wf-fx-no.fora .wf-chip {
    opacity: .38;
}

#wf-host .wf-fx-no.fora .wf-fx-bola {
    opacity: .28;
}

#wf-host .wf-fx-no.fora::after {
    background: none;
    border-left: 1px dashed var(--wf-fio);
    width: 0;
}

#wf-host .wf-fx-no-topo {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
}

#wf-host .wf-fx-bola {
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

#wf-host .wf-fx-nome {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 13px;
    font-weight: 500;
    line-height: 1.35;
}

#wf-host .wf-fx-desc {
    margin: 5px 0 0 30px;
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--wf-text-2);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* AS ACOES FLUTUAM sobre o canto do cartao em vez de ocupar uma coluna fixa:
   numa coluna de 264px, tres botoes permanentes por no comeriam o nome de
   todos eles. O fundo e o do proprio cartao para elas cobrirem o rabo do nome
   sem borrar a leitura. */
#wf-host .wf-fx-acoes {
    position: absolute;
    top: 4px;
    right: 4px;
    opacity: 0;
    padding-left: 12px;
    border-radius: 8px;
    background: linear-gradient(to right, transparent, var(--wf-card) 12px);
    transition: opacity .14s;
}

#wf-host .wf-fx-no:hover .wf-fx-acoes,
#wf-host .wf-fx-no:focus-within .wf-fx-acoes {
    opacity: 1;
}

/* --- selos do no ---------------------------------------------------------- */
#wf-host .wf-fx-chips {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
    margin: 7px 0 0 30px;
}

#wf-host .wf-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    padding: 1px 7px;
    border: 1px solid var(--wf-line);
    border-radius: 5px;
    font-size: 10.5px;
    line-height: 1.6;
    color: var(--wf-text-2);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#wf-host .wf-chip svg {
    width: 10px;
    height: 10px;
    fill: currentColor;
    flex: 0 0 10px;
}

#wf-host .wf-chip-dot {
    flex: 0 0 6px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

#wf-host .wf-chip-cliente {
    background: color-mix(in srgb, var(--color-text-01) 8%, transparent);
    color: var(--color-text-01);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-size: 9.5px;
}

/* Falta de configuracao: tracejado, nunca preenchido. Ele diz "aqui nao tem
   nada", e um selo cheio diria o contrario. */
/* "sem responsavel" e um AVISO e precisa ser lido; a .52 ele sumia no fundo do
   cartao escuro. Tracejado ja diz "falta preencher" sem precisar apagar o
   texto - e o que separa este chip de um chip normal. */
#wf-host .wf-chip-falta {
    border-style: dashed;
    opacity: .78;
}

/* A fileira do interruptor: separada dos chips por uma divisoria fina, para o
   controle nao ser confundido com mais um rotulo de leitura. */
#wf-host .wf-fx-sw-linha {
    margin-top: 9px;
    padding-top: 8px;
    border-top: 1px solid color-mix(in srgb, var(--color-text-01) 7%, transparent);
}

#wf-host .wf-chip-travado {
    border-style: dashed;
}

/* O ALVO E A PASTILHA MAIS O ROTULO. So a pastilha dava 24x14px de area
   clicavel; com o rotulo dentro do botao o alvo passa dos 40px de largura
   sem ocupar um pixel a mais na tela. */
#wf-host .wf-sw-bt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 1px 8px 1px 5px;
    border: 1px solid transparent;
    border-radius: 20px;
    background: transparent;
    color: var(--wf-text-2);
    font: inherit;
    font-size: 10.5px;
    line-height: 1.6;
    cursor: pointer;
    white-space: nowrap;
    transition: background .14s, border-color .14s, color .14s;
}

#wf-host .wf-sw-bt:hover {
    background: color-mix(in srgb, var(--color-text-01) 7%, transparent);
    color: var(--color-text-01);
}

#wf-host .wf-sw-bt:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 2px;
}

/* DESLIGADO o botao e a coisa mais nitida do cartao: contorno proprio, texto
   em forca total e um verbo. Ele e a saida de um estado, e o cartao inteiro
   ao redor esta recuado de proposito para ele sobrar. */
#wf-host .wf-sw-bt.off {
    border-color: var(--wf-fio);
    color: var(--color-text-01);
    font-weight: 500;
}

#wf-host .wf-sw-bt.off:hover {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* A pastilha virou um <span> dentro do botao - o clique e do botao. */
#wf-host .wf-sw-bt .wf-sw {
    pointer-events: none;
}

#wf-host .wf-sw-bt.off:hover .wf-sw {
    border-color: var(--color-btn-text-01);
}

#wf-host .wf-sw-bt.off:hover .wf-sw i {
    opacity: .75;
}

/* --- os ramos: a unica bifurcacao de verdade ----------------------------- */
#wf-host .wf-fx-ramos {
    margin: 8px 0 0 30px;
    padding-left: 9px;
    border-left: 1px solid var(--wf-line);
    display: flex;
    flex-direction: column;
    gap: 2px;
}

#wf-host .wf-fx-ramo {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    min-width: 0;
}

#wf-host .wf-fx-ramo svg {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
    fill: var(--wf-text-2);
}

#wf-host .wf-fx-ramo-rot {
    flex: 0 0 40px;
    color: var(--wf-text-2);
    text-transform: uppercase;
    font-size: 9.5px;
    letter-spacing: .05em;
}

#wf-host .wf-fx-ramo-alvo {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#wf-host .wf-fx-ramo.vazio .wf-fx-ramo-alvo {
    color: var(--wf-alerta);
    font-style: italic;
}

#wf-host .wf-fx-aviso {
    display: flex;
    align-items: flex-start;
    gap: 5px;
    margin-top: 8px;
    padding-top: 7px;
    border-top: 1px dashed var(--wf-line);
    font-size: 10.5px;
    line-height: 1.4;
    color: var(--wf-alerta);
}

#wf-host .wf-fx-aviso svg {
    width: 12px;
    height: 12px;
    flex: 0 0 12px;
    fill: currentColor;
    margin-top: 1px;
}

/* --- a alca de arrastar --------------------------------------------------- */
#wf-host .wf-mao {
    flex: 0 0 12px;
    width: 12px;
    opacity: 0;
    cursor: grab;
    transition: opacity .15s;
}

#wf-host .wf-fx-no:hover .wf-mao {
    opacity: .4;
}

#wf-host .wf-mao svg {
    width: 12px;
    height: 12px;
    display: block;
    fill: currentColor;
}

#wf-host .wf-fx-no.fixo .wf-mao {
    cursor: default;
}

/* --- rodape da coluna e a coluna fantasma -------------------------------- */
#wf-host .wf-fx-add {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    margin-top: 16px;
    padding: 8px;
    border: 1px dashed var(--wf-line);
    border-radius: 10px;
    font-size: 12px;
    color: var(--wf-text-2);
    cursor: pointer;
    transition: background .14s, border-color .14s, color .14s;
}

#wf-host .wf-fx-add svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

#wf-host .wf-fx-add:hover {
    border-color: var(--wf-fio);
    background: color-mix(in srgb, var(--color-text-01) 4%, transparent);
    color: var(--color-text-01);
}

#wf-host .wf-fx-solto {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 18px 10px;
    border: 1px dashed var(--wf-line);
    border-radius: 10px;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--wf-text-2);
}

#wf-host .wf-fx-col-nova {
    align-items: center;
    justify-content: center;
    gap: 7px;
    flex: 0 0 176px;
    width: 176px;
    margin-left: 26px;
    background: transparent;
    border: 1px dashed var(--wf-line);
    color: var(--wf-text-2);
    font-size: 12.5px;
    cursor: pointer;
    transition: background .14s, border-color .14s, color .14s;
}

#wf-host .wf-fx-col-nova svg {
    width: 17px;
    height: 17px;
    fill: currentColor;
}

#wf-host .wf-fx-col-nova:hover {
    border-color: var(--wf-fio);
    background: color-mix(in srgb, var(--color-text-01) 3%, transparent);
    color: var(--color-text-01);
}

/* =========================================================================
   WORKFLOW - O FILTRO DE CAMINHO e o INTERRUPTOR do no
   -------------------------------------------------------------------------
   "Todos" nao e um tipo: e a AUSENCIA de filtro. Com ele ativo nenhum
   interruptor aparece no quadro, porque nao existe caminho especifico para
   ligar ou desligar - e um interruptor que nao decide nada e pior que nenhum.
   ========================================================================= */
#wf-host .wf-filtro {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

#wf-host .wf-filtro-rot {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--wf-text-2);
    margin-right: 2px;
}

#wf-host .wf-pill {
    border: 1px solid var(--wf-line);
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 12px;
    padding: 4px 12px;
    border-radius: 20px;
    cursor: pointer;
    transition: background .18s, border-color .18s, color .18s;
}

#wf-host .wf-pill:hover {
    border-color: var(--wf-text-2);
}

/* ============================================================================
   DUAS PASTILHAS, PORQUE SAO DUAS COISAS.
   Isto era um estado so (`.atv`, preto solido) e por isso "Imagem" no filtro e
   "dias uteis" na contagem de prazo tinham exatamente a mesma cara. Nao sao a
   mesma coisa:

     .sel  SELECIONADO PARA VER - recorta a vista e nao grava nada. Sair dele
           nao desfaz coisa alguma. Peso MEDIO: fundo de tinta fraca e contorno
           definido. Le como "e por aqui que voce esta olhando".

     .lig  LIGADO - configuracao do workspace, gravada no banco, valendo para
           todo mundo. Peso ALTO: preenchimento solido, o unico da tela. Le como
           "isto esta ativo de verdade".

   Pintar os dois iguais ensinava que o quadro inteiro era uma vista, e a pessoa
   trocava a contagem de prazo do workspace achando que estava filtrando.
   ============================================================================ */
#wf-host .wf-pill.sel {
    background: color-mix(in srgb, var(--color-text-01) 9%, transparent);
    border-color: color-mix(in srgb, var(--color-text-01) 34%, transparent);
    color: var(--color-text-01);
    font-weight: 500;
}

#wf-host .wf-pill.sel:hover {
    background: color-mix(in srgb, var(--color-text-01) 14%, transparent);
    border-color: color-mix(in srgb, var(--color-text-01) 48%, transparent);
}

/* Monocromatico: o ligado e a TINTA, nunca cor de acento. */
#wf-host .wf-pill.lig {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-weight: 500;
}

#wf-host .wf-pill.lig:hover {
    border-color: var(--color-btn-bg-01);
}

/* `.atv` continua de pe para os outros usos de `.wf-pill` fora desta barra. */
#wf-host .wf-pill.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* ---------------------------------------------------------------------------
   SEGUNDO EIXO DO FILTRO - o canal.
   Fila propria, abaixo da de tipos, e so aparece com um tipo escolhido. O recuo
   e a pilula menor dizem que ela DEPENDE da de cima: sem essa hierarquia visual
   as duas filas leem como filtros irmaos, e a pessoa tenta combinar canal com
   "Todos" os tipos - que nao e um par.
   --------------------------------------------------------------------------- */
#wf-host .wf-filtro-canal {
    margin-top: 2px;
    padding-left: 13px;
    border-left: 2px solid var(--wf-line);
}

#wf-host .wf-pill-canal {
    font-size: 11.5px;
    padding: 3px 10px;
}

#wf-host .wf-filtro-vazio {
    font-size: 12px;
    color: var(--wf-text-2);
}

/* A instrucao entra na PROPRIA fila do filtro, encostada a direita. Como faixa
   separada custava ~60px de altura para uma frase que so vale enquanto o filtro
   esta ligado. */
#wf-host .wf-filtro-nota {
    margin-left: auto;
    padding-left: 14px;
    font-size: 11.5px;
    color: var(--wf-text-2);
}

/* FILA 3 - leitura do quadro e configuracao de prazo. Uma fila so, separada do
   filtro por uma divisoria fina: e o que diz que dali para baixo nada recorta a
   vista. */
#wf-host .wf-fx-rodape {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 20px;
    margin: 0 0 14px;
    padding-top: 11px;
    border-top: 1px solid var(--wf-line);
}

/* ---------------------------------------------------------------------------
   A MATRIZ DE PARES do popup de caminho.
   Uma linha por tipo; os canais numa GRADE de colunas iguais. Grade e nao
   flex-wrap: com wrap, "Feed Storie Chats Site / Anuncio Outro" quebrava em
   lugares diferentes em cada linha e a coluna de caixas ficava serrilhada. Com
   `repeat(auto-fill, minmax(...))` as caixas de todas as linhas se alinham na
   vertical, e e isso que faz a matriz LER como matriz.

   Cada tipo traz so os canais que fazem par com ele, entao as linhas tem
   contagens diferentes de proposito - a grade deixa os buracos no FIM da linha,
   e nao no meio, que e onde eles nao confundem com caixa desmarcada.
   --------------------------------------------------------------------------- */

/* A MATRIZ PEDE LARGURA, e o popup compartilhado nasce com 400px.
   `:has()` deixa o alargamento SAIR DO CONTEUDO: so o popup que contem a matriz
   fica largo, e nenhum outro formulario desta tela e afetado. A alternativa era
   uma classe posta por JS ao abrir e tirada ao fechar - mais codigo, e uma
   limpeza a esquecer no dia em que o popup fechar por um caminho novo.
   Em 400px a grade cabia em 2 colunas e sete canais viravam quatro fileiras por
   tipo; a 560px sao 4 colunas e duas fileiras. */
#edit-popup-mini .contant .boxpop:has(.wf-par) {
    max-width: 560px;
}

/* A GALERIA DE MODELOS pede a tela quase inteira: o cartao de destaque mostra
   cinco fases lado a lado, e a 400px elas viram uma pilha ilegivel. Mesmo padrao
   `:has()` do resto do arquivo - o alargamento sai do CONTEUDO, e nenhum outro
   popup e afetado. */
#edit-popup-mini .contant .boxpop:has(.wf-modelos) {
    max-width: 1120px;
}

/* ! SO A GRADE ROLA. `.boxpop` esta sem `max-height` e centraliza no eixo Y:
   passando da altura da tela, o topo sai para fora e nao volta nem com scroll -
   o mesmo caso da matriz de pares. Limitando aqui, titulo e rodape ficam
   sempre visiveis. */
#edit-popup-mini .wf-modelos-grid {
    max-height: min(66vh, 640px);
    overflow-y: auto;
    overscroll-behavior: contain;
    margin: 0 -4px;
    padding: 2px 4px;
}

/* ! SO A LISTA ROLA. O popup compartilhado (`.boxpop`) esta sem `max-height` e
   centraliza no eixo Y: passando da altura da tela, o topo sai para fora e nao
   volta nem com scroll. Limitando aqui, titulo e rodape ficam sempre visiveis. */
.wf-par-lst {
    max-height: min(52vh, 460px);
    overflow-y: auto;
    overscroll-behavior: contain;
    margin: 0 -4px;
    padding: 0 4px;
}

.wf-par-linha {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 10px 0;
}

.wf-par-linha+.wf-par-linha {
    border-top: 1px solid var(--wsf-linha);
}

/* Tipo sem NENHUM canal marcado fica apagado: e o estado que a pessoa mais
   precisa achar de relance, e sem isso ele e identico a um tipo cheio. */
.wf-par-linha.vazia .wf-par-nome {
    opacity: .45;
}

.wf-par-tipo {
    flex: 0 0 124px;
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 3px 6px;
    padding-top: 6px;
}

.wf-par-nome {
    font-size: 13px;
    font-weight: 600;
}

.wf-par-cont {
    font-size: 11px;
    font-variant-numeric: tabular-nums;
    color: var(--wsf-t3);
}

/* Atalho, nao rotulo: minusculo e sublinhado no hover, para nao competir com o
   nome do tipo. Antes era caixa-alta sublinhada e lia como cabecalho. */
.wf-par-todos {
    flex: 0 0 100%;
    border: 0;
    background: none;
    padding: 0;
    margin-top: 1px;
    font: inherit;
    font-size: 11px;
    text-align: left;
    color: var(--wsf-t3);
    cursor: pointer;
}

.wf-par-todos:hover {
    color: var(--color-text-01);
    text-decoration: underline;
}

.wf-par-canais {
    flex: 1;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
    gap: 1px 10px;
}

/* A caixa da matriz NAO herda a borda de lista do `.wf-cx`: ali as caixas sao
   uma pilha vertical separada por linha, aqui correm numa grade. */
.wf-par-cx {
    padding: 4px 0;
    gap: 7px;
}

.wf-par-cx+.wf-par-cx {
    border-top: 0;
}

.wf-par-cx .wf-cx-t {
    font-size: 12.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

#wf-host .wf-pill:focus-visible,
#wf-host .wf-sw:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 2px;
}

/* O INTERRUPTOR e um controle PROPRIO, e nao o clique do cartao: o cartao ja
   abre o editor, e sequestrar o clique dele tiraria o status do caminho
   quando a pessoa so queria trocar o nome. */
#wf-host .wf-sw {
    flex: 0 0 24px;
    width: 24px;
    height: 14px;
    padding: 0;
    display: inline-block;
    border: 1px solid var(--wf-line);
    border-radius: 10px;
    background: transparent;
    cursor: pointer;
    position: relative;
    transition: background .18s, border-color .18s;
}

#wf-host .wf-sw i {
    position: absolute;
    top: 1px;
    left: 1px;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: currentColor;
    opacity: .35;
    transition: transform .2s cubic-bezier(.2, .9, .3, 1), opacity .18s;
}

#wf-host .wf-sw.on {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

#wf-host .wf-sw.on i {
    transform: translateX(10px);
    background: var(--color-btn-text-01);
    opacity: 1;
}

/* =========================================================================
   SELETOR DE STATUS - o cabecalho de SEGMENTO
   -------------------------------------------------------------------------
   O dropdown passou a agrupar por segmento: com a lista de status editavel
   por conta, uma fila plana de catorze itens nao diz mais em que fase do
   fluxo cada um esta - e e o segmento que carrega a categoria (nao iniciado /
   iniciado / finalizado) de que as telas dependem.

   ! `pointer-events: none` NAO e enfeite. O item clicavel e o `.item-status`
   irmao, e o handler e delegado por classe; sem isto um clique que pegasse a
   borda do titulo nao faria nada, e o dropdown ficaria "travado" sem motivo
   visivel. Sem foco, sem hover, sem alvo - e rotulo, nao item.

   O primeiro nao leva margem: ele encosta no topo do popup, e ali o padding
   do `.dropdown-status` ja faz o espaco.
   ========================================================================= */
.dropdown-status .ds-seg {
    padding: 7px 7px 3px;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: color-mix(in srgb, var(--color-text-01) 42%, transparent);
    pointer-events: none;
    user-select: none;
    white-space: nowrap;
}

.dropdown-status .ds-seg+.item-status {
    margin-top: 0;
}

.dropdown-status .ds-seg:not(:first-child) {
    margin-top: 4px;
}

/* =========================================================================
   WORKFLOW - SLA por status
   -------------------------------------------------------------------------
   A barra fica ABAIXO do filtro de caminho e acima do quadro: contar em dias
   corridos ou uteis vale para todas as etapas de uma vez, entao e decisao do
   workspace e nao cabe dentro do formulario de um status.

   O total da cadeia e o numero que responde "quanto tempo antes da entrega
   este processo precisa comecar" - sem ele da para configurar 40 dias de
   etapas num fluxo que tem 15, e so descobrir no primeiro conteudo atrasado.
   ========================================================================= */
#wf-host .wf-sla-barra {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    /* a margem passou para `.wf-fx-rodape`, o pai */
}

#wf-host .wf-sla-total {
    margin-left: 8px;
    font-size: 12px;
    color: var(--wf-text-2);
}

#wf-host .wf-sla-total b {
    font-weight: 600;
    color: var(--color-text-01);
}

#wf-host .wf-sla-total.vazio {
    font-style: italic;
}

/* O prazo no cartao do fluxograma. Preenchido de leve - e dado configurado,
   nao alerta; o selo de falta continua sendo o unico tracejado. */
#wf-host .wf-chip-sla {
    background: color-mix(in srgb, var(--color-text-01) 6%, transparent);
    color: var(--color-text-01);
    font-variant-numeric: tabular-nums;
}

/* "responsavel: cliente" - a regra que TROCA de maos ao entrar no status.
   Mesmo peso do prazo (config gravada, nao alerta) e monocromatico: o que
   distingue este chip do de prazo e a palavra, nunca uma cor de acento. */
#wf-host .wf-chip-cliresp {
    background: color-mix(in srgb, var(--color-text-01) 6%, transparent);
    color: var(--color-text-01);
}

/* =========================================================================
   SLA DO CONTEUDO - a linha do trilho e a agenda por etapa
   -------------------------------------------------------------------------
   A linha mostra o vencimento da etapa ATUAL, que e a pergunta de relance:
   "quando isto tem de sair da minha mao". A agenda inteira fica a um clique.

   So dois tons fora do monocromatico, e os dois sao estado, nao decoracao:
   atrasado e estourado. "Perto" e peso, nao cor.
   ========================================================================= */
.pp-sla {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.pp-sla-vazio {
    font-size: 12px;
    color: color-mix(in srgb, var(--color-text-01) 45%, transparent);
    font-style: italic;
}

.pp-sla-chip {
    display: inline-flex;
    align-items: baseline;
    gap: 6px;
    padding: 2px 9px;
    border: 1px solid var(--color-border);
    border-radius: 20px;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

.pp-sla-chip i {
    font-style: normal;
    font-size: 11px;
    color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
}

.pp-sla-chip.perto {
    font-weight: 600;
}

.pp-sla-chip.atrasado,
.pp-sla-chip.atrasado i {
    color: var(--wf-alerta, #d92d20);
}

.pp-sla-chip.atrasado {
    border-color: color-mix(in srgb, var(--wf-alerta, #d92d20) 42%, transparent);
}

.pp-sla-man {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .05em;
    padding: 1px 6px;
    border: 1px dashed var(--color-border);
    border-radius: 4px;
    color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
}

.pp-sla-abrir {
    border: 0;
    background: transparent;
    padding: 0;
    font: inherit;
    font-size: 11.5px;
    color: color-mix(in srgb, var(--color-text-01) 55%, transparent);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.pp-sla-abrir:hover {
    color: var(--color-text-01);
}

/* --- a agenda dentro do popup mini --- */
.sla-lst {
    border: 1px solid var(--color-border);
    border-radius: 8px;
    overflow: hidden;
    max-height: 340px;
    overflow-y: auto;
}

.sla-row {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 8px 11px;
}

.sla-row+.sla-row {
    border-top: 1px solid var(--color-border);
}

/* A etapa ATUAL e a regua da leitura: e a partir dela que o resto e futuro. */
.sla-row.atual {
    background: color-mix(in srgb, var(--color-text-01) 5%, transparent);
}

.sla-row.atual .sla-txt b {
    font-weight: 700;
}

.sla-row.atrasado .sla-venc {
    color: var(--wf-alerta, #d92d20);
}

/* Estourado e conflito de configuracao, nao atraso: a ancora ficou depois da
   entrega e as etapas do meio nao cabem em lugar nenhum. */
.sla-row.estourado {
    background: color-mix(in srgb, var(--wf-alerta, #d92d20) 7%, transparent);
}

.sla-dot {
    flex: 0 0 9px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.sla-txt {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.sla-txt b {
    font-size: 13px;
    font-weight: 500;
}

.sla-sub {
    font-size: 10.5px;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: color-mix(in srgb, var(--color-text-01) 45%, transparent);
}

.sla-venc {
    flex: 0 0 auto;
    text-align: right;
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}

.sla-venc span {
    font-size: 10.5px;
    color: color-mix(in srgb, var(--color-text-01) 45%, transparent);
}

.sla-acoes {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 5px;
}

.sla-flag {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 1px 5px;
    border: 1px dashed var(--color-border);
    border-radius: 4px;
    color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
}

.sla-flag.comprimido {
    border-style: solid;
}

.sla-bt {
    border: 1px solid var(--color-border);
    background: transparent;
    border-radius: 6px;
    padding: 3px 9px;
    font: inherit;
    font-size: 11.5px;
    color: inherit;
    cursor: pointer;
    transition: background .14s;
}

.sla-bt:hover {
    background: color-mix(in srgb, var(--color-text-01) 8%, transparent);
}

/* =========================================================================
   SLA NO CARTAO DA TELA DE PRODUCAO
   -------------------------------------------------------------------------
   Convive com `.ct-entrega` e responde outra pergunta. "Entrega" e quando a
   peca inteira tem de estar pronta; este e quando ela tem de sair DESTA etapa
   - e numa tela de producao e a segunda que decide o que fazer hoje.

   Herda a forma do chip de entrega de proposito: dois chips com desenhos
   diferentes na mesma linha brigariam pela atencao, e nenhum dos dois e mais
   importante que o outro em toda situacao.

   ! Nasce VAZIO (o conteudo chega em lote, por AJAX). `:empty` o remove do
   fluxo - sem isso todo cartao ganharia um retangulo de 3px de margem antes
   de a resposta chegar, e a lista inteira daria um pulo quando ela chegasse.
   ========================================================================= */
.sla-slot:empty {
    display: none;
}

.ct-sla {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    margin-top: 3px;
    padding: 2px 7px 2px 5px;
    border-radius: 6px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    font-size: 11px;
    font-weight: 550;
    line-height: 1.45;
    white-space: nowrap;
    opacity: .65;
}

.ct-sla svg {
    width: 11px;
    height: 11px;
    flex: 0 0 11px;
}

/* O nome da etapa e o rotulo; a data e o dado. Quando o chip nao cabe, quem
   cede e o ROTULO - o dado sai inteiro ou nao sai.

   ! `min-width: 0` e o que faz a reticencia existir. Item de flex nasce com
   `min-width: auto`, que o proibe de encolher abaixo do proprio conteudo: sem
   isso o `overflow` daqui nunca chega a ser acionado, o chip estoura a celula
   e quem corta e o `overflow: hidden` do `.cu-cell` - reta, no meio da data e
   por cima da borda arredondada. */
.ct-sla i {
    font-style: normal;
    font-weight: 500;
    opacity: .7;
    min-width: 0;
    flex: 0 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* A data nunca encolhe: um prazo pela metade ("31/0") nao e um prazo, e e
   exatamente o que aparecia antes de o rotulo aprender a ceder. */
.ct-sla-data {
    flex: 0 0 auto;
}

/* O til marca prazo ESTIMADO (historico ou padrao), nao combinado. Discreto
   porque e ressalva, nao alerta - mas presente, porque cobrar alguem por uma
   data que ninguem acordou e o jeito mais rapido de a equipe parar de confiar
   na tela. */
.ct-sla-est {
    font-weight: 400;
    opacity: .55;
    margin-left: 1px;
}

.ct-sla.is-vencido {
    background: color-mix(in srgb, var(--wf-alerta, #d92d20) 13%, transparent);
    color: var(--wf-alerta, #d92d20);
    opacity: 1;
}

/* A celula da coluna "Prazo da etapa" na tela de producao. O chip herda a
   forma do `.ct-sla`, mas aqui ele e o conteudo da celula e nao um adendo a
   data - entao ganha a propria linha, como a `.td-entrega` faz. */
/* Na CELULA da tabela e no cartao do quadro o chip ganha a propria linha,
   igual ao `.ct-entrega` faz nos mesmos dois contextos. */
.td-sla .ct-sla,
.conteudo-item .data .ct-sla {
    display: flex;
    width: -moz-fit-content;
    width: fit-content;
}

/* ! A celula da tabela e a excecao ao `:empty { display: none }`: coluna que
   some deixa a linha com uma celula a menos e desalinha a tabela inteira. Ela
   fica, com um traco, ate o lote chegar. */
.td-sla.sla-slot:empty {
    display: table-cell;
}

.td-sla:empty::after {
    content: '—';
    opacity: .3;
}

/* =========================================================================
   PRODUCAO - A LINHA DE CONTEUDO NA GRADE .cu-list  (kit .ct-*)
   -------------------------------------------------------------------------
   O modo lista da Producao era <table class="table-01"> com nove colunas de
   texto morto: para trocar status, responsavel ou data era preciso abrir o
   popup. Ele passou a usar a MESMA grade da listagem de tarefas - por isso
   quase tudo aqui e so ajuste: hover, tema escuro, celula clicavel e estados
   vazios ja vem de .cu-row/.cu-cell/.cu-cell-edit, escritos la em cima.

   O que este bloco acrescenta e o que e proprio de conteudo: a MINIATURA da
   peca, o numero, os icones de rede, a caixinha de selecao e a barra de acoes
   em lote.
   ========================================================================= */

/* O trilho. Sete colunas, contra as cinco da tarefa - por isso a variante, e
   nao um valor novo no .cu-list (que quebraria a listagem de tarefas).
   Conteudo . Formato . Redes . Entrega . Prazo da etapa . Publicacao . Responsaveis */
.cu-list.cu-list-conteudo {
    /* ! "Prazo da etapa" precisa de mais que 120px: o chip carrega NOME +
       DATA ("Decupagem 31/08") e 120 so comportava o nome. Os 25px vem de
       "Responsaveis", que sobrava - sao 3 avatares de 24px sobrepostos mais
       o "+N" (75px de conteudo em 135 de coluna). A soma do trilho quase nao
       muda, entao nada abaixo de 1100px se desloca. */
    --cu-cols: minmax(280px, 1fr) 140px 95px 120px 145px 160px 120px;
}

/* ! `display: table-cell` na .sla-slot vazia existe para a <table> antiga, em
   que uma celula sumindo desalinhava a linha inteira. Numa GRADE ela faz o
   oposto: table-cell tira a celula do fluxo do grid e desloca todas as
   colunas seguintes. O grid ja reserva a coluna sozinho, entao aqui basta
   nao sumir. */
.cu-row-conteudo .ct-cell-sla.sla-slot:empty {
    display: block;
}

/* ---------------------------------------------------------- coluna CONTEUDO */
.cu-row-conteudo .cu-cell-title {
    gap: 8px;
    padding-right: 8px;
    overflow: hidden;
}

/* Anel de status - mesma medida do anel da tarefa (.sub-status-box), porque as
   duas listagens ficam lado a lado no mesmo menu e um anel de tamanho
   diferente em cada uma leria como componente diferente. */
.ct-status-box.st-icon {
    cursor: pointer;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition: transform .12s;
    width: 18px;
    height: 18px;
}

.ct-status-box.st-icon .st {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 1.5px dotted;
    box-sizing: border-box;
    position: relative;
    padding: 1.5px;
}

.ct-status-box.st-icon .circle {
    width: 100%;
    height: 100%;
    border-radius: 50%;
}

.ct-status-box.st-icon:hover {
    transform: scale(1.08);
}

/* A miniatura. 34px e o maior tamanho que cabe sem esticar a linha de 36px -
   ela e para RECONHECER a peca de relance, nao para avaliar a arte. */
.ct-thumb {
    width: 34px;
    height: 34px;
    border-radius: 6px;
    overflow: hidden;
    flex-shrink: 0;
    background: var(--sk-base, #e8eaed);
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.ct-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* MINIATURA VAZIA: contorno, nao bloco.
   Na Producao a maioria das pecas passa boa parte da vida SEM midia (todo o
   comeco do fluxo: briefing, roteiro, aprovacao de texto). Com fundo solido, o
   retangulo cinza virava o elemento de maior peso visual do cartao e da linha -
   e o que ele comunica e justamente a AUSENCIA de alguma coisa. O contorno
   tracejado diz "aqui vai a arte" sem competir com o titulo, e ocupa
   exatamente o mesmo espaco, entao nada pula de lugar quando a midia chega.
   (box-sizing: border-box e global nesta folha - a borda vem por dentro.) */
.ct-thumb.is-vazia {
    background: transparent;
    border: 1px dashed var(--color-border);
    color: #c9ced6;
}

.ct-thumb.is-vazia svg {
    width: 15px;
    height: 15px;
}

/* Selo de play sobre a capa do video: sem ele um frame parado passa por foto. */
.ct-thumb-play {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .28);
    color: #fff;
    pointer-events: none;
}

.ct-thumb-play svg {
    width: 15px;
    height: 15px;
}

/* O numero encolhe por ultimo (e curto e identifica a peca no time). */
.ct-num {
    flex-shrink: 0;
    font-size: 11px;
    font-weight: 600;
    color: #9aa3b2;
    letter-spacing: .01em;
}

.cu-row-conteudo .cu-row-title {
    font-weight: 500;
}

/* COLUNA DE REDES, SEM TITULO. Monocromatica - as marcas coloridas
   competiriam com o anel de status, que e o unico ponto de cor que a linha
   precisa ter.

   Alinhada a ESQUERDA da celula, como todas as outras: e o que faz os icones
   nascerem na mesma vertical em todas as linhas, que era o ponto de tira-los
   de dentro da coluna do titulo.

   O cabecalho dela e vazio de proposito (ver o comentario no template): a
   coluna serve ao alinhamento, mas conteudo que nao vai para rede social a
   deixa em branco - e um titulo sobre uma coluna quase toda vazia pesa mais
   que os poucos icones que ela mostra. O "Formato" ao lado ja diz o que a
   peca e. */
.cu-row-conteudo .ct-cell-redes {
    display: flex;
    align-items: center;
    gap: 5px;
    overflow: hidden;
}

.ct-redes {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex-shrink: 0;
}

/* ! `display: inline-flex` no PROPRIO span, e nao so no grupo. Como <span>
   inline, o icone assentava na LINHA DE BASE do titulo - o circulo do
   Instagram ficava com a barriga abaixo do texto, e como cada SVG tem massa
   visual diferente eles ainda pareciam desalinhados entre si. Centralizado no
   proprio flex, o que manda e o eixo do icone. */
.ct-rede {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 0;
    flex-shrink: 0;
}

.ct-rede svg {
    width: 13px;
    height: 13px;
    display: block;
    fill: #9aa3b2;
}

.cu-row-conteudo:hover .ct-rede svg {
    fill: #6b7280;
}

/* ------------------------------------------------- acoes que aparecem no hover */
.ct-row-acoes {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 2px;
    opacity: 0;
    transition: opacity .12s;
    flex-shrink: 0;
}

.cu-row-conteudo:hover .ct-row-acoes,
.ct-row-acoes:focus-within {
    opacity: 1;
}

.ct-acao-btn {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    border-radius: 4px;
    color: #6b7280;
    cursor: pointer;
    padding: 0;
}

.ct-acao-btn:hover {
    background: rgba(0, 0, 0, .07);
    color: #1f2937;
}

/* ------------------------------------------------------------ demais colunas */
.cu-row-conteudo .ct-cell-formato,
.cu-row-conteudo .ct-cell-entrega,
.cu-row-conteudo .ct-cell-publicacao {
    font-size: 12px;
    color: #6b7280;
}

.cu-row-conteudo .ct-cell-entrega.is-vencido {
    color: #d23838;
    font-weight: 600;
}

/* CELULA VAZIA = travessao, nao texto. "Sem entrega" escrito por extenso
   repetia-se dezenas de vezes numa coluna cuja maioria das linhas ainda nao
   tem prazo, e a palavra pesava mais que as datas de verdade. O travessao
   ocupa a celula (celula em branco parece dado faltando por erro) sem
   disputar leitura.

   ! A regra equivalente mais acima esta escopada em `.table-01`, que era o
   involucro ANTIGO desta listagem - sem esta copia o travessao ficaria em
   preto cheio, mais forte que as proprias datas. */
.cu-row-conteudo .td-sem-entrega {
    color: var(--color-text-01);
    opacity: .28;
    font-variant-numeric: tabular-nums;
}

.cu-row-conteudo .ct-cell-publicacao.alerta {
    color: #d23838;
}

.cu-row-conteudo .ct-cell-publicacao .inf-dt {
    display: inline-block;
    margin-left: 6px;
    font-size: 10px;
    opacity: .8;
}

/* ! `.lst-membros-all` NASCE COM `padding-top: 29px` E `float: right` (regra
   base, feita para o cartao do planejamento, onde o cluster desce ate o
   rodape). Dentro da <table> antiga quem anulava isso era
   `.table-01 .lst-membros-all` - e a <table> deixou de existir. Sem esta
   regra a linha ganharia 29px de altura extra e os avatares fugiriam para a
   direita da celula. */
.cu-row-conteudo .ct-cell-membros .lst-membros-all {
    display: flex;
    align-items: center;
    float: none;
    padding: 0;
    clear: none;
}

.cu-row-conteudo .ct-cell-membros .item {
    float: none;
    display: inline-flex;
    margin: 0 -7px 0 0;
}

/* ! `line-height: 1` E O CONSERTO PRINCIPAL DAS INICIAIS. `.cu-row .cu-cell`
   declara `line-height: 28px` para as datas respirarem, e isso DESCE por
   heranca ate o texto do avatar: dentro de um circulo de 24px o bloco de
   linha tinha 28 e empurrava as letras para fora do centro. Era o que fazia a
   pilha parecer torta mesmo com todos os circulos do mesmo tamanho.

   O ANEL virou `box-shadow` na cor do fundo, no lugar da borda translucida
   preta do `.thumb-user` padrao: empilhados, duas bordas translucidas se
   somam na sobreposicao e viram uma mancha escura entre os avatares. Um anel
   OPACO recorta cada circulo do de tras - que e o que faz a pilha ler como
   pilha.

   Avatares um degrau menores que o padrao (28px): a linha tem 36px, e tres
   circulos de 28 com o "+N" ao lado nao cabem sem espremer a coluna. */
.cu-row-conteudo .ct-cell-membros .thumb-user {
    width: 24px;
    height: 24px;
    margin: 0;
    font-size: 9px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .03em;
    color: #5b6472;
    background-color: #e6e9ed;
    border: none;
    box-shadow: 0 0 0 2px var(--color-bg, #fff);
    place-items: center;
}

/* O "+N" era um circulo TRANSPARENTE com um numero solto: a regra base
   (.conteudo-item .lst-membros-all .item-mais) da forma e tamanho, mas nunca
   deu fundo nenhum - no cartao do quadro ele cai sobre a arte e se resolve,
   numa linha branca ficava um numero flutuando ao lado dos avatares. Aqui ele
   e o ultimo circulo da pilha e tem de parecer um. */
.cu-row-conteudo .ct-cell-membros .item-mais {
    float: none;
    width: 24px;
    height: 24px;
    margin: 0;
    font-size: 9px;
    font-weight: 600;
    line-height: 1;
    color: #5b6472;
    background-color: #e6e9ed;
    border-radius: 50%;
    box-shadow: 0 0 0 2px var(--color-bg, #fff);
    display: grid;
    place-items: center;
}

/* O primeiro avatar por cima do segundo, e assim por diante: a ordem natural
   do DOM empilha ao contrario e o recorte do anel fica do lado errado. */
.cu-row-conteudo .ct-cell-membros .item:nth-child(1) {
    z-index: 3;
}

.cu-row-conteudo .ct-cell-membros .item:nth-child(2) {
    z-index: 2;
}

.cu-row-conteudo .ct-cell-membros .item:nth-child(3) {
    z-index: 1;
}

/* As celulas editaveis herdam o hover do kit da tarefa (.cu-cell-edit). O anel
   de status nao pode herdar: ele e um circulo de 18px dentro da coluna do
   titulo, e o retangulo cinza atras dele ficaria maior que o proprio anel. */
.cu-row-conteudo .ct-cell-edit:not(.ct-status-box) {
    cursor: pointer;
    border-radius: 4px;
    transition: background .1s;
    position: relative;
}

.cu-row-conteudo .ct-cell-edit:not(.ct-status-box):hover {
    background: #eef0f3;
    box-shadow: inset 0 0 0 1px #d6dae0;
}

.cu-row-conteudo .ct-cell-edit.is-empty {
    color: #9aa3b2;
}

/* Na CELULA o chip de SLA E o conteudo, nao um adendo embaixo de uma data: a
   margem de topo que ele carrega do cartao empurraria a linha para baixo. */
.cu-row-conteudo .ct-cell-sla .ct-sla {
    margin-top: 0;
}

/* --------------------------------------------- linha "+ Adicionar conteudo" */
.cu-row.cu-row-addconteudo,
.cu-row.cu-row-addconteudo:hover {
    background: transparent;
    border-top: none;
    cursor: default;
    min-height: 0;
}

.add-conteudo-row {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 8px;
    margin: 2px 0 4px 0;
    font-size: 12px;
    color: #9aa3b2;
    border-radius: 4px;
    cursor: pointer;
    transition: background .12s, color .12s;
}

.add-conteudo-row:hover {
    background: rgba(0, 0, 0, .05);
    color: var(--color-text-01, #1f2937);
}

/* =========================================================================
   SELECAO MULTIPLA  -  caixinha na linha + barra de acoes em lote
   -------------------------------------------------------------------------
   A caixinha so aparece no hover da linha ou quando ja esta marcada: numa
   lista de 40 conteudos, 40 quadradinhos sempre visiveis sao 40 elementos
   competindo com a miniatura e o titulo, que e o que a pessoa veio ler.
   ========================================================================= */
.ct-sel {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity .12s;
}

.cu-row-conteudo:hover .ct-sel,
.cu-row-conteudo.is-sel .ct-sel {
    opacity: 1;
}

.ct-check {
    width: 15px;
    height: 15px;
    border-radius: 4px;
    border: 1.5px solid #c3c8d0;
    box-sizing: border-box;
    position: relative;
    transition: background .12s, border-color .12s;
}

.ct-sel:hover .ct-check {
    border-color: #9aa3b2;
}

/* Marcado usa a TINTA (--color-btn-bg-01), nunca um acento colorido: a
   interface e monocromatica e o unico ponto de cor da linha e o status. */
.cu-row-conteudo.is-sel .ct-check {
    background: var(--color-btn-bg-01, #000);
    border-color: var(--color-btn-bg-01, #000);
}

.cu-row-conteudo.is-sel .ct-check::after {
    content: '';
    position: absolute;
    left: 4px;
    top: 1px;
    width: 4px;
    height: 8px;
    border: solid var(--color-btn-text-01, #fff);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.cu-row-conteudo.is-sel {
    background: var(--color-bg-01, #2946540d);
}

/* A BARRA. Flutua no rodape, centrada, por cima de tudo - e o padrao que a
   pessoa ja conhece de Drive/ClickUp, e ancora-la no fim da lista faria ela
   sair da tela justamente quando a selecao e grande. */
.ct-bulk {
    position: fixed;
    left: 50%;
    bottom: 24px;
    transform: translateX(-50%);
    z-index: 1000000;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 8px 10px 8px 16px;
    border-radius: 12px;
    background: var(--color-btn-bg-01, #000);
    color: var(--color-btn-text-01, #fff);
    box-shadow: 0 10px 30px rgba(0, 0, 0, .22), 0 2px 8px rgba(0, 0, 0, .12);
    animation: ct-bulk-in .16s ease-out;
}

@keyframes ct-bulk-in {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(8px);
    }

    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0);
    }
}

.ct-bulk-n {
    display: flex;
    align-items: baseline;
    gap: 5px;
    font-size: 12px;
    white-space: nowrap;
}

.ct-bulk-n b {
    font-size: 14px;
    font-weight: 600;
}

.ct-bulk-n span {
    opacity: .7;
}

.ct-bulk-acoes {
    display: flex;
    align-items: center;
    gap: 4px;
}

.ct-bulk-bt {
    border: none;
    background: rgba(255, 255, 255, .12);
    color: inherit;
    font-size: 12px;
    font-weight: 500;
    padding: 6px 12px;
    border-radius: 8px;
    cursor: pointer;
    white-space: nowrap;
    transition: background .12s;
}

.ct-bulk-bt:hover {
    background: rgba(255, 255, 255, .22);
}

.ct-bulk-bt.is-perigo:hover {
    background: #d23838;
    color: #fff;
}

.ct-bulk-fechar {
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: inherit;
    opacity: .65;
    border-radius: 8px;
    cursor: pointer;
    padding: 0;
}

.ct-bulk-fechar:hover {
    opacity: 1;
    background: rgba(255, 255, 255, .12);
}

/* =========================================================================
   POPOVERS DA EDICAO INLINE DE CONTEUDO (.ct-picker)
   -------------------------------------------------------------------------
   A casca e .picker-overlay, a mesma dos pickers da tarefa. O de STATUS e a
   excecao: dentro dele vai o .dropdown-status, que ja carrega fundo, raio e
   sombra proprios - deixar a casca desenhar tambem daria duas bordas
   concentricas.
   ========================================================================= */
.picker-overlay.ct-picker-status {
    background: transparent;
    border: none;
    box-shadow: none;
    padding: 0;
    min-width: 0;
    max-width: none;
    overflow: visible;
}

.picker-overlay.ct-picker-status .dropdown-status {
    position: static;
}

.ct-picker-membros {
    min-width: 240px;
    padding: 0;
}

.ct-membros-busca {
    position: sticky;
    top: 0;
    background: inherit;
    padding: 8px 8px 6px;
    border-bottom: 1px solid var(--su-border, #e8eaed);
    z-index: 1;
}

.ct-membros-busca input {
    width: 100%;
    border: 1px solid var(--su-border, #e8eaed);
    border-radius: 6px;
    padding: 6px 9px;
    font-size: 12px;
    outline: none;
    background: transparent;
    color: inherit;
}

.ct-membros-busca input:focus {
    border-color: #b6bcc6;
}

.ct-membros-lista {
    padding: 4px;
    max-height: 260px;
    overflow-y: auto;
}

.ct-membro-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 6px 8px;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
}

.ct-membro-item:hover {
    background: var(--color-hover-01, #8c8c8c14);
}

.ct-membro-thumb {
    width: 24px;
    height: 24px;
    flex-shrink: 0;
}

.ct-membro-thumb img,
.ct-membro-thumb .thumb-user,
.ct-membro-thumb>div {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    object-fit: cover;
}

.ct-membro-nome {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Estado vazio do picker de pessoas. Existe porque a lista e RECORTADA pela
   marca: numa conta com muita gente e normal uma marca ter poucos (ou
   nenhum) responsavel possivel, e um popover em branco le como falha. */
.ct-membros-vazio {
    padding: 14px 12px;
    font-size: 12px;
    line-height: 1.5;
    color: #9aa3b2;
    text-align: center;
}

/* O "check" so existe quando marcado - o quadrado vazio em toda linha viraria
   uma coluna de ruido numa lista de 20 pessoas. */
.ct-membro-ck {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
    position: relative;
}

.ct-membro-item.sel .ct-membro-ck::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 1px;
    width: 5px;
    height: 10px;
    border: solid var(--color-text-01, #000);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* O popover das acoes em lote abre ACIMA da barra, entao precisa passar por
   cima dela (a barra e 1000000). */
.ct-bulk-pop {
    z-index: 1000001;
}

.ct-bulk-pop.is-status .dropdown-status {
    position: static;
    max-height: 340px;
    overflow-y: auto;
}

/* --------------------------------- edicao inline no CARTAO do quadro (.ct-edit) */
.type-quadro .conteudo-item .ct-edit {
    cursor: pointer;
    border-radius: 4px;
    transition: background .12s;
}

.type-quadro .conteudo-item .ct-edit:hover {
    background: rgba(0, 0, 0, .06);
}

/* =========================================================================
   QUADRO DA PRODUCAO - cartao e agrupadores  (continuacao do kit .ct-*)
   -------------------------------------------------------------------------
   O quadro de CONTEUDO tinha ficado uma geracao atras do quadro de TAREFAS:
   as colunas eram tingidas por `background-color` inline, o cartao punha a
   DATA como elemento principal e o titulo em 10px a 60% de opacidade, e nao
   havia zona de soltar em coluna vazia. Este bloco fecha essa distancia - o
   sistema de coluna (--qd-col, .qd-col-vazia, contador) agora e o mesmo dos
   dois lados; aqui fica so o que e proprio do cartao de conteudo.
   ========================================================================= */

/* ------------------------------------------------------------- O CARTAO */

/* Respiro por dentro. O cartao ganhou uma miniatura e tres blocos de leitura;
   o padding antigo (10px) colava tudo na borda. */
.type-quadro .conteudo-item:not(.qd-card) {
    padding: 11px 11px 10px 11px;
    min-height: 0;
}

/* Marca: linha de identificacao, nao de destaque. O nome encolhe para caber
   ao lado do cluster de responsaveis, que e absoluto no canto. */
.type-quadro .conteudo-item:not(.qd-card) .perfil {
    display: flex;
    align-items: center;
    gap: 6px;
    padding-right: 34px;
    min-height: 20px;
}

.type-quadro .conteudo-item:not(.qd-card) .perfil .img {
    float: none;
    flex-shrink: 0;
}

.type-quadro .conteudo-item:not(.qd-card) .perfil .nome {
    float: none;
    width: auto;
    padding: 0;
    min-width: 0;
    flex: 1 1 auto;
    font-size: 11.5px;
}

/* O MIOLO - miniatura + identificacao. E a linha que responde "que peca e
   esta?", que era exatamente a que faltava. */
.type-quadro .conteudo-item:not(.qd-card) .ct-card-mid {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin-top: 9px;
    clear: both;
}

.type-quadro .conteudo-item:not(.qd-card) .ct-card-mid .ct-thumb {
    width: 44px;
    height: 44px;
    border-radius: 7px;
}

.type-quadro .conteudo-item:not(.qd-card) .ct-card-info {
    min-width: 0;
    flex: 1 1 auto;
}

/* O TITULO, que antes era `.codigo` em 10px/opacidade .6 ao lado da etiqueta
   de formato. Duas linhas no maximo: o cartao vive numa coluna de 265px e um
   titulo longo empurrava a data para fora do campo de visao. */
.type-quadro .conteudo-item:not(.qd-card) .codigo {
    float: none;
    width: auto;
    margin: 0;
    opacity: 1;
    font-size: 13px;
    font-weight: 550;
    line-height: 17px;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* O numero fica DENTRO do titulo, como prefixo apagado: ele identifica a peca
   no time ("o 412 ja subiu?") mas nao e o nome dela. */
.type-quadro .conteudo-item:not(.qd-card) .codigo i {
    font-style: normal;
    font-weight: 500;
    opacity: .45;
    margin-right: 5px;
    font-variant-numeric: tabular-nums;
}

.type-quadro .conteudo-item:not(.qd-card) .ct-card-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 5px;
    min-width: 0;
}

/* Formato: etiqueta mais leve. Ela era o elemento com mais peso visual da
   metade de baixo, e e a informacao menos acionavel das tres. */
.type-quadro .conteudo-item:not(.qd-card) .tipo {
    float: none;
    display: block;
    margin: 0;
    padding: 2px 7px;
    font-size: 11px;
    font-weight: 500;
    border-radius: 5px;
    background: var(--color-hover-01);
    opacity: .8;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.type-quadro .conteudo-item:not(.qd-card) .ct-card-meta .ct-redes {
    margin-left: auto;
}

.type-quadro .conteudo-item:not(.qd-card) .ct-card-meta .ct-rede svg {
    width: 12px;
    height: 12px;
}

/* A DATA desce para tamanho de apoio. Ela era 14px negrito - o maior elemento
   do cartao - numa coluna que ja esta ordenada por data. */
.type-quadro .conteudo-item:not(.qd-card) .data {
    font-size: 12px;
    font-weight: 500;
    line-height: 16px;
    padding: 9px 0 0 0;
    opacity: .75;
}

.type-quadro .conteudo-item:not(.qd-card) .data span {
    font-size: 12px;
}

.type-quadro .conteudo-item:not(.qd-card) .data>.ct-edit {
    display: inline-block;
    padding: 1px 5px;
    margin-left: -5px;
    border-radius: 5px;
}

/* Responsaveis: mesmo acabamento da linha da listagem - anel opaco na cor do
   fundo, para a pilha ler como pilha. */
.type-quadro .conteudo-item:not(.qd-card) .membros {
    top: 10px;
    right: 10px;
    width: auto;
}

.type-quadro .conteudo-item:not(.qd-card) .membros .lst-membros-all {
    margin-top: 0;
    display: flex;
    align-items: center;
    float: none;
    padding: 0;
}

.type-quadro .conteudo-item:not(.qd-card) .membros .lst-membros-all .item {
    margin: 0 -7px 0 0;
    float: none;
    display: inline-flex;
}

.type-quadro .conteudo-item:not(.qd-card) .membros .thumb-user {
    width: 22px;
    height: 22px;
    margin: 0;
    font-size: 8.5px;
    font-weight: 600;
    line-height: 1;
    border: none;
    box-shadow: 0 0 0 2px var(--color-bg, #fff);
    place-items: center;
}

.type-quadro .conteudo-item:not(.qd-card) .membros .item-mais {
    width: 22px;
    height: 22px;
    margin: 0;
    margin-top: 0;
    font-size: 8.5px;
    font-weight: 600;
    line-height: 1;
    opacity: 1;
    background: var(--color-hover-01);
    box-shadow: 0 0 0 2px var(--color-bg, #fff);
    display: grid;
    place-items: center;
}

/* Etiqueta de atraso/atencao. NO FLUXO, a direita da data - nao absoluta no
   canto: a linha da data pode crescer (chip de entrega + chip de SLA) e uma
   etiqueta ancorada no rodape acabaria por cima deles. Ela e emitida logo
   depois de `.data`, entao subir na mesma linha e so tira-la do float. */
.type-quadro .conteudo-item:not(.qd-card) .data {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}

.type-quadro .conteudo-item:not(.qd-card) .tag {
    float: none;
    display: inline-flex;
    align-items: center;
    margin: 8px 0 0 auto;
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .02em;
    padding: 3px 7px;
    border-radius: 5px;
    line-height: 12px;
}

/* --------------------------------------------------------- AGRUPADORES */

/* Cabecalho da coluna. A pilula de status FICA PREENCHIDA: `CorTexto` foi
   escolhida no cadastro para ser lida SOBRE `CorFundo`, e as duas chegam
   cravadas no style do elemento. Deixar o fundo transparente e manter a cor do
   texto produz combinacoes invisiveis (texto branco sobre coluna branca) em
   qualquer conta cujo status seja claro. O que se ajusta aqui e o
   COMPORTAMENTO: ela vinha da visao de lista com `float` e altura fixa, e
   dentro de um flex isso desalinhava e estourava com nome longo. */
.type-quadro .conteudo-quad .hdr-lst-quad .titulo-group {
    height: auto;
    padding: 3px 8px;
    font-size: 11.5px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    flex: 0 1 auto;
    overflow: hidden;
}

.type-quadro .conteudo-quad .hdr-lst-quad .titulo-group .txt {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* O rodape "Adicionar conteudo" alinhado com o de tarefa (mesma altura, mesmo
   hover, mesma tinta por --qd-col). */
.type-quadro .btn-add-conteudo-quad {
    background: var(--color-bg-01);
    background: color-mix(in srgb, var(--qd-col, #808080) 2%, transparent);
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 10px 12px 11px 12px;
    border-radius: 0;
    transition: background .14s;
}

.type-quadro .btn-add-conteudo-quad:hover {
    background: var(--color-hover-01);
}

.type-quadro .btn-add-conteudo-quad svg {
    float: none;
    width: 12px;
    height: 12px;
    opacity: .55;
}

.type-quadro .btn-add-conteudo-quad .txt {
    float: none;
    padding: 0;
    line-height: 1;
    font-size: 12px;
    opacity: .55;
}

/* Faixa de segmento: mesma familia do cabecalho de coluna. O h2 de 22px
   competia com o proprio conteudo do quadro. */
.type-quadro .estrutura-lista.quadro-agrupado .hdr-lista-pai {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 2px 10px 2px;
}

.type-quadro .estrutura-lista.quadro-agrupado .hdr-lista-pai h2 {
    float: none;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: .01em;
}

.type-quadro .estrutura-lista.quadro-agrupado .hdr-lista-pai .total-lista {
    float: none;
    padding: 0 6px;
    min-width: 20px;
    height: 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    background: var(--color-hover-01);
    font-size: 11px;
    font-weight: 600;
    opacity: .55;
}

/* -------------------------------------- COLUNA VAZIA e PILHA FILTRADA */

/* `.qd-col-vazia` e o convite de soltar do quadro de tarefas, agora reusado
   aqui. Ele nasce SEMPRE no HTML e so aparece quando a coluna nao tem nenhum
   cartao visivel - inclusive quando quem esvaziou foi o filtro, situacao em
   que um placeholder condicional no render nao estaria la. */
.type-quadro .lst-conteudos-quad>.qd-col-vazia {
    display: none;
}

.type-quadro .lst-conteudos-quad.is-vazia>.qd-col-vazia {
    display: block;
}

/* ! `.type-quadro .conteudo-quad.over .qd-col-vazia` (bloco do quadro de
   tarefas) empata em especificidade com a regra acima e perdia por ordem, ja
   que este bloco vem depois. Durante o arraste quem marca o lugar e o
   placeholder do plugin de drag - manter o convite junto dele seriam duas
   caixas vazias disputando o mesmo espaco. */
.type-quadro .conteudo-quad.over .lst-conteudos-quad.is-vazia>.qd-col-vazia {
    display: none;
}

/* Pilha DESEMPILHADA pelo filtro (ver conteudoQuadroSincroniza). Some tudo o
   que fala em nome do grupo - o selo, as abas e o rodape - e os itens voltam a
   fluir como cartoes soltos, que e o que eles sao enquanto o filtro corta o
   grupo pela metade. */
.cq-grupo.cq-filtrado .cq-pilha,
.cq-grupo.cq-filtrado>.cq-toggle {
    display: none;
}

.cq-grupo.cq-filtrado,
.cq-grupo.cq-filtrado:hover {
    padding-bottom: 0;
}

.cq-grupo.cq-filtrado .cq-itens {
    height: auto;
    overflow: visible;
}

/* =========================================================================
   QUADRO DA PRODUCAO - correcoes de alinhamento e ritmo
   ========================================================================= */

/* ! A ETIQUETA DE STATUS VEM DA VISAO DE LISTA, E DE LA ELA E FLUTUADA.
   `.titulo-group .st-icon` e `.titulo-group .txt` (bloco la em cima) declaram
   `float: left` com paddings e um `line-height: 13px` calibrados para aquele
   layout. Dentro do cabecalho do quadro a etiqueta virou flex: o float e
   ignorado, mas o padding-left do texto SOMA com o gap do flex e o
   `margin: -0.5px` do anel desloca so ele - o resultado era o anel fora do
   eixo do texto e um respiro assimetrico dentro da pilula.

   Aqui as duas voltam a ser itens de flex puros e quem alinha e o container. */
.type-quadro .conteudo-quad .hdr-lst-quad .titulo-group .st-icon {
    float: none;
    margin: 0;
    display: inline-flex;
    align-items: center;
    flex-shrink: 0;
}

.type-quadro .conteudo-quad .hdr-lst-quad .titulo-group .txt {
    float: none;
    padding: 0;
    line-height: 1;
    max-width: none;
    min-width: 0;
}

/* O anel dentro da pilula: mesmo tamanho do anel da linha da listagem, para as
   duas exibicoes falarem do status com o mesmo simbolo. */
.type-quadro .conteudo-quad .hdr-lst-quad .titulo-group .st {
    width: 13px;
    height: 13px;
    box-sizing: border-box;
    padding: 1.5px;
    display: block;
}

.type-quadro .conteudo-quad .hdr-lst-quad .titulo-group .circle {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    display: block;
}

/* Cabecalho da coluna: a etiqueta e o contador na mesma linha de base, com o
   contador empurrado para a direita - ele e um dado da coluna, nao um sufixo
   do nome do status. */
.type-quadro .conteudo-quad .hdr-lst-quad .hdr-group {
    flex-wrap: nowrap;
    gap: 8px;
}

.type-quadro .conteudo-quad .hdr-lst-quad .total {
    margin-left: auto;
    flex-shrink: 0;
}

/* --------------------------------------------------- RITMO DENTRO DO CARTAO */

/* O cartao tinha tres respiros diferentes (9px entre marca e miniatura, 9px
   antes da data, 5px entre titulo e formato) e chips em tamanho de cartao
   grande. Numa coluna de 265px isso rendia cartoes altos demais: cabiam tres
   por tela. Um passo unico de 8px e chips um degrau menores devolvem a
   densidade sem espremer nada. */
.type-quadro .conteudo-item:not(.qd-card) .ct-card-mid {
    margin-top: 8px;
    gap: 8px;
}

.type-quadro .conteudo-item:not(.qd-card) .ct-card-meta {
    margin-top: 4px;
}

.type-quadro .conteudo-item:not(.qd-card) .data {
    padding-top: 8px;
    row-gap: 4px;
}

/* Os chips de entrega e de SLA sao cartao-grande por padrao. Aqui eles dividem
   a linha com a data e, no tamanho original, jogavam o segundo para uma linha
   so dele em quase todo cartao. */
.type-quadro .conteudo-item:not(.qd-card) .data .ct-entrega,
.type-quadro .conteudo-item:not(.qd-card) .data .ct-sla {
    margin-top: 0;
    padding: 1px 6px 1px 4px;
    font-size: 10.5px;
    line-height: 1.5;
    gap: 3px;
}

.type-quadro .conteudo-item:not(.qd-card) .data .ct-entrega svg,
.type-quadro .conteudo-item:not(.qd-card) .data .ct-sla svg {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
}

/* A data em si perde peso: numa coluna ordenada por data, ela e referencia,
   nao manchete. */
.type-quadro .conteudo-item:not(.qd-card) .data>.ct-edit {
    font-size: 11.5px;
    font-weight: 500;
}

/* Etiqueta de formato um degrau menor - ela e a informacao menos acionavel da
   linha e estava com o maior contraste dela. */
.type-quadro .conteudo-item:not(.qd-card) .tipo {
    padding: 2px 6px;
    font-size: 10.5px;
    opacity: .7;
}

/* --------------------------------------------------------- RITMO DA PILHA */

/* ! O RODAPE PRECISA LIMPAR AS ABAS, E ELAS NAO OCUPAM ESPACO NENHUM.
   `.cq-pilha i` e absoluta em `top: 100%` de `.cq-frente`: a primeira aba
   desce 0 e tem 9px, a segunda desce 5 e tem 9 - a pilha invade 14px ABAIXO do
   cartao sem que o fluxo saiba disso. O rodape vinha com `margin-top: 8px` e
   nascia dentro dessa faixa: o chip "ver os outros N" ficava montado em cima
   da aba, que e o que aparece no cartao de baixo do print.

   `padding-bottom` no .cq-grupo nunca resolveu isso - ele fica DEPOIS do
   rodape, no fim do grupo. Quem separa o rodape das abas e a margem dele.

   E como o hover afasta as abas mais 4px, o rodape acompanha no mesmo tempo,
   em vez de nascer com um numero fixo grande o bastante para os dois estados -
   que deixaria um buraco permanente no estado parado. */
.cq-grupo:not(.aberto) .cq-toggle {
    margin-top: 17px;
}

.cq-grupo:not(.aberto):hover .cq-toggle {
    margin-top: 21px;
}

.cq-grupo.aberto .cq-toggle {
    margin-top: 6px;
}

.cq-grupo .cq-toggle {
    transition: opacity .2s, border-color .2s, background .2s, margin-top .3s var(--cq-ease);
}

/* Com o rodape limpando as abas, o grupo nao precisa mais reservar altura no
   proprio fim: quem separa uma pilha da proxima e a margem entre elas. */
.cq-grupo,
.cq-grupo:not(.aberto):hover {
    padding-bottom: 0;
}

/* ---------------------------------------- RESPONSAVEIS NO CARTAO DO QUADRO */

/* MESMA ordem de empilhamento da linha da listagem: o primeiro por cima. Sem
   isto a ordem do DOM manda e cada avatar cobre o ANTERIOR - era por isso que
   "GU" aparecia como "GI" e "JC" como "J(" no print: nao estavam cortados,
   estavam tapados pelo vizinho da direita. */
.type-quadro .conteudo-item:not(.qd-card) .membros .lst-membros-all .item:nth-child(1) {
    z-index: 3;
}

.type-quadro .conteudo-item:not(.qd-card) .membros .lst-membros-all .item:nth-child(2) {
    z-index: 2;
}

.type-quadro .conteudo-item:not(.qd-card) .membros .lst-membros-all .item:nth-child(3) {
    z-index: 1;
}

/* E o nome da marca precisa CEDER a largura que o cluster ocupa de verdade.
   A reserva era 34px - o suficiente para UM avatar. Com tres mais o "+N" o
   cluster tem ~64px, e o nome passava por baixo deles. */
.type-quadro .conteudo-item:not(.qd-card) .perfil {
    padding-right: 64px;
}

/* =========================================================================
   POPOVER DE DATA DA BARRA EM LOTE (.ct-bulk-pop.is-data)
   -------------------------------------------------------------------------
   O de status e o de pessoas emprestam a casca de outros componentes
   (.dropdown-status e .picker-overlay). Este nao tem de quem emprestar: e um
   calendario inline com cabecalho e rodape proprios, entao a casca mora aqui.
   ========================================================================= */
.ct-bulk-pop.is-data {
    background: var(--uc-surface, #fff);
    border: 1px solid var(--color-border);
    border-radius: 12px;
    box-shadow: 0 12px 34px rgba(15, 17, 21, .16), 0 2px 8px rgba(15, 17, 21, .06);
    overflow: auto;
    width: max-content;
}

.ct-bulk-pop-hdr {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 13px 8px 13px;
}

.ct-bulk-pop-hdr b {
    font-size: 13px;
    font-weight: 600;
}

/* Quantos conteudos o gesto vai atingir, escrito no proprio popover: a barra
   que diz isso fica ATRAS dele, e um lote e exatamente o momento em que a
   pessoa quer reconferir o numero antes de confirmar. */
.ct-bulk-pop-hdr span {
    font-size: 11.5px;
    opacity: .55;
    white-space: nowrap;
}

/* O flatpickr inline vem com sombra e borda de popover proprio - aqui ele ja
   esta dentro de um. */
.ct-bulk-cal .flatpickr-calendar.inline {
    box-shadow: none;
    border: none;
    margin: 0 auto;
    background: transparent;
}

.ct-bulk-pop-ftr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 9px 11px 11px 11px;
    border-top: 1px solid var(--color-border);
}

.ct-bulk-pop-bt {
    border: none;
    background: transparent;
    font-size: 12px;
    font-weight: 500;
    padding: 7px 12px;
    border-radius: 8px;
    cursor: pointer;
    color: var(--color-text-01);
    transition: background .12s, opacity .12s;
}

.ct-bulk-pop-bt.is-limpar {
    opacity: .55;
}

.ct-bulk-pop-bt.is-limpar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Confirmar usa a tinta, como todo botao primario do produto. */
.ct-bulk-pop-bt.is-ok {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-weight: 600;
}

.ct-bulk-pop-bt.is-ok:disabled {
    opacity: .35;
    cursor: default;
}

/* Cinco acoes nao cabem em qualquer largura. A fila rola em vez de quebrar em
   duas linhas - uma barra flutuante de duas alturas cobre a propria lista que
   se esta selecionando. */
.ct-bulk-acoes {
    overflow-x: auto;
    /* `min-width: 0` e o que permite ao item de flex encolher abaixo do
       conteudo - sem ele o `overflow-x` nao tem o que rolar e a barra e que
       estoura a tela. */
    min-width: 0;
    scrollbar-width: none;
}

.ct-bulk-acoes::-webkit-scrollbar {
    display: none;
}

/* =============================================================================
   WSS - TELA DE SELECAO DE WORKSPACE  (/browse/workspaces/)
   -----------------------------------------------------------------------------
   Pagina propria, sem a barra lateral do painel: e o que a pessoa ve quando nao
   tem workspace em foco - e a PRIMEIRA tela de quem acabou de criar a conta.

   Por isso o visual e o do site (sitev2) e do cadastro, nao o do painel: fundo
   com aura + grade mascarada, superficies em vidro, titulos em peso 500-550 e
   o botao preto de raio 13. A passagem do cadastro para o produto nao pode
   parecer troca de sistema.

   Monocromatico como o resto: a tinta (--color-btn-bg-01) marca o que e
   acionavel. Cor so entra como DADO - a cor que a pessoa deu ao workspace
   (tile e luz do card) - e no fundo, na aura do site.

   Tokens --wss-* no :root deste arquivo e do dark.css. Responsivo no media.css.
   ========================================================================== */
.wss-body {
    --wss-ease: cubic-bezier(.16, 1, .3, 1);
    --wss-t2: color-mix(in srgb, var(--color-text-01) 60%, transparent);
    --wss-t3: color-mix(in srgb, var(--color-text-01) 44%, transparent);
    position: relative;
    margin: 0;
    min-height: 100vh;
    background: var(--wss-bg);
    color: var(--color-text-01);
    overflow-x: hidden;
}

/* FUNDO - aura (::before) + grade mascarada (::after), a mesma linguagem do
   hero do site e do cadastro (sitev2/css/auth.css). Camadas ABSOLUTAS no topo:
   rolam junto e somem, e uma lista longa fica sobre o fundo liso. Sem
   `filter: blur` - o radial-gradient ja nasce difuso, e blur numa camada da
   largura da tela pesa no celular. */
.wss-body::before,
.wss-body::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 780px;
    pointer-events: none;
    z-index: 0;
}

.wss-body::before {
    background:
        radial-gradient(680px 460px at 14% -8%, var(--wss-aura-1), transparent 70%),
        radial-gradient(620px 420px at 90% -2%, var(--wss-aura-2), transparent 70%);
}

.wss-body::after {
    background-image:
        linear-gradient(to right, var(--wss-grade) 1px, transparent 1px),
        linear-gradient(to bottom, var(--wss-grade) 1px, transparent 1px);
    background-size: 56px 56px;
    background-position: center top;
    -webkit-mask-image: radial-gradient(ellipse 72% 78% at 50% 0%, #000 22%, transparent 76%);
    mask-image: radial-gradient(ellipse 72% 78% at 50% 0%, #000 22%, transparent 76%);
}

#wss-app {
    position: relative;
    z-index: 1;
}

.wss-wrap {
    max-width: 1120px;
    margin: 0 auto;
    padding: 0 32px 96px;
}

/* Entrada em cascata: o JS numera as pecas (--i). `backwards`, nunca `both`:
   com `both` o ultimo quadro (transform: none) ficaria preso no card e o
   translateY do hover nao aconteceria mais. */
.wss-in {
    animation: wss-sobe .7s var(--wss-ease) backwards;
    animation-delay: calc(var(--i, 0) * 55ms);
}

@keyframes wss-sobe {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
}

/* ---------- barra: marca + conta ---------- */
.wss-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    height: 88px;
}

.wss-logo {
    font-size: 24px;
    font-weight: 550;
    letter-spacing: -.045em;
    line-height: 1;
    user-select: none;
}

.wss-conta {
    display: flex;
    align-items: center;
    gap: 2px;
    min-width: 0;
    padding: 4px;
    border: 1px solid var(--wss-line);
    border-radius: 999px;
    background: var(--wss-glass);
    -webkit-backdrop-filter: blur(16px) saturate(1.4);
    backdrop-filter: blur(16px) saturate(1.4);
    box-shadow: var(--wss-sombra);
}

.wss-conta-eu {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 2px 14px 2px 2px;
    border-radius: 999px;
    cursor: pointer;
    transition: background-color .2s var(--wss-ease);
}

.wss-conta-eu:hover {
    background: var(--color-hover-01);
}

.wss-avatar {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    background-color: var(--wss-surface);
    background-image: var(--wss-avatar-bg);
    background-size: cover;
    background-position: center;
}

.wss-avatar[data-foto-eu="0"] {
    display: grid;
    place-items: center;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0;
}

.wss-conta-txt {
    display: flex;
    flex-direction: column;
    min-width: 0;
    line-height: 1.25;
}

.wss-conta-txt b,
.wss-conta-txt span {
    max-width: 220px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wss-conta-txt b {
    font-size: 13px;
    font-weight: 550;
}

.wss-conta-txt span {
    font-size: 12px;
    color: var(--wss-t3);
}

.wss-conta-bt {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 34px;
    padding: 0 14px 0 12px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 500;
    color: var(--wss-t2);
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .2s var(--wss-ease), color .2s var(--wss-ease);
}

.wss-conta-bt:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

/* Divisoria fina entre a identidade e as acoes */
.wss-conta-eu+.wss-conta-bt {
    margin-left: 6px;
}

.wss-conta-eu+.wss-conta-bt::before {
    content: "";
    position: absolute;
    left: -5px;
    top: 9px;
    bottom: 9px;
    width: 1px;
    background: var(--wss-line);
}

/* Aparencia: so icone. Sol no claro, lua no escuro - quem decide e o
   dark.css (--wss-ico-*), que entra e sai sem recarregar a pagina. */
.wss-conta-bt.wss-tema {
    justify-content: center;
    width: 34px;
    padding: 0;
}

.wss-conta-bt .wss-ico-sol {
    display: var(--wss-ico-sol);
}

.wss-conta-bt .wss-ico-lua {
    display: var(--wss-ico-lua);
}

.wss-conta-bt svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* ---------- saudacao ---------- */
.wss-hero {
    padding: 64px 0 36px;
}

.wss-hero h1 {
    margin: 0;
    font-size: 46px;
    line-height: 1.06;
    font-weight: 500;
    letter-spacing: -.04em;
    text-wrap: balance;
}

.wss-hero p {
    margin: 14px 0 0;
    font-size: 17px;
    line-height: 1.5;
    color: var(--wss-t2);
}

/* So no celular, onde o chip da conta encolhe para o avatar (media.css) */
.wss-hero .wss-hero-email {
    display: none;
}

/* ---------- cartao do plano ---------- */
.wss-plano {
    display: flex;
    align-items: center;
    gap: 24px;
    padding: 18px 18px 18px 20px;
    border: 1px solid var(--wss-line);
    border-radius: 22px;
    background: var(--wss-glass);
    -webkit-backdrop-filter: blur(18px) saturate(1.4);
    backdrop-filter: blur(18px) saturate(1.4);
    box-shadow: var(--wss-sombra);
}

.wss-plano-id {
    display: flex;
    align-items: center;
    gap: 14px;
    flex: 1 1 auto;
    min-width: 0;
}

.wss-plano-ico {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 14px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16), 0 10px 22px -12px rgba(16, 24, 40, .55);
}

.wss-plano-ico svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.wss-plano-info {
    min-width: 0;
}

.wss-plano-rot {
    margin-bottom: 3px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--wss-t3);
}

.wss-plano-nome {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 9px;
    font-size: 19px;
    font-weight: 550;
    letter-spacing: -.025em;
    line-height: 1.25;
}

.wss-plano-ren {
    margin-top: 4px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--wss-t2);
}

.wss-tag {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 9px;
    border: 1px solid var(--wss-line-forte);
    border-radius: 999px;
    background: var(--color-hover-01);
    font-size: 11.5px;
    font-weight: 550;
    letter-spacing: 0;
}

.wss-plano-stats {
    display: flex;
    flex: 0 0 auto;
}

.wss-stat {
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 112px;
    padding: 2px 22px;
    border-left: 1px solid var(--wss-line);
}

.wss-stat b {
    font-size: 23px;
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -.035em;
    font-variant-numeric: tabular-nums;
}

.wss-stat span {
    margin-top: 2px;
    font-size: 12.5px;
    color: var(--wss-t2);
}

.wss-plano-acao {
    flex: 0 0 auto;
    padding-left: 6px;
}

/* Sem plano o cartao vira convite: o unico lugar da tela com o azul do site,
   num fio de borda - nao num fundo. */
.wss-plano-sem {
    border-color: transparent;
    background:
        linear-gradient(var(--wss-glass-forte), var(--wss-glass-forte)) padding-box,
        linear-gradient(115deg, rgba(37, 99, 235, .5), rgba(99, 102, 241, .22) 38%, var(--wss-line) 68%) border-box;
}

/* ---------- botoes ---------- */
.wss-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 44px;
    padding: 0 20px;
    border-radius: 13px;
    font-size: 14px;
    font-weight: 550;
    letter-spacing: -.01em;
    white-space: nowrap;
    cursor: pointer;
    user-select: none;
    transition: transform .24s var(--wss-ease), box-shadow .24s var(--wss-ease), background-color .24s var(--wss-ease), border-color .24s var(--wss-ease);
}

.wss-btn svg {
    width: 16px;
    height: 16px;
    margin-right: -3px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .24s var(--wss-ease);
}

.wss-btn:hover svg {
    transform: translateX(3px);
}

.wss-btn-pri {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 1px 2px rgba(16, 24, 40, .14);
}

.wss-btn-pri:hover {
    transform: translateY(-1px);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.wss-btn-sec {
    border: 1px solid var(--wss-line-forte);
    background: var(--wss-glass-forte);
    color: var(--color-text-01);
}

.wss-btn-sec:hover {
    transform: translateY(-1px);
    border-color: color-mix(in srgb, var(--color-text-01) 30%, transparent);
    box-shadow: var(--wss-sombra);
}

.wss-btn:focus-visible,
.wss-card:focus-visible,
.wss-conta-eu:focus-visible,
.wss-conta-bt:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 3px;
}

/* ---------- lista ---------- */
.wss-lista {
    margin-top: 52px;
}

.wss-lista-hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

.wss-lista-hdr h2 {
    margin: 0;
    font-size: 21px;
    font-weight: 550;
    letter-spacing: -.03em;
}

.wss-lista-uso {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-size: 13px;
    color: var(--wss-t2);
    font-variant-numeric: tabular-nums;
}

.wss-lista-uso b {
    font-weight: 600;
    color: var(--color-text-01);
}

.wss-medidor {
    position: relative;
    width: 72px;
    height: 4px;
    border-radius: 99px;
    background: var(--wss-line-forte);
    overflow: hidden;
}

.wss-medidor i {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    border-radius: inherit;
    background: var(--color-text-01);
}

.wss-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}

.wss-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 182px;
    padding: 20px;
    border: 1px solid var(--wss-line);
    border-radius: 22px;
    background: var(--wss-glass);
    -webkit-backdrop-filter: blur(18px) saturate(1.4);
    backdrop-filter: blur(18px) saturate(1.4);
    box-shadow: var(--wss-sombra);
    cursor: pointer;
    overflow: hidden;
    isolation: isolate;
    transition: transform .3s var(--wss-ease), box-shadow .3s var(--wss-ease), border-color .3s var(--wss-ease);
}

/* Luz na cor do workspace, saindo do canto do tile. E dado (a cor que a
   pessoa escolheu), e acende um pouco mais no hover. */
.wss-card::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background: radial-gradient(440px 240px at 0% 0%, color-mix(in srgb, var(--wss-cor) 13%, transparent), transparent 64%);
    opacity: .75;
    transition: opacity .3s var(--wss-ease);
}

.wss-card:hover {
    transform: translateY(-3px);
    border-color: var(--wss-line-forte);
    box-shadow: var(--wss-sombra-hover);
}

.wss-card:hover::before {
    opacity: 1;
}

.wss-card-hdr {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    min-width: 0;
    margin-bottom: 22px;
}

.wss-card-tile {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border-radius: 14px;
    background: linear-gradient(160deg, color-mix(in srgb, var(--wss-cor) 78%, #fff), var(--wss-cor) 70%);
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: .01em;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25), 0 10px 20px -12px var(--wss-cor);
}

.wss-card-titulo {
    flex: 1;
    min-width: 0;
    padding-top: 1px;
}

.wss-card-nome {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 17px;
    font-weight: 550;
    line-height: 1.3;
    letter-spacing: -.02em;
}

.wss-card-nums {
    display: flex;
    flex-wrap: wrap;
    gap: 0 6px;
    margin-top: 3px;
    font-size: 13px;
    color: var(--wss-t2);
}

.wss-card-nums span+span::before {
    content: "·";
    margin-right: 6px;
    color: var(--wss-t3);
}

.wss-card-nums b {
    font-weight: 600;
    color: var(--color-text-01);
}

/* "de Fulano" (+ o papel) - so em workspace de outra pessoa */
.wss-card-dono {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 8px;
    margin-top: 9px;
    font-size: 12.5px;
    color: var(--wss-t2);
}

.wss-card-dono b {
    font-weight: 550;
    color: var(--color-text-01);
}

.wss-card-papel {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    border: 1px solid var(--wss-line-forte);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 550;
    color: var(--color-text-01);
}

.wss-card-rodape {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--wss-line);
}

/* ---------- miniaturas das marcas ---------- */
.wss-card-marcas {
    display: flex;
    align-items: center;
    min-width: 0;
    min-height: 30px;
}

.wss-mini {
    width: 30px;
    height: 30px;
    flex: 0 0 30px;
    margin-left: -8px;
    border: 2px solid var(--wss-surface);
    border-radius: 50%;
    background-color: var(--wss-surface);
    background-size: cover;
    background-position: center;
    box-shadow: 0 0 0 1px var(--wss-line);
}

.wss-mini:first-child {
    margin-left: 0;
}

.wss-mini-letra,
.wss-mini-mais {
    display: grid;
    place-items: center;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0;
}

.wss-mini-letra {
    background-image: var(--wss-avatar-bg);
}

.wss-mini-mais {
    font-size: 10.5px;
    color: var(--wss-t2);
}

.wss-card-semmarca {
    font-size: 12.5px;
    color: var(--wss-t3);
}

.wss-card-entrar {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    flex: 0 0 auto;
    font-size: 13.5px;
    font-weight: 550;
}

.wss-card-seta {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border: 1px solid var(--wss-line-forte);
    border-radius: 50%;
    transition: background-color .3s var(--wss-ease), color .3s var(--wss-ease), border-color .3s var(--wss-ease), transform .3s var(--wss-ease);
}

.wss-card-seta svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wss-card:hover .wss-card-seta {
    transform: translateX(2px);
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* Feedback do clique: o proximo passo e uma navegacao de pagina. A seta vira
   um aro girando no mesmo lugar. */
.wss-card-indo {
    pointer-events: none;
}

.wss-card-indo .wss-card-hdr,
.wss-card-indo .wss-card-marcas {
    opacity: .55;
}

.wss-card-indo .wss-card-seta {
    border-color: var(--wss-line-forte);
    border-top-color: var(--color-text-01);
    background: transparent;
    animation: wss-gira .7s linear infinite;
}

.wss-card-indo .wss-card-seta svg {
    visibility: hidden;
}

@keyframes wss-gira {
    to {
        transform: rotate(360deg);
    }
}

/* ---------- card de criar ---------- */
.wss-card-novo {
    align-items: center;
    justify-content: center;
    gap: 14px;
    text-align: center;
    border: 1px dashed var(--wss-line-forte);
    background: transparent;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: none;
}

.wss-card-novo::before {
    display: none;
}

.wss-card-novo:hover {
    border-style: solid;
    background: var(--wss-glass);
    box-shadow: var(--wss-sombra);
}

.wss-novo-ico {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    flex: 0 0 46px;
    border: 1px solid var(--wss-line-forte);
    border-radius: 50%;
    background: var(--wss-glass-forte);
    transition: background-color .3s var(--wss-ease), color .3s var(--wss-ease), border-color .3s var(--wss-ease), transform .3s var(--wss-ease);
}

.wss-novo-ico svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wss-card-novo:not(.wss-card-bloq):hover .wss-novo-ico {
    transform: rotate(90deg);
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.wss-novo-txt {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.wss-novo-txt b {
    font-size: 15px;
    font-weight: 550;
    letter-spacing: -.015em;
}

.wss-novo-txt span {
    max-width: 230px;
    margin: 0 auto;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--wss-t2);
}

.wss-card-bloq .wss-novo-ico {
    color: var(--wss-t2);
}

/* ---------- estado vazio: boas-vindas ---------- */
/* Com o cartao do plano logo acima (conta com plano e sem workspace) */
.wss-plano+.wss-vazio-boas {
    margin-top: 20px;
}

.wss-vazio-boas {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    align-items: center;
    gap: 40px;
    padding: 44px 48px;
    border: 1px solid var(--wss-line);
    border-radius: 26px;
    background: var(--wss-glass);
    -webkit-backdrop-filter: blur(18px) saturate(1.4);
    backdrop-filter: blur(18px) saturate(1.4);
    box-shadow: var(--wss-sombra);
    overflow: hidden;
}

.wss-vazio-txt h2 {
    margin: 0;
    font-size: 30px;
    line-height: 1.12;
    font-weight: 550;
    letter-spacing: -.035em;
}

.wss-vazio-txt p {
    max-width: 440px;
    margin: 12px 0 26px;
    font-size: 15px;
    line-height: 1.6;
    color: var(--wss-t2);
}

.wss-passos {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin: 34px 0 0;
    padding: 26px 0 0;
    border-top: 1px solid var(--wss-line);
    list-style: none;
}

.wss-passo {
    display: flex;
    align-items: flex-start;
    gap: 13px;
}

.wss-passo-n {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    flex: 0 0 26px;
    border: 1px solid var(--wss-line-forte);
    border-radius: 50%;
    font-size: 12px;
    font-weight: 600;
    color: var(--wss-t2);
    font-variant-numeric: tabular-nums;
}

.wss-passo-n svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wss-passo>div {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-top: 3px;
    min-width: 0;
}

.wss-passo b {
    font-size: 14px;
    font-weight: 550;
}

.wss-passo>div span {
    font-size: 13px;
    line-height: 1.45;
    color: var(--wss-t2);
}

.wss-passo-atual .wss-passo-n {
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.wss-passo-ok .wss-passo-n {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.wss-passo-ok b {
    color: var(--wss-t2);
}

/* Ilustracao: tres workspaces "fantasma" empilhados, com as pecas do card
   real. O da frente flutua devagar (media.css desliga com menos movimento). */
.wss-ilustra {
    position: relative;
    height: 320px;
}

.wss-ilustra::before {
    content: "";
    position: absolute;
    inset: 8% 4%;
    background: radial-gradient(closest-side, var(--wss-aura-1), transparent);
    pointer-events: none;
}

.wss-fantasma {
    position: absolute;
    left: 50%;
    width: 286px;
    padding: 18px;
    border: 1px solid var(--wss-line);
    border-radius: 20px;
    background: var(--wss-glass-forte);
    box-shadow: var(--wss-sombra-hover);
}

.wss-fantasma-1 {
    top: 14px;
    opacity: .5;
    transform: translateX(-38%) rotate(-7deg);
}

.wss-fantasma-2 {
    top: 82px;
    opacity: .78;
    transform: translateX(-64%) rotate(4deg);
}

.wss-fantasma-3 {
    top: 158px;
    transform: translateX(-47%) rotate(-1.5deg);
    animation: wss-flutua 6s ease-in-out infinite;
}

@keyframes wss-flutua {
    50% {
        translate: 0 -8px;
    }
}

.wss-fantasma-hdr {
    display: flex;
    align-items: center;
    gap: 12px;
}

.wss-fantasma-tile {
    width: 40px;
    height: 40px;
    flex: 0 0 40px;
    border-radius: 12px;
    background: linear-gradient(160deg, color-mix(in srgb, var(--wss-cor) 78%, #fff), var(--wss-cor) 70%);
    box-shadow: 0 10px 20px -12px var(--wss-cor);
}

.wss-fantasma-linhas {
    display: flex;
    flex-direction: column;
    gap: 8px;
    flex: 1;
}

.wss-fantasma-linhas i {
    display: block;
    width: 72%;
    height: 8px;
    border-radius: 99px;
    background: var(--color-text-01);
    opacity: .16;
}

.wss-fantasma-linhas i+i {
    width: 46%;
    opacity: .08;
}

.wss-fantasma-rodape {
    display: flex;
    margin-top: 20px;
    padding-top: 14px;
    border-top: 1px solid var(--wss-line);
}

.wss-fantasma-rodape span {
    width: 24px;
    height: 24px;
    margin-left: -7px;
    border: 2px solid var(--wss-surface);
    border-radius: 50%;
    background-color: var(--wss-surface);
    background-image: var(--wss-avatar-bg);
}

.wss-fantasma-rodape span:first-child {
    margin-left: 0;
}

/* ---------- falha de carga ---------- */
.wss-vazio-falha {
    max-width: 440px;
    margin: 18vh auto 0;
    padding: 40px 28px;
    border: 1px solid var(--wss-line);
    border-radius: 22px;
    background: var(--wss-glass);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    box-shadow: var(--wss-sombra);
    text-align: center;
}

.wss-vazio-falha h2 {
    margin: 0;
    font-size: 20px;
    font-weight: 550;
    letter-spacing: -.02em;
}

.wss-vazio-falha p {
    margin: 8px 0 22px;
    font-size: 14px;
    color: var(--wss-t2);
}

/* ---------- esqueleto de carga ---------- */
.wss-skel {
    display: block;
    border-radius: 14px;
    background-color: var(--sk-base);
    background-image: linear-gradient(100deg, transparent 30%, var(--sk-glow) 50%, transparent 70%);
    background-size: 220% 100%;
    animation: wss-brilho 1.5s linear infinite;
    opacity: .75;
}

@keyframes wss-brilho {
    from {
        background-position: 120% 0;
    }

    to {
        background-position: -120% 0;
    }
}

.wss-skel-nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 88px;
}

.wss-skel-logo {
    width: 96px;
    height: 24px;
    border-radius: 8px;
}

.wss-skel-conta {
    width: 360px;
    height: 44px;
    border-radius: 999px;
}

.wss-skel-h1 {
    width: min(440px, 80%);
    height: 48px;
    margin-top: 64px;
    border-radius: 12px;
}

.wss-skel-p {
    width: min(300px, 60%);
    height: 18px;
    margin-top: 18px;
    border-radius: 8px;
}

.wss-skel-plano {
    height: 84px;
    margin-top: 36px;
    border-radius: 22px;
}

.wss-skel-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
    margin-top: 92px;
}

.wss-skel-cards .wss-skel {
    height: 182px;
    border-radius: 22px;
}

/* ---------- popup "Editar perfil" (kit .wsf, no #edit-popup-mini) ----------
   O popup e irmao do #wss-app, nao filho: so usa tokens do :root. */
.wss-cp-foto {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-hover-01);
}

.wss-cp-av {
    width: 64px;
    height: 64px;
    flex: 0 0 64px;
    border-radius: 50%;
    background-color: var(--color-bg);
    background-image: var(--wss-avatar-bg);
    background-size: cover;
    background-position: center;
    box-shadow: 0 0 0 3px var(--color-bg), 0 0 0 4px var(--color-border);
}

.wss-cp-av[data-foto-eu="0"] {
    display: grid;
    place-items: center;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0;
    color: var(--color-text-01);
}

.wss-cp-foto-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.wss-cp-foto-txt b {
    font-size: 13.5px;
    font-weight: 600;
}

.wss-cp-foto-txt>span {
    font-size: 12px;
    color: var(--wsf-t3);
}

.wss-cp-foto-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 8px;
}

.wss-cp-bt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-bg);
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 550;
    cursor: pointer;
    transition: border-color .18s var(--wsf-ease), background-color .18s var(--wsf-ease), color .18s var(--wsf-ease);
}

.wss-cp-bt:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 30%, transparent);
}

.wss-cp-bt svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.wss-cp-bt[hidden] {
    display: none;
}

/* Remover = acao destrutiva: vermelho so no hover, como o resto do sistema */
.wss-cp-bt-ghost {
    border-color: transparent;
    background: transparent;
    color: var(--wsf-t2);
}

.wss-cp-bt-ghost:hover {
    border-color: transparent;
    color: #e83a3a;
}

/* Somente leitura: preenchido e sem borda, para nao parecer campo editavel */
.wsf-i.wss-cp-email {
    border-color: transparent;
    background: var(--color-hover-01);
    color: var(--wsf-t2);
    cursor: default;
    user-select: all;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---------- destinos na exclusao (popup do painel) ---------- */
.wsp-destinos {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin-top: 12px;
}

.wsp-destino {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 9px 12px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    cursor: pointer;
    font-size: 13px;
    margin: 0;
}

.wsp-destino:hover {
    background: var(--color-hover-01);
}

/* =============================================================================
   WCFG - CONFIGURACOES DO WORKSPACE (popup com navegacao)
   -----------------------------------------------------------------------------
   Substituiu o popup .wsp-* de duas colunas. Navegacao lateral no desktop,
   abas roladas no topo no mobile (media.css).

   ! As vars sao declaradas AQUI, na raiz do kit. O popup abre dentro de
   #edit-popup-big, que nao herda os tokens --eq-* de #edit-popup-medium; um kit
   que dependesse deles apareceria sem borda e sem escala de texto, quebrando
   parecendo "design ruim" - e a armadilha que .wf-form ja pagou neste arquivo.
   ========================================================================== */
.wcfg {
    --wc-line: var(--color-border);
    --wc-t2: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    --wc-t3: color-mix(in srgb, var(--color-text-01) 50%, transparent);
    --wc-ease: cubic-bezier(.16, 1, .3, 1);
    --wc-radius: 12px;
    /* SUPERFICIE DE "SELECIONADO", uma so para todo o popup (aba aberta e item
       que ja pertence ao workspace).
       ! NAO da para usar --color-bg-01 aqui: ele e MAIS FRACO que o
       --color-hover-01 nos DOIS temas (5% x 8% no claro, 8% x 10% no escuro),
       entao a aba apenas sob o mouse ficava mais marcada que a aba realmente
       aberta. Derivar da tinta com 12% resolve nos dois de uma vez. */
    --wc-atv: color-mix(in srgb, var(--color-text-01) 4%, transparent);
    display: flex;
    align-items: stretch;
    /* ! O RESPIRO E DAS COLUNAS, NUNCA DAQUI.
       A tentacao e por o padding neste container - mas as duas colunas ROLAM, e
       um padding aqui fica POR FORA do scroller: a barra de rolagem nasce
       flutuando longe do topo e do fim, sem encostar em canto nenhum, e o
       conteudo e decepado numa linha invisivel no meio do popup em vez de correr
       por baixo da borda. O padding vive dentro de cada coluna (.wcfg-nav /
       .wcfg-pane): assim a trilha da rolagem vai de ponta a ponta. */
    /* A ALTURA VEM DA CASCA. O #edit-popup-full ja e uma janela de tamanho fixo
       (viewport menos a moldura, com teto) e o .conteudo dele e uma coluna
       flex - aqui basta ocupar o que sobrou. A versao anterior media a propria
       altura com min/max-height em vh porque a casca antiga (#edit-popup-big)
       crescia conforme o conteudo; com casca de altura propria, repetir a conta
       daria duas fontes de verdade para o mesmo numero. */
    flex: 1;
    min-height: 0;
}

/* ---------- navegacao lateral ---------- */
/* A coluna E o scroller: o padding fica aqui dentro para a barra de rolagem
   correr rente a borda do popup (ver a nota em .wcfg). */
.wcfg-nav {
    width: 236px;
    flex: 0 0 236px;
    border-right: 1px solid var(--wc-line);
    padding: 18px 12px 18px 16px;
    overflow-y: auto;
}

/* A identidade e um bloco a parte das abas, com regua entre os dois: sem ela o
   nome do workspace lia como a primeira aba da lista. */
.wcfg-nav-hdr {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 4px 8px 14px;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--wc-line);
}

.wcfg-av {
    width: 38px;
    height: 38px;
    border-radius: 10px;
    flex: 0 0 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    font-weight: 600;
    color: #fff;
}

.wcfg-nav-id {
    min-width: 0;
}

.wcfg-nav-nome {
    font-size: 14px;
    font-weight: 600;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wcfg-nav-sub {
    font-size: 11px;
    color: var(--wc-t3);
    margin-top: 1px;
}

/* Titulo de familia na coluna: "Workspace" / "Trabalho". Cinco itens soltos
   numa lista nao contam que sao duas naturezas de ajuste, e "Cargos" logo
   abaixo de "Marcas e espacos" lia como mais um tipo de conteudo. */
.wcfg-nav-g {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--wc-t3);
    padding: 0 11px 6px;
    margin-top: 14px;
}

.wcfg-nav-g:first-of-type {
    margin-top: 0;
}

/* ABA: repouso sem caixa, ativa com a marca do sistema.
   -----------------------------------------------------------------------------
   ! A versao anterior pintava HOVER e ATIVA com a MESMA tinta
   (--color-hover-01), entao passar o mouse por uma aba a fazia parecer a aba
   aberta: duas abas "ativas" ao mesmo tempo e nenhuma pista de qual era a de
   verdade. Aqui hover e a tinta fraca e ATIVA e --wc-atv com peso 600, icone em
   forca total e a barrinha da esquerda - quatro sinais, nenhum deles dependendo
   de dois tokens que quase empatam. */
.wcfg-nav-it {
    position: relative;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 11px;
    margin-bottom: 2px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    color: var(--wc-t2);
    cursor: pointer;
    user-select: none;
    transition: background .18s var(--wc-ease), color .18s var(--wc-ease);
}

.wcfg-nav-it svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
    flex-shrink: 0;
    opacity: .65;
    transition: opacity .18s var(--wc-ease);
}

.wcfg-nav-it:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.wcfg-nav-it:hover svg {
    opacity: .9;
}

.wcfg-nav-it.atv {
    background: var(--wc-atv);
    color: var(--color-text-01);
    font-weight: 600;
}

.wcfg-nav-it.atv svg {
    opacity: 1;
}

/* A barrinha vive num ::before e nao numa borda: borda empurraria o texto 2px a
   cada troca de aba, e a linha inteira tremeria no clique. */
.wcfg-nav-it.atv::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 3px;
    height: 17px;
    border-radius: 0 3px 3px 0;
    background: var(--color-text-01);
}

/* ---------- painel ---------- */
/* O padding e DO SCROLLER, para a rolagem ir de ponta a ponta (ver .wcfg).
   32 a direita = folga do .btn-close, que e filho do .boxpop e flutua no canto:
   sem ela o topo de uma tela embutida (Equipes, Workflows) passa por baixo do X. */
.wcfg-pane {
    flex: 1;
    min-width: 0;
    overflow-y: auto;
    padding: 22px 32px 24px 24px;
}

/* A COLUNA DE LEITURA depende do que a secao e, e por isso sao duas.
   A casca XL da ~1300px de painel: um formulario esticado ate la vira linha de
   90 caracteres e o olho perde a volta; uma GRADE de itens, ao contrario, quer
   toda a largura, porque cada coluna a mais e um item a menos para rolar. */
.wcfg-sec {
    max-width: 660px;
    margin: 0 auto;
}

.wcfg-sec.wcfg-sec-largo {
    max-width: 1180px;
}

/* A ABA GERAL: uma terceira largura, entre as duas.
   -----------------------------------------------------------------------------
   Ela era `.wcfg-sec` pura - 660px de formulario centrados num painel de
   ~1300px, com quase 320px de vazio de cada lado. Numa casca XL, ao lado de
   abas que ocupam tudo (Marcas e espacos, Equipes, Fluxo), isso nao le como
   "coluna confortavel": le como tela inacabada.

   1040px nao e "660 esticado". A secao deixou de ser uma coluna unica e virou
   tres faixas (hero larga, grade de dois cartoes, faixa de risco) - e 1040 e a
   largura em que os DOIS cartoes da grade ainda cabem com respiro, sem que o
   texto de nenhum deles passe de ~70 caracteres. */
.wcfg-sec.wcfg-sec-geral {
    max-width: 1040px;
}

/* --- 1. HERO: avatar, nome, paleta e salvar na MESMA linha ----------------
   Antes eram tres andares: (avatar + nome), (paleta), (botao). A paleta
   ocupava uma faixa inteira do painel para dez bolinhas de 24px, e o botao
   Salvar ficava sozinho num terceiro. Junto, o bloco de identidade cabe numa
   faixa e o resto da tela sobe para dentro da primeira dobra. */
.wcfg-hero {
    display: flex;
    align-items: flex-end;
    gap: 16px;
    padding: 16px 18px;
    border: 1px solid var(--wc-line);
    border-radius: var(--wc-radius);
    margin-bottom: 14px;
}

.wcfg-hero .wcfg-id-av {
    margin-bottom: 1px;
}

/* `min-width: 0` no filho flex e o que permite o <input> encolher. Sem ele o
   campo de texto impoe a largura minima dele e empurra o botao Salvar para
   fora da caixa em telas medias. */
.wcfg-hero-campos {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: flex-end;
    gap: 18px;
}

.wcfg-hero-campos .wcfg-id-campo {
    flex: 1;
    min-width: 0;
}

/* A paleta nao estica: dez circulos tem largura conhecida, e deixa-los crescer
   abriria buracos entre eles. */
.wcfg-hero-campos .wcfg-campo-cor {
    flex: 0 0 auto;
}

.wcfg-hero .wcfg-cores {
    margin-top: 0;
    padding-bottom: 5px;
}

.wcfg-hero .wcfg-bt {
    flex-shrink: 0;
    margin-bottom: 1px;
}

/* --- 2. A GRADE de dois cartoes -------------------------------------------
   `1fr 1fr` e nao `auto-fit`: os dois cartoes tem pesos parecidos e devem
   dividir a faixa em partes iguais. Com auto-fit, o de Plano (mais curto)
   encolhia e a grade ficava torta. */
.wcfg-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    margin-bottom: 14px;
}

.wcfg-grid>.wcfg-bloco {
    margin-bottom: 0;
}

/* Dentro da grade cada cartao tem metade da largura: quatro contadores em fila
   ficariam com ~90px cada e "Espacos" quebraria em duas linhas. */
.wcfg-grid .wcfg-nums {
    grid-template-columns: repeat(2, 1fr);
}

@media (max-width: 900px) {
    .wcfg-grid {
        grid-template-columns: 1fr;
    }

    .wcfg-hero {
        flex-wrap: wrap;
    }

    .wcfg-hero-campos {
        flex: 1 1 100%;
        flex-wrap: wrap;
    }
}

.wcfg-intro {
    font-size: 13px;
    line-height: 1.6;
    color: var(--wc-t2);
    margin-bottom: 18px;
}

.wcfg-vazio {
    padding: 60px 20px;
    text-align: center;
    font-size: 13px;
    color: var(--wc-t3);
}

/* Telas inteiras embutidas (Equipes, Workflow): zeram as margens que elas
   assumem quando ocupam a pagina. O -4px de antes compensava o padding de 4px
   que o painel tinha; hoje o respiro e do proprio scroller e nao ha o que
   descontar. */
/* =============================================================================
   MODO TELA - quando a aba hospeda uma TELA INTEIRA (Equipes, Workflow)
   -----------------------------------------------------------------------------
   As outras abas sao formulario: o painel rola e pronto. Estas duas nao - elas
   tem cabecalho proprio, navegacao interna e uma lista longa embaixo. Se
   rolassem junto com o painel, o cabecalho e as abas da equipe sairiam de cena
   na primeira rolada e a pessoa perderia o "onde estou" e o botao de voltar.

   Entao a aba entrega o painel INTEIRO para a tela: sem padding, sem rolagem
   propria, virando uma coluna flex. Quem decide o que fica fixo e o que rola
   passa a ser a tela - que e quem sabe.
   ========================================================================== */
.wcfg-pane.wcfg-pane-tela {
    padding: 0;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.wcfg-embed {
    margin: 0;
    flex: 1;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

/* ! NAO ESCONDER `.header-pagina` AQUI.
   Existia um `.wcfg-embed .header-pagina { display:none }` para sumir com o
   `<h1>Equipes</h1>` da listagem, que repetia o nome da aba ao lado. So que
   `.header-pagina` tambem e a classe do cabecalho da EQUIPE e do painel da
   PESSOA - e a regra levava junto o botao Voltar, o titulo editavel e o lapis
   de renomear, deixando o drill-down sem saida.
   A listagem simplesmente NAO EMITE mais esse cabecalho (ver equipesAbrirEm em
   browse/index.php): nao emitir e melhor que esconder.

   O cabecalho das telas de dentro fica FORA do scroller - ele e irmao do
   `.wcfg-embed-corpo`, nao filho (ver equipeHostRender em browse/footer.php) -
   para nao sair de cena na primeira rolada levando o "voltar" junto. */
.wcfg-embed>.header-pagina {
    flex: 0 0 auto;
    padding: 18px 32px 14px 24px;
    margin: 0;
    border-bottom: 1px solid var(--wc-line);
}

/* O corpo da tela e quem rola. O padding vive AQUI dentro (e nao no painel)
   para a barra de rolagem correr rente a borda do popup - mesma regra do resto
   do kit, ver a nota em .wcfg. */
.wcfg-embed-corpo {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 22px 32px 24px 24px;
}

.wcfg-embed .contant-equipes-home>.box-equipes:first-child {
    margin-top: 0;
}

/* =============================================================================
   WORKFLOW DENTRO DO POPUP
   -----------------------------------------------------------------------------
   O kit `.wf-*` nasceu para a area de conteudo do painel, que e mais larga e
   tem respiro proprio. Dentro do popup as duas coisas mudam.
   ========================================================================== */

/* O respiro ja e do `.wcfg-embed-corpo`. Somados, davam 64px de vazio no fim do
   popup e 30px roubados da largura mais escassa da tela. */
.wcfg-embed #wf-host {
    padding: 0;
}

.wcfg-embed #wf-host .wf-corpo {
    padding: 0;
}

/* AS FASES ENCOLHEM PARA CABEREM TODAS.
   O quadro tem uma coluna por fase; a 264px, cinco fases pedem 1630px e o popup
   entrega ~1290. A pessoa via duas fases e meia de um fluxo de cinco - e um
   fluxograma que so mostra o comeco nao e um fluxograma, e uma lista.
   A 230px as cinco cabem, e o que sobra para rolar e so o "novo segmento", que
   e acao rara. O cartao continua legivel: o nome do status tem elipse e os tres
   botoes de icone somam 72px fixos, entao 230 ainda deixa ~130px de texto. */
.wcfg-embed #wf-host .wf-fx-col {
    flex: 0 0 230px;
    width: 230px;
}

/* ============================================================================
   O QUADRO TEM A ALTURA DA TELA, e cada coluna rola por dentro.
   Mesmo desenho do quadro de producao (`.type-quadro .lst-conteudos-quad`), que
   ja rola a lista de cartoes por coluna - e que tambem tem arrastar, o que
   prova que soltar dentro de uma lista rolavel funciona neste projeto.

   ANTES: `align-items: stretch` dava a TODAS as colunas a altura da mais alta.
   Com oito cartoes em Producao e um em Pauta, a coluna de Pauta tinha novecentos
   pixels de vazio e o "+ status" ficava la no fundo - longe do unico cartao que
   ela tem. E o quadro inteiro passava da altura do popup, entao a barra de
   filtro saia de cena na primeira rolada.

   ! SEM `calc(100vh - Npx)`. O quadro nao mora na janela: mora num popup de
   `max-height: 940px` que ja e uma cadeia flex. Um numero magico contra a
   viewport erraria por toda a diferenca entre as duas - e erraria de novo a
   cada mudanca no cabecalho. A altura desce por `flex: 1` + `min-height: 0`,
   que e o que faz um filho flex poder ser MENOR que o conteudo dele.

   O `:has()` prende tudo isto a aba do quadro: as abas de Cargos e de Tipos e
   canais continuam rolando a pagina inteira, como sempre fizeram.
   ============================================================================ */
.wcfg-embed .wcfg-embed-corpo:has(.wf-fx-board) {
    overflow-y: hidden;
}

.wcfg-embed #wf-host:has(.wf-fx-board),
.wcfg-embed #wf-host:has(.wf-fx-board) .wf-corpo,
.wcfg-embed #wf-host .wf-bloco.wf-fx {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.wcfg-embed #wf-host:has(.wf-fx-board) {
    height: 100%;
}

.wcfg-embed #wf-host:has(.wf-fx-board) .wf-corpo,
.wcfg-embed #wf-host .wf-bloco.wf-fx {
    flex: 1;
}

/* O involucro do quadro e quem absorve a folga; tudo acima dele (titulo,
   filtro, rodape) fica no tamanho natural. */
.wcfg-embed #wf-host .wf-fx-board-wrap {
    flex: 1;
    min-height: 0;
}

.wcfg-embed #wf-host .wf-fx-board {
    height: 100%;
}

/* `min-height: 300px` era o piso de quando a coluna crescia sozinha. Agora ela
   recebe a altura do quadro, e o piso so atrapalharia num popup baixo. */
.wcfg-embed #wf-host .wf-fx-col,
.wcfg-embed #wf-host .wf-fx-col-nova {
    min-height: 0;
}

/* ! A PILHA E QUEM ROLA, e ela continua sendo o alvo de soltar do arrastar
   (`scopeSelector: '#wf-host .wf-status-lst'`, footer.php ~30697). Rolar aqui e
   nao na coluna e o que mantem o cabecalho da fase e o "+ status" sempre
   visiveis - o botao deixa de estar a novecentos pixels do ultimo cartao. */
.wcfg-embed #wf-host .wf-status-lst {
    overflow-y: auto;
    min-height: 0;
    scrollbar-width: thin;
    margin: 0 -3px;
    padding: 0 3px;
}

.wcfg-embed #wf-host .wf-status-lst::-webkit-scrollbar {
    width: 6px;
}

.wcfg-embed #wf-host .wf-status-lst::-webkit-scrollbar-thumb {
    background: color-mix(in srgb, var(--color-text-01) 18%, transparent);
    border-radius: 3px;
}

/* ! `mask-image`, E NAO um degrade por cima. A pilha e o proprio elemento que
   rola: um pseudo-elemento dela viajaria junto com o conteudo, e um overlay no
   pai teria de desviar do "+ status" logo abaixo. A mascara acompanha a JANELA
   do scroller, que e exatamente o que se quer esmaecer.
   As classes vem do JS (fxBordas) porque so ha o que esmaecer onde ha rolagem -
   fixa, a mascara apagaria o ultimo cartao de uma coluna curta. */
.wcfg-embed #wf-host .wf-status-lst.rola-fim {
    -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent);
    mask-image: linear-gradient(to bottom, #000 calc(100% - 26px), transparent);
}

.wcfg-embed #wf-host .wf-status-lst.rola-topo {
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 22px);
    mask-image: linear-gradient(to bottom, transparent, #000 22px);
}

.wcfg-embed #wf-host .wf-status-lst.rola-topo.rola-fim {
    -webkit-mask-image: linear-gradient(to bottom, transparent, #000 22px, #000 calc(100% - 26px), transparent);
    mask-image: linear-gradient(to bottom, transparent, #000 22px, #000 calc(100% - 26px), transparent);
}

/* ! A COLUNA FANTASMA PRECISA REPETIR O ESCOPO. Ela sai do JS com AS DUAS
   classes (`wf-fx-col wf-fx-col-nova`), entao a regra acima - (1,2,0) - vencia
   `#wf-host .wf-fx-col-nova` - (1,1,0) - e o "Novo segmento" renderizava com
   230px de largura, nunca com os 176px que o CSS dela diz. Aqueles 176px eram
   letra morta desde que o embed passou a existir. */
.wcfg-embed #wf-host .wf-fx-col-nova {
    flex: 0 0 176px;
    width: 176px;
}

/* O quadro rola sozinho, dentro de um painel que ja rola na vertical. Ancorar a
   barra no fim do popup evita a terceira barra de rolagem empilhada. */
.wcfg-embed #wf-host .wf-fx-board {
    padding-bottom: 10px;
}

/* ---------- blocos ---------- */
.wcfg-bloco {
    border: 1px solid var(--wc-line);
    border-radius: var(--wc-radius);
    padding: 16px 18px;
    margin-bottom: 14px;
}

/* O ultimo bloco nao soma a propria margem ao padding de baixo da casca: o fim
   da rolagem ficava com quase o dobro do respiro dos outros lados. */
.wcfg-bloco:last-child {
    margin-bottom: 0;
}

.wcfg-b-ttl {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--wc-t3);
    margin-bottom: 14px;
}

/* ---------- identidade ---------- */
.wcfg-id {
    display: flex;
    align-items: center;
    gap: 14px;
}

.wcfg-id-av {
    width: 52px;
    height: 52px;
    border-radius: 13px;
    flex: 0 0 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    font-weight: 600;
    color: #fff;
    transition: background .2s var(--wc-ease);
}

.wcfg-id-campo {
    flex: 1;
    min-width: 0;
}

.wcfg-id-campo label {
    display: block;
    font-size: 11px;
    color: var(--wc-t3);
    margin-bottom: 5px;
}

.wcfg-id-campo input {
    width: 100%;
    padding: 9px 12px;
    border: 1px solid var(--wc-line);
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 14px;
    font-family: inherit;
    outline: none;
}

.wcfg-id-campo input:focus {
    border-color: #245cfb;
}

.wcfg-id-campo input:disabled {
    opacity: .6;
}

.wcfg-cores {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
    margin-top: 16px;
}

.wcfg-cor {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    cursor: pointer;
    position: relative;
    transition: transform .16s var(--wc-ease);
}

.wcfg-cor:hover {
    transform: scale(1.12);
}

/* Anel externo em vez de borda: borda encolheria o circulo e faria a paleta
   inteira dancar ao selecionar */
.wcfg-cor.atv {
    box-shadow: 0 0 0 2px var(--uc-surface), 0 0 0 4px currentColor;
    color: var(--color-text-01);
}

.wcfg-bt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 9px 18px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    transition: opacity .18s var(--wc-ease);
}

.wcfg-bt:hover {
    opacity: .86;
}

.wcfg-bt-perigo {
    background: transparent;
    border: 1px solid #ef535066;
    color: #ef5350;
}

.wcfg-bt-perigo:hover {
    background: #ef53501a;
    opacity: 1;
}

/* ---------- contadores ---------- */
.wcfg-nums {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.wcfg-num {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 14px;
    border-radius: 10px;
    background: var(--color-bg-01);
}

.wcfg-num b {
    font-size: 20px;
    font-weight: 600;
    line-height: 1;
    color: var(--color-text-01);
}

.wcfg-num span {
    font-size: 11px;
    color: var(--wc-t3);
}

/* O CONTADOR QUE TAMBEM E BOTAO.
   A nota embaixo do bloco dizia por escrito "escolha o que pertence na aba
   Marcas e espacos" - instrucao de navegacao em rodape e sinal de que a
   navegacao devia estar no proprio elemento. O numero ja respondia "quanto
   tem"; agora ele leva ao lugar de mexer nisso. */
.wcfg-num-bt {
    cursor: pointer;
    border: 1px solid transparent;
    transition: background .16s var(--wc-ease), border-color .16s var(--wc-ease);
}

.wcfg-num-bt:hover {
    background: var(--color-hover-01);
    border-color: var(--wc-line);
}

.wcfg-num-bt:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
}

/* `.wcfg-ir` e o gatilho de "ir para a aba X" em dois formatos: um trecho de
   texto sublinhado dentro de uma frase, e este cartao. O sublinhado nao pode
   vazar para o cartao. */
.wcfg-num.wcfg-ir {
    text-decoration: none;
}

/* Atalho para os planos dentro do cartao de Plano: mesma afordancia dos demais
   `.wcfg-ir`, para nao inventar um terceiro jeito de dizer "clique aqui". */
.wcfg-planos {
    color: var(--color-text-01);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

.wcfg-nota {
    margin-top: 12px;
    font-size: 12px;
    color: var(--wc-t3);
}

.wcfg-ir {
    color: var(--color-text-01);
    cursor: pointer;
    text-decoration: underline;
    text-underline-offset: 2px;
}

/* ---------- plano ---------- */
.wcfg-plano-bar {
    height: 6px;
    border-radius: 99px;
    background: var(--color-bg-01);
    overflow: hidden;
}

.wcfg-plano-bar span {
    display: block;
    height: 100%;
    border-radius: 99px;
    background: #245cfb;
}

.wcfg-plano-bar span.cheio {
    background: #ef5350;
}

.wcfg-plano-txt {
    margin-top: 8px;
    font-size: 12px;
    color: var(--wc-t3);
}

/* ---------- avisos e zona de risco ---------- */
.wcfg-aviso {
    padding: 13px 15px;
    border-radius: var(--wc-radius);
    background: var(--color-bg-01);
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--wc-t2);
    margin-bottom: 14px;
}

.wcfg-perigo {
    border-color: #ef53503d;
}

.wcfg-perigo p {
    font-size: 12.5px;
    color: var(--wc-t3);
    margin: -6px 0 14px;
}

/* =============================================================================
   ABA "MARCAS E ESPACOS" - a lista do que pertence ao workspace
   -----------------------------------------------------------------------------
   Substituiu os chips .wsp-*, que estavam quebrados por dependerem dos tokens
   --eq-*: eles sao declarados em `#edit-popup-medium .conteudo` e este popup abre
   no `#edit-popup-big`, que nao os herda. A lista saia sem borda, sem superficie
   e sem escala de texto - o kit .wcfg-* declara as proprias vars justamente para
   nao repetir esse erro (ver o cabecalho de .wcfg).

   Mais do que consertar: chip de texto puro era a forma errada. Esta e uma lista
   de RECONHECIMENTO - procura-se UMA marca no meio de dezenas - e sem imagem a
   pessoa tinha de ler todos os nomes, um a um. Cada item traz agora a mesma
   thumb que tem no resto do produto.
   ========================================================================== */
.wcfg-grupo {
    margin-bottom: 22px;
}

.wcfg-grupo:last-child {
    margin-bottom: 0;
}

.wcfg-g-ttl {
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--wc-t3);
    margin-bottom: 10px;
}

.wcfg-g-n {
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    color: var(--wc-t3);
}

/* Duas colunas quando cabem, uma quando nao cabem. `auto-fill` e nao um numero
   fixo: o mesmo painel serve a janela larga e ao popup estreito, e um `repeat(2,
   1fr)` cravado espremeria os nomes ate o "..." na segunda situacao. */
.wcfg-itens {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 8px;
}

.wcfg-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border: 1px solid var(--wc-line);
    border-radius: var(--wc-radius);
    cursor: pointer;
    user-select: none;
    min-width: 0;
    transition: background .18s var(--wc-ease), border-color .18s var(--wc-ease);
}

.wcfg-item:hover {
    background: var(--color-hover-01);
    border-color: color-mix(in srgb, var(--color-text-01) 22%, transparent);
}

/* JA ESTA AQUI: superficie preenchida, nao contorno. E o unico estado que
   dispensa acao, entao ele para de parecer um botao - some a mao do cursor e o
   realce de hover. */
.wcfg-item.atv {
    background: var(--wc-atv);
    border-color: transparent;
    cursor: default;
}

.wcfg-item.atv:hover {
    background: var(--wc-atv);
    border-color: transparent;
}

/* MORA EM OUTRO WORKSPACE: tracejado, a mesma convencao de "falta ser
   resolvido" que o resto do popup usa. Clicavel - o clique TRAZ para ca. */
.wcfg-item.noutro {
    border-style: dashed;
}

/* ---------- a thumb ---------- */
/* LEVEMENTE arredondada, nunca redonda: redondo e pessoa, quadrado e marca - a
   mesma forma que a marca tem na barra lateral e na busca. */
.wcfg-item-av {
    width: 32px;
    height: 32px;
    flex: 0 0 32px;
    border-radius: 9px;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1;
    overflow: hidden;
}

/* A cor do espaco e a identidade dele no produto inteiro; aqui ela vem do
   inline style e so a letra precisa de tratamento. */
.wcfg-item-av-cor {
    color: #fff;
}

.wcfg-item-txt {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.wcfg-item-nome {
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wcfg-item.atv .wcfg-item-nome {
    font-weight: 600;
}

.wcfg-item-sub {
    font-size: 11px;
    color: var(--wc-t3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---------- os dois sinais da direita ---------- */
.wcfg-item-ck,
.wcfg-item-add {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    fill: var(--color-text-01);
}

.wcfg-item-ck {
    opacity: .75;
}

/* O "+" e um convite, nao um rotulo: fica quase invisivel em repouso e so
   aparece de verdade quando o item esta sob o mouse. Em forca total nas dezenas
   de itens soltos, a lista viraria uma parede de cruzinhas. */
.wcfg-item-add {
    opacity: 0;
    transition: opacity .18s var(--wc-ease);
}

.wcfg-item:hover .wcfg-item-add {
    opacity: .55;
}

/* ===========================================================================
   WORKFLOW - CANAIS E TIPOS
   ---------------------------------------------------------------------------
   A hierarquia e CANAL -> TIPO, e o CSS diz isso: o canal e um cartao com
   corpo, e os tipos sao chips dentro dele. Duas listas irmas com o mesmo peso
   visual afirmariam uma simetria que o modelo nao tem.

   Nada de cor cravada: tudo sai das variaveis do sistema, e por isso o bloco
   nao precisa de contraparte em dark.css - a inversao das --color-* resolve os
   dois temas.
   =========================================================================== */

#wf-host .wf-cat {
    max-width: 820px;
    margin: 0 auto;
}

#wf-host .wf-cat-bloco {
    margin-bottom: 30px;
}

/* --- o canal, que e o pai ------------------------------------------------ */
#wf-host .wf-cat-canais {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#wf-host .wf-cat-canal {
    border: 1px solid var(--wf-line);
    border-radius: 12px;
    overflow: hidden;
    transition: border-color .12s ease;
}

#wf-host .wf-cat-canal:hover {
    border-color: var(--wf-text-2);
}

#wf-host .wf-cat-canal.off {
    opacity: .55;
}

#wf-host .wf-cat-canal-hdr {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 13px;
}

/* O corpo tem fundo proprio: e o que faz os chips lerem como CONTEUDO DO
   canal, e nao como uma segunda lista solta embaixo dele. */
#wf-host .wf-cat-tipos {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 11px 13px;
    background: var(--wf-hover);
    border-top: 1px solid var(--wf-line);
}

#wf-host .wf-cat-nome {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#wf-host .wf-cat-conta {
    font-size: 11px;
    color: var(--wf-text-2);
    flex: none;
    white-space: nowrap;
}

#wf-host .wf-cat-conta b {
    color: var(--color-text-01);
    font-variant-numeric: tabular-nums;
}

#wf-host .wf-cat-vazio {
    font-size: 11px;
    color: var(--wf-text-2);
    opacity: .7;
}

#wf-host .wf-cat-selo {
    font-size: 9px;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 2px 5px;
    border-radius: 4px;
    font-weight: 700;
    flex: none;
    border: 1px solid var(--wf-line);
    color: var(--wf-text-2);
}

/* --- o chip de tipo dentro do canal -------------------------------------- */
#wf-host .wf-cat-ck {
    font: inherit;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
    padding: 6px 11px;
    border-radius: 20px;
    border: 1px solid var(--wf-line);
    background: var(--color-bg);
    color: var(--wf-text-2);
    transition: all .12s ease;
}

#wf-host .wf-cat-ck:hover:not(:disabled) {
    border-color: var(--color-text-01);
    color: var(--color-text-01);
}

#wf-host .wf-cat-ck.atv {
    background: var(--color-text-01);
    border-color: var(--color-text-01);
    color: var(--color-bg);
    font-weight: 600;
}

/* TRAVADO: continua marcado e legivel, so nao clica. O cadeado explica sem
   precisar de hover; o cursor default remove a promessa de interacao. */
#wf-host .wf-cat-ck.travado {
    cursor: default;
    opacity: .9;
}

#wf-host .wf-cat-ck.travado::after {
    content: '\00a0\1F512';
    font-size: 9px;
}

#wf-host .wf-cat-ck.off {
    opacity: .4;
    text-decoration: line-through;
}

/* BARRADO - tipo da conta num canal de publicacao. Diferente do `travado`:
   aquele e "do sistema, e esta ligado"; este e "nao pode ligar aqui". Por isso
   nao leva cadeado (que diz "ja esta") e sim contorno pontilhado e tinta fraca,
   o mesmo vocabulario de indisponivel do resto da tela. O botao continua
   VISIVEL: some-lo faria a pessoa procurar por que o tipo dela nao aparece no
   Feed, que e a pergunta que o `title` responde. */
#wf-host .wf-cat-ck.barrado {
    cursor: not-allowed;
    opacity: .45;
    border-style: dotted;
}

/* --- o interruptor ------------------------------------------------------- */
/* E a acao principal da linha: desligar o que a conta nao usa e o motivo mais
   comum de abrir esta tela. Por isso vem primeiro e tem corpo. */
#wf-host .wf-cat-sw {
    width: 32px;
    height: 18px;
    border-radius: 9px;
    flex: none;
    position: relative;
    background: var(--wf-line);
    border: 0;
    cursor: pointer;
    padding: 0;
    transition: background .15s ease;
}

#wf-host .wf-cat-sw i {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--color-bg);
    transition: transform .15s ease;
}

#wf-host .wf-cat-sw.atv {
    background: var(--color-text-01);
}

#wf-host .wf-cat-sw.atv i {
    transform: translateX(14px);
}

#wf-host .wf-cat-acoes {
    display: flex;
    align-items: center;
    gap: 3px;
    flex: none;
}

#wf-host .wf-cat-nota {
    color: var(--wf-text-2);
    opacity: .4;
    cursor: help;
    padding: 0 8px;
}

/* --- o catalogo de tipos, abaixo dos canais ------------------------------ */
#wf-host .wf-cat-lst {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

#wf-host .wf-cat-it {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 9px;
    transition: background .12s ease;
}

#wf-host .wf-cat-it:hover {
    background: var(--wf-hover);
}

#wf-host .wf-cat-it.off .wf-cat-nome {
    opacity: .45;
}

#wf-host .wf-cat-it .wf-cat-nome {
    font-weight: 400;
}

#wf-host .wf-cat-nota svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
    display: block;
}

/* Formatos aceitos: le como dado clicavel, nao como botao de acao - o peso
   visual de um botao aqui competiria com o interruptor, que e o principal. */
#wf-host .wf-cat-ext {
    font: inherit;
    font-size: 11px;
    line-height: 1;
    cursor: pointer;
    flex: none;
    max-width: 210px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    padding: 4px 9px;
    border-radius: 6px;
    border: 1px dashed var(--wf-line);
    background: transparent;
    color: var(--wf-text-2);
    transition: all .12s ease;
}

#wf-host .wf-cat-ext:hover {
    border-style: solid;
    border-color: var(--color-text-01);
    color: var(--color-text-01);
}

/* Arrastavel: o cursor e a unica pista de que a linha se move. Sem alca
   dedicada porque a linha inteira ja e o alvo, e uma alca competiria com o
   interruptor, que e a acao principal. */
#wf-host .wf-cat-canal[draggable="true"] .wf-cat-canal-hdr,
#wf-host .wf-cat-it[draggable="true"] {
    cursor: grab;
}

#wf-host .wf-cat-canal[draggable="true"] .wf-cat-canal-hdr:active,
#wf-host .wf-cat-it[draggable="true"]:active {
    cursor: grabbing;
}

/* Formatos aceitos: chips agrupados por natureza do arquivo. O grupo existe
   para a leitura de relance - "este tipo aceita video?" e a pergunta real, e
   ela some numa lista corrida de dez extensoes. */
#edit-popup-mini .wfe-grupo {
    margin-top: 10px;
}

#edit-popup-mini .wfe-grupo-rot {
    display: block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--color-text-02);
    margin-bottom: 5px;
}

#edit-popup-mini .wfe-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

#edit-popup-mini .wfe-chip {
    font: inherit;
    font-size: 12px;
    line-height: 1;
    cursor: pointer;
    padding: 6px 11px;
    border-radius: 20px;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-text-02);
    transition: all .12s ease;
}

#edit-popup-mini .wfe-chip:hover {
    border-color: var(--color-text-01);
    color: var(--color-text-01);
}

#edit-popup-mini .wfe-chip.atv {
    background: var(--color-text-01);
    border-color: var(--color-text-01);
    color: var(--color-bg);
    font-weight: 600;
}

/* ===========================================================================
   VINCULO DIRECIONAMENTO <-> CONTEUDO
   ---------------------------------------------------------------------------
   Dois lugares, um vocabulario: a linha "Direcionamentos" do trilho do
   conteudo (.pp-dir) e o rodape do card na aba da marca (.obj-conteudos).

   MONOCROMATICO, como o resto do produto. A unica cor aqui e DADO - a bolinha
   de status do conteudo, que vem do banco. O TIPO do direcionamento
   (Direcionamento / Campanha / Objetivo) NAO ganha paleta: ele e classificacao,
   e classificacao se resolve com opacidade da mesma tinta. Dar tres cores a ele
   competiria com a unica cor que significa alguma coisa na mesma linha.
   =========================================================================== */

/* --- 1. A LINHA DO TRILHO, no popup do conteudo ------------------------- */

.item-post .pp-row-direcionamentos .pp-val {
    /* Os chips quebram em varias linhas quando sao muitos; o rotulo continua
       ancorado na primeira, pelo min-height de 32px que o .pp-lbl ja tem. */
    align-items: center;
    gap: 5px;
}

.item-post .pp-dir {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
    min-width: 0;
}

.item-post .pp-dir-load,
.item-post .pp-dir-vazio {
    font-size: 12.5px;
    opacity: .4;
}

.item-post .pp-dir-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    height: 26px;
    padding: 0 4px 0 9px;
    border: 1px solid var(--color-border);
    border-radius: 20px;
    background: transparent;
    font-size: 12.5px;
    line-height: 1.3;
    color: var(--color-text-01);
    transition: border-color .14s ease, background .14s ease;
}

.item-post .pp-dir-chip:hover {
    background: var(--color-hover-01);
    border-color: #0000002e;
}

/* O PONTO DO TIPO. Mesma tinta, tres pesos:
   Direcionamento (o padrao, o mais generico) e o mais discreto; Objetivo, o
   mais especifico, e o mais firme. Assim a leitura de relance ja separa "isto
   e uma campanha" de "isto e o rumo geral" sem gastar uma palavra do chip. */
.pp-dir-t {
    width: 6px;
    height: 6px;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--color-text-01);
    opacity: .25;
}

.pp-dir-t.t2 {
    opacity: .5;
}

.pp-dir-t.t3 {
    opacity: .8;
}

.item-post .pp-dir-txt {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 190px;
}

/* O X SO APARECE NO HOVER do chip - e mantem o lugar reservado o tempo todo
   (largura fixa, opacidade zero) para o chip nao mudar de tamanho quando o
   ponteiro passa e empurrar os vizinhos de linha. */
.item-post .pp-dir-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    opacity: 0;
    transition: opacity .14s ease, background .14s ease;
}

.item-post .pp-dir-chip:hover .pp-dir-x,
.item-post .pp-dir-x:focus-visible {
    opacity: .45;
}

.item-post .pp-dir-x:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .pp-dir-x svg {
    fill: var(--color-text-01);
}

/* ! ESTE "+" E O MESMO DISCO DO "+" DE RESPONSAVEL, uma linha acima no
   trilho. Ele nasceu como pilula tracejada e o resultado foi duas gramaticas de
   "adicionar" empilhadas na mesma coluna, a 40px uma da outra - o olho lia como
   dois controles diferentes. Qualquer linha nova do trilho que precise de um
   "adicionar" copia daqui. */
.item-post .pp-dir-add {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--color-bg-01);
    font-size: 12.5px;
    color: var(--color-text-01);
    cursor: pointer;
    opacity: .6;
    transition: opacity .15s ease, background .15s ease;
}

.item-post .pp-dir-add:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .pp-dir-add svg {
    fill: var(--color-text-01);
    flex: 0 0 auto;
}

/* Sozinho na linha o botao leva rotulo - sem nenhum chip ao lado, um disco de
   22px no vazio nao diz o que adiciona. Ai ele deixa de ser disco. */
.item-post .pp-dir-add.vazio {
    width: auto;
    height: 26px;
    padding: 0 11px 0 9px;
    border-radius: 20px;
    opacity: .5;
}

.item-post .pp-dir-add.vazio:hover {
    opacity: 1;
}


/* --- 2. O RODAPE DO CARD, na aba Direcionamentos da marca --------------- */

/* O card e uma PILHA DE FAIXAS de largura total separadas por fio (barra de
   data -> textarea -> este rodape). Por isso nada de margem negativa: a faixa vai
   de borda a borda e o recuo interno acompanha o do textarea (14px), para o
   icone do rodape cair na mesma vertical do texto acima dele. */
/* ! O RECUO E 6px, NAO 14px. O textarea acima tem `padding-left: 14px` e e a
   regua da faixa; mas aqui o primeiro filho e um BOTAO, que tem 8px de padding
   proprio. 6 + 8 = 14: o icone do rodape cai exatamente na vertical da primeira
   letra do texto. Repetir os 14px empurraria a faixa 8px para a direita - era o
   desalinhamento visivel no card. */
.editarPerfis #tabd2-4 .obj-conteudos {
    padding: 6px 10px 8px 6px;
    border-top: 1px solid var(--ap-line);
}

/* O aviso e texto, nao botao: aqui os 14px valem cheios. */
.editarPerfis #tabd2-4 .obj-conteudos.novo {
    padding: 9px 10px 9px 14px;
}

.editarPerfis #tabd2-4 .obj-ct-hint {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    color: var(--ap-faint);
}

.editarPerfis #tabd2-4 .obj-ct-hint svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    fill: currentColor;
}

/* Os dois controles ficam JUNTOS, a esquerda. Empurrar o "Vincular" para a
   ponta direita com margin-left:auto abria um vao de mais de mil pixels no
   card largo e os dois deixavam de se ler como um par. */
.editarPerfis #tabd2-4 .obj-ct-bar {
    display: flex;
    align-items: center;
    gap: 4px;
}

.editarPerfis #tabd2-4 .obj-ct-toggle,
.editarPerfis #tabd2-4 .obj-ct-add {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 8px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    font-size: 12px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    opacity: .45;
    transition: opacity .14s ease, background .14s ease;
}

.editarPerfis #tabd2-4 .obj-ct-toggle svg,
.editarPerfis #tabd2-4 .obj-ct-add svg {
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    fill: currentColor;
}

.editarPerfis #tabd2-4 .obj-conteudos.tem-conteudo .obj-ct-toggle,
.editarPerfis #tabd2-4 .item-objetivo:hover .obj-ct-add,
.editarPerfis #tabd2-4 .item-objetivo:focus-within .obj-ct-add,
.editarPerfis #tabd2-4 .obj-ct-toggle:focus-visible,
.editarPerfis #tabd2-4 .obj-ct-add:focus-visible {
    opacity: .75;
}

.editarPerfis #tabd2-4 .obj-ct-toggle:hover,
.editarPerfis #tabd2-4 .obj-ct-add:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* Ao lado do toggle o "+" nao repete o rotulo - o toggle ja diz do que se
   trata. Quadrado, para nao virar um segundo botao de texto competindo. */
.editarPerfis #tabd2-4 .obj-ct-add.so-ico {
    width: 26px;
    padding: 0;
    justify-content: center;
}

.editarPerfis #tabd2-4 .obj-ct-caret {
    display: inline-flex;
    opacity: .7;
    transition: transform .16s ease;
}

.editarPerfis #tabd2-4 .obj-conteudos.aberto .obj-ct-caret {
    transform: rotate(180deg);
}

/* Recolhida por padrao. `max-height` em vez de display:none para a abertura ter
   transicao; o teto e generoso e a lista rola dentro dele em vez de esticar o
   card sem fim. */
.editarPerfis #tabd2-4 .obj-ct-lst {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
    max-height: 0;
    overflow: hidden;
    opacity: 0;
    transition: max-height .18s ease, opacity .18s ease, margin .18s ease;
}

/* 8px alinha os chips com a mesma regua: o chip nao tem padding externo, entao
   ele precisa dos 8px que o botao acima ganha do proprio padding. */
.editarPerfis #tabd2-4 .obj-conteudos.aberto .obj-ct-lst {
    max-height: 168px;
    overflow: auto;
    opacity: 1;
    margin: 8px 0 2px 8px;
}

.editarPerfis .obj-ct-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    height: 26px;
    padding: 0 4px 0 8px;
    border: 1px solid var(--ap-line);
    border-radius: 20px;
    font-size: 12px;
    color: var(--color-text-01);
    transition: border-color .14s ease, background .14s ease;
}

.editarPerfis .obj-ct-chip:hover {
    background: var(--color-hover-01);
    border-color: var(--ap-faint);
}

/* A UNICA COR DA PECA: o status do conteudo, que vem do banco. */
.obj-ct-st {
    width: 6px;
    height: 6px;
    flex: 0 0 auto;
    border-radius: 50%;
}

.obj-ct-chip b {
    font-weight: 600;
    opacity: .45;
    flex: 0 0 auto;
    cursor: pointer;
}

.obj-ct-txt {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 210px;
    cursor: pointer;
}

.obj-ct-chip b:hover,
.obj-ct-txt:hover {
    text-decoration: underline;
}

.obj-ct-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    opacity: 0;
    transition: opacity .14s ease, background .14s ease;
}

.obj-ct-chip:hover .obj-ct-x,
.obj-ct-x:focus-visible {
    opacity: .45;
}

.obj-ct-x:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.obj-ct-x svg {
    fill: currentColor;
}

/* --- 3. MENU ANCORADO - escolher DIRECIONAMENTOS (lado do conteudo) ----- */

/* ! ALTURA DE LINHA FIXA, DUAS LINHAS, TITULO COM RETICENCIA.
   O texto de um direcionamento e livre e longo. Deixando quebrar, cada item
   fica com uma altura diferente, o menu passa da altura da tela e o
   posicionamento do AirpostCriar o inverte para cima - foi assim que ele
   acabou cobrindo o card que a pessoa estava editando. O teto de 268px na
   lista e o que garante que ele SEMPRE cabe embaixo do chip. */
.cr-menu-dir {
    min-width: 300px;
    max-width: 340px;
}

.cr-menu-dir .cr-menu-item {
    align-items: flex-start;
    gap: 9px;
    padding: 7px 8px;
}

.cr-menu-dir .cr-menu-item>i {
    margin-top: 6px;
}

.cr-menu-dir .cr-menu-txt {
    display: block;
    min-width: 0;
    flex: 1 1 auto;
    line-height: 1.35;
    overflow: visible;
}

/* A linha 1 e quem recorta. O `.cr-menu-txt` do kit tem ellipsis proprio, mas
   ele nao alcanca um filho que e bloco - por isso o recorte desce para ca. */
.cr-menu-dir .cr-menu-l1 {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cr-menu-dir .cr-menu-txt>em {
    display: block;
    font-style: normal;
    font-size: 11px;
    font-weight: 400;
    opacity: .45;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* A marca de verificacao do kit e centrada na linha; com item de duas linhas
   ela precisa subir para a primeira, senao flutua no meio do bloco. */
.cr-menu-dir .cr-menu-item.atv::after {
    margin-top: 6px;
}

/* --- 4. DIALOGO "Vincular conteudos" (kit .cr-* no #edit-popup-mini) ---- */

/* Por que um dialogo e nao um menu: a marca tem centenas de conteudos, o
   rotulo e a legenda, e a pessoa precisa buscar, trocar de escopo e conferir o
   que marcou. Nada disso cabe num popover ancorado a um botao. */
/* ! OS TOKENS `--ap-*` NAO EXISTEM AQUI, e isso ja custou um defeito.
   Eles sao escopados em `.editarPerfis` (o popup da marca). Este dialogo nasce
   no `#edit-popup-mini`, que e IRMAO daquele no DOM - `var(--ap-faint)` resolve
   para vazio, a declaracao inteira vira invalida e some. Foi assim que o
   checkbox da lista ficou com `border-width: 0` e simplesmente nao apareceu:
   sem erro, sem console, um quadrado de 16px transparente ocupando o lugar.

   Redeclarados aqui com os mesmos valores. Regra para qualquer peca nova fora
   de `.editarPerfis`: use os tokens GLOBAIS (--color-*) ou redeclare, nunca
   assuma que os --ap-* atravessam. */
.cr-vinc {
    --vc-line: var(--color-border);
    --vc-faint: color-mix(in srgb, var(--color-text-01) 30%, transparent);
    --vc-fill: var(--color-text-01);
}

.cr-vinc .cr-body {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-bottom: 0;
}

.vc-busca {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
}

.vc-busca:focus-within {
    border-color: var(--vc-faint);
}

.vc-busca svg {
    flex: 0 0 auto;
    fill: var(--color-text-01);
    opacity: .4;
}

.vc-busca-input {
    width: 100%;
    border: 0;
    background: transparent;
    outline: none;
    font-size: 13px;
    color: var(--color-text-01);
}

.vc-busca-input::placeholder {
    opacity: .4;
}

.vc-barra {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 2px 8px 2px;
}

.vc-escopo {
    display: inline-flex;
    gap: 2px;
    padding: 2px;
    border-radius: 9px;
    background: var(--color-hover-01);
}

.vc-esc {
    height: 24px;
    padding: 0 10px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    font-size: 12px;
    color: var(--color-text-01);
    cursor: pointer;
    opacity: .5;
    transition: opacity .14s ease, background .14s ease;
}

.vc-esc:hover {
    opacity: .8;
}

/* Monocromatico: o segmento ativo e uma superficie elevada, nao uma cor. */
.vc-esc.atv {
    opacity: 1;
    font-weight: 600;
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .07);
}

.vc-cont {
    margin-left: auto;
    font-size: 12px;
    font-weight: 500;
    opacity: .5;
}

/* Altura FIXA da lista: sem ela o dialogo pula de tamanho a cada busca - 3
   resultados encolhem a caixa, 40 esticam, e o botao Salvar muda de lugar
   debaixo do dedo. */
/* Altura FIXA: sem ela o dialogo pula de tamanho a cada busca - 3 resultados
   encolhem a caixa, 40 esticam, e o botao Salvar muda de lugar debaixo do dedo.
   O respiro de 10px no fim evita a leitura de "item cortado pela borda", que e
   como o ultimo da lista aparecia colado no rodape. */
.vc-lst {
    height: 316px;
    overflow: auto;
    overscroll-behavior: contain;
    margin: 0 -6px;
    padding: 0 6px 10px 6px;
}

.vc-item {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 46px;
    padding: 0 8px;
    border-radius: 9px;
    cursor: pointer;
    transition: background .14s ease;
}

.vc-item:hover {
    background: var(--color-hover-01);
}

.vc-check {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    border: 1.5px solid var(--vc-faint);
    border-radius: 5px;
    position: relative;
    transition: background .14s ease, border-color .14s ease;
}

.vc-item.atv .vc-check {
    background: var(--vc-fill);
    border-color: var(--vc-fill);
}

.vc-item.atv .vc-check::after {
    content: "";
    position: absolute;
    left: 4.5px;
    top: 1.5px;
    width: 4px;
    height: 8px;
    border: solid var(--color-bg);
    border-width: 0 1.8px 1.8px 0;
    transform: rotate(45deg);
}

.vc-corpo {
    min-width: 0;
    flex: 1 1 auto;
}

.vc-l1 {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    font-size: 13px;
    line-height: 1.3;
}

.vc-st {
    width: 6px;
    height: 6px;
    flex: 0 0 auto;
    border-radius: 50%;
}

.vc-l1 b {
    flex: 0 0 auto;
    font-weight: 600;
    opacity: .4;
}

.vc-ttl {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vc-l2 {
    display: block;
    margin-top: 1px;
    padding-left: 13px;
    font-size: 11.5px;
    opacity: .45;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vc-vazio,
.vc-mais {
    padding: 26px 10px;
    text-align: center;
    font-size: 12.5px;
    opacity: .45;
}

.vc-mais {
    padding: 12px 10px 4px 10px;
    font-size: 11.5px;
}

/* Tres pontos pulsando, no lugar da lista - mesma familia do `.obj-rev-load`
   da mesa de revisao da IA. */
.vc-load {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    height: 100%;
}

.vc-load span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--color-text-01);
    opacity: .25;
    animation: vc-pulsa 1s infinite ease-in-out;
}

.vc-load span:nth-child(2) {
    animation-delay: .15s;
}

.vc-load span:nth-child(3) {
    animation-delay: .3s;
}

@keyframes vc-pulsa {

    0%,
    100% {
        opacity: .18;
        transform: translateY(0);
    }

    50% {
        opacity: .55;
        transform: translateY(-3px);
    }
}

/* Falha de carga da lista do card - o unico texto solto dentro do .obj-ct-lst,
   que e um flex de chips; por isso ele nao e chip nenhum. */
.editarPerfis #tabd2-4 .obj-ct-erro {
    font-size: 12px;
    opacity: .45;
    padding: 2px 0;
}

/* O "+N" dos direcionamentos ocultos. Mesmo papel do `.item-mais` da pilha de
   responsaveis: diz que ha mais sem tentar mostra-los. Ele NAO e um chip - e o
   botao que abre o menu, e por isso repete a forma do "+". */
.item-post .pp-dir-mais {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    height: 26px;
    min-width: 26px;
    padding: 0 7px;
    border: 0;
    border-radius: 20px;
    background: var(--color-bg-01);
    font-size: 11.5px;
    font-weight: 600;
    color: var(--color-text-01);
    cursor: pointer;
    opacity: .55;
    transition: opacity .15s ease, background .15s ease;
}

.item-post .pp-dir-mais:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* --- 5. VER O DIRECIONAMENTO (popover do chip, no popup do conteudo) ---- */

/* Nasce do mesmo `.cr-menu` dos menus ancorados - herda superficie, sombra,
   posicionamento com flip e o fechamento por clique fora / Esc. O que muda e o
   conteudo: aqui nao se escolhe nada, se LE. */
.cr-menu-dirdet {
    min-width: 300px;
    max-width: 360px;
    padding: 0;
}

.pp-dp {
    padding: 12px 13px 0 13px;
}

.pp-dp-hdr {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    opacity: .45;
}

.pp-dp-hdr>em {
    margin-left: auto;
    font-style: normal;
    font-weight: 500;
    text-transform: none;
    letter-spacing: 0;
    font-size: 11.5px;
}

.pp-dp-ttl {
    margin-top: 5px;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
}

/* `pre-line` porque o direcionamento e escrito como LISTA. Achatar as quebras
   devolveria o mesmo paragrafo ilegivel que o chip ja teve de recortar - e e
   justamente o texto inteiro que a pessoa veio ver aqui. */
.pp-dp-txt {
    margin-top: 7px;
    max-height: 132px;
    overflow: auto;
    white-space: pre-line;
    font-size: 12.5px;
    line-height: 1.5;
    opacity: .7;
}

.pp-dp-sec {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid var(--color-border);
}

.pp-dp-sec-ttl {
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    opacity: .4;
    margin-bottom: 4px;
}

.pp-dp-lst {
    max-height: 160px;
    overflow: auto;
    margin: 0 -6px;
    padding: 0 6px;
}

.pp-dp-item {
    display: flex;
    align-items: center;
    gap: 7px;
    height: 30px;
    padding: 0 7px;
    margin: 0 -7px;
    border-radius: 8px;
    font-size: 12.5px;
    cursor: pointer;
    transition: background .14s ease;
}

.pp-dp-item:hover {
    background: var(--color-hover-01);
}

.pp-dp-item b {
    flex: 0 0 auto;
    font-weight: 600;
    opacity: .4;
}

.pp-dp-item-txt {
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* O conteudo aberto agora entra na lista, marcado - tira-lo faria a contagem
   daqui nao bater com a do card da marca. Ele nao navega: ja se esta nele. */
.pp-dp-item.eu {
    cursor: default;
}

.pp-dp-item.eu:hover {
    background: transparent;
}

.pp-dp-eu {
    margin-left: auto;
    flex: 0 0 auto;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    opacity: .35;
}

.pp-dp-vazio {
    padding: 6px 0 8px 0;
    font-size: 12px;
    opacity: .4;
}

.pp-dp-ftr {
    display: flex;
    gap: 6px;
    margin: 10px -13px 0 -13px;
    padding: 8px 9px;
    border-top: 1px solid var(--color-border);
}

.pp-dp-bt {
    height: 28px;
    padding: 0 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    opacity: .65;
    transition: opacity .14s ease, background .14s ease;
}

.pp-dp-bt:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

/* "Desvincular" vai para a ponta direita e nao ganha cor: destrutivo aqui e
   desfazer uma marcacao, nao apagar um documento - pintar de vermelho prometeria
   uma consequencia que a acao nao tem. */
.pp-dp-desv {
    margin-left: auto;
    opacity: .45;
}

.pp-dp-load {
    display: flex;
    align-items: center;
    gap: 5px;
    height: 30px;
}

.pp-dp-load span {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--color-text-01);
    opacity: .25;
    animation: vc-pulsa 1s infinite ease-in-out;
}

.pp-dp-load span:nth-child(2) {
    animation-delay: .15s;
}

.pp-dp-load span:nth-child(3) {
    animation-delay: .3s;
}

/* O chip agora ABRE algo - precisa dizer isso. */
.item-post .pp-dir-chip {
    cursor: pointer;
}

/* Realce do card alvo depois do "Abrir na marca". Sai sozinho em 2,4s: ele diz
   "e este", nao e um estado do card. */
.editarPerfis #tabd2-4 .item-objetivo.obj-focado {
    border-color: var(--ap-fill);
    box-shadow: 0 0 0 3px var(--ap-soft);
    transition: border-color .2s ease, box-shadow .2s ease;
}

/* Acao no rodape de um menu ancorado - a saida para o caso que a lista nao
   resolve ("o que eu quero nao esta aqui"). Largura total e separada por fio:
   ela nao e mais um item da lista, e lida como item seria escolhida por engano
   numa selecao multipla rapida. */
.cr-menu-acao {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    height: 34px;
    margin-top: 5px;
    padding: 0 8px;
    border: 0;
    border-top: 1px solid var(--color-border);
    border-radius: 0 0 9px 9px;
    background: transparent;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    opacity: .6;
    transition: opacity .14s ease, background .14s ease;
}

.cr-menu-acao:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.cr-menu-acao svg {
    flex: 0 0 auto;
    fill: currentColor;
}

/* --- 6. MENU ANCORADO COM RODAPE: a LISTA rola, o rodape fica ------------ */

/* ! `AirpostCriar.abrirMenu` encolhe o menu que nao cabe pondo `max-height` +
   `overflow:auto` NO MENU INTEIRO. Para um menu que e so lista isso esta certo;
   para estes dois - que tem rodape (o "Criar direcionamento", os botoes do
   detalhe) - o rodape entra na area rolavel e some ate alguem rolar ate o fim.
   Foi o que apareceu numa janela de 720px: o botao terminava 20px abaixo da
   borda do proprio menu.

   A correcao nao e mexer no `abrirMenu` (ele serve outros menus que rolam
   inteiros e bem): e fazer ESTES dois se organizarem por dentro. Vira coluna
   flex, o `overflow` do container e anulado e quem rola passa a ser so a lista.
   O `max-height` inline continua mandando na altura total - e ele que faz o
   menu caber na tela. */
.cr-menu-dir,
.cr-menu-dirdet {
    display: flex;
    flex-direction: column;
    /* Anula o `overflow:auto` que o abrirMenu escreve inline. */
    overflow: hidden !important;
}

.cr-menu-dir .cr-menu-busca,
.cr-menu-dir .cr-menu-acao {
    flex: 0 0 auto;
}

/* `min-height:0` e o que autoriza um item flex a encolher abaixo do proprio
   conteudo - sem ele a lista nao cede e o rodape e empurrado para fora. */
.cr-menu-dir .cr-menu-lst {
    flex: 1 1 auto;
    min-height: 0;
    /* O teto em px continua valendo em tela alta; em tela baixa quem manda e o
       flex acima, que ja encolheu o menu inteiro. */
    max-height: 268px;
}

/* O popover de detalhe tem a mesma forma: cabecalho e rodape fixos, o miolo
   rolando. Aqui sao DUAS areas rolaveis (o texto e a lista de conteudos), e as
   duas precisam poder ceder. */
.cr-menu-dirdet .pp-dp {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
}

.cr-menu-dirdet .pp-dp-hdr,
.cr-menu-dirdet .pp-dp-ttl,
.cr-menu-dirdet .pp-dp-sec-ttl,
.cr-menu-dirdet .pp-dp-ftr {
    flex: 0 0 auto;
}

.cr-menu-dirdet .pp-dp-txt {
    flex: 0 1 auto;
    min-height: 34px;
}

.cr-menu-dirdet .pp-dp-sec {
    display: flex;
    flex-direction: column;
    min-height: 0;
    flex: 1 1 auto;
}

.cr-menu-dirdet .pp-dp-lst {
    flex: 1 1 auto;
    min-height: 44px;
}

/* --- 7. DROPDOWN DE STATUS - largura elastica, com teto ----------------- */

/* `.item-status` tinha `width: 139px` cravado, e o nome do status e livre: os
   status de workflow ("Aprovacao do cliente", "Revisao interna", "Edicao de
   video") apareciam todos cortados - e cortados no meio, onde o que distingue
   um do outro costuma estar ("Aprovacao..." e do cliente ou interna?).

   Agora o item cresce com o texto e quem limita e o CONTEINER. `max-content`
   mede o maior rotulo da lista e para no teto; a reticencia volta a existir so
   depois dele, que e onde ela de fato ajuda. */
.dropdown-status {
    width: max-content;
    min-width: 152px;
    max-width: 300px;
}

.dropdown-status .item-status {
    width: auto;
    min-width: 139px;
    max-width: 100%;
    gap: 2px;
}

/* `min-width:0` autoriza o texto a encolher dentro do flex - sem ele o item
   estoura o teto do conteiner em vez de truncar. */
.dropdown-status .item-status .st-txt {
    min-width: 0;
    flex: 0 1 auto;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.popup-delta .container-grupo-btns .codigo {
    display: none;
}

/* O check continua onde sempre esteve - na ponta direita, pelo `float: right`
   de `.item-status .ck`. Com a largura elastica ele passa a formar uma coluna
   alinhada em vez de encostar no fim de cada nome, e isso e melhor: a lista
   ganha uma regua. Nao ha regra nova aqui de proposito. */
/* ============================================================
   RODAPE DE CONFIRMACAO DO CALENDARIO (.ap-dp-foot)
   So existe no picker de data do CONTEUDO (publicacao e entrega),
   onde escolher o dia salvava na hora e o redesenho do cartao
   fechava o calendario antes de o usuario chegar na hora/minuto.
   Agora a mudanca fica pendente e so e gravada por este botao -
   fechar por fora desfaz. Ver dpRodapeMonta() no footer.php.

   Sem cor de acento: usa as MESMAS variaveis --fp-* do tema do
   flatpickr (bloco la em cima), entao o dark.css ja vem junto.
   ============================================================ */
.flatpickr-calendar .ap-dp-foot {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 6px;
    padding-top: 8px;
    border-top: 1px solid var(--fp-border);

    /* Em tela curta o calendario ganha teto de altura e rola por dentro
       (dpPosiciona): grudado no fim, o "Salvar" continua a vista sem precisar
       rolar ate o fundo. Em altura normal o sticky nao muda nada - ele ja e o
       ultimo do fluxo. O -10px cobre o padding-bottom do calendario e o fundo
       opaco impede que os dias aparecam por baixo. */
    position: sticky;
    bottom: -9px;
    padding-bottom: 9px;
    margin-bottom: -9px;
    background: var(--fp-bg);
}

.flatpickr-calendar .ap-dp-resumo {
    flex: 1 1 auto;
    min-width: 0;
    text-align: left;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: -.01em;
    color: var(--fp-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* O SALVAR E A ACAO DO CALENDARIO, e acao no Airpost tem uma cor so: a tinta
   do sistema (--color-btn-bg-01), a mesma de todo botao primario - preta no
   claro, branca no escuro. Antes ele nascia cinza e so ganhava tinta quando
   havia mudanca por confirmar; o efeito era um botao que parecia desligado
   justamente na hora de convidar ao clique. */
.flatpickr-calendar .ap-dp-ok {
    flex: 0 0 auto;
    border: 0;
    padding: 6px 14px;
    border-radius: 9px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-family: inherit;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: -.01em;
    cursor: pointer;
    transition: box-shadow .16s ease, transform .1s ease, opacity .16s ease;
}

/* "Tem coisa por salvar" saiu da cor e virou halo + resumo aceso: o halo usa
   a tinta de hover do calendario, entao aparece nos dois temas (uma sombra
   preta sumiria sob o botao branco do escuro). */
.flatpickr-calendar .ap-dp-foot.is-alterado .ap-dp-ok {
    box-shadow: 0 0 0 3px var(--fp-hover);
}

.flatpickr-calendar .ap-dp-foot.is-alterado .ap-dp-resumo {
    color: var(--fp-text);
    font-weight: 600;
}

.flatpickr-calendar .ap-dp-ok:hover {
    opacity: .88;
}

.flatpickr-calendar .ap-dp-ok:active {
    transform: scale(.97);
}

/* Calendario mais alto que a folga da janela: dpPosiciona poe teto de altura e
   liga a rolagem interna. A barra fina nao rouba largura do calendario, e o
   contain impede que a rolagem, ao chegar no fim, continue no popup atras. */
.flatpickr-calendar.ap-dp-rola {
    scrollbar-width: thin;
    scrollbar-color: var(--fp-border) transparent;
    overscroll-behavior: contain;
}

.flatpickr-calendar.ap-dp-rola::-webkit-scrollbar {
    width: 8px;
}

.flatpickr-calendar.ap-dp-rola::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 8px;
    background: var(--fp-border);
    background-clip: content-box;
}

/* ------------------------------------------------------------
   FAIXA DE HORARIO DO CALENDARIO DO CONTEUDO (.ap-dp-cal)
   O flatpickr entrega a hora como dois campos numericos soltos e um ":" no
   meio da largura - logo abaixo de uma grade cheia de numeros de dois
   digitos, aquilo se lia como mais uma linha de dias. Aqui a faixa ganha
   rotulo com relogio a esquerda e os dois valores viram campos de verdade a
   direita, na mesma regua do rodape de salvar (rotulo | acao).

   Tudo escopado em .ap-dp-cal, a classe que dpRodapeMonta poe no calendario
   do conteudo: os pickers das outras telas (tarefa, objetivo, filtros) nao
   recebem o rotulo e continuam com a faixa de sempre.
   ------------------------------------------------------------ */
.flatpickr-calendar.ap-dp-cal.hasTime .flatpickr-time {
    display: flex !important;
    align-items: center;
    gap: 5px;
    height: 44px !important;
    max-height: none !important;
    line-height: normal !important;
    padding: 0 1px;
    overflow: visible !important;
}

.flatpickr-calendar.ap-dp-cal .ap-dp-hora {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-right: auto;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1;
    white-space: nowrap;
    color: var(--fp-muted);
    user-select: none;
}

.flatpickr-calendar.ap-dp-cal .ap-dp-hora svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
}

/* Os dois valores viram campo: caixa propria, largura fixa (o flex:1 do
   plugin espalhava cada um por metade do calendario). */
.flatpickr-calendar.ap-dp-cal .flatpickr-time .numInputWrapper {
    flex: 0 0 auto !important;
    width: 56px !important;
    height: 32px !important;
    border-radius: 9px;
    background: var(--fp-hover);
    transition: box-shadow .15s ease;
}

.flatpickr-calendar.ap-dp-cal .flatpickr-time .numInputWrapper:hover,
.flatpickr-calendar.ap-dp-cal .flatpickr-time .numInputWrapper:focus-within {
    background: var(--fp-hover);
    box-shadow: inset 0 0 0 1.5px var(--fp-today-ring);
}

.flatpickr-calendar.ap-dp-cal .flatpickr-time input {
    height: 32px !important;
    line-height: 32px !important;
    padding: 0 !important;
    /* numero centrado na caixa; as setas passam por cima */
    font-size: 14px !important;
    font-weight: 600 !important;
    color: var(--fp-text) !important;
    cursor: text;
}

.flatpickr-calendar.ap-dp-cal .flatpickr-time input:hover,
.flatpickr-calendar.ap-dp-cal .flatpickr-time input:focus {
    background: transparent !important;
    /* o realce agora e da caixa inteira */
}

/* O ":" herdava height e line-height da faixa inteira (50px), entao caia no
   topo dela em vez de ficar entre os dois campos. */
.flatpickr-calendar.ap-dp-cal .flatpickr-time .flatpickr-time-separator {
    width: auto !important;
    height: auto !important;
    padding: 0 1px;
    line-height: 1 !important;
    align-self: center;
    font-size: 13.5px !important;
    font-weight: 600;
    color: var(--fp-muted) !important;
}

/* As setinhas param de aparecer so no hover: sao a dica de que da para
   ajustar de 5 em 5 sem digitar. */
.flatpickr-calendar.ap-dp-cal .flatpickr-time .numInputWrapper span {
    right: 2px;
    opacity: .38;
    border: 0 !important;
    border-radius: 6px;
    transition: opacity .15s ease, background .15s ease;
}

.flatpickr-calendar.ap-dp-cal .flatpickr-time .numInputWrapper:hover span {
    opacity: 1;
}

.flatpickr-calendar.ap-dp-cal .flatpickr-time .numInputWrapper span:hover {
    background: var(--fp-hover);
}

/* ===========================================================================
   WORKSPACE - ABA ADMINISTRADORES
   ---------------------------------------------------------------------------
   Nao ha kit novo aqui: a aba reusa .wcfg-grupo / .wcfg-itens / .wcfg-item, o
   mesmo componente da aba "Marcas e espacos". Sao quatro ajustes, e cada um
   existe porque a lista e de PESSOAS, nao de itens.
   =========================================================================== */

/* REDONDO E PESSOA, quadrado e marca - a convencao do produto inteiro. O
   .wcfg-item-av nasceu com raio 9px porque so listava marca e espaco. */
.wcfg-item-av-pessoa {
    border-radius: 50%;
}

/* Sem imagem: superficie neutra e as iniciais, igual ao avatar de letra. */
.wcfg-item-av-pessoa.sem-foto {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

/* O ADMINISTRADOR ESTA "DENTRO" (.atv) E MESMO ASSIM TEM ACAO.
   O .atv nasceu como o unico estado que dispensa acao e por isso zera o cursor
   de mao; aqui ele continua tendo uma (remover), entao a mao volta. Sem esta
   regra a linha parece travada e ninguem descobre que da para rebaixar. */
.wcfg-item.wcfg-item-acao,
.wcfg-item.atv.wcfg-item-acao {
    cursor: pointer;
}

/* NAO CLICAVEL DE VERDADE: a linha do dono. Ele nao sai nem e rebaixado. */
.wcfg-item.wcfg-item-fixo,
.wcfg-item.atv.wcfg-item-fixo {
    cursor: default;
}

/* O "x" segue a mesma economia do "+": quase invisivel em repouso, aparece no
   hover. A diferenca e a cor - remover alguem nao e a mesma acao que adicionar,
   e o vermelho e o mesmo do .wcfg-bt-perigo. */
.wcfg-item-rm {
    width: 15px;
    height: 15px;
    flex-shrink: 0;
    fill: #ef5350;
    opacity: 0;
    transition: opacity .18s var(--wc-ease);
}

.wcfg-item.wcfg-item-acao:hover .wcfg-item-rm {
    opacity: .85;
}

/* Selo de papel na segunda linha do item (Dono / Administrador desde ...). */
.wcfg-item-selo {
    display: inline-block;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    padding: 1px 6px;
    border-radius: 5px;
    background: var(--color-hover-01);
    color: var(--wc-t2);
    margin-right: 6px;
}

/* ===========================================================================
   WORKSPACE - SELETOR DE ADMINISTRADOR (kit .wadm-*)
   ---------------------------------------------------------------------------
   Sub-popup sobre o popup de configuracoes (#edit-popup-medium sobre o
   #edit-popup-full).

   ATENCAO: KIT PROPRIO, e nao o .wcfg-*. As vars --wc-* sao declaradas em
   `.wcfg`, que NAO e ancestral deste popup - reusar .wcfg-item aqui daria
   `border: 1px solid var(--wc-line)` com a var indefinida, a declaracao
   inteira e descartada e a linha aparece sem borda. Nao da erro em lugar
   nenhum: quebra parecendo design ruim. Por isso .wadm declara as suas.

   MONOCROMATICO: nenhum acento de cor. O realce e a TINTA do sistema
   (--color-btn-bg-01, preto no claro e branco no escuro) e a hierarquia
   secundaria sai de peso de fonte + opacity - nunca de cor fixa.
   =========================================================================== */

.wadm {
    --wa-line: color-mix(in srgb, var(--color-text-01) 12%, transparent);
    --wa-line-forte: color-mix(in srgb, var(--color-text-01) 26%, transparent);
    --wa-t2: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    --wa-t3: color-mix(in srgb, var(--color-text-01) 50%, transparent);
    --wa-ease: cubic-bezier(.16, 1, .3, 1);
    --wa-pad: 26px;
    display: flex;
    flex-direction: column;
    min-height: 0;
    max-height: 76vh;
}

/* ATENCAO: o respiro e de CADA FAIXA, nunca do container.
   Com o padding no `.wadm` a busca nao tinha como sangrar de ponta a ponta, e
   um campo cercado de branco dos dois lados vira um bloco cinza boiando no
   meio do popup - foi assim que ele ficou feio. Faixa quer borda no limite do
   popup; para isso o container nao pode ter padding proprio. */

/* ---------- cabecalho: a identidade do workspace vem junto ---------- */
.wadm-hdr {
    display: flex;
    align-items: center;
    gap: 12px;
    /* A direita abre espaco para o X da casca, que e absoluto no canto. */
    padding: 24px 58px 18px var(--wa-pad);
}

/* Quadrado levemente arredondado, como o avatar do workspace na navegacao do
   popup de configuracoes - e a mesma entidade nas duas telas. */
.wadm-hdr-av {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    border-radius: 11px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #fff;
    font-size: 15px;
    font-weight: 600;
    line-height: 1;
}

.wadm-hdr-txt {
    min-width: 0;
}

.wadm-hdr h4 {
    margin: 0;
    font-size: 17px;
    font-weight: 550;
    letter-spacing: -.02em;
    color: var(--color-text-01);
    line-height: 1.25;
}

.wadm-hdr p {
    margin: 2px 0 0;
    font-size: 12.5px;
    color: var(--wa-t3);
    line-height: 1.3;
}

.wadm-hdr p b {
    font-weight: 600;
    color: var(--wa-t2);
}

/* ---------- a busca ----------
   E O CAMPO DO SISTEMA, nao um desenho novo.
   Valores copiados de `:where(.dropdown-generico) .dropdown-busca-input` - o
   seletor com busca do AirpostSelect, a peca de busca mais usada do produto:
   borda 1px --color-border, raio 9, padding 9/10 com 34px a esquerda para a
   lupa, fonte 14, fundo --color-bg-01, e o foco marcando a borda com a TINTA
   (--color-btn-bg-01), sem anel.

   ATENCAO - duas tentativas anteriores foram invencao, e as duas erraram pelo
   mesmo motivo:
     1. pilula de 46px, borda a 12% (invisivel) e fundo chapado: num popup de
        765px virava um slab de cinza com uma lupa perdida no canto. Fundo
        chapado escala com a largura; o conteudo dentro dele nao.
     2. faixa sangrada estilo Ctrl+K: bonita, mas uma forma que nao existe em
        nenhum outro lugar do produto - e forma nova em campo de busca faz o
        sistema parecer dois sistemas.
   Quando a duvida for "como este campo deveria ser", a resposta esta em algum
   lugar do painel3.css, nao no gosto de quem escreve. */
/* ATENCAO: a caixa do wrapper e EXATAMENTE a do input - o respiro de baixo e
   margem, e o filete e um ::after. Com `padding-bottom` aqui, o `top: 50%` da
   lupa e do "x" passaria a mirar o centro do wrapper (input + respiro), nao o
   do campo, e os dois desciam metade do respiro. Isso se conserta com um
   `margin-top` negativo casado com o padding - dois numeros que precisam ser
   mexidos juntos para sempre. Assim nao precisa de nenhum. */
.wadm-campo {
    position: relative;
    padding: 0 var(--wa-pad);
    margin-bottom: 16px;
}

.wadm-campo::after {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: -16px;
    height: 1px;
    background: var(--color-border);
}

/* Mesma posicao e mesmo tamanho do .ic-busca do dropdown: 11px para dentro da
   borda esquerda do input, que comeca no --wa-pad. */
.wadm-campo .ic-busca {
    position: absolute;
    left: calc(var(--wa-pad) + 11px);
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
    opacity: .4;
    pointer-events: none;
}

.wadm-busca {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    /* A direita tem o mesmo 34px da esquerda: o "x" mora ali, e reservar o
       espaco sempre evita o texto pular quando ele aparece. */
    padding: 9px 34px 9px 34px;
    font-size: 14px;
    font-family: inherit;
    color: var(--color-text-01);
    background: var(--color-bg-01);
    outline: none;
    transition: border-color .2s;
}

.wadm-busca::placeholder {
    color: var(--color-text-01);
    opacity: .4;
    font-weight: 400;
}

/* Foco na TINTA do sistema, sem anel - identico ao dropdown. */
.wadm-busca:focus {
    border-color: var(--color-btn-bg-01);
    box-shadow: none;
}

/* So aparece com texto: um "x" permanente num campo vazio e um botao que nao
   faz nada. Ele e o unico acrescimo ao campo padrao, e por isso vive DENTRO
   dele, no espaco que o padding-right ja reserva. */
.wadm-limpar {
    display: none;
    position: absolute;
    right: calc(var(--wa-pad) + 8px);
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    align-items: center;
    justify-content: center;
    border-radius: 5px;
    cursor: pointer;
    opacity: .45;
    transition: opacity .18s var(--wa-ease), background .18s var(--wa-ease);
}

.wadm-campo.tem-texto .wadm-limpar {
    display: flex;
}

.wadm-limpar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.wadm-limpar svg {
    width: 11px;
    height: 11px;
    fill: var(--color-text-01);
}

/* ---------- a lista ----------
   Rola sozinha; cabecalho e busca ficam. Sem isto o campo sai da tela na
   primeira rolagem, justo quando a lista e longa. A margem negativa devolve o
   respiro lateral do popup para as linhas, para o hover delas ir de ponta a
   ponta sem o texto encostar na borda. */
/* 16px a menos que as demais faixas: o hover da linha e um retangulo
   arredondado e precisa de folga lateral para nao encostar na borda do popup.
   O texto dentro dele volta ao eixo das outras faixas pelo padding da linha. */
.wadm-lst {
    margin-top: 10px;
    padding: 0 calc(var(--wa-pad) - 16px) 20px;
    overflow-y: auto;
    min-height: 0;
    flex: 1;
}

.wadm-g {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 16px 16px 8px;
}

.wadm-g:first-child {
    padding-top: 2px;
}

.wadm-g b {
    font-size: 10.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--wa-t3);
}

/* A contagem em pastilha, e nao entre parenteses: ela e um dado, o titulo e um
   rotulo - juntos no mesmo texto viram uma frase so. */
.wadm-g-n {
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
    padding: 3px 6px;
    border-radius: 20px;
    background: var(--color-hover-01);
    color: var(--wa-t2);
}

/* O aviso do grupo, em caixa baixa: ele explica a CONSEQUENCIA de promover
   alguem dali. Fica a direita e encolhe primeiro. */
/* A nota segue o titulo, e nao vai para a outra ponta da linha.
   Com `margin-left: auto` ela terminava a 400px do rotulo que explica, num
   popup de 765px - duas informacoes da mesma frase, longe demais para serem
   lidas como uma. */
.wadm-g i {
    font-style: normal;
    font-size: 11px;
    color: var(--wa-t3);
    opacity: .85;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    min-width: 0;
}

.wadm-it {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 9px 16px;
    border-radius: 11px;
    border: 1px solid transparent;
    cursor: pointer;
    user-select: none;
    transition: background .24s var(--wa-ease), border-color .24s var(--wa-ease);
}

.wadm-it:hover {
    background: var(--color-hover-01);
}

/* Redondo e pessoa - a mesma convencao do resto do produto. */
.wadm-av {
    width: 34px;
    height: 34px;
    flex: 0 0 34px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12.5px;
    font-weight: 600;
    text-transform: uppercase;
    line-height: 1;
    overflow: hidden;
}

.wadm-av-letra {
    background: var(--color-hover-01);
    color: var(--wa-t2);
}

.wadm-it-txt {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.wadm-it-nome {
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wadm-it-sub {
    font-size: 11.5px;
    color: var(--wa-t3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* EM QUAIS OUTROS WORKSPACES a pessoa aparece, em pastilha e nao no subtexto:
   la ele disputava com o e-mail e as duas informacoes viravam uma frase so,
   ilegivel em nome longo. Some no hover para dar lugar a acao. */
.wadm-onde {
    flex-shrink: 0;
    max-width: 130px;
    font-size: 10.5px;
    line-height: 1;
    padding: 4px 8px;
    border-radius: 20px;
    background: var(--color-hover-01);
    color: var(--wa-t3);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    transition: opacity .24s var(--wa-ease);
}

.wadm-it:hover .wadm-onde {
    display: none;
}

/* A ACAO E UM ROTULO, NAO UM ICONE.
   O "+" sozinho servia para "adicionar", mas aqui a acao tem consequencia
   (a pessoa passa a configurar o workspace) e um simbolo generico nao diz
   qual e. Onde ha mouse ele so aparece no hover - em forca total nas dezenas
   de linhas a lista viraria uma parede de botoes. */
.wadm-acao {
    flex-shrink: 0;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1;
    padding: 7px 12px;
    border-radius: 20px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    transition: opacity .24s var(--wa-ease), transform .24s var(--wa-ease);
}

/* VISIVEL POR PADRAO, e some so onde EXISTE hover.
   O aparecer-no-hover e o comportamento bonito no desktop, mas como padrao ele
   apaga a acao inteira no celular - toque nao tem hover, e a linha ficaria sem
   nenhuma pista de que faz alguma coisa. A regra que esconde mora no media.css,
   atras de (hover: hover). */

/* ---------- a linha de convite por e-mail ----------
   Tracejada, a mesma convencao de "ainda nao existe / falta resolver" que o
   resto do popup de workspace usa. E a acao dela nao se esconde: quando esta
   linha aparece, ela E o motivo de a pessoa estar digitando. */
.wadm-it-novo {
    border-color: var(--wa-line-forte);
    border-style: dashed;
    margin: 4px 0;
}

.wadm-it-novo:hover {
    background: var(--color-hover-01);
}

.wadm-av-novo {
    background: transparent;
    border: 1px dashed var(--wa-line-forte);
    color: var(--wa-t3);
    font-weight: 500;
}

/* ---------- estado vazio ---------- */
.wadm-vazio {
    padding: 34px 16px 26px;
    text-align: center;
}

.wadm-vazio svg {
    width: 26px;
    height: 26px;
    fill: var(--color-text-01);
    opacity: .22;
}

.wadm-vazio p {
    margin: 10px 0 4px;
    font-size: 13px;
    font-weight: 500;
    color: var(--wa-t2);
}

.wadm-vazio span {
    display: block;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--wa-t3);
}

/* O botao "Adicionar administrador" da aba: o svg alinha com o texto. */
.wcfg-bt.wcfg-adm-add {
    margin-top: 16px;
    gap: 7px;
}

.wcfg-bt.wcfg-adm-add svg {
    width: 15px;
    height: 15px;
    fill: currentColor;
}

/* O workspace de OUTRA conta no seletor de nova marca: a escolha ali decide de
   quem sera a marca e qual plano paga por ela. */
.ws-sel-dono {
    margin-left: 7px;
    font-size: 11px;
    color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
}

/* ============================================================================
   NOTAS DA MARCA - kit .nt-*
   ----------------------------------------------------------------------------
   O popup de Notas (botao "Notas" no menu do planejamento) e o IRMAO do popup de
   configuracoes da marca: mesmo cabecalho com avatar, mesma coluna de navegacao
   a esquerda, mesmas medidas. Quem abre os dois no mesmo dia nao pode achar que
   sao produtos diferentes - por isso os numeros daqui sao COPIA deliberada de
   `.editarPerfis` / `.editarPerfis.menu-lateral` (procure "menu-lateral" neste
   arquivo): avatar 38px raio 13, coluna de 196px, item raio 8 padding 9/12,
   ativo em `--color-bg-01`.

   ! VARS PROPRIAS, de proposito. As `--ap-*` do popup da marca sao escopadas em
   `.editarPerfis` e NAO existem aqui - `border: 1px solid var(--ap-line)` com a
   var indefinida invalida a declaracao inteira e a borda some sem erro nenhum.
   E a mesma armadilha que fez o formulario do Workflow ficar meses feio. Ver o
   cabecalho do kit `.wsf-*` mais acima.

   Interface MONOCROMATICA: o ativo e a tinta, nunca cor de acento.

   O corpo de cada aba e um `.ap-nota-page`, que herda TODO o visual do editor de
   blocos (documentos.css, escopo `.ap-doc-page, .ap-nota-page`). Aqui so mora a
   moldura. O layout de DUAS COLUNAS fica no media.css (min-width: 901px).
   ========================================================================== */
#edit-popup .contant .boxpop:has(.ap-notas) {
    width: 100%;
    max-width: 1100px;
}

.ap-notas {
    --nt-raio: 12px;
    --nt-raio-sm: 8px;
    --nt-muted: color-mix(in srgb, var(--color-text-01) 55%, transparent);
    --nt-faint: color-mix(in srgb, var(--color-text-01) 30%, transparent);
    --nt-ease: cubic-bezier(.16, 1, .3, 1);
    display: flex;
    flex-direction: column;
    padding: 13px 12px 12px 12px;
    /* O popup cresce com o conteudo, mas a nota nao pode empurrar o rodape para
       fora da tela: quem rola e a coluna de conteudo. */
    max-height: calc(100vh - 90px);
}

/* ---------- cabecalho (espelha .editarPerfis-header) ---------- */
.ap-notas .nt-hdr {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 0 10px 0;
    border-bottom: 1px solid var(--color-border);
    flex: 0 0 auto;
}

.ap-notas .nt-hdr-ava {
    width: 38px;
    height: 38px;
    flex: none;
    border-radius: 13px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    border: 1px solid var(--color-border);
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
}

/* Marca sem foto: htmlAvatarPerfil devolve as iniciais em vez do background. */
.ap-notas .nt-hdr-ava.avatar-perfil-letra {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
    color: var(--color-text-01);
    background-color: var(--color-hover-01);
}

.ap-notas .nt-hdr-txt {
    flex: 1;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 9px;
    /* Sobra para o X da casca (right:17px, 15px de lado). */
    padding-right: 34px;
}

.ap-notas .nt-hdr-txt h2 {
    margin: 0;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    flex: 0 0 auto;
}

.ap-notas .nt-hdr-sub {
    font-size: 13px;
    font-weight: 500;
    color: var(--nt-muted);
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ---------- corpo ----------
   Base = TOQUE: uma coluna, com a lista de abas virando uma faixa horizontal
   rolavel acima do editor. O desktop (media.css, min-width 901) e que vira as
   duas colunas. */
.ap-notas .nt-body {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.ap-notas .nt-lateral {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 10px 0 8px 0;
    border-bottom: 1px solid var(--color-border);
    overflow-x: auto;
    scrollbar-width: none;
}

.ap-notas .nt-lateral::-webkit-scrollbar {
    display: none;
}

.ap-notas .nt-lst {
    display: flex;
    align-items: center;
    gap: 2px;
    width: max-content;
}

.ap-notas .nt-it {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 9px 12px;
    border-radius: var(--nt-raio-sm);
    font-size: 14px;
    font-weight: 450;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    opacity: .75;
    user-select: none;
    transition: opacity .15s var(--nt-ease), background .15s var(--nt-ease);
}

.ap-notas .nt-it:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

.ap-notas .nt-it.atv {
    background: var(--color-bg-01);
    color: var(--color-text-01);
    font-weight: 600;
    opacity: 1;
}

.ap-notas .nt-it-txt {
    overflow: hidden;
    text-overflow: ellipsis;
}

.ap-notas .nt-it-lock svg {
    width: 11px;
    height: 11px;
    display: block;
    fill: currentColor;
    opacity: .55;
}

.ap-notas .nt-novo-wrap {
    flex: 0 0 auto;
}

.ap-notas .nt-novo {
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 9px 12px;
    border-radius: var(--nt-raio-sm);
    font-size: 13.5px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    color: var(--nt-muted);
    transition: background .15s var(--nt-ease), color .15s var(--nt-ease);
}

.ap-notas .nt-novo:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.ap-notas .nt-novo svg {
    width: 10px;
    height: 10px;
    flex: none;
    fill: currentColor;
}

/* ---------- painel de conteudo ---------- */
.ap-notas .nt-painel {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
}

.ap-notas .nt-painel-hdr {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 16px 0 0 0;
    flex: 0 0 auto;
}

.ap-notas .nt-painel-hdr:empty {
    display: none;
}

.ap-notas .nt-painel-ttl {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.2;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Selo da aba restrita: monocromatico, ao lado do titulo. E a unica pista de que
   a aba nao e visivel para o time - precisa estar onde o titulo esta. */
.ap-notas .nt-selo {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    padding: 4px 9px;
    border-radius: 999px;
    background: var(--color-bg-01);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--nt-muted);
}

.ap-notas .nt-selo svg {
    width: 10px;
    height: 10px;
    fill: currentColor;
}

.ap-notas .nt-painel-menu {
    margin-left: auto;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: var(--nt-raio-sm);
    cursor: pointer;
    transition: background .15s var(--nt-ease);
}

.ap-notas .nt-painel-menu:hover {
    background: var(--color-hover-01);
}

.ap-notas .nt-painel-menu svg {
    width: 11px;
    height: 11px;
    fill: var(--nt-muted);
}

.ap-notas .nt-corpo {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 4px 0 8px 0;
}

.ap-notas .nt-skeleton {
    padding: 15px 0;
}

.ap-notas .nt-vazio {
    padding: 48px 0;
    text-align: center;
    font-size: 14px;
    color: var(--nt-muted);
}

/* Ghost da aba sendo arrastada (setupDynamicDrag clona o item e o marca com
   .placeholder; o original ganha .dragging). */
.ap-notas .nt-it.dragging {
    opacity: .4;
}

.ap-notas .nt-it.placeholder {
    background: var(--color-hover-01);
    border-radius: var(--nt-raio-sm);
    opacity: .5;
}

/* Placeholder da aba vazia.
   :empty nao basta: no primeiro foco o editor normaliza o corpo para
   `<div><br></div>` (ensureNonEmpty, editor-text.js), entao os :has cobrem as
   duas formas de "vazio". O ::before e ABSOLUTO de proposito - em fluxo normal
   ele viraria uma linha propria e empurraria o caret para baixo. */
.ap-nota-page .t-descricao .texto {
    position: relative;
}

.ap-nota-page .t-descricao .texto:not(:focus):empty::before,
.ap-nota-page .t-descricao .texto:not(:focus):has(> br:only-child)::before,
.ap-nota-page .t-descricao .texto:not(:focus):has(> div:only-child:empty)::before,
.ap-nota-page .t-descricao .texto:not(:focus):has(> div:only-child > br:only-child)::before {
    content: attr(data-ph);
    position: absolute;
    top: 0;
    left: 0;
    color: color-mix(in srgb, var(--color-text-01) 35%, transparent);
    pointer-events: none;
}

/* Sem permissao de editar conteudo: le, nao escreve. O cinza/no-click vem do
   sistema de permissoes (.acao-conteudo-editar); aqui so some a toolbar, que
   nunca chegaria a abrir. */
.ap-nota-page.nt-travado .editor-toolbar {
    display: none !important;
}

/* ENQUADRAMENTO DO INSTAGRAM NO CARROSSEL DE FEED
   ------------------------------------------------------------------
   O Instagram enquadra TODOS os itens do carrossel pela proporcao do PRIMEIRO
   e corta o resto. Sem isto o preview mostrava cada midia inteira e mentia: o
   usuario aprovava um video em pe e o feed publicava ele cortado.

   A classe e a --ig-ratio sao postas pelo igEnquadrarCarrossel() (footer.php),
   que mede o primeiro item e prende o valor entre 4:5 e 1.91:1 - a faixa que o
   Instagram publica. Sem a classe, nada muda: carrossel de story, imagem unica
   e video unico seguem exatamente como antes.

   Ver a midia inteira continua a um clique: o AirpostViewer abre o arquivo
   original, sem corte. */
.item-post .midia .midia-uni.ig-enquadrado .midia-item {
    aspect-ratio: var(--ig-ratio, 0.8);
    overflow: hidden;
    border-radius: 9px;
    position: relative;
}

/* Imagem: object-fit resolve sozinho, e cover ja centraliza (object-position
   default e 50% 50% - o mesmo corte central que a Meta aplica). */
.item-post .midia .midia-uni.ig-enquadrado .midia-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    /* o max-height de 500px do preview padrao brigaria com o aspect-ratio */
    max-height: none;
    border-radius: 0;
    box-shadow: none;
}

/* Video e outra historia, e foi onde o enquadramento falhou primeiro.
   O <video> nao fica solto no .midia-item: o Plyr (player() no footer.php) o
   envolve em .plyr > .plyr__video-wrapper e trava ali a proporcao ORIGINAL do
   arquivo. Sem desmontar essa caixa, o video nao preenche o quadro e encosta no
   topo - era esse o sintoma. E object-fit nos dois wrappers nao faria nada: sao
   <div>, e object-fit so vale para elemento substituivel (img/video/iframe).

   As declaracoes abaixo desfazem, uma a uma, o que o plyr.css 3.6.8 aplica em
   `.plyr__video-wrapper--fixed-ratio`:
       aspect-ratio: 16/9      ->  auto    (quem enquadra e o .midia-item)
       height: 0               ->  100%
       padding-bottom: 56.25%  ->  0
   O padding leva !important porque o Plyr tambem o escreve INLINE ao calcular a
   proporcao do arquivo. Nas outras duas a especificidade daqui (6 classes contra
   1) ja basta - mesmo com o plyr.css carregando depois do painel3.css. */
.item-post .midia .midia-uni.ig-enquadrado .midia-item .player-container,
.item-post .midia .midia-uni.ig-enquadrado .midia-item .plyr,
.item-post .midia .midia-uni.ig-enquadrado .midia-item .plyr__video-wrapper {
    width: 100%;
    height: 100%;
    max-height: none;
    aspect-ratio: auto;
    padding-bottom: 0 !important;
}

.item-post .midia .midia-uni.ig-enquadrado .midia-item video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    max-height: none;
    border-radius: 0;
    box-shadow: none;
}

/* A CAPA do video - e e ela que aparece em repouso, nao o <video>.
   O Plyr desenha a thumb num .plyr__poster ABSOLUTO por cima do video (z-index 1)
   e com background-size: CONTAIN, ou seja, a capa inteira dentro do quadro, com
   tarja preta em cima e embaixo. Enquanto so o <video> estava em cover, o preview
   continuava mostrando o video "inteiro e descentralizado" antes do play: quem
   estava na tela era o poster. Cover aqui alinha a capa ao mesmo corte do video
   (o background-position: 50% 50% do Plyr ja centraliza). */
.item-post .midia .midia-uni.ig-enquadrado .midia-item .plyr__poster {
    background-size: cover;
}

/* O "expandir" sobre VIDEO sobe para o topo.
   Ele nasceu para imagem, onde bottom:6px e canto livre. No video aquele canto e
   exatamente onde o browser desenha os controles nativos - o botao cairia em cima
   do play/timeline. O irmao adjacente resolve sem :has(): no midiaItem() o
   iconExpand vem logo depois do .player-container. */
.item-post .midia-item .player-container+.expand {
    bottom: auto;
    top: 6px;
}

/* ...e ao subir, ele ENTRA NA FILA do cluster superior-direito, em vez de
   pousar em cima dela. O "expandir" tem z-index:9 e mora no mesmo canto do
   "baixar" (direita ~6px): no VIDEO os dois ficavam empilhados e o baixar
   sumia por baixo - dai o "as vezes", que era "so no video".

   O irmao geral (~) resolve sem :has(): no midiaItem() a ordem e
   .player-container, .expand, .btn-remover, .btn-download. Quando o .expand
   e o de video (o unico precedido por .player-container), os dois vizinhos
   andam um passo de 30px, e o expandir passa a ocupar a primeira vaga:

     video : expandir (7)  baixar (37)  remover (67)

   Recortar e editar-com-IA nao entram: sao so de imagem. */
.item-post .midia-item .player-container+.expand~.btn-download {
    right: 37px;
}

.item-post .midia-item .player-container+.expand~.btn-remover {
    right: 67px;
}

/* No toque o passo e de 46px (os alvos tem halo de 10px), igual ao que
   baixar/remover ja usam ali. */
@media (hover: none),
(pointer: coarse) {
    .item-post .midia-item .player-container+.expand~.btn-download {
        right: 52px;
    }

    .item-post .midia-item .player-container+.expand~.btn-remover {
        right: 98px;
    }
}

/* AVISO DE CARROSSEL MISTO - layout proprio.
   Ele herda a pele dos avisos de TikTok/limite, mas nao o layout: aqueles sao de
   uma linha curta (+ botao), e este tem duas linhas com hierarquia. Com o
   flex-wrap herdado, o texto longo nao cabia ao lado do icone e era empurrado
   para baixo dele - icone orfao em cima, texto solto embaixo.
   nowrap + min-width:0 fazem o texto encolher e quebrar DENTRO da propria coluna,
   ao lado do icone, que e o que se espera de um aviso. */
.item-post .aviso-midia-mistura {
    flex-wrap: nowrap;
    align-items: flex-start;
    gap: 9px;
    padding: 9px 11px;
    line-height: 1.35;
}

/* O icone acompanha a PRIMEIRA linha do texto, nao o centro do bloco: com
   align-items:center ele descia para o meio das duas linhas. */
.item-post .aviso-midia-mistura .ico {
    margin-top: 1px;
}

.item-post .aviso-midia-mistura .txt {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.item-post .aviso-midia-mistura .txt b {
    font-weight: 600;
}

/* A linha de baixo e o detalhe, nao a regra - mas a hierarquia vem de PESO e
   TAMANHO, nao de opacidade. Com opacity .72 a segunda linha caia para ~2.8:1
   de contraste sobre o bege do aviso (#8a6520 diluido em #fdf9ef), abaixo do
   minimo de 4.5:1 que texto pequeno exige. Na tinta cheia ela fica em ~5:1 e
   continua lendo como secundaria, porque e 1px menor e sem o peso 600. */
.item-post .aviso-midia-mistura .txt em {
    font-style: normal;
    font-size: 11px;
    font-weight: 400;
}

/* SELETOR DE REDES - estado e sinal
   ------------------------------------------------------------------
   O item da rede tinha dois estados (opacity .25 com borda tracejada / opacity 1
   com borda preta) e nada alem disso: se a publicacao ia falhar naquela rede, o
   usuario so descobria no Log de Publicacao, depois de agendar.

   Agora cada rede MARCADA carrega um selo no canto: check quando esta de pe,
   exclamacao quando vai falhar - com o motivo no title (postProblemaDaRede no
   footer.php monta a frase, a mesma que o worker gravaria no log).
   Rede desmarcada nao recebe selo: nao vai publicar, nao ha o que avisar. */
/* ! Quem separa inativo de ativo continua sendo o OPACITY, e isso e de
   proposito. Trocar por uma cor fixa (um cinza preto-transparente) parece mais
   elegante e funciona no tema claro, mas no escuro o inativo vira branco solido
   - mais destacado que o ativo, o oposto do que deve comunicar. O opacity e a
   unica forma que se comporta nos dois temas sem duplicar regra no dark.css.
   Cor sai de --color-text-01, que ja inverte sozinha. */
.item-post .redes-ativas .redes-item {
    position: relative;
    width: 25px;
    height: 25px;
    border-radius: 8px;
    opacity: 0.3;
    fill: var(--color-text-01, #000);
    border: 1px dashed;
    transition: opacity .15s, border-color .15s, background .15s;
}

.item-post .redes-ativas .redes-item:hover {
    opacity: 0.6;
}

/* O fill precisa ser dito aqui tambem: as cores de marca so existem para
   Instagram/Facebook/LinkedIn/YouTube (`.instagram.atv` e cia, mais acima, com
   !important) - o TikTok nao tem regra propria e herdaria o cinza do inativo. */
.item-post .redes-ativas .redes-item.atv {
    opacity: 1;
    fill: var(--color-text-01, #000);
    border: 1px solid var(--color-btn-bg-01, #000);
    background: transparent;
}

/* respiro para o selo nao encostar no icone vizinho */
.item-post .pp-row-redes .redes-ativas {
    gap: 7px;
}

/* ! As variaveis certas aqui sao o PAR botao (--color-btn-bg-01 /
   --color-btn-text-01): elas ja invertem sozinhas no tema escuro, entao o selo
   sai preto-com-check-branco no claro e branco-com-check-preto no escuro, sem
   uma linha de dark.css. O anel usa --color-bg, que e o fundo real da pagina.
   Nada de --color-bg-01: apesar do nome, ela e um veu de 5% de alpha
   (#2946540d) e o glifo pintado com ela fica invisivel. */
.item-post .redes-ativas .rd-sinal {
    position: absolute;
    top: -3px;
    right: -3px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    display: none;
    align-items: center;
    justify-content: center;
    /* o anel da cor do fundo recorta o selo do icone que esta atras */
    box-shadow: 0 0 0 1.5px var(--color-bg, #fff);
    background: var(--color-btn-bg-01, #000);
    color: var(--color-btn-text-01, #fff);
}

.item-post .redes-ativas .redes-item.atv .rd-sinal {
    display: flex;
}

.item-post .redes-ativas .rd-sinal svg {
    width: 9px;
    height: 9px;
    display: block;
}

/* O fill/stroke precisa ser dito por elemento: o `fill` do .redes-item e
   herdado e sobrescreve os atributos de apresentacao do proprio SVG (CSS ganha
   de atributo), entao o traco do check e o ponto do "!" sumiriam. */
.item-post .redes-ativas .rd-sinal svg path {
    fill: none;
    stroke: currentColor;
}

.item-post .redes-ativas .rd-sinal svg circle {
    fill: currentColor;
    stroke: none;
}

/* Ambar e a tinta de AVISO ja estabelecida no projeto (mesma dos
   .aviso-midia-*), e nao uma cor de acento nova: a regua monocromatica vale
   para o estado ativo, que aqui continua sendo a borda preta do item. */
.item-post .redes-ativas .redes-item.rd-alerta .rd-sinal {
    background: #c9911c;
    /* branco fixo: o ambar e escuro o bastante nos dois temas, e o
       --color-btn-text-01 viraria preto no escuro, sumindo dentro do selo. */
    color: #fff;
}

/* A rede com problema tambem se marca no proprio quadro, para o olho achar qual
   e sem precisar cacar o selo.
   Leva `.atv` junto (5 classes) porque o dark.css tem
   `.item-post .redes-ativas .redes-item.atv { border-color: #fff }` com as
   mesmas 4 classes e carregando DEPOIS - no empate ele venceria e a borda de
   alerta sumiria justamente no tema escuro. */
.item-post .redes-ativas .redes-item.atv.rd-alerta {
    border-color: #c9911c;
    background: #c9911c1f;
}


/* CLONE QUE SEGUE O DEDO (setupDynamicDrag com `touch: true`)
   O arraste por toque nao tem imagem nativa como o HTML5 DnD; sem esta copia
   nada acompanha o dedo e o movimento fica cego. Ela vive no <body>, entao a
   regra e solta: nao ha lista para escopar. */
.drag-fantasma {
    position: fixed;
    z-index: 100000;
    pointer-events: none;
    list-style: none;
    margin: 0;
    border-radius: 5px;
    background-size: cover;
    opacity: .92;
    transform: scale(1.12);
    box-shadow: 0 8px 20px rgba(0, 0, 0, .28);
}

/* =====================================================================
   ABA CONEXOES - GUIA "COMO CONECTAR" E DESTINO DO LINKEDIN
   Complementa o bloco "ABA CONEXOES" mais acima; mesma linguagem
   monocromatica (a tinta e --ap-fill, nunca uma cor de acento) e mesmos
   tokens de tema, entao claro e dark viram sozinhos.
   ===================================================================== */

/* Botao de ajuda no cabecalho do card. Fica ANTES do badge de status e
   encolhe para 0 de largura no hover do card? Nao: e discreto o tempo todo
   (opacidade baixa) e ganha contraste no hover, porque em card ja conectado
   ele continua sendo a resposta para "por que a Pagina nao aparece?". */
.editarPerfis .rede-guia {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    cursor: pointer;
    opacity: .45;
    transition: opacity .15s ease, background .15s ease;
}

.editarPerfis .rede-guia:hover {
    opacity: 1;
    background: var(--ap-hover);
}

.editarPerfis .rede-guia svg {
    width: 17px;
    height: 17px;
    fill: var(--color-text-01);
}

/* ------------------------------------------------------------------
   LINKEDIN - lista de destinos (perfil pessoal + Paginas administradas)
   ------------------------------------------------------------------ */
.editarPerfis .li-contas,
.li-escolher .li-contas {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 4px;
    border: 1px solid var(--ap-line);
    border-radius: var(--ap-radius-sm);
}

.editarPerfis .li-conta,
.li-escolher .li-conta {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px;
    border-radius: 6px;
    cursor: pointer;
    transition: background .12s ease;
}

.editarPerfis .li-conta:hover,
.li-escolher .li-conta:hover {
    background: var(--ap-hover);
}

/* O destino EM USO nao e clicavel: sem o cursor default ele parecia um
   botao que nao responde. */
.editarPerfis .li-conta.atual,
.li-escolher .li-conta.atual {
    cursor: default;
    background: var(--ap-soft);
}

.editarPerfis .li-conta-av,
.li-escolher .li-conta-av {
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--ap-soft);
}

.editarPerfis .li-conta-av.ph,
.li-escolher .li-conta-av.ph {
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: inset 0 0 0 1px var(--ap-line);
}

.editarPerfis .li-conta-av.ph svg,
.li-escolher .li-conta-av.ph svg {
    width: 16px;
    height: 16px;
    fill: #0A66C2;
}

.editarPerfis .li-conta-info,
.li-escolher .li-conta-info {
    flex: 1 1 auto;
    min-width: 0;
}

.editarPerfis .li-conta-info b,
.li-escolher .li-conta-info b {
    display: block;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--color-text-01);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.editarPerfis .li-conta-info span,
.li-escolher .li-conta-info span {
    display: block;
    margin-top: 1px;
    font-size: 11.5px;
    color: var(--ap-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* "Usar esta" so aparece no hover; "Em uso" fica sempre, porque e o rotulo
   que responde "qual e a conta desta marca?" sem exigir interacao. */
.editarPerfis .li-conta-acao,
.li-escolher .li-conta-acao {
    flex: 0 0 auto;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--ap-muted);
    opacity: 0;
    transition: opacity .12s ease;
}

.editarPerfis .li-conta:hover .li-conta-acao,
.li-escolher .li-conta:hover .li-conta-acao,
.editarPerfis .li-conta.atual .li-conta-acao,
.li-escolher .li-conta.atual .li-conta-acao {
    opacity: 1;
}

.editarPerfis .rede-trocar {
    display: flex;
}

.editarPerfis .btn-li-trocar,
.editarPerfis .btn-yt-trocar {
    font-size: 12px;
    font-weight: 600;
    color: var(--ap-muted);
    cursor: pointer;
    padding: 2px 0;
    border-bottom: 1px solid transparent;
    transition: color .12s ease, border-color .12s ease;
}

.editarPerfis .btn-li-trocar:hover,
.editarPerfis .btn-yt-trocar:hover {
    color: var(--color-text-01);
    border-bottom-color: var(--ap-faint);
}


/* ------------------------------------------------------------------
   POPUP DO GUIA (#edit-popup-mini)
   Os tokens --ap-* sao declarados em .editarPerfis, e este popup vive
   FORA dele: sem redeclarar aqui, toda borda e todo cinza virariam vazio
   e o conteudo apareceria solto na tela branca.
   ------------------------------------------------------------------ */
.edicao-popup.guia-rede {
    --ap-radius-sm: 8px;
    --ap-line: var(--color-border);
    --ap-soft: var(--color-bg-01);
    --ap-muted: color-mix(in srgb, var(--color-text-01) 55%, transparent);
    --ap-faint: color-mix(in srgb, var(--color-text-01) 30%, transparent);
}

.edicao-popup.guia-rede,
.edicao-popup.guia-rede * {
    box-sizing: border-box;
}

.edicao-popup.guia-rede .html {
    display: flex;
    flex-direction: column;
    gap: 18px;
    padding: 4px 2px 8px;
}

.edicao-popup.guia-rede .gr-sub {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--ap-muted);
}

.edicao-popup.guia-rede .gr-bloco h6 {
    margin: 0 0 8px;
    padding: 0;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--ap-muted);
}

.edicao-popup.guia-rede ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.edicao-popup.guia-rede li {
    font-size: 13px;
    line-height: 1.55;
    color: var(--color-text-01);
}

.edicao-popup.guia-rede li b {
    font-weight: 600;
}

/* Requisitos e limites: marcador de traco, porque nao ha ordem entre eles. */
.edicao-popup.guia-rede .gr-req li,
.edicao-popup.guia-rede .gr-lim li {
    position: relative;
    padding-left: 16px;
}

.edicao-popup.guia-rede .gr-req li::before,
.edicao-popup.guia-rede .gr-lim li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 9px;
    width: 7px;
    height: 1.5px;
    background: var(--ap-faint);
}

/* Passos: numeracao real, porque a ORDEM e a informacao. O contador vem do
   CSS e nao do JS para o HTML continuar sendo so a lista. */
.edicao-popup.guia-rede .gr-passos {
    counter-reset: gr;
    gap: 11px;
}

.edicao-popup.guia-rede .gr-passos li {
    counter-increment: gr;
    position: relative;
    padding-left: 32px;
    min-height: 22px;
}

.edicao-popup.guia-rede .gr-passos li::before {
    content: counter(gr);
    position: absolute;
    left: 0;
    top: 0;
    width: 22px;
    height: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--ap-soft);
    box-shadow: inset 0 0 0 1px var(--ap-line);
    font-size: 11px;
    font-weight: 700;
    color: var(--color-text-01);
}

.edicao-popup.guia-rede .gr-link {
    align-self: flex-start;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-text-01);
    text-decoration: none;
    border-bottom: 1px solid var(--ap-faint);
    padding-bottom: 1px;
}

.edicao-popup.guia-rede .gr-link:hover {
    border-bottom-color: var(--color-text-01);
}

/* ------------------------------------------------------------------
   POPUP "ONDE ESTA MARCA PUBLICA?" (#edit-popup-mini)
   Abre no fim do login do LinkedIn e pelo botao "Publicar em outra
   conta" do card. Reusa as classes .li-conta* (os seletores acima ja
   valem aqui), mas os tokens --ap-* sao declarados em .editarPerfis e
   este popup vive FORA dele: sem redeclarar, some toda borda e todo
   cinza. Mesma armadilha do popup do guia de redes.
   ------------------------------------------------------------------ */
.edicao-popup.li-escolher {
    --ap-radius-sm: 8px;
    --ap-line: var(--color-border);
    --ap-soft: var(--color-bg-01);
    --ap-hover: var(--color-hover-01);
    --ap-muted: color-mix(in srgb, var(--color-text-01) 55%, transparent);
    --ap-faint: color-mix(in srgb, var(--color-text-01) 30%, transparent);
}

.edicao-popup.li-escolher,
.edicao-popup.li-escolher * {
    box-sizing: border-box;
}

.edicao-popup.li-escolher .html {
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 4px 2px 8px;
}

.edicao-popup.li-escolher .li-escolher-sub {
    margin: 0;
    font-size: 13px;
    line-height: 1.55;
    color: var(--ap-muted);
}

.edicao-popup.li-escolher .li-escolher-sub b {
    font-weight: 600;
    color: var(--color-text-01);
}

/* A lista pode ter muitas Paginas: rola dentro do popup em vez de
   empurrar o rodape para fora da tela. */
.edicao-popup.li-escolher .li-escolher-lista {
    max-height: 46vh;
    overflow-y: auto;
}

.edicao-popup.li-escolher .li-escolher-acoes {
    display: flex;
}

.edicao-popup.li-escolher .btn-li-recarregar {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ap-muted);
    cursor: pointer;
    padding: 2px 0;
    border-bottom: 1px solid transparent;
    transition: color .12s ease, border-color .12s ease;
}

.edicao-popup.li-escolher .btn-li-recarregar:hover {
    color: var(--color-text-01);
    border-bottom-color: var(--ap-faint);
}

/* Enquanto busca no LinkedIn: sem cursor de clique e sem hover, senao o
   botao parece continuar disponivel durante a chamada de rede. */
.edicao-popup.li-escolher .btn-li-recarregar.carregando {
    cursor: default;
    opacity: .55;
    border-bottom-color: transparent;
}

.edicao-popup.li-escolher .li-escolher-rodape {
    margin: 0;
    border-top: 1px solid var(--ap-line);
    padding-top: 12px;
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--ap-muted);
}

/* =====================================================================
   CABECALHO DO PLANEJAMENTO - REDES CONECTADAS CLICAVEIS
   Os icones ja existiam (bloco .redes-conectadas mais acima); aqui eles
   viram um ATALHO para a aba Conexoes, e o mesmo espaco passa a ter um
   estado vazio quando a marca nao tem nenhuma rede.

   Tudo por TOKEN: o cartao da marca e claro no tema claro (mascara branca)
   e escuro no escuro. A primeira versao usava branco fixo com alfa e o
   convite "Conectar redes" sumia no tema claro.
   ===================================================================== */

/* Alvo de clique com folga: os icones tem 11px e, encostados no canto do
   card, sao dificeis de acertar. A margem negativa compensa o padding para
   nada se mexer em relacao a posicao absoluta original. */
.menu-planejamento .hdr-perfil .redes-conectadas {
    cursor: pointer;
    align-items: center;
    gap: 7px;
    padding: 6px 8px;
    margin: -6px -8px;
    border-radius: 10px;
    transition: background .18s var(--glass-ease, ease);
}

.menu-planejamento .hdr-perfil .redes-conectadas svg {
    transition: transform .2s var(--glass-ease, ease);
}

.menu-planejamento .hdr-perfil .redes-conectadas:hover {
    background: var(--color-hover-01);
}

.menu-planejamento .hdr-perfil .redes-conectadas:hover svg {
    transform: translateY(-1px);
}

/* O convite: pilula de vidro com o traco do sistema, do tamanho de uma
   linha de icones - nao e um botao que disputa com o nome da marca. No
   hover vira a TINTA do sistema (preto no claro, branco no escuro). */
.menu-planejamento .hdr-perfil .redes-conectadas.vazia {
    padding: 0;
    margin: 0;
    border-radius: 100px;
    margin-top: -5px;
}

.menu-planejamento .hdr-perfil .redes-conectadas.vazia:hover {
    background: transparent;
}

.menu-planejamento .hdr-perfil .rede-conectar-mini {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    /* 21px: com 24 a pilula encostava no topo do logo da marca, logo abaixo. */
    height: 21px;
    margin-top: -2px;
    padding: 0 9px 0 7px;
    border-radius: 100px;
    border: 1px solid var(--color-border);
    background: color-mix(in srgb, var(--color-bg) 70%, transparent);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    color: var(--color-text-01);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: -.005em;
    line-height: 1;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .04);
    transition: background .18s var(--glass-ease, ease), color .18s ease, border-color .18s ease, transform .2s var(--glass-ease, ease);
}

.menu-planejamento .hdr-perfil .rede-conectar-mini svg {
    width: 11px !important;
    height: 11px !important;
    fill: none !important;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    opacity: .75;
}

.menu-planejamento .hdr-perfil .rede-conectar-mini.pausada {
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
    border-style: dashed;
}

.menu-planejamento .hdr-perfil .redes-conectadas.vazia:hover .rede-conectar-mini {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    border-style: solid;
    color: var(--color-btn-text-01);
    transform: translateY(-1px);
}

.menu-planejamento .hdr-perfil .redes-conectadas.vazia:hover .rede-conectar-mini svg {
    opacity: 1;
}

/* =========================================================================
   DASHBOARD > CARTAO DE MARCAS - progresso em cima, distribuicao embaixo
   -------------------------------------------------------------------------
   A linha da marca respondia "onde os conteudos estao parados" (barra
   empilhada por etapa) no lugar onde se pergunta "esta marca esta adiantada
   ou atrasada?". Duas marcas com a mesma distribuicao podem estar em pontos
   opostos do mes, e o olho nao soma peso de etapa sozinho.

   Agora a linha tem os dois, na ordem da pergunta: a barra de PROGRESSO com
   o percentual, e abaixo a DISTRIBUICAO por etapa com legenda - o mesmo par
   que o "Progresso total" do topo da tela ja usa (medidor + barra + legenda).
   ========================================================================= */
.contant-dashboard-home .totais-perfis .mk-prog {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 9px 0 5px;
}

.contant-dashboard-home .totais-perfis .mk-prog-bar {
    flex: 1 1 auto;
    height: 8px;
    border-radius: 100px;
    background: var(--color-bg-01);
    overflow: hidden;
}

/* Monocromatico: o progresso e a tinta do sistema, nao uma cor de acento -
   as cores desta linha pertencem as ETAPAS, que sao escolha do usuario e
   vivem na barra de baixo. Usar cor aqui competiria com elas. */
.contant-dashboard-home .totais-perfis .mk-prog-bar span {
    display: block;
    height: 100%;
    border-radius: 100px;
    background: var(--color-btn-bg-01);
    transition: width .35s cubic-bezier(.16, 1, .3, 1);
}

.contant-dashboard-home .totais-perfis .mk-prog-num {
    flex: 0 0 auto;
    min-width: 38px;
    text-align: right;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-01);
    line-height: 1;
}

.contant-dashboard-home .totais-perfis .mk-prog-num i {
    font-style: normal;
    font-size: 10px;
    font-weight: 500;
    opacity: .5;
    margin-left: 1px;
}

/* Os tons seguem os mesmos limiares da meta (.mk-meta), para as duas leituras
   da linha nao discordarem: bateu / perto / longe. */
.contant-dashboard-home .totais-perfis .mk-prog.ok .mk-prog-bar span {
    background: var(--ac-dono);
}

.contant-dashboard-home .totais-perfis .mk-prog.ok .mk-prog-num {
    color: var(--ac-dono);
}

.contant-dashboard-home .totais-perfis .mk-prog.quase .mk-prog-bar span {
    background: #c9a227;
}

.contant-dashboard-home .totais-perfis .mk-prog.zero .mk-prog-num {
    opacity: .4;
}

/* A distribuicao vira o DETALHE: mais fina e sem competir com a barra acima.
   O gap de 2px e estrutural - as cores das etapas sao escolhidas pelo usuario
   e a tela nao tem como garantir que duas vizinhas contrastem; o que ela
   garante e que nunca se encostem. */
.contant-dashboard-home .totais-perfis .item .status {
    display: flex;
    gap: 2px;
    height: 5px;
    border-radius: 100px;
    overflow: hidden;
    background: var(--color-bg-01);
}

.contant-dashboard-home .totais-perfis .item .status div {
    height: 100%;
    min-width: 3px;
    /* a etapa de 1 item precisa existir na barra */
    border-radius: 100px;
}

.contant-dashboard-home .totais-perfis .item .status .mk-vazio {
    background: transparent;
}

.contant-dashboard-home .totais-perfis .mk-leg {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
    margin-top: 6px;
}

.contant-dashboard-home .totais-perfis .mk-leg-it {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 10.5px;
    color: #8a8a8a;
    line-height: 1.3;
}

.contant-dashboard-home .totais-perfis .mk-leg-it i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.contant-dashboard-home .totais-perfis .mk-leg-it b {
    color: var(--color-text-01);
    font-weight: 600;
}

/* =========================================================================
   PREVIEW DE VIDEO ANTES DO UPLOAD (#vp-modal, window.VideoPreview)
   -------------------------------------------------------------------------
   Duas familias de classe, com papeis separados:

   .vp-*   a janela - casca, palco, coluna de informacao, acoes.
   .vpm-*  o MOCKUP da rede: a tela do app desenhada por cima (Reels, Story)
           ou em volta (feed, carrossel) do video.

   O mockup e intencionalmente monocromatico em branco sobre o video, como as
   interfaces que ele imita. Ele nao precisa ser bonito: precisa estar no
   lugar CERTO, porque e a posicao - e nao a cor - que responde "meu texto vai
   ficar atras de alguma coisa?".

   A JANELA TEM DUAS MESAS, e essa e a decisao de desenho que sustenta o
   resto: a esquerda a MESA ESCURA, onde so existe o video; a direita o PAPEL
   claro, onde estao as decisoes. Antes as duas eram brancas, e o palco - que
   ocupa um terco da largura por ser vertical - ficava como um retangulo preto
   perdido num vazio branco de 380px. Escura, a sobra vira moldura de cinema:
   a mesma area, lida como intencao em vez de espaco que faltou preencher.
   ========================================================================= */
/* -------------------------------------------------------------------------
   A REGUA. UMA medida de borda (--vp-pad) para o cabecalho, as duas colunas e
   o rodape - as quatro bordas caem na mesma vertical - e um passo unico
   (--vp-gap) com meio passo para o detalhe. Quatro degraus de tipografia,
   nenhum quebrado. */
:root {
    --vp-surface: #fff;
    --vp-mesa: #0c0d10;
    /* a mesa escura: fundo da coluna do palco */
    --vp-palco: #0b0b0b;
    --vp-trilho: #f4f5f7;
    /* fundo dos campos calmos no lado claro */
    --vp-pad: 18px;
    --vp-gap: 14px;
    --vp-gap-s: 7px;
    --vp-r: 10px;
    /* raio interno (chips, botoes, miniaturas) */
    --vp-fs-tit: 15px;
    --vp-fs-txt: 12.5px;
    --vp-fs-sub: 11.5px;
    --vp-fs-mic: 10.5px;
    --vp-mudo: #8b9099;
    /* texto de apoio - um cinza so, nao quatro */
}

.vp-modal {
    position: fixed;
    inset: 0;
    z-index: 10020;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.vp-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .6);
    backdrop-filter: blur(6px) saturate(115%);
    -webkit-backdrop-filter: blur(6px) saturate(115%);
    cursor: pointer;
    animation: vp-fundo .18s ease both;
}

/* A janela sobe por SOMBRA, nao por borda grossa: uma sombra longa e difusa
   com um contato curto embaixo e o que separa a janela do fundo sem desenhar
   um retangulo em volta dela. */
.vp-box {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 870px;
    max-height: 92vh;
    background: var(--vp-surface);
    border: 1px solid var(--color-border);
    border-radius: 18px;
    box-shadow:
        0 1px 2px rgba(0, 0, 0, .10),
        0 40px 80px -32px rgba(0, 0, 0, .42);
    overflow: hidden;
    animation: vp-entrar .22s cubic-bezier(.2, .8, .3, 1) both;
}

/* A janela ENTRA. Aparecer instantaneamente sobre o popup do conteudo nao diz
   de onde ela veio; 220ms subindo 8px dizem, e e o que separa "abriu" de
   "piscou". */
@keyframes vp-entrar {
    from {
        opacity: 0;
        transform: translateY(10px) scale(.985);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes vp-fundo {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@media (prefers-reduced-motion: reduce) {

    .vp-box,
    .vp-overlay {
        animation: none;
    }
}

/* O FOCO E DESENHADO PELA JANELA, nao pelo navegador. O anel azul padrao do
   Chrome ficava em volta do modo aceso depois de qualquer clique - a unica
   cor de uma interface monocromatica, e ela aparecia por acidente. */
#vp-modal button:focus {
    outline: none;
}

#vp-modal button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--vp-surface), 0 0 0 4px var(--color-btn-bg-01);
}

.vp-col-palco button:focus-visible {
    box-shadow: 0 0 0 2px var(--vp-mesa), 0 0 0 4px rgba(255, 255, 255, .85);
}

/* ---- Cabecalho ---------------------------------------------------------
   O chip de destino estava solto no canto direito, a meia janela de distancia
   do nome do arquivo - duas informacoes sobre a MESMA coisa em pontas opostas
   da faixa. Ele desce para a segunda linha, colado ao arquivo: "este arquivo,
   indo para este lugar". O X fica sozinho na direita, que e onde se procura
   um X. */
.vp-hdr {
    display: flex;
    align-items: flex-start;
    gap: var(--vp-gap-s);
    padding: var(--vp-gap) var(--vp-pad);
    border-bottom: 1px solid var(--color-border);
    flex: 0 0 auto;
}

.vp-hdr-txt {
    flex: 1 1 auto;
    min-width: 0;
}

.vp-hdr-tit {
    font-size: var(--vp-fs-tit);
    font-weight: 600;
    letter-spacing: -.15px;
    color: var(--color-text-01);
    line-height: 1.25;
}

.vp-hdr-sub {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    margin-top: 4px;
}

.vp-hdr-arq {
    font-size: var(--vp-fs-sub);
    color: var(--vp-mudo);
    line-height: 1.35;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* CHIP DE DESTINO. E a decisao que manda em tudo o que a janela mostra -
   proporcao do palco, mockup e redes possiveis saem dele. Monocromatico: e
   um fato, nao um estado, entao nao usa a tinta do sistema. */
.vp-destino {
    flex: 0 0 auto;
    height: 20px;
    display: inline-flex;
    align-items: center;
    padding: 0 8px;
    border-radius: 6px;
    background: var(--vp-trilho);
    border: 1px solid var(--color-border);
    color: var(--color-text-01);
    font-size: var(--vp-fs-mic);
    font-weight: 600;
    letter-spacing: .3px;
    text-transform: uppercase;
    white-space: nowrap;
}

/* ! A classe e `vp-fechar-x`, nao `vp-fechar`: esta ultima e o gancho do
   handler e esta TAMBEM no botao "Escolher outro" do rodape (os dois
   cancelam). Estilizar por ela dava 30x30 num botao de texto - o rotulo saia
   esmagado atras do "Enviar video". */
.vp-fechar-x {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    background: transparent;
    border: none;
    border-radius: 8px;
    color: var(--vp-mudo);
    cursor: pointer;
    padding: 0;
    transition: .15s;
}

.vp-fechar-x svg {
    width: 16px;
    height: 16px;
}

.vp-fechar-x:hover {
    color: var(--color-text-01);
    background: var(--color-hover-01);
}

.vp-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 348px;
    min-height: 0;
    flex: 1 1 auto;
    overflow: hidden;
    position: relative;
}

/* ---- A mesa escura -----------------------------------------------------
   Nao ha borda entre as colunas: a troca de fundo ja e a fronteira, e uma
   linha por cima dela seria a segunda vez que a mesma coisa e dita. */
.vp-col-palco {
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: var(--vp-pad);
    min-width: 0;
    min-height: 0;
    background: radial-gradient(115% 85% at 50% -10%, #1c1e24 0%, var(--vp-mesa) 60%);
}

.vp-palco-wrap {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    place-items: center;
}

/* O palco e o aparelho: fundo escuro, cantos arredondados, o video dentro.
   Em Reels/Story ele TEM a proporcao da tela (9:16) e o video preenche; no
   feed ele cresce para caber o card e quem tem proporcao e a midia.

   `max-height: 100%` no lugar do antigo `56vh`: quem sabe quanta altura
   sobrou depois do cabecalho, da barra de modos e do rodape e a COLUNA, nao
   uma fracao chutada da tela. Num monitor de 717px de altura isso e a
   diferenca entre 401px e 443px de palco - 10% de video de graca. */
/* ! A ALTURA E DEFINIDA (100% do wrap) e a LARGURA sai da razao. O caminho
   inverso - palco do tamanho do conteudo - parece equivalente e nao e: o
   conteudo do palco e a midia, que pede `height:100%` DELE, e a dependencia
   circular fazia o navegador cair no tamanho intrinseco do arquivo. Funcionava
   por acidente enquanto o <video> estava em fluxo (o 9:16 do arquivo dava o
   numero, e um `56vh` cortava o excesso); com o video absoluto, que e o que
   torna o recorte do cartao verdadeiro, nao sobra intrinseco nenhum e o palco
   colapsa para zero. Com a altura vinda do wrap, a regua e sempre a coluna. */
.vp-palco {
    position: relative;
    height: 100%;
    width: auto;
    max-width: 100%;
    background: var(--vp-palco);
    border-radius: 16px;
    overflow: hidden;
    aspect-ratio: 9 / 16;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow:
        0 24px 48px -20px rgba(0, 0, 0, .8),
        0 0 0 1px rgba(255, 255, 255, .07);
}

.vp-palco.vp-dest-feed,
.vp-palco.vp-dest-carrossel {
    background: #16181c;
}

/* -------------------------------------------------------------------------
   PALCO NO MODO CARD - o cartao inteiro tem de caber, nao so a midia.

   Aqui a altura e do CONTEUDO (o cartao inteiro) e a largura vem do JS
   (`ajustarPalcoCard`), que MEDE o cromo - cabecalho, pontinhos, acoes e
   legenda - em vez de supor 140px numa `aspect-ratio: 1/2`. O `max-height`
   fica como guarda: se a medicao errar por alguns pixels, o cartao encolhe em
   vez de vazar. */
.vp-palco.vpm-tem-card {
    height: auto;
    max-height: 100%;
}

.vp-midia-wrap {
    position: relative;
    width: 100%;
}

.vp-midia {
    position: relative;
    width: 100%;
    height: 100%;
}

.vp-palco.vp-app .vp-midia-wrap,
.vp-palco:not(.vp-app) .vp-midia-wrap {
    height: 100%;
}

.vp-palco.vpm-tem-card .vp-midia-wrap {
    height: auto;
}

/* ! O VIDEO E ABSOLUTO, e isso e o que faz o recorte do cartao ser VERDADE.
   Ele era `width/height: 100%` em fluxo normal dentro do .vp-midia. No modo
   card o .vp-midia tem `aspect-ratio` inline (4:5 num carrossel) e altura
   `100%` de um pai com altura AUTO - ou seja, altura indefinida. Nessa
   situacao quem definia a altura da caixa passava a ser o conteudo, e o
   conteudo era um video 9:16: o .vp-midia crescia para 9:16 e a razao inline
   virava letra morta. O preview mostrava o video INTEIRO exatamente na tela
   que existe para avisar que ele vai ser CORTADO - e os 117px a mais ainda
   estouravam o palco, comendo o cabecalho e a legenda do cartao.

   Fora do fluxo o video nao tem como empurrar o pai, e a razao volta a
   mandar. */
.vp-midia video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    background: #000;
}

/* "Inteiro": o arquivo como ele e, com as bordas que a rede corta aparecendo
   como vazio. */
.vp-midia video.vp-inteiro {
    object-fit: contain;
}

/* Play central: o video abre pausado no primeiro quadro (que e a capa), e o
   som so entra por gesto do usuario.

   Ele mora dentro do .vp-midia-wrap, nao do palco: no modo card a midia e
   MOVIDA para dentro do cartao, e um play preso ao palco ficaria no centro do
   CARTAO - abaixo do centro do video, porque o cabecalho do cartao esta em
   cima. Viajando junto com a midia ele cai sempre no meio do que toca. */
.vp-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 5;
    width: 58px;
    height: 58px;
    border-radius: 50%;
    border: none;
    padding: 0;
    background: rgba(12, 12, 14, .38);
    backdrop-filter: blur(10px) saturate(140%);
    -webkit-backdrop-filter: blur(10px) saturate(140%);
    box-shadow:
        0 10px 26px -8px rgba(0, 0, 0, .7),
        inset 0 0 0 1px rgba(255, 255, 255, .26);
    color: #fff;
    display: grid;
    place-items: center;
    cursor: pointer;
    transition: transform .16s cubic-bezier(.2, .8, .3, 1), background .16s;
}

.vp-play svg {
    width: 22px;
    height: 22px;
    margin-left: 3px;
}

.vp-play:hover {
    background: rgba(12, 12, 14, .55);
    transform: translate(-50%, -50%) scale(1.07);
}

.vp-tocando .vp-play {
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, -50%) scale(.9);
}

/* A linha de progresso mora na BORDA de baixo do palco: enquanto toca ela e a
   unica coisa que a janela desenha por cima do video, e nem por cima esta -
   esta na moldura. */
.vp-prog {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 6;
    height: 3px;
    background: rgba(255, 255, 255, .16);
    opacity: 0;
    transition: opacity .2s;
    pointer-events: none;
}

.vp-tocando .vp-prog {
    opacity: 1;
}

.vp-prog i {
    display: block;
    height: 100%;
    width: 0;
    background: #fff;
}

/* ---- Zonas de seguranca (modo Areas) ---- */
.vp-zonas {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
}

/* Hachura em vez de cor solida: a area precisa ser lida como "aqui passa
   interface" sem esconder o que esta por baixo - e o que se quer avaliar. */
.vp-zona {
    position: absolute;
    background: repeating-linear-gradient(-45deg,
            rgba(0, 0, 0, .42) 0 6px, rgba(255, 255, 255, .16) 6px 12px);
    border: 1px dashed rgba(255, 255, 255, .5);
    display: flex;
    align-items: center;
    justify-content: center;
}

.vp-zona span {
    font-size: 9.5px;
    font-weight: 600;
    letter-spacing: .3px;
    color: #fff;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .9);
    padding: 0 6px;
    text-align: center;
    line-height: 1.2;
}

.vp-zona-direita span {
    writing-mode: vertical-rl;
}

/* ---- Barra da mesa -----------------------------------------------------
   O seletor de modo era uma ilha centralizada com 180px de vazio de cada
   lado. Agora a linha inteira e uma barra de aparelho: a etiqueta do que se
   esta vendo na esquerda, o tempo no meio, os tres modos na direita. Mesma
   altura de antes, tres informacoes no lugar de uma.

   A etiqueta (#vp-tag) SAIU DE DENTRO DO PALCO. Ela era um chip flutuante que
   so aparecia no hover, e no modo card cairia justamente em cima do avatar e
   do nome do cartao - tapando parte do mockup que a janela existe para
   mostrar. */
.vp-barra {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: var(--vp-gap);
    min-width: 0;
}

.vp-tag {
    flex: 0 1 auto;
    min-width: 0;
    font-size: var(--vp-fs-sub);
    font-weight: 500;
    color: rgba(255, 255, 255, .62);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vp-tempo {
    margin-left: auto;
    flex: 0 0 auto;
    font-size: var(--vp-fs-mic);
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    color: rgba(255, 255, 255, .45);
    white-space: nowrap;
}

/* SEGMENTED CONTROL, agora sobre a mesa escura: trilho translucido, item
   aceso em branco. Os tres itens dividem o trilho em partes iguais, entao a
   escolha nao muda a largura de nada quando o rotulo troca de tamanho. */
.vp-seg {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    flex: 0 0 auto;
    padding: 3px;
    border-radius: 11px;
    background: rgba(255, 255, 255, .07);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .09);
}

.vp-tool {
    height: 26px;
    min-width: 62px;
    padding: 0 12px;
    border-radius: 8px;
    border: none;
    background: transparent;
    color: rgba(255, 255, 255, .6);
    font-size: var(--vp-fs-sub);
    font-weight: 500;
    cursor: pointer;
    transition: .15s;
}

.vp-tool:hover:not(:disabled):not(.atv) {
    color: #fff;
    background: rgba(255, 255, 255, .07);
}

.vp-tool.atv {
    background: #fff;
    color: #15161a;
    font-weight: 600;
    box-shadow: 0 1px 3px rgba(0, 0, 0, .45);
}

.vp-tool:disabled {
    opacity: .32;
    cursor: not-allowed;
}

/* =========================================================================
   MOCKUP DA REDE (.vpm-*)
   ========================================================================= */
.vpm {
    position: absolute;
    inset: 0;
    z-index: 2;
    color: #fff;
    font-size: 11px;
    line-height: 1.3;
    pointer-events: none;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .55);
}

.vpm:empty {
    display: none;
}

/* No feed o mockup deixa de flutuar e vira o proprio card, com a midia
   dentro dele - ali nada cobre o video. */
.vpm.vpm-card {
    position: relative;
    inset: auto;
    display: flex;
    flex-direction: column;
    background: #16181c;
    text-shadow: none;
}

/* ! No cartao a midia e MOVIDA para dentro do .vpm, e o `pointer-events:
   none` dele (que existe para o mockup imersivo nao bloquear o video) e
   herdado: o play e o clique de pausar ficavam mortos em todo video de feed
   e carrossel. O slot da midia volta a receber clique; o resto do cartao
   continua sendo so desenho. */
.vpm.vpm-card .vpm-slot {
    pointer-events: auto;
}

.vpm svg {
    display: block;
}

.vpm-av {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    overflow: hidden;
    flex: 0 0 auto;
    background: rgba(255, 255, 255, .18);
    display: grid;
    place-items: center;
    border: 1px solid rgba(255, 255, 255, .5);
}

.vpm-av img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vpm-ini {
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .3px;
}

.vpm-vazio {
    opacity: .55;
    font-style: italic;
}

.vpm-mais {
    opacity: .7;
    margin-left: 3px;
}

/* ---- Reels / TikTok / Shorts: barra do topo ---- */
.vpm-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 12px 22px;
    background: linear-gradient(rgba(0, 0, 0, .5), transparent);
}

.vpm-tit {
    font-size: 15px;
    font-weight: 700;
}

.vpm-top em {
    margin-left: auto;
    opacity: .95;
}

.vpm-top-dir {
    justify-content: flex-end;
}

.vpm-top-dir em {
    margin-left: 0;
    margin-right: 2px;
}

.vpm-top-abas {
    justify-content: center;
    gap: 14px;
    font-size: 12px;
}

.vpm-top-abas span {
    opacity: .6;
}

.vpm-top-abas span.on {
    opacity: 1;
    font-weight: 700;
    border-bottom: 2px solid #fff;
    padding-bottom: 2px;
}

.vpm-top-abas em {
    position: absolute;
    right: 12px;
    top: 11px;
}

/* ---- Coluna de acoes a direita ---- */
.vpm-col {
    position: absolute;
    right: 8px;
    bottom: 22%;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
}

.vpm-ac {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}

.vpm-ac b {
    font-size: 9.5px;
    font-weight: 600;
}

.vpm-ac-perfil {
    position: relative;
    margin-bottom: 4px;
}

.vpm-ac-perfil i {
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: #fe2c55;
    color: #fff;
    font-size: 11px;
    font-style: normal;
    line-height: 14px;
    text-align: center;
    text-shadow: none;
}

/* O disco de audio gira nos tres apps - e o elemento que denuncia que ali
   embaixo, a direita, ha algo permanente por cima do video. */
.vpm-disco {
    width: 27px;
    height: 27px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid rgba(0, 0, 0, .55);
    animation: vpmGira 6s linear infinite;
}

.vpm-disco.vpm-quad {
    border-radius: 7px;
    animation: none;
}

.vpm-disco .vpm-av {
    width: 100%;
    height: 100%;
    border: none;
    border-radius: inherit;
}

@keyframes vpmGira {
    to {
        transform: rotate(360deg);
    }
}

/* ---- Base: perfil, legenda, audio ---- */
.vpm-base {
    position: absolute;
    left: 0;
    right: 52px;
    bottom: 46px;
    padding: 0 12px;
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.vpm-perfil {
    display: flex;
    align-items: center;
    gap: 7px;
}

.vpm-perfil b {
    font-size: 11.5px;
    font-weight: 700;
}

.vpm-btn {
    padding: 2px 8px;
    border: 1px solid rgba(255, 255, 255, .8);
    border-radius: 5px;
    font-size: 9.5px;
    font-weight: 600;
}

.vpm-legenda {
    font-size: 11px;
}

/* CORTE EM 2 LINHAS COM RETICENCIAS - no SPAN interno, nunca no bloco.
   O clamp estava direto em .vpm-legenda e em .vpm-card-txt, que sao filhos de
   .vpm-base e .vpm-card - os dois flex column. Item de flex e blockificado: o
   `display:-webkit-box` virava `block` e o `-webkit-line-clamp` ficava inerte.
   A legenda nao cortava com reticencia: era rasgada no meio da terceira linha
   pelo overflow do cartao, que e outra coisa e parece defeito. */
.vpm-clamp {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.vpm-audio {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 10px;
    opacity: .9;
}

.vpm-audio span {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---- Barra de navegacao ---- */
.vpm-nav {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: space-around;
    background: linear-gradient(transparent, rgba(0, 0, 0, .75));
}

.vpm-nav-it {
    opacity: .55;
}

.vpm-nav-it.on {
    opacity: 1;
}

/* ---- Stories ---- */
.vpm-story-top {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    padding: 9px 10px 20px;
    background: linear-gradient(rgba(0, 0, 0, .5), transparent);
}

.vpm-pgs {
    display: flex;
    gap: 3px;
    margin-bottom: 9px;
}

.vpm-pg {
    flex: 1 1 auto;
    height: 2px;
    border-radius: 100px;
    background: rgba(255, 255, 255, .35);
}

.vpm-pg.on {
    background: #fff;
}

.vpm-story-top .vpm-perfil b {
    font-weight: 600;
}

.vpm-tempo {
    font-size: 10px;
    opacity: .75;
}

.vpm-story-top em {
    margin-left: auto;
}

.vpm-story-base {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
    background: linear-gradient(transparent, rgba(0, 0, 0, .55));
}

.vpm-resp {
    flex: 1 1 auto;
    padding: 8px 14px;
    border: 1px solid rgba(255, 255, 255, .65);
    border-radius: 100px;
    font-size: 11px;
    opacity: .95;
}

/* ---- Feed / Carrossel: card ---- */
.vpm-card-top {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 9px 11px;
    flex: 0 0 auto;
}

.vpm-card-id {
    min-width: 0;
    flex: 1 1 auto;
}

.vpm-card-id b {
    display: block;
    font-size: 11.5px;
    font-weight: 600;
}

.vpm-card-id span {
    font-size: 9.5px;
    opacity: .6;
}

.vpm-card-top em {
    opacity: .7;
}


.vpm-card-txt {
    padding: 7px 11px 10px;
    font-size: 11px;
    line-height: 1.4;
    flex: 0 0 auto;
    overflow: hidden;
    /* o corte real acontece no .vpm-clamp de dentro */
}

.vpm-card-txt b {
    font-weight: 600;
}

.vpm-card-acoes {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 9px 11px 2px;
    flex: 0 0 auto;
}

.vpm-card-acoes .vpm-dir {
    margin-left: auto;
}

.vpm-card-acoes.vpm-lk {
    gap: 0;
    justify-content: space-around;
    border-top: 1px solid rgba(255, 255, 255, .12);
    padding: 8px 6px;
}

.vpm-card-acoes.vpm-lk span {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 10.5px;
    opacity: .8;
}

/* Bolinhas de pagina do carrossel: o video e UM item de varios. */
.vpm-pontos {
    display: flex;
    justify-content: center;
    gap: 5px;
    padding: 8px 0 2px;
    flex: 0 0 auto;
}

.vpm-pontos i {
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .3);
}

.vpm-pontos i.on {
    background: #fff;
}

/* ---- Coluna de informacao ----------------------------------------------
   Tres SECOES com fronteira propria, na ordem em que as perguntas aparecem:
   onde publica / o que pode dar errado / como a capa aparece.

   ! A ORDEM MUDOU, e ela e funcional. A Checagem era a ultima, e num monitor
   de 717px de altura a coluna inteira mede 900px: o veredito tecnico - a
   unica coisa que pode IMPEDIR a publicacao - nascia 370px abaixo da dobra,
   sem nada dizendo que havia mais coisa ali. Os recortes da capa, que sao
   contexto, e que passam a ser o que sobra para baixo.

   O separador e uma linha fina entre irmas - a primeira nunca desenha, entao
   nao sobra risco encostado no cabecalho. */
.vp-col-info {
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    min-height: 0;
    background: var(--vp-surface);
    scrollbar-width: thin;
}

/* A ROLAGEM PRECISA SER DITA. Sem isso o ultimo cartao visivel e cortado no
   meio pela borda do rodape, e um corte limpo no meio de um desenho nao se le
   como "tem mais abaixo" - se le como defeito. A faixa e sticky no fim do
   conteudo (nao um irmao absoluto), entao ela acompanha a largura da coluna
   sozinha, e some quando a rolagem chega ao fim ou quando nao ha rolagem. */
.vp-fim {
    position: sticky;
    bottom: 0;
    height: 36px;
    margin-top: -36px;
    flex: 0 0 auto;
    pointer-events: none;
    background: linear-gradient(180deg, transparent 0%, var(--vp-surface) 62%);
    transition: opacity .18s;
}

.vp-col-info.vp-no-fim .vp-fim {
    opacity: 0;
}

.vp-sec {
    display: flex;
    flex-direction: column;
    gap: var(--vp-gap-s);
    padding: var(--vp-gap) var(--vp-pad);
}

.vp-sec+.vp-sec {
    border-top: 1px solid var(--color-border);
}

/* Secao sem titulo - a que aparece quando nao ha abas de rede (conteudo fora
   de rede social, ou nenhuma rede marcada aceita este destino). Ela carrega
   sempre um aviso, nunca fica vazia, e e sempre a PRIMEIRA: `.vp-sec + .vp-sec`
   ja garante que nao sobre separador encostado no cabecalho.

   ! Ela tinha `display:contents` para nao virar um bloco vazio. Isso tirava a
   caixa do fluxo e, com ela, o padding: o aviso encostava na borda da coluna e
   no cabecalho. Passava despercebido enquanto o aviso era um retangulo cinza
   com borda propria; virou texto solto e ficou evidente. */
.vp-sec-livre {
    display: flex;
}

/* O TITULO DE SECAO NAO E CAIXA ALTA CINZA: em caixa normal, peso 600 e na
   cor do texto, ele pesa o que deve - quem separa as secoes e o espaco. */
.vp-sec-tit {
    font-size: var(--vp-fs-sub);
    font-weight: 600;
    letter-spacing: -.1px;
    color: var(--color-text-01);
    line-height: 1.2;
}

.vp-redes {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.vp-rede {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 11px;
    border-radius: 100px;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--vp-mudo);
    font-size: var(--vp-fs-sub);
    font-weight: 500;
    cursor: pointer;
    transition: .15s;
}

.vp-rede:hover:not(.atv) {
    color: var(--color-text-01);
    background: var(--color-hover-01);
}

.vp-rede.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-weight: 600;
}

/* O LOGO DA REDE, EM CURRENTCOLOR.
   Aqui havia um ponto de 7px na cor da marca (rosa, azul, ciano) - o unico
   ponto de cor de uma interface monocromatica, e ele sumia dentro do chip
   aceso, que e preto solido. O SVG vem do window.REDE_SVG (o mesmo mapa dos
   filtros e da linha da Producao) e segue a cor do chip. */
.vp-rede-ico {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
}

.vp-rede-ico svg {
    width: 100%;
    height: 100%;
    display: block;
    fill: currentColor;
}

/* A OBSERVACAO PERDEU A CAIXA. Ela era um retangulo cinza com borda de 1px -
   o elemento mais pesado de uma coluna cujo assunto sao miniaturas e numeros,
   e ele carregava o texto MENOS acionavel dos tres. Um filete na margem
   marca o que e nota sem construir um bloco em volta dela. */
.vp-obs {
    font-size: var(--vp-fs-sub);
    line-height: 1.5;
    color: #6d6d6d;
    border-left: 2px solid var(--color-border);
    padding: 1px 0 1px 10px;
}

/* ---- Checagem ----------------------------------------------------------
   Eram QUATRO LINHAS IGUAIS sempre presentes: ponto, rotulo, valor. Numa
   janela em que quase todo video passa em tudo, isso e uma lista de quatro
   "ok" que a pessoa aprende a nao ler - e o unico item que importava, quando
   importava, tinha exatamente o mesmo peso dos outros tres.

   Agora sao tres camadas: o VEREDITO em uma linha (que e o que se procura),
   os FATOS numa grade calma de 2x2 (que e o que se confere), e as NOTAS, que
   so existem quando ha problema - e ai elas sao a unica coisa colorida da
   coluna. */
.vp-vd {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: var(--vp-fs-txt);
    font-weight: 600;
    letter-spacing: -.1px;
    color: var(--color-text-01);
    line-height: 1.3;
}

.vp-vd-ico {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 auto;
    background: var(--ac-dono);
}

.vp-vd-aviso .vp-vd-ico {
    background: #c9a227;
}

.vp-vd-alerta .vp-vd-ico {
    background: var(--ac-perigo);
}

.vp-fatos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1px;
    background: var(--color-border);
    border: 1px solid var(--color-border);
    border-radius: var(--vp-r);
    overflow: hidden;
}

/* Grade de verdade, com celulas separadas por um fio: os quatro valores caem
   na mesma vertical sem `flex: 0 0 66px` - a coluna fingida em pixel que
   desalinhava assim que um rotulo crescia. */
.vp-fato {
    background: var(--vp-surface);
    padding: 7px 10px;
    min-width: 0;
}

.vp-fato span {
    display: block;
    font-size: var(--vp-fs-mic);
    color: var(--vp-mudo);
    line-height: 1.3;
}

.vp-fato b {
    display: block;
    font-size: var(--vp-fs-txt);
    font-weight: 600;
    color: var(--color-text-01);
    line-height: 1.35;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vp-fato-aviso b {
    color: #a8801a;
}

.vp-fato-alerta b {
    color: var(--ac-perigo);
}

.vp-nota {
    font-size: var(--vp-fs-sub);
    line-height: 1.45;
    color: #6d6d6d;
    border-left: 2px solid var(--ac-perigo);
    padding: 1px 0 1px 10px;
}

.vp-nota-aviso {
    border-left-color: #c9a227;
}

/* ---- Capa --------------------------------------------------------------
   Sobrou a linha de texto: a miniatura virou o primeiro bloco do trilho de
   recortes (.vpc-b-quadro), junto com os lugares em que ela vai aparecer. */
.vp-capa-txt {
    font-size: var(--vp-fs-sub);
    line-height: 1.5;
    color: var(--vp-mudo);
}

.vp-capa-txt b {
    color: var(--color-text-01);
    font-weight: 600;
}

/* ---- Acoes -------------------------------------------------------------
   Mesma borda das outras tres faixas (--vp-pad): as quatro bordas da janela
   caem na mesma vertical. */

/* A saida por teclado existia e nao era dita em lugar nenhum. Ocupa o vazio
   da esquerda, que ja estava la, e empurra os botoes para a direita. */

.vp-btn {
    height: 36px;
    padding: 0 18px;
    border-radius: var(--vp-r);
    border: 1px solid transparent;
    font-size: var(--vp-fs-txt);
    font-weight: 600;
    letter-spacing: -.1px;
    cursor: pointer;
    transition: .15s;
    white-space: nowrap;
}

.vp-btn-sec {
    background: transparent;
    color: var(--vp-mudo);
    border-color: var(--color-border);
}

.vp-btn-sec:hover {
    color: var(--color-text-01);
    background: var(--color-hover-01);
    border-color: var(--color-border);
}

/* O primario carrega o peso da janela: sombra curta de contato em vez de
   opacidade no hover (opacidade lava a cor e faz o botao parecer desligado). */
.vp-btn-ok {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .18);
}

.vp-btn-ok:hover {
    box-shadow: 0 3px 10px -2px rgba(0, 0, 0, .35);
    transform: translateY(-1px);
}

.vp-btn:active {
    transform: translateY(0);
}

/* ---- Onde a capa aparece (.vpc-*) --------------------------------------
   Recortes REAIS de onde a capa vai ser vista fora do player: a grade do
   perfil, a rolagem do feed e a bandeja de Stories. Uma capa que funciona
   em 9:16 pode perder o assunto no circulo de 54px do Story, e isso nao
   aparece olhando o video rodar.

   OS RECORTES FICAM LADO A LADO. Empilhados, com 168px de largura cada, os
   dois somavam 330px de altura - sozinhos, mais do que as outras duas secoes
   inteiras, e eram eles que empurravam o veredito para fora da tela. Em duas
   colunas de 130px a leitura e a mesma (o que se compara e o RECORTE, nao o
   tamanho) e a secao cabe. */
#vp-capa-ctx {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(0, 1fr));
    grid-auto-flow: column;
    align-items: start;
    gap: 10px;
}

.vpc-bloco {
    min-width: 0;
}

/* ! O QUADRO CRU NAO TEM LARGURA NEM ALTURA - tem dois TETOS.
   Com `width:100%` + `max-height`, a razao do arquivo pedia 172px de altura, o
   teto cortava em 132 e o `object-fit:cover` comia o resto: a unica miniatura
   da janela que deveria mostrar o quadro INTEIRO aparecia recortada. Trocar
   por altura fixa resolvia o 9:16 e quebrava o 16:9, que virava uma faixa
   estreita com tarja cinza em cima e embaixo.
   Com os dois em `max-`, a regra de conflito do CSS reduz a imagem pela razao
   intrinseca dela: um 9:16 fica estreito, um 16:9 fica baixo, e os dois
   aparecem por completo. */
.vpc-quadro {
    display: block;
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 132px;
    border-radius: 8px;
    border: 1px solid var(--color-border);
    background: var(--vp-trilho);
}

/* Sem capa nao ha razao intrinseca para os dois `max-` trabalharem em cima:
   o vazio precisa da forma do arquivo dita a mao. */
.vpc-quadro.vpc-sem {
    width: 74px;
    height: 132px;
}

/* A bandeja de Stories tem largura propria (o anel e 54px de verdade) e nao
   divide a fileira em partes iguais com os outros. */
.vpc-b-anel {
    grid-column: span 2;
}

/* Sub-rotulo dentro da secao Capa. Quem sussurra e o detalhe: o TITULO da
   secao e que esta em caixa normal na cor do texto. */
.vpc-rot {
    font-size: var(--vp-fs-mic);
    font-weight: 600;
    letter-spacing: 0;
    color: var(--vp-mudo);
    margin-bottom: 5px;
}

.vpc-obs {
    font-size: var(--vp-fs-mic);
    line-height: 1.4;
    color: var(--vp-mudo);
    margin-top: 5px;
}

.vpc-sem {
    background: var(--vp-trilho);
    display: block;
}

/* Grade do perfil: 3 colunas, gap de 2px como nos apps. A capa na primeira
   celula - e onde o post mais recente cai nas tres redes. */
.vpc-grade {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2px;
    border-radius: 8px;
    overflow: hidden;
    max-width: 100%;
}

.vpc-grade>* {
    width: 100%;
    aspect-ratio: var(--vpc-ratio, 4 / 5);
    object-fit: cover;
    display: block;
}

/* As vizinhas ficam neutras de proposito: o assunto aqui e o recorte, nao
   competir com o resto do perfil. */

.vpc-cel-img {
    box-shadow: inset 0 0 0 1.5px var(--color-btn-bg-01);
}

/* Na rolagem: o que se ve ANTES de dar play - cabecalho, capa parada e acoes.
   E a primeira impressao do conteudo no feed. */
.vpc-rolagem {
    max-width: 100%;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    overflow: hidden;
    background: var(--color-bg-01);
}

.vpc-rol-top {
    display: flex;
    align-items: center;
    gap: 5px;
    padding: 5px 7px;
}

.vpc-rol-top b {
    font-size: 9.5px;
    font-weight: 600;
    color: var(--color-text-01);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vpc-av {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    overflow: hidden;
    flex: 0 0 auto;
    background: var(--color-bg-01);
    display: grid;
    place-items: center;
    font-size: 7px;
    font-weight: 700;
    color: #999;
}

.vpc-av img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.vpc-rol-midia {
    position: relative;
    background: #000;
}

.vpc-rol-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.vpc-play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .45);
    color: #fff;
    display: grid;
    place-items: center;
}

.vpc-play svg {
    margin-left: 1px;
}

.vpc-rol-pe {
    display: flex;
    gap: 8px;
    padding: 5px 7px;
    color: #9a9a9a;
}

/* Bandeja de Stories: o anel. E aqui que se descobre que a capa perde o
   assunto quando vira um circulo pequeno. */
.vpc-anel-lst {
    display: flex;
    gap: 10px;
}

.vpc-anel-it {
    text-align: center;
    width: 54px;
}

.vpc-anel {
    display: block;
    width: 54px;
    height: 54px;
    border-radius: 50%;
    overflow: hidden;
    background: var(--color-bg-01);
    padding: 2px;
    box-sizing: border-box;
}

/* A borda do story ativo e o gradiente do app - aqui ele e o sinal de "este
   e o seu", nao enfeite: sem ele os tres circulos sao iguais. */
.vpc-anel.on {
    background: linear-gradient(45deg, #f9ce34, #ee2a7b, #6228d7);
}

.vpc-anel-img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    display: block;
    border: 2px solid var(--vp-surface);
    box-sizing: border-box;
}

.vpc-anel-it i {
    display: block;
    font-size: 9px;
    font-style: normal;
    color: #8a8a8a;
    margin-top: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* O slot da midia dentro do card do mockup: sem ele o video tentaria esticar
   junto com o card em vez de manter a proporcao da rede. */
.vpm-slot {
    display: block;
    width: 100%;
    flex: 0 0 auto;
}

/* ===========================================================================
   QUADRO AGRUPADO - o nome da faixa acompanha a rolagem horizontal
   ---------------------------------------------------------------------------
   Producao > Por status (faixa = segmento) e quadro do espaco (faixa = lista).
   O trilho rola na horizontal e a faixa e larga; o titulo ficava no comeco
   dela e sumia pela esquerda - no meio de uma faixa de oito colunas nao havia
   como saber em que etapa se estava.

   O titulo passa a ter a largura do PROPRIO conteudo (align-self: flex-start
   dentro da faixa, que e coluna flex) e gruda na borda esquerda do trilho. O
   sticky nunca sai do bloco que o contem: quando a faixa acaba, a proxima
   empurra o titulo dela para fora. O `top: 0` e o z-index ja vem da regra 8
   do bloco "QUADRO DO ESPACO".
   =========================================================================== */
.type-quadro .estrutura-lista.quadro-agrupado>.group-lista-pai>.hdr-lista-pai {
    align-self: flex-start;
    position: sticky;
    left: 0;
}

/* ===========================================================================
   AVISO NO CANTO - botao de acao dentro do toast padrao ($.toast)
   ---------------------------------------------------------------------------
   Ver window.avisoCanto (footer.php). O toast e escuro nos dois temas, entao
   o botao e a mesma pilula translucida do "Desfazer" da lixeira: monocromatico,
   sem cor de acento.
   =========================================================================== */
.jq-toast-single .tst-corpo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
}

.jq-toast-single .tst-txt {
    min-width: 0;
}

.jq-toast-single .tst-acao {
    flex: 0 0 auto;
    border: 0;
    background: rgba(255, 255, 255, .16);
    color: #fff;
    font-family: inherit;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    padding: 7px 12px;
    border-radius: 7px;
    cursor: pointer;
    transition: background .15s ease;
}

.jq-toast-single .tst-acao:hover {
    background: rgba(255, 255, 255, .28);
}

/* ===========================================================================
   PRODUCAO > POR STATUS - o cartao (kit .ct-cartao)
   ---------------------------------------------------------------------------
   O cartao de conteudo nao tinha NENHUMA acao a vista (etapa so arrastando;
   duplicar e excluir so pelo popup; nada de selecao em lote no quadro) e lia
   como uma geracao anterior a do cartao de tarefa (.qd-card): fundo
   transparente sobre a coluna, responsaveis boiando no canto de cima e a data
   sem cara de campo editavel.

     . ACOES no hover, numa pilula por cima do canto superior direito - nao
       reserva espaco no cartao: mudar etapa . duplicar . "..." . selecionar.
       Marcado, so a caixinha fica; com selecao ativa, ela aparece em todos.
     . RODAPE igual ao do .qd-card: datas a esquerda, responsaveis a direita.
       Sem responsavel, um marcador tracejado - "ninguem pegou" e informacao.
     . A publicacao virou chip com icone e carrega o alerta de atraso.
     . Superficie, borda, sombra e hover do .qd-card.

   ! GRID, e nao fluxo: `.membros` precisa continuar filho DIRETO do cartao
   (conteudoMembrosReload escreve em `.conteudo-item > .membros`), entao quem
   o leva para o rodape e o grid-area, nao um involucro novo.
   ! Raiz `.type-quadro .conteudo-item.ct-cartao`: empata em especificidade
   com as regras antigas (`...:not(.qd-card) .x`) e vence por vir depois. So a
   Producao emite .ct-cartao - o Fluxo segue com o cartao de antes.
   =========================================================================== */
.type-quadro .conteudo-item.ct-cartao {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas:
        "perfil perfil"
        "mid    mid"
        "data   membros";
    align-items: center;
    column-gap: 8px;
    padding: 10px 11px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    background: var(--color-bg) !important;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
    transition: border-color .16s, box-shadow .16s, transform .16s;
}

/* O clearfix antigo (::after) viraria uma celula do grid. */
.type-quadro .conteudo-item.ct-cartao::after {
    display: none;
}

.type-quadro .conteudo-item.ct-cartao:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 22%, transparent);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
    transform: translateY(-1px);
}

.type-quadro .conteudo-item.ct-cartao.dragging {
    opacity: .4;
    transform: none;
}

/* Clone que o setupDynamicDrag insere para marcar o ponto de soltar. */
.type-quadro .conteudo-item.ct-cartao.placeholder {
    opacity: .35;
    border-style: dashed;
    box-shadow: none;
    transform: none;
}

/* Publicacao atrasada: o mesmo fio do .qd-card.is-atrasada. */
.type-quadro .conteudo-item.ct-cartao.em-atraso::before {
    content: "";
    position: absolute;
    left: 0;
    top: 10px;
    bottom: 10px;
    width: 2px;
    border-radius: 0 2px 2px 0;
    background: #d23838;
}

/* Selecionado: anel na TINTA - nunca acento (interface monocromatica). */
.type-quadro .conteudo-item.ct-cartao.is-sel {
    border-color: var(--color-btn-bg-01, #000);
    box-shadow: 0 0 0 1px var(--color-btn-bg-01, #000);
}

.type-quadro .conteudo-item.ct-cartao.is-sel:hover {
    box-shadow: 0 0 0 1px var(--color-btn-bg-01, #000), 0 6px 16px rgba(0, 0, 0, 0.08);
}

/* ------------------------------------------------------------ as areas */
.type-quadro .conteudo-item.ct-cartao .perfil {
    grid-area: perfil;
    /* A caixinha marcada fica neste canto (a pilula e absoluta). */
    padding-right: 24px;
}

.type-quadro .conteudo-item.ct-cartao .ct-card-mid {
    grid-area: mid;
    margin-top: 8px;
}

.type-quadro .conteudo-item.ct-cartao .codigo {
    font-size: 13.5px;
    line-height: 18px;
    letter-spacing: -0.01em;
}

/* Formato: texto de apoio, nao etiqueta - a etiqueta cinza era o elemento
   mais pesado da metade de baixo e a informacao menos acionavel dela. */
.type-quadro .conteudo-item.ct-cartao .tipo {
    padding: 0;
    border-radius: 0;
    background: none;
    font-size: 11.5px;
    opacity: .55;
}

.type-quadro .conteudo-item.ct-cartao .ct-card-meta .ct-redes {
    opacity: .6;
}

/* O rodape alinha pela PRIMEIRA linha (align-self: start): quando entrega e
   prazo da etapa quebram para uma segunda linha, os responsaveis ficam na
   altura da publicacao, e nao boiando entre as duas linhas. */
.type-quadro .conteudo-item.ct-cartao .data {
    grid-area: data;
    align-self: start;
    min-width: 0;
    margin-top: 9px;
    padding: 0;
    gap: 4px;
    opacity: 1;
}

.type-quadro .conteudo-item.ct-cartao .membros {
    grid-area: membros;
    align-self: start;
    position: static;
    width: auto;
    justify-self: end;
    margin-top: 9px;
    border-radius: 20px;
    transition: filter .12s;
}

.type-quadro .conteudo-item.ct-cartao .membros:hover {
    filter: brightness(.94);
}

/* A PILHA SOBREPOE PELA ESQUERDA e termina rente a borda do conteudo - na
   mesma vertical dos icones de rede e da pilula de acoes. A regra antiga
   herdou do .lst-membros-all generico a margem negativa a DIREITA
   (`0 -7px 0 0`): o ultimo avatar vazava 7px para fora da coluna e ficava a
   ~4px da borda do cartao. Mesmo desenho do .qd-card (-6px a esquerda).
   A ordem de empilhamento (o primeiro por cima) continua vindo das regras
   :nth-child do bloco "RESPONSAVEIS NO CARTAO DO QUADRO". */
.type-quadro .conteudo-item.ct-cartao .membros .lst-membros-all .item {
    margin: 0 0 0 -6px;
}

.type-quadro .conteudo-item.ct-cartao .membros .lst-membros-all .item:first-child {
    margin-left: 0;
}

.type-quadro .conteudo-item.ct-cartao .membros .lst-membros-all .item-mais {
    margin: 0 0 0 -6px;
    position: relative;
    z-index: 0;
}

/* O clearfix generico (.lst-membros-all::after) vira item de flex/grid aqui:
   no estado vazio ele abria uma segunda linha e o icone de pessoa subia ~5px
   dentro do circulo tracejado. */
.type-quadro .conteudo-item.ct-cartao .membros .lst-membros-all::after {
    display: none;
}

/* ---------------------------------------------------- chips do rodape */
.type-quadro .conteudo-item.ct-cartao .data>.ct-pub {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 22px;
    padding: 0 6px;
    margin: 0 0 0 -6px;
    border-radius: 6px;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    color: var(--color-text-01);
    opacity: .62;
    transition: background .12s, opacity .12s;
}

.type-quadro .conteudo-item.ct-cartao .data>.ct-pub svg {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
}

.type-quadro .conteudo-item.ct-cartao .data>.ct-pub:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

/* Perto da publicacao pesa mais no texto; so o atraso ganha pintura - a
   mesma regua do vencimento do .qd-card. */
.type-quadro .conteudo-item.ct-cartao .data>.ct-pub.is-proximo {
    opacity: .85;
}

.type-quadro .conteudo-item.ct-cartao .data>.ct-pub.is-hoje {
    opacity: 1;
    font-weight: 600;
}

.type-quadro .conteudo-item.ct-cartao .data>.ct-pub.is-atraso {
    opacity: 1;
    color: #d23838;
    background: rgba(210, 56, 56, 0.09);
}

.type-quadro .conteudo-item.ct-cartao .data>.ct-pub.is-atraso:hover {
    background: rgba(210, 56, 56, 0.16);
}

.type-quadro .conteudo-item.ct-cartao .data .ct-entrega,
.type-quadro .conteudo-item.ct-cartao .data .ct-sla {
    margin-top: 0;
    min-height: 22px;
}

/* SEM RESPONSAVEL - gerarHtmlMembrosConteudo devolve o involucro vazio, e e
   nele que o marcador nasce. So CSS: continua certo depois de qualquer
   conteudoMembrosReload, sem ninguem lembrar de repintar. */
.type-quadro .conteudo-item.ct-cartao .membros .lst-membros-all:empty {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 1px dashed color-mix(in srgb, var(--color-text-01) 32%, transparent);
    display: grid;
    place-items: center;
    opacity: .7;
    transition: opacity .12s;
}

.type-quadro .conteudo-item.ct-cartao .membros .lst-membros-all:empty::before {
    content: "";
    width: 12px;
    height: 12px;
    background: currentColor;
    opacity: .55;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='3.6'/%3E%3Cpath d='M4.8 20.2c1.1-3.7 4.1-5.7 7.2-5.7s6.1 2 7.2 5.7'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.9' stroke-linecap='round'%3E%3Ccircle cx='12' cy='8' r='3.6'/%3E%3Cpath d='M4.8 20.2c1.1-3.7 4.1-5.7 7.2-5.7s6.1 2 7.2 5.7'/%3E%3C/svg%3E") center / contain no-repeat;
}

.type-quadro .conteudo-item.ct-cartao:hover .membros .lst-membros-all:empty {
    opacity: 1;
}

/* ------------------------------------------------ a pilula de acoes */
.type-quadro .conteudo-item.ct-cartao .ct-cartao-acoes {
    position: absolute;
    top: 7px;
    right: 7px;
    z-index: 3;
    display: flex;
    align-items: center;
    gap: 1px;
    padding: 2px;
    border-radius: 8px;
    border: 1px solid transparent;
    transition: background .12s, border-color .12s, box-shadow .12s;
}

.type-quadro .conteudo-item.ct-cartao .ct-cartao-bt {
    display: none;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .62;
    cursor: pointer;
    transition: background .12s, opacity .12s;
}

.type-quadro .conteudo-item.ct-cartao .ct-cartao-bt svg {
    width: 14px;
    height: 14px;
}

.type-quadro .conteudo-item.ct-cartao .ct-cartao-bt:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

.type-quadro .conteudo-item.ct-cartao .ct-cartao-bt.is-ocupado {
    opacity: .3;
    pointer-events: none;
}

/* Hover - ou foco de teclado dentro do cartao: a pilula aparece inteira.
   --uc-surface e nao --color-bg: no escuro --color-bg e preto puro e a pilula
   sumiria sobre o cartao (a var ja recebe elevacao no dark.css). */
.type-quadro .conteudo-item.ct-cartao:hover .ct-cartao-acoes,
.type-quadro .conteudo-item.ct-cartao:focus-within .ct-cartao-acoes {
    background: var(--uc-surface, var(--color-bg));
    border-color: var(--color-border);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.type-quadro .conteudo-item.ct-cartao:hover .ct-cartao-bt,
.type-quadro .conteudo-item.ct-cartao:focus-within .ct-cartao-bt {
    display: inline-flex;
}

.type-quadro .conteudo-item.ct-cartao.dragging .ct-cartao-acoes,
.type-quadro .conteudo-item.ct-cartao.placeholder .ct-cartao-acoes {
    display: none;
}

/* A caixinha: invisivel E sem clique em repouso - senao o canto de cima
   marcaria o cartao por engano. */
.type-quadro .conteudo-item.ct-cartao .ct-sel {
    width: 24px;
    height: 24px;
    border-radius: 6px;
    pointer-events: none;
}

.type-quadro .conteudo-item.ct-cartao:hover .ct-sel,
.type-quadro .conteudo-item.ct-cartao.is-sel .ct-sel,
.ct-com-selecao .type-quadro .conteudo-item.ct-cartao .ct-sel {
    opacity: 1;
    pointer-events: auto;
}

.type-quadro .conteudo-item.ct-cartao.is-sel .ct-check {
    background: var(--color-btn-bg-01, #000);
    border-color: var(--color-btn-bg-01, #000);
}

.type-quadro .conteudo-item.ct-cartao.is-sel .ct-check::after {
    content: '';
    position: absolute;
    left: 4px;
    top: 1px;
    width: 4px;
    height: 8px;
    border: solid var(--color-btn-text-01, #fff);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* =============================================================================
   USO DE IA - aba do popup de configuracoes do workspace (kit .wia-*)
   -----------------------------------------------------------------------------
   Mora DENTRO do .wcfg, entao usa as vars --wc-* de la (nao e sub-popup: a
   armadilha do .wadm nao se aplica). Reusa .wcfg-b-ttl, .wcfg-plano-bar,
   .wcfg-item-av e .wcfg-aviso, e so acrescenta o que a aba tem de proprio.

   MONOCROMATICO: a barra de uso das linhas e a TINTA do sistema, e o ativo do
   segmentado e a superficie clara com sombra de 1px (o mesmo de Marcas). O
   vermelho aparece so em "no limite", que e dado, nao decoracao - o mesmo
   #ef5350 do .wcfg-plano-bar.cheio.
   ========================================================================== */

/* ---------- resumo: tres cartoes, uma pergunta cada ---------- */
.wia-resumo {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 18px;
}

.wia-card {
    min-width: 0;
    padding: 16px 18px;
    border: 1px solid var(--wc-line);
    border-radius: var(--wc-radius);
}

.wia-card .wcfg-b-ttl {
    margin-bottom: 10px;
}

.wia-card-num {
    display: flex;
    align-items: baseline;
    gap: 7px;
    min-width: 0;
    margin-bottom: 12px;
}

.wia-card-num b {
    font-size: 26px;
    font-weight: 550;
    letter-spacing: -.02em;
    line-height: 1;
    color: var(--color-text-01);
}

.wia-card-num span {
    font-size: 12px;
    color: var(--wc-t3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.wia-card .wcfg-plano-txt b {
    font-weight: 600;
    color: var(--color-text-01);
}

/* ---------- barra de ferramentas: vista, busca e limite em lote ---------- */
.wia-barra {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 12px;
}

.wia-seg {
    flex: 0 0 auto;
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: 12px;
    background: var(--color-bg-01);
}

.wia-seg-it,
.alr-seg-it {
    padding: 6px 14px;
    border-radius: 9px;
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -.01em;
    white-space: nowrap;
    color: var(--color-text-01);
    opacity: .55;
    cursor: pointer;
    user-select: none;
    transition: opacity .24s var(--wc-ease), background .24s var(--wc-ease);
}

.wia-seg-it:hover,
.alr-seg-it:hover {
    opacity: .85;
}

.wia-seg-it.atv,
.alr-seg-it.atv {
    background: var(--color-bg);
    font-weight: 550;
    opacity: 1;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .07);
}

.wia-seg-it i,
.alr-seg-it i {
    font-style: normal;
    font-weight: 400;
    opacity: .6;
    margin-left: 3px;
}

/* O campo de busca e o do sistema (receita do .dropdown-busca / .wadm-busca):
   lupa a 11px da borda, fundo --color-bg-01, foco na tinta sem anel. */
.wia-busca-w {
    position: relative;
    flex: 1 1 200px;
    min-width: 160px;
    max-width: 280px;
}

.wia-busca-w .ic-busca {
    position: absolute;
    left: 11px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
    opacity: .4;
    pointer-events: none;
}

.wia-busca,
.alr-ws-busca {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 12px 8px 32px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    font-size: 13px;
    font-family: inherit;
    outline: none;
    transition: border-color .2s;
}

.wia-busca::placeholder,
.alr-ws-busca::placeholder {
    color: var(--color-text-01);
    opacity: .4;
}

.wia-busca:focus,
.alr-ws-busca:focus {
    border-color: var(--color-btn-bg-01);
}

.wia-lote {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    color: var(--wc-t3);
    white-space: nowrap;
}

.wia-lote .wcfg-bt {
    padding: 8px 14px;
}

/* Os campos de limite (linha e lote), SEM as setinhas do number: cada clique
   nelas dispararia um `change` - uma gravacao por clique - e o numero e
   digitado, nao garimpado de um em um. */
.wia-lote-i,
.wia-lim-i {
    width: 96px;
    height: 34px;
    box-sizing: border-box;
    padding: 0 10px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    text-align: right;
    outline: none;
    -moz-appearance: textfield;
    transition: border-color .2s, opacity .2s;
}

.wia-lote-i::-webkit-outer-spin-button,
.wia-lote-i::-webkit-inner-spin-button,
.wia-lim-i::-webkit-outer-spin-button,
.wia-lim-i::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

.wia-lote-i::placeholder,
.wia-lim-i::placeholder {
    color: var(--color-text-01);
    font-weight: 400;
    opacity: .4;
}

.wia-lote-i:focus,
.wia-lim-i:focus {
    border-color: var(--color-btn-bg-01);
}

/* ---------- a tabela ---------- */
/* Grade por linha (e nao <table>): o mesmo template de colunas vale para o
   cabecalho e para as linhas, e no celular a linha se rearranja em duas
   colunas so com CSS (media.css). */
.wia-tab {
    border: 1px solid var(--wc-line);
    border-radius: var(--wc-radius);
    overflow: hidden;
}

.wia-lin {
    display: grid;
    align-items: center;
    gap: 14px;
    min-height: 56px;
    padding: 10px 16px;
    border-top: 1px solid var(--wc-line);
    transition: background .15s var(--wc-ease);
}

.wia-lin:first-child {
    border-top: 0;
}

.wia-tab .wia-lin:not(.wia-cab):hover {
    background: var(--color-hover-01);
}

.wia-tab-marcas .wia-lin {
    grid-template-columns: minmax(0, 2.2fr) minmax(140px, 1.5fr) 124px 88px 92px;
}

.wia-tab-pessoas .wia-lin {
    grid-template-columns: minmax(0, 2.2fr) minmax(140px, 1.5fr) 88px minmax(110px, 1fr) 92px;
}

.wia-cab {
    min-height: 40px;
    padding-top: 8px;
    padding-bottom: 8px;
    background: var(--color-bg-01);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--wc-t3);
}

.wia-quem {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}

.wia-nome {
    min-width: 0;
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.wia-tag {
    flex: 0 0 auto;
    padding: 2px 6px;
    border-radius: 5px;
    background: var(--color-hover-01);
    color: var(--wc-t2);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.wia-tag.limite {
    background: #ef53501a;
    color: #ef5350;
}

.wia-uso {
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
    font-size: 13px;
}

.wia-uso b {
    font-weight: 600;
    color: var(--color-text-01);
}

.wia-uso em {
    margin-left: -4px;
    font-style: normal;
    color: var(--wc-t3);
    white-space: nowrap;
}

/* Com limite a barra e a tinta cheia (quanto do teto foi usado); sem limite
   ela e fraca, porque so compara com a marca que mais gerou. */
.wia-bar {
    flex: 1 1 auto;
    min-width: 40px;
    max-width: 120px;
    height: 6px;
    border-radius: 99px;
    background: var(--color-bg-01);
    overflow: hidden;
}

.wia-bar i {
    display: block;
    height: 100%;
    border-radius: 99px;
    background: var(--color-text-01);
    opacity: .8;
}

.wia-bar.livre i {
    opacity: .28;
}

.wia-bar.cheio i {
    background: #ef5350;
    opacity: 1;
}

.wia-txt,
.wia-quando {
    font-size: 13px;
    color: var(--wc-t2);
    white-space: nowrap;
}

.wia-quando {
    color: var(--wc-t3);
}

.wia-mudo {
    color: var(--wc-t3);
}

/* O ok de "gravado" mora ao lado do campo e aparece por 1,8s depois do
   salvar - e a unica confirmacao de uma tela sem botao Salvar. */
.wia-lim {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.wia-lim-ok {
    position: absolute;
    right: -20px;
    width: 14px;
    height: 14px;
    fill: var(--color-text-01);
    opacity: 0;
    transition: opacity .2s var(--wc-ease);
}

.wia-lim.salvo .wia-lim-ok {
    opacity: .7;
}

.wia-lim.salvando .wia-lim-i {
    opacity: .55;
}

.wia-lim.erro .wia-lim-i {
    border-color: #ef5350;
}

/* Marcas que a pessoa usou: miniaturas sobrepostas, quadradas como toda marca. */
.wia-marcas {
    display: flex;
    align-items: center;
    min-width: 0;
}

.wia .wia-mini {
    width: 22px;
    height: 22px;
    flex: 0 0 22px;
    margin-left: -5px;
    border-radius: 6px;
    box-shadow: 0 0 0 2px var(--color-bg);
    background-size: cover;
    background-position: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 8.5px;
    font-weight: 600;
    line-height: 1;
}

.wia .wia-mini:first-child {
    margin-left: 0;
}

.wia .wia-mini-mais {
    background: var(--color-hover-01);
    color: var(--wc-t2);
    font-size: 10px;
}

.wia-vazio {
    padding: 40px 20px;
    border: 1px dashed var(--wc-line);
    border-radius: var(--wc-radius);
    text-align: center;
    font-size: 13px;
    color: var(--wc-t3);
}

.wia .wcfg-nota {
    margin-top: 14px;
}

/* ===========================================================================
   CHECKOUT - DADOS DE COBRANCA, FORMAS DE PAGAMENTO, PIX E BOLETO
   ---------------------------------------------------------------------------
   O formulario "Dados de cobranca" (cadastroUsuario, assinatura.js) era feito
   de campostyle2 + col-md-* do Bootstrap. A tela /browse/workspaces/ - onde a
   conta nova assina - NAO carrega o Bootstrap: sem as larguras das colunas os
   campos encolhiam para meia largura, e sem o position:relative delas a lista
   do Estado abria solta no canto do popup, por cima do titulo. Agora e o kit
   .wsf-* num grid proprio (nao depende de nada da pagina) e o Estado e um
   <select> nativo. Monocromatico: ativo = tinta do sistema; vermelho so no
   campo com erro. Responsivo no media.css (bloco de mesmo nome).
   =========================================================================== */

/* A mini nasce com width: calc(100% - 399px), pensada para o painel da
   direita; estes popups sao do fluxo de pagamento e centralizam na janela. */
#edit-popup-mini:has(.cad-pop),
#edit-popup-mini:has(.px-pop) {
    width: 100%;
}

#edit-popup-mini .contant .boxpop:has(.cad-pop) {
    max-width: 460px;
    border-radius: 22px;
}

#edit-popup-mini .contant .boxpop:has(.px-pop) {
    max-width: 440px;
    border-radius: 22px;
}

.cad-pop {
    padding: 26px 26px 22px;
    color: var(--color-text-01);
}

.cad-pop .cad-topo {
    padding-right: 34px;
    /* o X da casca fica no canto */
    margin-bottom: 22px;
}

.cad-pop .cad-topo h3 {
    margin: 0;
    padding: 0;
    font-size: 21px;
    font-weight: 600;
    letter-spacing: -0.02em;
    line-height: 1.2;
}

.cad-pop .cad-topo p {
    margin: 6px 0 0;
    font-size: 13px;
    line-height: 1.5;
    opacity: 0.6;
}

.cad-pop .campos {
    padding: 0;
}

/* Modo "dados de cobranca" (aba Pagamento): as duas etapas, uma sob a outra. */
.cad-pop.todas-etapas .cad-e2 {
    margin-top: 24px;
    padding-top: 22px;
    border-top: 1px solid var(--color-border);
}

.cad-pop .cad-secao {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 14px;
    font-size: 13.5px;
    font-weight: 600;
}

.cad-pop .cad-secao em {
    font-style: normal;
    font-size: 12px;
    font-weight: 500;
    opacity: 0.5;
}

.cad-pop.todas-etapas .cad-secao em {
    display: none;
}

/* Grid de 6: CEP|Estado (2+4) e Rua|Numero (4+2) dividem a linha, o resto e
   inteiro. CEP estreito de proposito: meio a meio, o Estado virava
   "RS . Rio Grande do ...". No celular os dois vao um por linha (media.css). */
.cad-pop .wsf.cad-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px 12px;
}

.cad-pop .cad-s6 {
    grid-column: span 6;
}

.cad-pop .cad-s4 {
    grid-column: span 4;
}

.cad-pop .cad-s3 {
    grid-column: span 3;
}

.cad-pop .cad-s2 {
    grid-column: span 2;
}

.cad-pop .wsf-campo {
    min-width: 0;
}

/* background-COLOR, nunca o atalho `background`: ele zera o background-image
   de `select.wsf-i`, que e onde o kit desenha a seta - o Estado ficava sem
   nenhuma indicacao de que abre uma lista. */
.cad-pop .wsf-i {
    height: 44px;
    padding: 0 13px;
    border-radius: 12px;
    background-color: var(--color-bg-01);
    font-size: 14.5px;
}

.cad-pop select.wsf-i {
    padding-right: 34px;
    text-overflow: ellipsis;
}

/* E-mail vem da conta e nao e editado aqui: sem o fundo dos campos editaveis,
   texto em meio-tom. Com opacity 0.55 o valor ficava identico ao placeholder
   do CPF logo abaixo e lia como campo vazio. */
.cad-pop .wsf-i[readonly] {
    background-color: transparent;
    color: var(--wsf-t2);
    cursor: default;
}

.cad-pop .wsf-i[readonly]:focus {
    border-color: var(--color-border);
    box-shadow: none;
}

/* Erro e convencao, nao decoracao: o unico vermelho do formulario. */
.cad-pop .cad-erro .wsf-i {
    border-color: #e83a3a;
}

.cad-pop .cad-erro .wsf-i:focus {
    box-shadow: 0 0 0 3px rgba(232, 58, 58, 0.18);
}

.cad-pop .cad-cep-dica {
    margin-top: -8px;
}

.cad-pop .cad-cep-dica:empty {
    display: none;
}

/* Documento: rotulo e seletor CPF/CNPJ na mesma linha, campo embaixo. */
.cad-pop .cad-doc-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
}

/* Segmented control na tinta do sistema. */
.cad-pop .empresa-ipt {
    float: none;
    display: inline-flex;
    gap: 2px;
    margin: 0;
    padding: 3px;
    border-radius: 10px;
    background: var(--color-hover-01);
    text-align: center;
}

.cad-pop .empresa-ipt div {
    float: none;
    padding: 5px 13px;
    border-radius: 7px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.2;
    opacity: 0.6;
    cursor: pointer;
    transition: opacity .18s ease, background-color .18s ease;
}

.cad-pop .empresa-ipt div:hover {
    opacity: 1;
}

.cad-pop .empresa-ipt div.atv {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    opacity: 1;
}

/* Rodape: Voltar (so na etapa 2 do checkout) a esquerda, acao a direita. */
.cad-pop .cad-rodape {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 26px;
    padding-top: 18px;
    border-top: 1px solid var(--color-border);
}

.cad-pop .cad-bt {
    appearance: none;
    -webkit-appearance: none;
    padding: 11px 22px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: transform .24s cubic-bezier(.16, 1, .3, 1), opacity .18s ease, background-color .18s ease;
}

.cad-pop .cad-bt:hover {
    background: var(--color-hover-01);
}

.cad-pop .cad-bt-pri {
    margin-left: auto;
    min-width: 140px;
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.cad-pop .cad-bt-pri:hover {
    background: var(--color-btn-bg-01);
    opacity: 0.9;
    transform: translateY(-1px);
}

.cad-pop .cad-voltar {
    display: none;
}

.cad-pop:has(.cad-e2.atv) .cad-voltar {
    display: inline-block;
}

/* ---- Formas de pagamento -----------------------------------------------
   Classes dobradas de proposito: vencem o .item-forma-pagamemento legado
   (azul #0064e0 no ativo/hover, float) e o dark.css, que carrega depois. */
.lst-formas-pagamento.fp-lista {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0;
}

.lst-formas-pagamento.fp-lista .item-forma-pagamemento.fp-item {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) 16px;
    align-items: center;
    gap: 14px;
    margin: 0;
    padding: 14px 16px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: transparent;
    color: var(--color-text-01);
    fill: currentColor;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease, transform .24s cubic-bezier(.16, 1, .3, 1);
}

.lst-formas-pagamento.fp-lista .item-forma-pagamemento.fp-item:hover,
.lst-formas-pagamento.fp-lista .item-forma-pagamemento.fp-item:focus-visible {
    border-color: color-mix(in srgb, var(--color-text-01) 40%, transparent);
    background: var(--color-hover-01);
    outline: none;
    transform: translateY(-1px);
}

/* O clearfix legado (::after display:table) viraria um 4o item do grid e
   abriria uma linha vazia embaixo de cada forma. */
.lst-formas-pagamento.fp-lista .item-forma-pagamemento.fp-item::before,
.lst-formas-pagamento.fp-lista .item-forma-pagamemento.fp-item::after {
    content: none;
    display: none;
}

.lst-formas-pagamento.fp-lista .item-forma-pagamemento.fp-item.atv {
    border-color: var(--color-text-01);
    background: var(--color-hover-01);
    fill: currentColor;
}

.lst-formas-pagamento.fp-lista .fp-ico {
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--color-hover-01);
    display: flex;
    align-items: center;
    justify-content: center;
}

.lst-formas-pagamento.fp-lista .fp-ico svg {
    float: none;
    width: 20px;
    height: 20px;
    fill: currentColor;
}

.lst-formas-pagamento.fp-lista .fp-txt {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
}

.lst-formas-pagamento.fp-lista .fp-txt strong {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.01em;
}

.lst-formas-pagamento.fp-lista .fp-txt em {
    font-style: normal;
    font-size: 12.5px;
    opacity: 0.6;
}

.lst-formas-pagamento.fp-lista .fp-bandeiras {
    width: auto;
    max-width: 100%;
    height: 16px;
    margin: 7px 0 0;
    clear: none;
}

.lst-formas-pagamento.fp-lista .ico-next {
    position: static;
    width: 14px;
    height: 14px;
    opacity: 0.35;
    fill: currentColor;
    transition: opacity .2s ease, transform .24s cubic-bezier(.16, 1, .3, 1);
}

.lst-formas-pagamento.fp-lista .item-forma-pagamemento.fp-item:hover .ico-next {
    opacity: 0.9;
    fill: currentColor;
    transform: translateX(2px);
}

/* Popup "Forma de pagamento" (Minha assinatura): subtitulo no lugar do h2
   inline. O h1 da casca .edicao-popup e float:left - sem o clear o texto
   corria na mesma linha do titulo. */
.edicao-assinatura-forma-pagamento .fp-pop-sub {
    clear: both;
    margin: 0;
    padding-top: 6px;
    font-size: 13px;
    opacity: 0.6;
}

/* ---- Pix e boleto gerados ---------------------------------------------- */
/* Mesmo respiro do .cad-pop. Com 4px o "Ja paguei" encostava na borda de
   baixo do popup e a caixa do codigo ia quase de ponta a ponta, mais larga
   que a coluna do texto. */
.px-pop {
    max-width: 440px;
    margin: 0 auto;
    padding: 30px 26px 26px;
    text-align: center;
    color: var(--color-text-01);
}

/* Folga lateral: centralizado, o titulo nao pode correr por baixo do X. */
.px-pop h3 {
    margin: 0;
    padding: 0 30px;
    line-height: 1.2;
    font-size: 22px;
    font-weight: 600;
    letter-spacing: -0.02em;
    text-align: center;
}

.px-pop .px-sub {
    max-width: 340px;
    margin: 8px auto 0;
    font-size: 13px;
    line-height: 1.5;
    opacity: 0.6;
}

/* QR sempre em fundo branco: a camera precisa do contraste, e no tema escuro
   o PNG transparente sumia no fundo. */
.px-pop .px-qr {
    width: 216px;
    height: 216px;
    margin: 20px auto 0;
    padding: 12px;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 0 0 1px var(--color-border);
}

.px-pop .px-qr img {
    display: block;
    width: 100%;
    height: 100%;
    max-width: none;
    border-radius: 6px;
}

.px-pop .px-codigo {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 18px;
    padding: 5px 5px 5px 14px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    background: var(--color-bg-01);
}

.px-pop .px-codigo-txt,
.px-pop #linhaDigitavel.px-codigo-txt {
    flex: 1;
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: inherit;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12.5px;
    opacity: 0.75;
    outline: none;
    text-overflow: ellipsis;
}

.px-pop .px-copiar {
    flex: 0 0 auto;
    appearance: none;
    -webkit-appearance: none;
    padding: 9px 14px;
    border: 0;
    border-radius: 10px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity .18s ease;
}

.px-pop .px-copiar:hover {
    opacity: 0.88;
}

/* Centralizado como o resto do bloco. Em flex o texto quebrava em duas linhas
   alinhadas a esquerda, com o pulso pendurado na borda; inline, o pulso
   acompanha a primeira linha. */
.px-pop .px-status {
    max-width: 340px;
    margin: 16px auto 0;
    font-size: 12.5px;
    line-height: 1.5;
    text-align: center;
    opacity: 0.65;
}

/* Pulso na tinta: "estamos esperando", sem cor de status. */
.px-pop .px-pulso {
    display: inline-block;
    width: 7px;
    height: 7px;
    margin-right: 7px;
    vertical-align: 1px;
    border-radius: 50%;
    background: currentColor;
    animation: px-pulso 1.6s ease-in-out infinite;
}

@keyframes px-pulso {

    0%,
    100% {
        opacity: 0.25;
    }

    50% {
        opacity: 1;
    }
}

.px-pop .px-bt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin: 18px auto 0;
    padding: 11px 22px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    text-decoration: none;
    cursor: pointer;
    transition: background-color .18s ease, opacity .18s ease;
}

.px-pop .px-bt:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
    text-decoration: none;
}

/* Visualizador de Pix da aba Faturas: a casca tinha um <h1>Pagamento</h1>, e o
   bloco novo ja traz o proprio titulo. */
.edicao-popup .topo:has(.px-pop)>h1 {
    display: none;
}

/* La a casca .edicao-popup ja tem 15px de lado e o .topo 15px em cima e 16px
   embaixo: somados, dao as mesmas bordas do popup do checkout. */
.html-visualizar-pix .px-pop {
    padding: 15px 11px 0;
}

/* Sucesso fora do checkout (Pix pago pela aba Faturas): mesma cara do
   checkout. O SVG tem fill:#fff inline - sumia no tema claro. */
.box-assinatura-sucesso .icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 104px;
    height: 104px;
    margin: 22px auto;
    padding: 28px;
    box-sizing: border-box;
    border: 0;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
}

.box-assinatura-sucesso .icon svg {
    width: 100%;
    height: auto;
    fill: var(--color-btn-text-01) !important;
}

.html-visualizar-pix .box-assinatura-sucesso .ftr-popup .bt {
    display: inline-block;
    float: none;
    padding: 11px 22px;
    border-radius: 13px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
}

/* =============================================================================
   NOTIFICACOES DA MARCA - kit .alr-* (window.AirpostAlertas, footer.php)
   -----------------------------------------------------------------------------
   Tres hospedeiros, e nenhum e ancestral do outro:
     . aba Notificacoes da marca (#edit-popup, .alr-marca);
     . aba Notificacoes do workspace (#edit-popup-full, .alr-ws dentro do .wcfg,
       reusa a tabela/segmentado/busca do .wia-*);
     . o editor no AirpostConfirmar (#edit-popup-mini) - IRMAO das outras duas.
   Por isso as vars moram no proprio .alr E no .alr-ed: um --wc-* do .wcfg nao
   existiria dentro do popup mini e a borda sumiria sem erro nenhum
   (feedback_popup_kit_wsf).

   MONOCROMATICO: ligado, marcado e selecionado sao a TINTA do sistema
   (--color-btn-bg-01); hierarquia por peso e opacidade.
   ========================================================================== */
.alr,
.alr-ed {
    --alr-line: var(--color-border);
    --alr-t2: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    --alr-t3: color-mix(in srgb, var(--color-text-01) 50%, transparent);
    --alr-ease: cubic-bezier(.16, 1, .3, 1);
}

/* ---------- switch ---------- */
.alr-sw {
    position: relative;
    display: inline-block;
    flex: 0 0 auto;
    width: 36px;
    height: 21px;
    border-radius: 100px;
    background: var(--color-bg-01);
    border: 1px solid var(--color-border);
    cursor: pointer;
    vertical-align: middle;
    transition: background .18s var(--alr-ease), border-color .18s var(--alr-ease), opacity .18s;
}

.alr-sw>i {
    position: absolute;
    top: 2px;
    left: 2px;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    background: var(--color-bg);
    box-shadow: 0 1px 3px rgba(16, 24, 40, .28);
    transition: transform .18s var(--alr-ease);
}

.alr-sw.on {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

.alr-sw.on>i {
    transform: translateX(15px);
}

.alr-sw[aria-disabled="true"] {
    opacity: .45;
    cursor: not-allowed;
}

.alr-sw.salvando {
    opacity: .55;
}

/* ---------- caixa de marcar (pessoa, canal, linha da tabela) ---------- */
/* Desenhada, e nao <input type=checkbox>: o global do sistema desenha num
   :before absoluto e a linha inteira e o alvo do clique aqui. */
.alr-ck {
    position: relative;
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    box-sizing: border-box;
    border: 1.5px solid color-mix(in srgb, var(--color-text-01) 35%, transparent);
    border-radius: 5px;
    transition: background .15s, border-color .15s;
}

.on>.alr-ck {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

.on>.alr-ck::after {
    content: '';
    position: absolute;
    left: 4px;
    top: 1px;
    width: 4px;
    height: 8px;
    border: solid var(--color-btn-text-01);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* ---------- icone do aviso ---------- */
.alr-ic {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 11px;
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.alr-ic svg {
    width: 18px;
    height: 18px;
}

/* ---------- o editor ---------- */
.alr-ed {
    font-size: 13px;
    color: var(--color-text-01);
}

.alr-rot {
    margin: 16px 0 6px;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--alr-t3);
}

.alr-grupo>.alr-rot:first-child {
    margin-top: 4px;
}

.alr-op-ativo+.alr-grupo>.alr-rot:first-child {
    margin-top: 14px;
}

.alr-grupo.apagado {
    opacity: .5;
}

.alr-op {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 0;
    cursor: pointer;
    user-select: none;
}

.alr-op-ativo {
    padding: 2px 0 12px;
    border-bottom: 1px solid var(--alr-line);
}

.alr-op-txt,
.alr-p-txt {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.alr-op-txt b,
.alr-p-txt b {
    font-size: 13px;
    font-weight: 550;
    letter-spacing: -.01em;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alr-op-txt span,
.alr-p-txt span {
    font-size: 12px;
    line-height: 1.4;
    color: var(--alr-t3);
}

.alr-p-txt span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* busca de pessoas - a receita do campo de busca do sistema */
.alr-busca-w {
    position: relative;
    margin-bottom: 8px;
}

.alr-lupa {
    position: absolute;
    left: 11px;
    top: 50%;
    transform: translateY(-50%);
    width: 13px;
    height: 13px;
    fill: var(--color-text-01);
    opacity: .4;
    pointer-events: none;
}

.alr-busca {
    width: 100%;
    box-sizing: border-box;
    padding: 8px 12px 8px 31px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    font: inherit;
    font-size: 13px;
    outline: none;
    transition: border-color .2s;
}

.alr-busca::placeholder {
    color: var(--color-text-01);
    opacity: .4;
}

.alr-busca:focus {
    border-color: var(--color-btn-bg-01);
}

.alr-pessoas {
    max-height: 214px;
    overflow-y: auto;
    border: 1px solid var(--alr-line);
    border-radius: 12px;
}

.alr-p {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    border-top: 1px solid var(--alr-line);
    cursor: pointer;
    user-select: none;
    transition: background .15s var(--alr-ease);
}

.alr-p:first-child {
    border-top: 0;
}

.alr-p:hover {
    background: var(--color-hover-01);
}

/* Ja coberta pelo grupo "Administradores": marcada, mas nao se desmarca aqui. */
.alr-p.via-admin {
    cursor: default;
}

.alr-p.via-admin:hover {
    background: transparent;
}

.alr-p.via-admin>.alr-ck,
.alr-p.via-admin .alr-av {
    opacity: .45;
}

.alr-av {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
}

.alr-av.sem-foto {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.alr-canais {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.alr-canal {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 1px solid var(--alr-line);
    border-radius: 12px;
    cursor: pointer;
    user-select: none;
    transition: border-color .15s var(--alr-ease), background .15s var(--alr-ease);
}

.alr-canal:hover {
    background: var(--color-hover-01);
}

.alr-canal.on {
    border-color: color-mix(in srgb, var(--color-text-01) 40%, transparent);
}

/* No popup (428px) cada canal tem ~180px: o subtitulo quebra em vez de cortar. */
.alr-canal .alr-p-txt span {
    white-space: normal;
}

.alr-vazio {
    padding: 14px;
    border: 1px dashed var(--alr-line);
    border-radius: 12px;
    font-size: 12.5px;
    color: var(--alr-t3);
    text-align: center;
}

.alr-dica {
    margin-top: 7px;
    font-size: 12px;
    color: var(--alr-t3);
}

.alr-dica-forte {
    color: var(--color-text-01);
    font-weight: 550;
}

/* Sem a migration: tudo a vista, nada clicavel. */
.alr-ed.travado .alr-op,
.alr-ed.travado .alr-p,
.alr-ed.travado .alr-canal {
    cursor: default;
}

.alr-ed.travado .alr-p:hover,
.alr-ed.travado .alr-canal:hover {
    background: transparent;
}

/* ---------- aba da marca ---------- */
.alr-marca {
    max-width: 780px;
}

.alr-intro {
    margin-bottom: 16px;
    font-size: 13px;
    line-height: 1.6;
    color: var(--alr-t2);
}

.alr-aviso {
    margin-bottom: 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--color-bg-01);
    font-size: 12.5px;
    line-height: 1.6;
    color: var(--alr-t2);
}

.alr-card {
    margin-bottom: 10px;
    border: 1px solid var(--alr-line);
    border-radius: 14px;
    transition: border-color .2s var(--alr-ease);
}

.alr-card.aberto {
    border-color: color-mix(in srgb, var(--color-text-01) 22%, transparent);
}

.alr-card-hdr {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px 6px;
    cursor: pointer;
}

.alr-card:not(.on) .alr-ic {
    opacity: .5;
}

.alr-card-txt {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.alr-card-txt b {
    font-size: 14px;
    font-weight: 550;
    letter-spacing: -.01em;
    color: var(--color-text-01);
}

.alr-card-txt span {
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--alr-t3);
}

/* O ok de "gravado" aparece por 1,8s - a confirmacao de uma aba sem Salvar. */
.alr-salvo {
    display: inline-flex;
    opacity: 0;
    transition: opacity .2s var(--alr-ease);
}

.alr-salvo svg {
    width: 15px;
    height: 15px;
    fill: var(--color-text-01);
}

.alr-salvo.on {
    opacity: .7;
}

.alr-card-pe {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 0 16px 14px 64px;
}

.alr-card-resumo {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12.5px;
    color: var(--alr-t2);
}

.alr-card:not(.on) .alr-card-resumo {
    color: var(--alr-t3);
}

.alr-card-editar {
    flex: 0 0 auto;
    padding: 5px 11px;
    border: 1px solid var(--alr-line);
    border-radius: 9px;
    font-size: 12px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    transition: background .15s var(--alr-ease);
}

.alr-card-editar:hover {
    background: var(--color-hover-01);
}

.alr-card-corpo {
    display: none;
    padding: 12px 16px 16px 64px;
    border-top: 1px solid var(--alr-line);
}

.alr-card.aberto .alr-card-corpo {
    display: block;
}

/* ---------- aba do workspace ---------- */
.alr-seg {
    flex-wrap: wrap;
    max-width: 100%;
}

.alr-ws-ev {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 2px 0 12px;
    font-size: 12.5px;
    color: var(--alr-t2);
}

.alr-ws-ev .alr-ic {
    width: 28px;
    height: 28px;
    border-radius: 9px;
}

.alr-ws-ev .alr-ic svg {
    width: 15px;
    height: 15px;
}

.alr-tab .wia-lin {
    grid-template-columns: 22px minmax(0, 2fr) 56px minmax(150px, 1.7fr) 116px;
}

.alr-lin {
    cursor: pointer;
}

.alr-tab .alr-lin.sel {
    background: var(--color-hover-01);
}

.alr-lin.desligado .wia-quem {
    opacity: .6;
}

.alr-sel {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    cursor: pointer;
}

.alr-quem {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    font-size: 13px;
    color: var(--alr-t2);
}

.alr-quem>span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.alr-quem svg {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    fill: var(--color-text-01);
    opacity: 0;
    transition: opacity .15s var(--alr-ease);
}

.alr-lin:hover .alr-quem svg {
    opacity: .45;
}

.alr-lin.desligado .alr-quem {
    color: var(--alr-t3);
}

/* A barra do lote aparece so com selecao, colada em cima da tabela. */
.alr-lote {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 10px;
    padding: 9px 10px 9px 14px;
    border-radius: 12px;
    background: var(--color-bg-01);
    animation: cf-entra .22s var(--alr-ease);
}

.alr-lote-n {
    margin-right: auto;
    font-size: 13px;
    color: var(--alr-t2);
}

.alr-lote-n b {
    font-weight: 600;
    color: var(--color-text-01);
}

.alr-lote-bt {
    padding: 7px 13px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: var(--color-bg);
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    transition: background .15s var(--alr-ease);
}

.alr-lote-bt:hover {
    background: var(--color-hover-01);
}

.alr-lote .wcfg-bt {
    padding: 8px 14px;
}

.alr-lote-limpar {
    padding: 7px 8px;
    font-size: 12.5px;
    color: var(--alr-t3);
    cursor: pointer;
}

.alr-lote-limpar:hover {
    color: var(--color-text-01);
}

/* ---------- editor dentro do AirpostConfirmar ---------- */
/* O editor e mais alto que um dialogo de confirmacao: so o corpo rola, e os
   botoes do rodape ficam sempre a vista. */
#edit-popup-mini .cf-body:has(.alr-ed) {
    max-height: calc(100vh - 230px);
    overflow-y: auto;
    padding-bottom: 12px;
}

.cf-body .alr-pop-nota {
    margin: 0 0 12px;
    font-size: 12.5px;
    color: color-mix(in srgb, var(--color-text-01) 72%, transparent);
}

/* =============================================================================
   CREDITOS EXTRAS DE IA - pacotes avulsos do Studio Criativo (kit .iap-*)
   -----------------------------------------------------------------------------
   Popup de compra (window.IaPacotes, footer.php) sobre a casca #edit-popup-mini.
   Mesma linguagem do .cf-* e do checkout: monocromatico (selecao = tinta do
   sistema), raio 13 nos botoes, ease cubic-bezier(.16,1,.3,1). A tela do Pix
   reaproveita o .px-pop do checkout de proposito - e o mesmo pagamento.
   Responsivo no media.css.
   ============================================================================= */
#edit-popup-mini:has(.iap-pop),
#edit-popup-mini:has(.cad-pop.iap-cad) {
    width: 100%;
    /* acima do Editar com IA (10010) e do AirpostConfirmar (10050): a compra
       abre de dentro deles. */
    z-index: 10060;
}

#edit-popup-mini .contant .boxpop:has(.iap-pop) {
    max-width: 540px;
    border-radius: 22px;
    overflow: hidden;
}

#edit-popup-mini .contant .boxpop:has(.iap-pop-aviso),
#edit-popup-mini .contant .boxpop:has(.iap-pop-ok) {
    max-width: 440px;
}

.iap-pop {
    --iap-t2: color-mix(in srgb, var(--color-text-01) 72%, transparent);
    --iap-t3: color-mix(in srgb, var(--color-text-01) 52%, transparent);
    --iap-ease: cubic-bezier(.16, 1, .3, 1);
    display: flex;
    flex-direction: column;
    /* Cabe na janela: so o corpo rola e o botao de pagar fica sempre a vista
       (com o formulario do cartao o popup passava da altura da tela). 44px =
       o padding vertical da .contant da casca. */
    max-height: calc(100vh - 44px);
    max-height: calc(100dvh - 44px);
    font-size: 14px;
    color: var(--color-text-01);
    animation: cf-entra .22s cubic-bezier(.16, 1, .3, 1);
}

/* ---------- Cabecalho ---------- */
.iap-hdr {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    /* 50 a direita = folga do .btn-close da casca */
    padding: 24px 50px 0 24px;
}

.iap-ico {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 13px;
    background: var(--color-hover-01);
    border: 1px solid var(--color-border);
}

.iap-ico svg {
    width: 19px;
    height: 19px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .85;
}

.iap-hdr-txt {
    min-width: 0;
    padding-top: 1px;
}

.iap-hdr-txt h4 {
    margin: 0;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.25;
}

.iap-hdr-txt span {
    display: block;
    margin-top: 3px;
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--iap-t3);
}

/* ---------- Corpo ---------- */
.iap-hdr,
.iap-ftr {
    flex: 0 0 auto;
}

.iap-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    gap: 20px;
    /* respiro no topo para a etiqueta "Mais escolhido" (top: -9px) nao ser
       cortada pela rolagem */
    padding: 20px 24px 2px;
    overflow-y: auto;
    overscroll-behavior: contain;
}

.iap-texto {
    margin: 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--iap-t2);
}

.iap-rot {
    margin-bottom: 10px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--iap-t3);
}

/* ---------- Saldo atual ---------- */
.iap-saldo {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
    gap: 18px;
    padding: 14px 16px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg-01);
}

.iap-saldo-num {
    display: flex;
    flex-direction: column;
    min-width: 78px;
    padding-right: 18px;
    border-right: 1px solid var(--color-border);
}

.iap-saldo-num b {
    font-size: 28px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.03em;
}

.iap-saldo-num span {
    margin-top: 5px;
    font-size: 11.5px;
    line-height: 1.3;
    color: var(--iap-t3);
}

.iap-saldo.zerado .iap-saldo-num b {
    color: var(--iap-t3);
}

.iap-saldo-lins {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.iap-saldo-lin {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: baseline;
    gap: 10px;
    font-size: 12.5px;
}

.iap-saldo-lin span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    color: var(--iap-t2);
}

.iap-saldo-lin b {
    font-weight: 600;
    white-space: nowrap;
}

.iap-saldo-lin em {
    min-width: 92px;
    font-style: normal;
    font-size: 11.5px;
    text-align: right;
    white-space: nowrap;
    color: var(--iap-t3);
}

.iap-falta {
    margin-top: -10px;
    font-size: 12.5px;
    color: var(--iap-t2);
}

.iap-falta b {
    font-weight: 600;
    color: var(--color-text-01);
}

/* ---------- Pacotes ---------- */
.iap-grade {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.iap-pac {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 118px;
    margin: 0;
    padding: 18px 8px 16px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    text-align: center;
    cursor: pointer;
    transition: border-color .2s ease, background-color .2s ease, box-shadow .24s var(--iap-ease), transform .24s var(--iap-ease);
}

.iap-pac:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 38%, transparent);
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -24px rgba(16, 24, 40, .35);
}

.iap-pac:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
}

.iap-pac.atv {
    border-color: var(--color-text-01);
    background: var(--color-hover-01);
    box-shadow: inset 0 0 0 1px var(--color-text-01);
}

.iap-pac-tag {
    position: absolute;
    top: -9px;
    left: 50%;
    transform: translateX(-50%);
    padding: 2px 8px;
    border-radius: 100px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 10px;
    font-weight: 600;
    letter-spacing: .01em;
    line-height: 1.5;
    white-space: nowrap;
}

.iap-pac-qtd {
    font-size: 26px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.03em;
}

.iap-pac-un {
    margin-top: 3px;
    font-size: 11.5px;
    color: var(--iap-t3);
}

.iap-pac-preco {
    margin-top: auto;
    padding-top: 12px;
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: -.01em;
    white-space: nowrap;
}

/* Esqueleto enquanto o catalogo carrega. */
.iap-sk {
    border-color: transparent;
    background: var(--color-hover-01);
    animation: iap-pulso 1.3s ease-in-out infinite;
    pointer-events: none;
}

.iap-saldo.iap-sk {
    height: 76px;
}

@keyframes iap-pulso {

    0%,
    100% {
        opacity: .55;
    }

    50% {
        opacity: 1;
    }
}

/* ---------- Forma de pagamento ---------- */
.iap-seg {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3px;
    padding: 3px;
    border-radius: 12px;
    background: var(--color-hover-01);
}

.iap-seg-it {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 36px;
    margin: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    opacity: .6;
    cursor: pointer;
    transition: opacity .18s ease, background-color .18s ease, box-shadow .18s ease;
}

.iap-seg-it svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.iap-seg-it:hover {
    opacity: 1;
}

.iap-seg-it.atv {
    opacity: 1;
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .12), 0 0 0 1px var(--color-border);
}

.iap-forma {
    margin-top: 12px;
}

.iap-forma[hidden],
.iap-cartao-salvo[hidden],
.iap-cartao-novo[hidden],
.iap-ok-saldo[hidden] {
    display: none;
}

.iap-dica {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--iap-t3);
}

.iap-cartao-salvo {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
}

.iap-cartao-ico {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 10px;
    background: var(--color-hover-01);
}

.iap-cartao-ico svg {
    width: 18px;
    height: 18px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
}

.iap-cartao-txt {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
}

.iap-cartao-txt b {
    font-size: 13.5px;
    font-weight: 600;
}

.iap-cartao-txt span {
    margin-top: 1px;
    font-size: 12px;
    color: var(--iap-t3);
}

.iap-cartao-novo.wsf {
    gap: 14px;
}

.iap-pop .wsf-i {
    height: 42px;
    padding: 0 12px;
    border-radius: 11px;
}

.iap-pop .iap-erro .wsf-i {
    border-color: #e83a3a;
}

.iap-pop .iap-erro .wsf-i:focus {
    box-shadow: 0 0 0 3px rgba(232, 58, 58, .18);
}

.iap-link {
    appearance: none;
    -webkit-appearance: none;
    flex: 0 0 auto;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--color-text-01) 30%, transparent);
    text-underline-offset: 3px;
    cursor: pointer;
}

.iap-link:hover {
    text-decoration-color: currentColor;
}

/* ---------- Notas e mensagem ---------- */
.iap-notas {
    list-style: none;
    margin: -4px 0 0;
    padding: 14px 0 0;
    border-top: 1px solid var(--color-border);
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.iap-notas li {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    font-size: 12px;
    line-height: 1.5;
    color: var(--iap-t2);
}

.iap-notas svg {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    margin-top: 2px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .5;
}

.iap-msg:empty {
    display: none;
}

.iap-msg-box {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 10px 12px;
    border: 1px solid color-mix(in srgb, var(--color-text-01) 18%, transparent);
    border-radius: 11px;
    background: var(--color-hover-01);
    font-size: 12.5px;
    line-height: 1.5;
}

.iap-msg-box svg {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin-top: 1px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

/* ---------- Rodape ---------- */
.iap-ftr {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 20px;
    padding: 16px 24px 18px;
    border-top: 1px solid var(--color-border);
    background: var(--color-bg-01);
}

.iap-ftr-centro {
    justify-content: center;
}

.iap-resumo {
    display: flex;
    flex-direction: column;
    margin-right: auto;
    min-width: 0;
}

.iap-resumo b {
    font-size: 14px;
    font-weight: 600;
}

.iap-resumo span {
    font-size: 12px;
    color: var(--iap-t3);
}

.iap-btn {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 40px;
    margin: 0;
    padding: 0 18px;
    border: 1px solid transparent;
    border-radius: 13px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: transform .2s var(--iap-ease), box-shadow .2s var(--iap-ease), background-color .18s ease, opacity .18s ease;
}

.iap-btn svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.iap-btn:focus {
    outline: none;
}

.iap-btn:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
}

.iap-btn-pri {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* Icone PREENCHIDO (logo do Pix) dentro do kit, que desenha os demais por
   traco: sem isto ele herdava fill:none + stroke e virava um contorno torto.
   (0,2,1) vence .iap-btn svg / .iap-seg-it svg / .iap-ico svg (0,1,1). */
.iap-pop svg.iap-svg-fill {
    fill: currentColor;
    stroke: none;
}

.iap-btn svg.iap-svg-fill {
    width: 15px;
    height: 15px;
}

.iap-btn-pri:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.iap-btn-ghost {
    border-color: var(--color-border);
}

.iap-btn-ghost:hover {
    background: var(--color-hover-01);
}

.iap-btn:disabled,
.iap-btn.carregando {
    opacity: .6;
    cursor: default;
    transform: none;
    box-shadow: none;
}

/* ---------- Pix (reaproveita o .px-pop do checkout) ---------- */
.iap-pop .px-pop.iap-pix {
    max-width: none;
    margin: 0;
    padding: 0;
}

.iap-pop .px-pop.iap-pix .px-sub {
    margin-top: 0;
}

.iap-pop-pix .iap-ftr {
    justify-content: space-between;
}

/* ---------- Sucesso ---------- */
.iap-ok {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 34px 32px 0;
    text-align: center;
}

.iap-ok-ico {
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    animation: iap-ok-entra .42s cubic-bezier(.16, 1, .3, 1);
}

.iap-ok-ico svg {
    width: 26px;
    height: 26px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
}

@keyframes iap-ok-entra {
    from {
        transform: scale(.6);
        opacity: 0;
    }

    to {
        transform: none;
        opacity: 1;
    }
}

.iap-ok h4 {
    margin: 18px 0 0;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -.02em;
}

.iap-ok p {
    max-width: 320px;
    margin: 8px 0 0;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--iap-t2);
}

.iap-ok p b {
    font-weight: 600;
    color: var(--color-text-01);
}

.iap-ok-saldo {
    margin-top: 16px;
    padding: 6px 12px;
    border-radius: 100px;
    background: var(--color-hover-01);
    font-size: 12.5px;
    color: var(--iap-t2);
}

.iap-ok-saldo b {
    font-weight: 600;
    color: var(--color-text-01);
}

/* ---------- Aba "Creditos de IA" da assinatura: pacotes avulsos ---------- */
.contant-assinatura-user .ia-pacotes {
    border: 1px solid var(--color-border);
    border-radius: 14px;
    padding: 4px 16px;
    background: var(--color-bg);
}

.contant-assinatura-user .ia-pacote {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 0;
    border-bottom: 1px solid var(--color-border);
}

.contant-assinatura-user .ia-pacote:last-child {
    border-bottom: none;
}

.contant-assinatura-user .ia-pacote-txt {
    flex: 1 1 auto;
    min-width: 0;
}

.contant-assinatura-user .ia-pacote-txt strong {
    display: block;
    font-size: 13.5px;
    font-weight: 600;
}

.contant-assinatura-user .ia-pacote-txt>span {
    display: block;
    margin: 2px 0 7px;
    font-size: 12px;
    opacity: .6;
}

.contant-assinatura-user .ia-pacote.vencido {
    opacity: .55;
}


/* =============================================================================
   CREDITOS DE IA DO STUDIO - bloco da faixa de identidade (kit .ecc-*)
   -----------------------------------------------------------------------------
   Ultima coluna da faixa (cores . tipografia . logotipos . creditos): resumo em
   3 linhas no mesmo ritmo das vizinhas (rotulo 10px caixa-alta) e o detalhe
   num popover (.ecc-pop) fixo no <body>, no desenho do .ap-usercard.
   Monocromatico: plano = tinta cheia, pacotes = tinta a 42%, trilho = realce.
   JS: htmlCreditoStudioCard / window.StudioCreditosPop (footer.php).
   ============================================================================= */
.ecc {
    --ecc-t2: color-mix(in srgb, var(--color-text-01) 70%, transparent);
    --ecc-t3: color-mix(in srgb, var(--color-text-01) 50%, transparent);
    --ecc-pac: color-mix(in srgb, var(--color-text-01) 42%, transparent);
    --ecc-trilho: color-mix(in srgb, var(--color-text-01) 11%, transparent);
    display: flex;
    flex-direction: column;
    gap: 3px;
    max-width: 300px;
    color: var(--color-text-01);
}

.ecc-topo {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 18px;
}

/* Mesmo rotulo das colunas vizinhas (.estudio-perfil-item .lbl). */
.ecc-rot {
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .5px;
    color: #888;
    white-space: nowrap;
}

/* Etiqueta discreta de proposito: quando existe, o destaque do bloco e o
   botao Comprar ao lado - duas pilulas cheias disputavam a atencao. */
.ecc-badge {
    padding: 0 6px;
    border-radius: 100px;
    background: var(--color-hover-01);
    box-shadow: inset 0 0 0 1px var(--color-border);
    color: var(--color-text-01);
    font-size: 9.5px;
    font-weight: 600;
    line-height: 16px;
    letter-spacing: .01em;
    white-space: nowrap;
}

.ecc-cta {
    appearance: none;
    -webkit-appearance: none;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    height: 20px;
    margin: 0 0 0 auto;
    padding: 0 8px 0 6px;
    border: 1px solid var(--color-border);
    border-radius: 7px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 11px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, transform .2s cubic-bezier(.16, 1, .3, 1);
}

.ecc-cta svg {
    width: 11px;
    height: 11px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.6;
    stroke-linecap: round;
}

.ecc-cta:hover {
    background: var(--color-hover-01);
    border-color: color-mix(in srgb, var(--color-text-01) 35%, transparent);
}

/* Sem saldo (ou acabando), a compra vira a acao principal do bloco. */
.ecc-cta.is-forte {
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.ecc-cta.is-forte:hover {
    background: var(--color-btn-bg-01);
    transform: translateY(-1px);
}

.ecc-cta:focus-visible,
.ecc-abrir:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
}

/* Resumo inteiro e o gatilho do detalhe. */
.ecc-abrir {
    appearance: none;
    -webkit-appearance: none;
    display: flex;
    flex-direction: column;
    gap: 3px;
    width: 100%;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.ecc-abrir:focus {
    outline: none;
}

.ecc-linha {
    display: flex;
    align-items: center;
    gap: 10px;
}

.ecc-num {
    display: inline-flex;
    align-items: baseline;
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
}

.ecc-num b {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.ecc-num>span {
    font-size: 11.5px;
    color: var(--ecc-t3);
}

.ecc.is-bloq .ecc-num b {
    color: var(--ecc-t3);
}

.ecc-barra {
    display: flex;
    flex: 1 1 auto;
    min-width: 40px;
    height: 5px;
    border-radius: 100px;
    background: var(--ecc-trilho);
    overflow: hidden;
}

.ecc-barra i {
    display: block;
    height: 100%;
    transition: width .45s cubic-bezier(.16, 1, .3, 1);
}

.ecc-s1 {
    background: var(--color-text-01);
}

.ecc-s2 {
    background: var(--ecc-pac);
}

/* Fio de 1px entre plano e pacote: sem ele as duas tintas se fundem nas pontas. */
.ecc-barra .ecc-s1+.ecc-s2 {
    box-shadow: inset 1px 0 0 var(--color-bg);
}

.ecc-meta {
    display: flex;
    align-items: center;
    gap: 4px;
    min-width: 0;
    font-size: 11.5px;
    line-height: 1.3;
    color: var(--ecc-t2);
}

.ecc-meta-txt {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ecc-chev {
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .55;
    transition: transform .22s cubic-bezier(.16, 1, .3, 1), opacity .18s ease;
}

.ecc-abrir:hover .ecc-meta {
    color: var(--color-text-01);
}

.ecc-abrir:hover .ecc-chev {
    opacity: 1;
}

.ecc.is-aberto .ecc-chev {
    transform: rotate(180deg);
    opacity: 1;
}

/* Sem assinatura: texto no lugar da barra. */
.ecc-off-txt {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}

.ecc-off-txt b {
    font-size: 13px;
    font-weight: 600;
}

.ecc-off-txt span {
    font-size: 11.5px;
    color: var(--ecc-t2);
}

/* ---------- Detalhe (popover) ---------- */
.ecc-pop {
    --ecc-t2: color-mix(in srgb, var(--color-text-01) 70%, transparent);
    --ecc-t3: color-mix(in srgb, var(--color-text-01) 50%, transparent);
    --ecc-pac: color-mix(in srgb, var(--color-text-01) 42%, transparent);
    position: fixed;
    z-index: 100000;
    width: 300px;
    padding: 14px 14px 12px;
    background: var(--uc-surface);
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 14px 38px -8px #00000026, 0 4px 12px -6px #0000001a;
    font-size: 13px;
    line-height: 1.35;
    opacity: 0;
    transform: translateY(-5px) scale(.985);
    transform-origin: top right;
    transition: opacity .14s ease, transform .14s ease;
}

.ecc-pop.ecc-acima {
    transform-origin: bottom right;
}

.ecc-pop.ecc-aberto {
    opacity: 1;
    transform: none;
}

.ecc-pop-hdr {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--color-border);
}

.ecc-pop-hdr strong {
    display: block;
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.ecc-pop-hdr div>span {
    display: block;
    margin-top: 1px;
    font-size: 11.5px;
    color: var(--ecc-t3);
}

.ecc-pop-total {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    flex: 0 0 auto;
}

.ecc-pop-total b {
    font-size: 22px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: -.03em;
    font-variant-numeric: tabular-nums;
}

.ecc-pop-total span {
    margin-top: 3px;
    font-size: 11px;
    color: var(--ecc-t3);
}

.ecc-pop-lista {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 12px 0;
}

.ecc-pop-marca {
    padding-top: 10px;
    border-top: 1px solid var(--color-border);
}

.ecc-it {
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr) auto;
    align-items: start;
    gap: 9px;
}

.ecc-dot {
    width: 8px;
    height: 8px;
    margin-top: 5px;
    border-radius: 50%;
}

.ecc-dot.s1 {
    background: var(--color-text-01);
}

.ecc-dot.s2 {
    background: var(--ecc-pac);
}

/* Teto da marca nao e saldo: anel, nao bolinha cheia. */
.ecc-dot.s0 {
    box-shadow: inset 0 0 0 1.5px var(--ecc-t2);
}

.ecc-it-txt {
    min-width: 0;
}

.ecc-it-txt strong {
    display: block;
    font-size: 13px;
    font-weight: 600;
}

.ecc-it-txt span {
    display: block;
    margin-top: 1px;
    font-size: 11.5px;
    color: var(--ecc-t3);
}

.ecc-it-val {
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.ecc-it-val b {
    font-size: 13px;
    font-weight: 600;
}

.ecc-it-val span {
    font-size: 11.5px;
    color: var(--ecc-t3);
}

.ecc-pop-nota {
    margin: 0;
    padding: 10px 0 0;
    border-top: 1px solid var(--color-border);
    font-size: 11.5px;
    line-height: 1.5;
    color: var(--ecc-t3);
}

.ecc-pop-rod {
    margin: 10px 0 0;
    font-size: 12px;
    line-height: 1.45;
    color: var(--ecc-t2);
}

.ecc-pop-btn {
    appearance: none;
    -webkit-appearance: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 100%;
    height: 36px;
    margin: 12px 0 0;
    border: 0;
    border-radius: 12px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: transform .2s cubic-bezier(.16, 1, .3, 1), box-shadow .2s cubic-bezier(.16, 1, .3, 1);
}

.ecc-pop-btn svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.4;
    stroke-linecap: round;
}

.ecc-pop-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.ecc-pop-btn:focus {
    outline: none;
}

.ecc-pop-btn:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
}

/* =========================================================================
   UPLOAD EM ANDAMENTO DENTRO DO POPUP (.up-inline)
   -------------------------------------------------------------------------
   O MESMO item da bandeja (.up-tray), espelhado no lugar onde o arquivo vai
   cair. A bandeja resolveu "nao travar a tela"; isto resolve o vao que ela
   abriu: quem solta um arquivo DENTRO do popup olha para o popup, e ali nao
   acontecia nada ate o PUT terminar.

   Ele e uma FAIXA DE UMA LINHA, nao um painel: nome, estado e porcentagem
   dividem a mesma linha e a unica altura extra e a barra de 2px. A versao
   anterior empilhava cabecalho + nome + barra + estado e ficava mais alta que
   a propria miniatura que ela estava anunciando - num popup onde a midia e o
   assunto, o aviso nao pode roubar a altura do assunto. O cabecalho voltou a
   existir so quando ha mais de um arquivo (ver upInlineHtml).

   As medidas sao as do popup: mesmo raio dos campos vizinhos, mesma regua de
   8px de respiro embaixo, mesmo 1px de borda.

   MONOCROMATICO: a barra usa a tinta (--color-btn-bg-01). A unica cor e o
   vermelho de ERRO - sinal de estado, igual ao da bandeja.
   ========================================================================= */

.up-inline {
    display: none;
}

.up-inline.atv {
    display: block;
    margin: 0 0 8px;
    padding: 5px 8px 6px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-hover-01);
}

.up-inline .up-in-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 2px 0 4px;
}

.up-inline .up-in-tit {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: var(--color-text-01);
    opacity: .75;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.up-inline .up-in-b {
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 11px;
    font-weight: 600;
    padding: 2px 5px;
    border-radius: 6px;
    cursor: pointer;
    opacity: .5;
    transition: opacity .14s ease, background .14s ease;
}

.up-inline .up-in-b:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.up-inline .up-in-it {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 0;
}

.up-inline .up-in-ico {
    flex: 0 0 auto;
    width: 24px;
    height: 24px;
    border-radius: 7px;
    background: var(--color-hover-01);
    background-size: cover;
    background-position: center;
    display: grid;
    place-items: center;
    overflow: hidden;
}

.up-inline .up-in-ico svg {
    width: 12px;
    height: 12px;
    fill: var(--color-text-01);
    opacity: .4;
}

.up-inline .up-in-corpo {
    flex: 1 1 auto;
    min-width: 0;
}

.up-inline .up-in-l1 {
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Nome e estado dividem a sobra: os dois truncam, e a porcentagem (colada na
   direita pelo margin-left:auto) nunca e empurrada para fora. */
.up-inline .up-in-nome {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 11.5px;
    font-weight: 550;
    line-height: 16px;
    color: var(--color-text-01);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.up-inline .up-in-sub {
    flex: 0 1 auto;
    min-width: 0;
    font-size: 11px;
    line-height: 16px;
    color: var(--color-text-01);
    opacity: .5;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.up-inline .up-in-sub::before {
    content: "·";
    margin-right: 6px;
    opacity: .7;
}

/* Tabular para o numero nao dancar de largura a cada tique (42% -> 43%). */
.up-inline .up-in-pct {
    flex: 0 0 auto;
    margin-left: auto;
    font-size: 11px;
    font-weight: 600;
    line-height: 16px;
    font-variant-numeric: tabular-nums;
    color: var(--color-text-01);
    opacity: .55;
}

.up-inline .up-in-bar {
    display: block;
    height: 2px;
    margin: 4px 0 1px;
    border-radius: 2px;
    background: var(--color-border);
    overflow: hidden;
}

.up-inline .up-in-bar>i {
    display: block;
    height: 100%;
    width: 0;
    border-radius: 2px;
    background: var(--color-btn-bg-01);
    transition: width .2s ease;
}

.up-inline .up-in-x {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    padding: 0;
    display: grid;
    place-items: center;
}

.up-inline .up-in-x svg {
    width: 11px;
    height: 11px;
}

/* Na fila o arquivo ainda nao comecou: a barra vazia diria "0%" como se
   estivesse travada. Um traco fino e apagado le como espera. */
.up-inline .up-in-e-fila .up-in-bar>i {
    width: 100% !important;
    opacity: .16;
}

.up-inline .up-in-e-erro .up-in-sub {
    color: #e83a3a;
    opacity: .9;
}

.up-inline .up-in-e-erro .up-in-bar>i {
    background: #e83a3a;
    width: 100% !important;
    opacity: .5;
}

.up-inline .up-in-e-erro .up-in-repetir {
    opacity: .85;
}

/* PONTINHO NA ABA QUE NAO ESTA NA FRENTE. Subir um anexo com a aba de midia
   aberta (ou o contrario) deixava o upload sem sinal nenhum na tela: o
   indicador existe, mas dentro do painel escondido. */
.item-post .tabs-tipos-arquivos .bt-it.up-carregando {
    position: relative;
}

.item-post .tabs-tipos-arquivos .bt-it.up-carregando::after {
    content: "";
    position: absolute;
    top: 6px;
    right: 2px;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    animation: up-in-pulso 1.2s ease-in-out infinite;
}

@keyframes up-in-pulso {

    0%,
    100% {
        opacity: .25;
    }

    50% {
        opacity: 1;
    }
}


/* =========================================================================
   PREVIA NAS REDES (#pr-modal, window.PreviewRedes)
   -------------------------------------------------------------------------
   Irma do preview de video (#vp-modal): mesma familia de tokens (--vp-*),
   MESMO palco (.vp-palco / .vp-midia-wrap / .vp-midia, que nao sao do
   preview de upload - sao do aparelho) e o MESMO mockup (.vpm-*). O que muda
   e a pergunta: la "posso subir este arquivo?", aqui "como a peca que ja esta
   aqui aparece em cada rede marcada?".

   Por isso a janela e de UMA coluna e mais estreita: nao ha checagem tecnica
   nem decisao de enviar - ha a peca, as abas das redes e, quando houver, o
   que aquela rede vai fazer com ela. Tudo que o olho precisa esta numa
   vertical so: abas em cima, peca no meio, aviso embaixo.

   O palco e ESCURO nos dois temas, como no preview de upload: ele imita a
   tela do app, que e preta.
   ========================================================================= */

.pr-modal {
    position: fixed;
    inset: 0;
    z-index: 10020;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

.pr-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .6);
    backdrop-filter: blur(6px) saturate(115%);
    -webkit-backdrop-filter: blur(6px) saturate(115%);
    cursor: pointer;
    animation: vp-fundo .18s ease both;
}

.pr-box {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: min(520px, 100%);
    height: min(88vh, 900px);
    background: var(--vp-surface);
    color: var(--color-text-01);
    border-radius: 18px;
    overflow: hidden;
    box-shadow:
        0 40px 90px -30px rgba(0, 0, 0, .55),
        0 12px 30px -18px rgba(0, 0, 0, .35),
        0 0 0 1px var(--color-border);
    animation: vp-entrar .2s cubic-bezier(.2, .8, .3, 1) both;
}

/* Mesmo respeito do preview de upload: sem movimento para quem pediu sem. */
@media (prefers-reduced-motion: reduce) {

    .pr-box,
    .pr-overlay {
        animation: none;
    }
}

/* O foco e desenhado pela janela, nao pelo navegador: o anel azul padrao do
   Chrome seria a unica cor de uma interface monocromatica. */
#pr-modal button:focus {
    outline: none;
}

#pr-modal button:focus-visible {
    outline: none;
    box-shadow: 0 0 0 2px var(--vp-surface), 0 0 0 4px var(--color-btn-bg-01);
}

/* Na mesa escura o anel se inverte, senao o preto do foco some no preto. */
.pr-mesa button:focus-visible {
    box-shadow: 0 0 0 2px var(--vp-mesa), 0 0 0 4px rgba(255, 255, 255, .85);
}

/* ---------- Cabecalho ---------- */

.pr-hdr {
    flex: 0 0 auto;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: var(--vp-pad);
    padding-bottom: 12px;
}

.pr-hdr-txt {
    flex: 1 1 auto;
    min-width: 0;
}

.pr-hdr-tit {
    font-size: var(--vp-fs-tit);
    font-weight: 650;
    letter-spacing: -0.015em;
}

.pr-hdr-sub {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 5px;
    font-size: var(--vp-fs-sub);
    color: var(--vp-mudo);
    min-width: 0;
}

.pr-destino {
    flex: 0 0 auto;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--vp-trilho);
    color: var(--color-text-01);
    font-weight: 600;
}

.pr-hdr-marca {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pr-fechar {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    display: grid;
    place-items: center;
    cursor: pointer;
    opacity: .5;
    transition: opacity .14s ease, background .14s ease;
}

.pr-fechar:hover {
    opacity: 1;
    background: var(--vp-trilho);
}

.pr-fechar svg {
    width: 16px;
    height: 16px;
}

/* ---------- Abas das redes ----------
   O logo herda currentColor: apagado quando a aba esta apagada, na cor do
   botao quando ela esta acesa. Uma fonte so para os cinco logos
   (window.REDE_SVG), a mesma dos filtros e da linha da Producao. */

.pr-abas {
    flex: 0 0 auto;
    display: flex;
    gap: 6px;
    padding: 0 var(--vp-pad) 12px;
    overflow-x: auto;
    scrollbar-width: none;
}

.pr-abas::-webkit-scrollbar {
    display: none;
}

.pr-aba {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 11px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: var(--vp-fs-sub);
    font-weight: 600;
    cursor: pointer;
    opacity: .62;
    transition: opacity .14s ease, background .14s ease, border-color .14s ease;
}

.pr-aba:hover {
    opacity: 1;
    background: var(--vp-trilho);
}

.pr-aba.atv {
    opacity: 1;
    border-color: transparent;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.pr-aba-ico {
    display: grid;
    place-items: center;
}

.pr-aba-ico svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
    display: block;
}

/* Rede marcada que NAO publica este formato continua tendo aba: e ali que a
   pessoa descobre o motivo, antes do Log de Publicacao. O tracejado diz que
   ela esta no conteudo mas fora desta publicacao. */
.pr-aba-off {
    border-style: dashed;
}

.pr-aba-off:not(.atv) .pr-aba-ico {
    opacity: .5;
}

/* ---------- A mesa escura ---------- */

.pr-mesa {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: var(--vp-pad);
    background: radial-gradient(115% 85% at 50% -10%, #1c1e24 0%, var(--vp-mesa) 60%);
}

/* A peca sem midia: o mockup continua de pe (e a legenda que se quer ver),
   e o buraco diz o que falta em vez de mostrar preto. */
.pr-sem-midia {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    background: #1a1c21;
    color: rgba(255, 255, 255, .5);
    font-size: var(--vp-fs-sub);
    text-align: center;
    padding: 12px;
}

.pr-sem-midia svg {
    width: 26px;
    height: 26px;
}

/* Item de carrossel sem video (ou conteudo sem midia): o play sai de cena
   sem sair do DOM - recria-lo a cada troca de item obrigaria a religar o
   handler, e ele e o mesmo botao o tempo todo. */
.vp-midia-wrap.pr-sem-play .vp-play {
    display: none;
}

.vp-midia img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    background: #000;
}

.vp-midia img.vp-inteiro {
    object-fit: contain;
}

/* ---------- A barra do aparelho ---------- */

.pr-barra {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    color: rgba(255, 255, 255, .62);
    font-size: var(--vp-fs-mic);
}

.pr-tag {
    flex: 1 1 auto;
    min-width: 0;
    font-weight: 600;
    letter-spacing: .01em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.pr-nav {
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 2px;
}

.pr-nav:empty {
    display: none;
}

.pr-nav-b {
    width: 22px;
    height: 22px;
    padding: 0;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: #fff;
    display: grid;
    place-items: center;
    cursor: pointer;
    opacity: .55;
    transition: opacity .14s ease, background .14s ease;
}

.pr-nav-b:hover {
    opacity: 1;
    background: rgba(255, 255, 255, .12);
}

.pr-nav-b svg {
    width: 12px;
    height: 12px;
}

.pr-nav-n {
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    padding: 0 3px;
}

.pr-seg {
    flex: 0 0 auto;
    display: flex;
    gap: 2px;
    padding: 2px;
    border-radius: 9px;
    background: rgba(255, 255, 255, .09);
}

.pr-tool {
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: rgba(255, 255, 255, .7);
    font: inherit;
    font-size: var(--vp-fs-mic);
    font-weight: 600;
    padding: 4px 9px;
    cursor: pointer;
    transition: background .14s ease, color .14s ease;
}

.pr-tool:hover:not(:disabled) {
    color: #fff;
}

.pr-tool.atv {
    background: rgba(255, 255, 255, .16);
    color: #fff;
}

.pr-tool:disabled {
    opacity: .32;
    cursor: not-allowed;
}

/* ---------- O pe: o que a rede faz com a peca ---------- */

.pr-pe {
    flex: 0 0 auto;
    max-height: 30vh;
    overflow-y: auto;
    padding: 0 var(--vp-pad);
}

.pr-pe>div:not(:empty) {
    padding: 12px 0 var(--vp-pad);
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.pr-aviso {
    font-size: var(--vp-fs-txt);
    line-height: 1.45;
    padding: 9px 11px;
    border-radius: var(--vp-r);
    background: var(--vp-trilho);
    color: var(--color-text-01);
}

/* O alerta e o unico lugar com cor: ele diz que a publicacao NAO vai
   acontecer naquela rede, e isso e estado, nao decoracao. */
.pr-aviso-alerta {
    background: #e83a3a14;
    box-shadow: inset 2px 0 0 #e83a3a;
}

.pr-aviso-neutro {
    color: var(--vp-mudo);
}

/* ---------- O botao que abre isto, no popup ----------
   SO O ICONE, quadrado, na altura do "Adicionar midia" ao lado. A linha de
   acoes vive numa coluna estreita e um segundo rotulo ali disputava a largura
   com o botao principal - o nome da acao vive no tooltip (data-title).

   Ele e BOTAO e o (i) vizinho e glifo: um abre uma janela, o outro so explica.
   A moldura e o que separa os dois sem precisar de rotulo. */

.item-post .btn-preview-redes {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
    opacity: .72;
    transition: background-color .15s ease, opacity .15s ease;
}

.item-post .btn-preview-redes:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .btn-preview-redes:focus {
    outline: none;
}

.item-post .btn-preview-redes:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
}

.item-post .btn-preview-redes svg {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
}

/* ==========================================================================
   CABECALHO E MOLDURA DA COLUNA DE ATIVIDADES (.html-conteudo-atividades)
   --------------------------------------------------------------------------
   O MIOLO da conversa mora no coment-editor.css (secoes 14, 15 e 18). Aqui
   fica so o que e da CASCA: o cabecalho do trilho - que os dois popups
   (o v2 e o antigo) compartilham - e o comportamento de rolagem dentro da
   janela flutuante.

   O cabecalho era `Atividades | Geral Comentarios Tarefas` numa linha so, sem
   respiro lateral: numa coluna de 330px o rotulo comia a largura, "Tarefas"
   saia pela borda e a aba ativa era a UNICA com borda - ou seja, trocar de aba
   mexia 1px no tamanho do botao. Agora o rotulo sai (a coluna ja se anuncia
   pelo conteudo) e as abas viram um segmented control da largura do trilho,
   no mesmo eixo do resto da coluna.
   ========================================================================== */
.html-conteudo-atividades .edicao-page-comentarios .topo {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 14px !important;
    border-bottom: 1px solid var(--color-border);
}

.html-conteudo-atividades .edicao-page-comentarios .topo h1 {
    display: none;
}

.html-conteudo-atividades .edicao-page-comentarios .topo .selection-state {
    margin-left: 0;
    width: 100%;
    display: flex;
    gap: 2px;
    padding: 3px;
    border-radius: 11px;
    background: var(--color-bg-01);
}

.html-conteudo-atividades .edicao-page-comentarios .topo .selection-state .btn-state {
    flex: 1 1 0;
    min-width: 0;
    float: none;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    white-space: nowrap;
    padding: 5px 6px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: -.01em;
    opacity: .6;
    transition: background-color .16s, opacity .16s;
}

.html-conteudo-atividades .edicao-page-comentarios .topo .selection-state .btn-state:hover {
    opacity: .9;
}

/* Monocromatico: a aba ativa e a TINTA sobre a superficie da janela, com um
   anel de 1px no lugar da borda antiga (que era `#000000a1` cravado). */
.html-conteudo-atividades .edicao-page-comentarios .topo .selection-state .btn-state.atv {
    border: 0;
    opacity: 1;
    font-weight: 600;
    color: var(--color-text-01);
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 0 0 1px var(--color-border);
}

.html-conteudo-atividades .edicao-page-comentarios .selection-state .btn-state .cm-ct {
    margin-left: 0;
    min-width: 15px;
    height: 15px;
    font-size: 10px;
    background: var(--color-hover-01);
}

/* --- dentro da janela flutuante (v2) ------------------------------------
   O SCROLLER NAO PODE TER PADDING EM CIMA: o navegador encolhe a area do
   `position: sticky` pelo padding do container que rola, entao um
   `padding-top: 12px` aqui empurrava a faixa de dia 12px para baixo e o
   conteudo continuava aparecendo nessa fresta, entre o cabecalho e a faixa
   (medido: faixa grudava em 157 com a lista comecando em 146). O respiro de
   cima passa para o proprio bloco da conversa; o de baixo fica, porque e ele
   que separa o editor da borda da janela. */
.pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios {
    padding: 0 14px 14px !important;
}

.pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios>.container-atividades,
.pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios>.info-zero {
    padding-top: 12px;
}

/* O editor continua sendo a caixa de sempre (borda, raio e sombra do
   painel3): nada de padding proprio, que engordava a moldura. O que ele ganha
   e uma SAIA da cor da janela - `0 14px 0 14px` cobre o respiro de baixo e as
   laterais sem tocar o topo, que e onde mora a borda. */
.pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios>.box-add-comentario {
    background: var(--color-bg);
    /* A saia entra por ULTIMO na lista: as duas sombras da caixa continuam
       desenhadas por cima dela, entao o editor nao perde o relevo. */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.03), 0 14px 0 14px var(--color-bg);
    /* Acima da faixa de dia grudada (z-index 1), que vem DEPOIS no DOM - sem
       isto o rotulo do ultimo dia era desenhado por cima do editor. */
    z-index: 5;
}

/* O texto deixa de ser cortado em seco na borda do editor. Comeca 1px ACIMA da
   caixa (`bottom: calc(100% + 1px)`): ancorado no topo do padding box ele
   pintava por cima da borda de cima e a caixa parecia sem contorno. */
.pd-v2 .pd2-side .edicao-page-comentarios .lst-comentarios>.box-add-comentario::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: auto;
    bottom: calc(100% + 1px);
    height: 22px;
    background: linear-gradient(to top, var(--color-bg), var(--pd2-fade, rgba(255, 255, 255, 0)));
    pointer-events: none;
}

/* A faixa do dia acompanha a rolagem enquanto aquele dia estiver na tela. O
   fundo e o da JANELA (nao o --pd2-surface, que no escuro e um degrau mais
   claro e desenharia uma barra cinza no meio da conversa). */
.pd-v2 .pd2-side .edicao-page-comentarios .cm-dia-tit {
    position: sticky;
    top: -1;
    z-index: 1;
    margin: 0;
    padding: 7px var(--cm-gutter, 8px) 5px;
    background: var(--color-bg);
    border-radius: 9px;
}

/* ============================================================================
   FILTROS - kit .bfr-* (barra rapida + popover) e .fdd-* (painel completo)
   ----------------------------------------------------------------------------
   Reescrita de 18/09/2026. O que mudou e por que:

   1. MONOCROMATICO. O kit antigo pintava TUDO de #0064e0 - botao ativo, chip
      marcado, badge, foco do campo, borda do "Eu". A plataforma e monocromatica
      (estado ativo = a tinta: preto no claro, branco no escuro); cor aqui so
      onde ela e DADO: a cor da etapa cadastrada pelo usuario, o logo colorido
      da rede e o vermelho do atrasado.

   2. UMA PECA SO PARA A OPCAO. `.bfr-opt` e a linha de opcao da barra E do
      painel. Antes o mesmo filtro tinha dois desenhos (chip `.bfr-chip` no
      popover, chip `.f-chip` ou checkbox `.f-item-list` no painel) que
      precisavam ser mantidos em paralelo - e derivaram.

   3. SUPERFICIE PROPRIA (--fx-surface). Popover e painel flutuam; `--color-bg`
      vira preto puro no escuro e a janela sumiria no fundo da tela. Mesmo
      padrao de --uc-surface / --up-surface / --ntf-surface.

   4. ALTURA. O painel e `position: fixed` ancorado no botao por JS, com o miolo
      em dois paineis (trilho de dimensoes + opcoes). A altura deixou de crescer
      com o numero de marcas - que era o que o empurrava para fora da tela.
   ========================================================================== */

/* ---------- Barra rapida ---------- */
.barra-filtros-rapidos {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.barra-filtros-rapidos:empty {
    display: none;
}

.barra-filtros-rapidos .bfr-scroll {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    min-width: 0;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
}

.barra-filtros-rapidos .bfr-scroll::-webkit-scrollbar {
    display: none;
}

/* O BOTAO DE GRUPO. Mora fora de `.barra-filtros-rapidos` de proposito: o chip
   "Ordenar" do planejamento e o mesmo botao dentro do #menu-exbicao. */
.bfr-grupo-btn {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 28px;
    /* Teto de 150px: o chip mostra o VALOR (o rotulo do grupo mora no tooltip),
       entao "Aguardando aprovacao do cliente" e o caso extremo a conter. Sem
       teto, um nome comprido empurrava a regua inteira para a segunda linha. */
    max-width: 150px;
    padding: 0 8px;
    border: 1px solid var(--fx-line);
    border-radius: 8px;
    background: var(--color-bg);
    font-size: 12px;
    font-weight: 500;
    letter-spacing: -0.01em;
    color: var(--color-text-01);
    fill: currentColor;
    cursor: pointer;
    white-space: nowrap;
    user-select: none;
    flex: 0 0 auto;
    transition: background .2s cubic-bezier(.16, 1, .3, 1), border-color .2s, color .2s, box-shadow .2s;
}

.bfr-grupo-btn:hover {
    border-color: var(--fx-line-forte);
    background: var(--fx-hover);
}

/* Chip sem texto (Ordenar no padrao): vira um quadrado do tamanho do icone. */
.bfr-grupo-btn .bfr-gb-txt:empty {
    display: none;
}

/* Ativo = a TINTA do sistema. */
.bfr-grupo-btn.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.bfr-grupo-btn.open {
    box-shadow: 0 0 0 3px var(--fx-hover);
    border-color: var(--fx-line-forte);
}

.bfr-gb-txt {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bfr-gb-ico {
    display: inline-flex;
    width: 13px;
    height: 13px;
    flex: 0 0 auto;
    opacity: .5;
}

.bfr-gb-ico svg {
    width: 100%;
    height: 100%;
}

.bfr-grupo-btn.atv .bfr-gb-ico {
    opacity: .85;
}

/* As MARCAS do que esta escolhido (pontos da etapa, logo da rede, avatar da
   marca/pessoa), levemente sobrepostas como uma pilha de avatares. */
.bfr-gb-marks {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    padding-right: 4px;
}

.bfr-gb-marks>* {
    margin-right: -4px;
}

.bfr-gb-dot {
    display: block;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    box-shadow: 0 0 0 1.5px var(--color-btn-bg-01);
}

.bfr-gb-marks .avatar-perfil,
.bfr-gb-marks .thumb-user {
    width: 16px;
    height: 16px;
    border-radius: 5px;
    background-size: cover;
    background-position: center;
    font-size: 7px;
    line-height: 17px;
    text-align: center;
    box-shadow: 0 0 0 1.5px var(--color-btn-bg-01);
}

.bfr-gb-marks .thumb-user {
    border-radius: 50%;
}

/* Dentro do botao aceso (fundo tinta) o logo colorido da rede brigaria com o
   contraste - ali ele vira monocromatico; a cor da marca fica na lista, que e
   onde ela ajuda a achar a linha. */
.bfr-gb-rede {
    display: inline-flex;
    width: 14px;
    height: 14px;
}

.bfr-gb-rede svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
}

.bfr-gb-caret {
    width: 9px;
    height: 9px;
    margin-left: -1px;
    fill: currentColor;
    opacity: .4;
    flex: 0 0 auto;
}

.bfr-gb-badge {
    font-size: 11px;
    line-height: 17px;
    min-width: 17px;
    text-align: center;
    padding: 0 5px;
    border-radius: 100px;
    background: color-mix(in srgb, currentColor 16%, transparent);
    font-weight: 600;
}

/* LIMPAR - so o x (rotulo no tooltip), e ABRINDO a regua, a esquerda dos
   filtros: ele so existe quando ha filtro ligado, entao vir antes deles e o
   que deixa claro sobre o que ele age. Com texto, competia em peso com os
   proprios filtros, sendo uma acao de saida. */
.barra-filtros-rapidos .bfr-limpar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    color: var(--color-text-01);
    opacity: .45;
    cursor: pointer;
    transition: background .18s, opacity .18s;
}

.barra-filtros-rapidos .bfr-limpar svg {
    width: 12px;
    height: 12px;
}

.barra-filtros-rapidos .bfr-limpar:hover {
    background: var(--fx-hover);
    opacity: 1;
}

.barra-filtros-rapidos .bfr-limpar.hidden {
    display: none;
}

/* ---------- Popover de um grupo ---------- */
@keyframes bfrPopIn {
    from {
        opacity: 0;
        transform: translateY(-5px) scale(.985);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.bfr-pop {
    position: fixed;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    min-width: 244px;
    max-width: 310px;
    padding: 6px;
    background: var(--fx-surface);
    border: 1px solid var(--fx-line);
    border-radius: 14px;
    box-shadow: var(--fx-sombra);
    color: var(--color-text-01);
    fill: currentColor;
    transform-origin: top center;
    animation: bfrPopIn .17s cubic-bezier(.16, 1, .3, 1);
}

.bfr-pop.bfr-pop-cima {
    transform-origin: bottom center;
}

.bfr-pop-hd {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 5px 8px 7px;
    flex: 0 0 auto;
}

.bfr-pop-tit {
    font-size: 10.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .45;
}

.bfr-pop-lim {
    margin-left: auto;
    font-size: 11.5px;
    opacity: .5;
    cursor: pointer;
}

.bfr-pop-lim:hover {
    opacity: 1;
    text-decoration: underline;
}

.bfr-pop-busca {
    position: relative;
    padding: 0 2px 6px;
    flex: 0 0 auto;
}

.bfr-pop-busca>svg {
    position: absolute;
    left: 12px;
    top: 9px;
    width: 13px;
    height: 13px;
    opacity: .4;
    pointer-events: none;
}

.bfr-busca {
    width: 100%;
    height: 31px;
    padding: 0 10px 0 31px;
    border: 1px solid var(--fx-line);
    border-radius: 9px;
    background: var(--fx-campo);
    font-size: 13px;
    color: inherit;
    outline: none;
}

.bfr-busca:focus {
    border-color: var(--fx-line-forte);
    background: var(--color-bg);
}

.bfr-pop-lista {
    flex: 1 1 auto;
    min-height: 0;
    overflow: auto;
    padding-bottom: 2px;
    scrollbar-width: thin;
}

.bfr-pop-lista::-webkit-scrollbar,
.fdd-pane::-webkit-scrollbar,
.fdd-rail::-webkit-scrollbar,
.fdd-ativos::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

.bfr-pop-lista::-webkit-scrollbar-thumb,
.fdd-pane::-webkit-scrollbar-thumb,
.fdd-rail::-webkit-scrollbar-thumb,
.fdd-ativos::-webkit-scrollbar-thumb {
    background: var(--fx-line-forte);
    border: 2px solid transparent;
    background-clip: content-box;
    border-radius: 100px;
}

/* ---------- Linha de opcao (barra E painel) ---------- */
.bfr-opt {
    display: flex;
    align-items: center;
    gap: 9px;
    height: 33px;
    padding: 0 8px;
    border-radius: 8px;
    font-size: 13px;
    color: var(--color-text-01);
    cursor: pointer;
    user-select: none;
    transition: background .14s;
}

.bfr-opt:hover {
    background: var(--fx-hover);
}

.bfr-op-mark {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    border: 1.5px solid var(--fx-line-forte);
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: background .14s, border-color .14s;
}

/* Escolha UNICA (Prazo, Ordenar) usa redondo: a forma ja diz que marcar um
   desmarca o outro, sem precisar de um aviso escrito. */
.bfr-op-mark.uni {
    border-radius: 50%;
}

.bfr-op-mark svg {
    width: 9px;
    height: 9px;
    opacity: 0;
    color: var(--color-btn-text-01);
    stroke: var(--color-btn-text-01);
}

.bfr-opt.atv .bfr-op-mark {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

.bfr-opt.atv .bfr-op-mark svg {
    opacity: 1;
}

.bfr-op-dot {
    flex: 0 0 auto;
    width: 9px;
    height: 9px;
    border-radius: 50%;
}

.bfr-op-av {
    flex: 0 0 auto;
    display: inline-flex;
}

.bfr-op-av .avatar-perfil,
.bfr-op-av .thumb-user {
    width: 20px;
    height: 20px;
    border-radius: 6px;
    background-size: cover;
    background-position: center;
    font-size: 8px;
    line-height: 20px;
    text-align: center;
}

.bfr-op-av .thumb-user {
    border-radius: 50%;
}

.bfr-op-ico {
    flex: 0 0 auto;
    display: inline-flex;
    width: 15px;
    height: 15px;
    opacity: .5;
}

.bfr-op-ico svg {
    width: 100%;
    height: 100%;
}

.bfr-op-rede {
    flex: 0 0 auto;
    display: inline-flex;
    width: 15px;
    height: 15px;
}

.bfr-op-rede svg {
    width: 100%;
    height: 100%;
}

/* Logo de rede e MARCA, nao decoracao - a excecao que a regra monocromatica
   sempre teve (capas, avatares e logos). */
.bfr-op-rede.instagram svg {
    fill: #E1306C;
}

.bfr-op-rede.facebook svg {
    fill: #1877F2;
}

.bfr-op-rede.tiktok svg {
    fill: #111111;
}

.bfr-op-rede.linkedin svg {
    fill: #0A66C2;
}

.bfr-op-rede.youtube svg {
    fill: #FF0000;
}

.bfr-op-txt {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bfr-opt.atv .bfr-op-txt {
    font-weight: 600;
}

/* "SO" - troca a selecao inteira do grupo por esta opcao. Aparece no hover:
   e atalho, nao comando de primeira ordem. */
.bfr-op-so {
    flex: 0 0 auto;
    padding: 2px 6px;
    border-radius: 6px;
    background: var(--fx-hover);
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: 0;
    transition: opacity .14s, background .14s, color .14s;
}

.bfr-opt:hover .bfr-op-so {
    opacity: .6;
}

.bfr-op-so:hover {
    opacity: 1;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.bfr-op-qt {
    flex: 0 0 auto;
    min-width: 18px;
    text-align: right;
    font-size: 11.5px;
    opacity: .42;
    font-variant-numeric: tabular-nums;
}

/* Atrasado e alerta, nao enfeite: o numero herda o vermelho de risco. */
.bfr-opt-alerta .bfr-op-qt {
    color: #e5484d;
    opacity: 1;
}

.bfr-pop-vazio {
    padding: 16px 10px;
    font-size: 12.5px;
    text-align: center;
    opacity: .45;
}

/* ---------- Painel completo ---------- */
.dropdown-filtros-01 {
    position: fixed;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    width: 580px;
    max-width: calc(100vw - 20px);
    background: var(--fx-surface);
    border: 1px solid var(--fx-line);
    border-radius: 18px;
    box-shadow: var(--fx-sombra);
    color: var(--color-text-01);
    fill: currentColor;
    font-size: 13px;
    overflow: hidden;
    transform-origin: top right;
    animation: bfrPopIn .19s cubic-bezier(.16, 1, .3, 1);
}

.fdd-topo {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 13px 13px 12px 16px;
    border-bottom: 1px solid var(--fx-line);
    flex: 0 0 auto;
}

.fdd-tit {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.fdd-tit-qt {
    min-width: 19px;
    padding: 0 6px;
    border-radius: 100px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 11px;
    font-weight: 600;
    line-height: 19px;
    text-align: center;
}

.fdd-topo .btn-limpar-filtros {
    margin-left: auto;
    font-size: 12.5px;
    opacity: .55;
    cursor: pointer;
}

.fdd-topo .btn-limpar-filtros:hover {
    opacity: 1;
    text-decoration: underline;
}

.fdd-topo .btn-limpar-filtros.hidden {
    display: none;
}

.fdd-fechar {
    width: 27px;
    height: 27px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 8px;
    opacity: .45;
    cursor: pointer;
    transition: background .15s, opacity .15s;
}

.fdd-fechar:hover {
    background: var(--fx-hover);
    opacity: 1;
}

.fdd-fechar svg {
    width: 13px;
    height: 13px;
}

.fdd-busca {
    position: relative;
    padding: 11px 16px 3px;
    flex: 0 0 auto;
}

.fdd-busca>svg {
    position: absolute;
    left: 28px;
    top: 21px;
    width: 14px;
    height: 14px;
    opacity: .4;
    pointer-events: none;
}

.fdd-busca .filtro-busca-input {
    width: 100%;
    height: 35px;
    padding: 0 12px 0 33px;
    border: 1px solid var(--fx-line);
    border-radius: 10px;
    background: var(--fx-campo);
    font-size: 13px;
    color: inherit;
    outline: none;
}

.fdd-busca .filtro-busca-input:focus {
    border-color: var(--fx-line-forte);
    background: var(--color-bg);
}

/* O QUE ESTA LIGADO, no alto e removivel em um clique. */
.fdd-ativos {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 11px 16px 3px;
    max-height: 92px;
    overflow: auto;
    flex: 0 0 auto;
    scrollbar-width: thin;
}

.fdd-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 230px;
    height: 27px;
    padding: 0 4px 0 9px;
    border: 1px solid var(--fx-line);
    border-radius: 8px;
    background: var(--fx-campo);
    font-size: 12px;
    cursor: pointer;
    transition: border-color .15s, background .15s;
}

.fdd-tag:hover {
    border-color: var(--fx-line-forte);
    background: var(--fx-hover);
}

.fdd-tag-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.fdd-tag-av,
.fdd-tag-rede {
    display: inline-flex;
    flex: 0 0 auto;
}

.fdd-tag-av .avatar-perfil,
.fdd-tag-av .thumb-user {
    width: 16px;
    height: 16px;
    border-radius: 5px;
    background-size: cover;
    background-position: center;
    font-size: 7px;
    line-height: 16px;
    text-align: center;
}

.fdd-tag-av .thumb-user {
    border-radius: 50%;
}

.fdd-tag-rede svg {
    width: 13px;
    height: 13px;
}

.fdd-tag-gr {
    opacity: .42;
    flex: 0 0 auto;
}

.fdd-tag-tx {
    font-weight: 550;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdd-tag-x {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    border-radius: 5px;
    opacity: .35;
    flex: 0 0 auto;
}

.fdd-tag-x svg {
    width: 9px;
    height: 9px;
}

.fdd-tag:hover .fdd-tag-x {
    opacity: 1;
    background: var(--fx-hover);
}

/* CORPO EM DOIS PAINEIS: trilho de dimensoes + opcoes da dimensao. E o que
   mantem a altura constante - a coluna unica crescia com o no de marcas. */
.fdd-corpo {
    display: flex;
    flex: 1 1 auto;
    min-height: 0;
    margin-top: 10px;
    border-top: 1px solid var(--fx-line);
}

.fdd-rail {
    flex: 0 0 176px;
    padding: 8px;
    border-right: 1px solid var(--fx-line);
    overflow: auto;
    scrollbar-width: thin;
}

.fdd-rail-it {
    display: flex;
    align-items: center;
    gap: 9px;
    height: 33px;
    padding: 0 9px;
    border-radius: 9px;
    cursor: pointer;
    user-select: none;
    transition: background .15s, color .15s;
}

.fdd-rail-it:hover {
    background: var(--fx-hover);
}

.fdd-rail-it.atv {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.fdd-rail-ico {
    display: inline-flex;
    width: 15px;
    height: 15px;
    opacity: .5;
    flex: 0 0 auto;
}

.fdd-rail-ico svg {
    width: 100%;
    height: 100%;
}

.fdd-rail-it.atv .fdd-rail-ico {
    opacity: .9;
}

.fdd-rail-tx {
    flex: 1 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.fdd-rail-qt {
    flex: 0 0 auto;
    min-width: 18px;
    padding: 0 5px;
    border-radius: 100px;
    background: var(--fx-hover);
    font-size: 11px;
    font-weight: 600;
    line-height: 18px;
    text-align: center;
}

/* A contagem dentro do item aceso: mistura com a TINTA DO TEXTO, que e branca
   no claro e preta no escuro - `rgba(255,255,255,.2)` sumiria no tema escuro,
   onde o item ativo e branco. */
.fdd-rail-it.atv .fdd-rail-qt {
    background: color-mix(in srgb, var(--color-btn-text-01) 24%, transparent);
}

.fdd-pane {
    flex: 1 1 auto;
    min-width: 0;
    padding: 8px;
    overflow: auto;
    scrollbar-width: thin;
}

.fdd-sec+.fdd-sec {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--fx-line);
}

.fdd-sec-hd {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 3px 8px 6px;
}

.fdd-sec-tit {
    font-size: 10.5px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .45;
}

.fdd-sec .bfr-pop-nota {
    margin: 6px 8px 0;
}

.fdd-rodape {
    padding: 10px 16px;
    border-top: 1px solid var(--fx-line);
    font-size: 12px;
    opacity: .5;
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
}

.fdd-rodape b {
    font-weight: 600;
}

.fdd-rodape:empty {
    display: none;
}

/* O contador do botao "Filtros" no cabecalho: tambem e tinta, nao azul. */

/* ============================================================================
   PRODUCAO - recolher / expandir marca > etapa  (kit .pg-*)
   ----------------------------------------------------------------------------
   Vale so no modo lista ("Por marcas"). No quadro a coluna e o alvo de soltar
   do arrasto: recolher tiraria o destino do gesto.
   ========================================================================== */

/* O cabecalho da marca vira FLEX. Os filhos ainda trazem `float: left` das
   regras antigas - num container flex o float e ignorado, entao nao ha o que
   desfazer, so o padding herdado a zerar. */
/* UM TRILHO SO PARA AS TRES COLUNAS DA ESQUERDA.
   A setinha da marca, a setinha da etapa e a caixinha de selecao da linha sao
   os tres primeiros elementos de cada nivel - e estavam em x diferentes (1, 12
   e 12), com a da marca praticamente encostada na borda do cartao. Os paddings
   abaixo poem as duas setinhas na MESMA coluna (11..31) e fazem o avatar da
   marca, a pastilha da etapa e o anel de status da linha comecarem todos em 37.
   Quem mexer aqui confere com o `.conteudo-lista-status` (padding lateral 11px),
   que e a origem das contas. */
.hdr-group-perfil {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 9px 8px 9px 7px;
    /* margin: 0 4px; */
    border-radius: 11px;
    cursor: pointer;
    user-select: none;
    transition: background .18s cubic-bezier(.16, 1, .3, 1);
}

.hdr-group-perfil:hover {
    background: var(--fx-hover);
}

.hdr-group-perfil .img-perfil {
    float: none;
    flex: 0 0 auto;
    margin: 0;
}

.hdr-group-perfil h2 {
    float: none;
    padding: 0;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: -0.02em;
    max-width: 46%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.hdr-group-perfil .total-perfil {
    float: none;
    margin: 0 0 0 2px;
    padding: 0 7px;
    border-radius: 100px;
    background: var(--fx-hover);
    font-size: 11px;
    font-weight: 600;
    line-height: 19px;
    opacity: .7;
}

/* A SETINHA - o MESMO tamanho nos dois niveis (o olho lia dois controles
   diferentes quando era 22/13px na marca e 20/11px na etapa). Area de clique de
   20px com um chevron de 12px centrado; aberta aponta para baixo (0o) e
   recolhida para a direita (-90o), a convencao do Finder, do VS Code e do
   Notion. `line-height: 0` porque <button> herda a entrelinha do cabecalho e
   empurrava o icone meio pixel para baixo. */
.pg-caret {
    flex: 0 0 auto;
    /* 18px (e nao 20) e o que faz o conteudo a direita - avatar da marca e
       pastilha da etapa - cair exatamente na coluna 36, a mesma do anel de
       status das linhas. */
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
    border: 0;
    line-height: 0;
    -webkit-appearance: none;
    appearance: none;
    background: transparent;
    color: inherit;
    border-radius: 6px;
    opacity: .36;
    cursor: pointer;
    transform: rotate(0deg);
    transition: transform .22s cubic-bezier(.16, 1, .3, 1), opacity .15s, background .15s;
}

.pg-caret svg {
    display: block;
    width: 12px;
    height: 12px;
}

/* O cabecalho inteiro e clicavel, entao a setinha acende junto com ele - mas o
   FUNDO so aparece com o ponteiro nela: dois realces sobrepostos (o da setinha
   dentro do do cabecalho) sujavam a linha. */
.hdr-group-perfil:hover .pg-caret,
.hdr-group:hover .pg-caret {
    opacity: .7;
}

.pg-caret:hover {
    opacity: 1;
    background: var(--fx-hover);
}

.pg-caret:focus-visible {
    outline: 2px solid var(--fx-line-forte);
    outline-offset: 1px;
    opacity: 1;
}

.group-lista-pai.is-recolhido>.hdr-group-perfil .pg-caret,
.group.is-recolhido>.hdr-group .pg-caret {
    transform: rotate(-90deg);
}

.group-lista-pai.is-recolhido>.conteudo-lista-status {
    display: none;
}

.group.is-recolhido>.cu-list {
    display: none;
}

/* RESUMO DA MARCA FECHADA. So recolhida: aberta, a mesma contagem ja esta
   escrita em cada etapa logo abaixo. */
.pg-resumo {
    display: none;
    margin-left: auto;
    align-items: center;
    gap: 5px;
    padding-left: 10px;
    overflow: hidden;
}

.group-lista-pai.is-recolhido .pg-resumo {
    display: flex;
}

.pg-rs {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 22px;
    padding: 0 9px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 600;
    flex: 0 0 auto;
    font-variant-numeric: tabular-nums;
}

.pg-rs-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    flex: 0 0 auto;
}

.pg-rs-mais {
    background: var(--fx-hover);
    color: var(--color-text-01);
    opacity: .55;
}

/* Cabecalho da ETAPA - mesmo gesto, um degrau menor. `padding-left: 0` porque
   o recuo desta coluna ja vem do `.conteudo-lista-status` (11px): somar outro
   aqui tirava a setinha do trilho da setinha da marca. */
.type-lista .contant-lista-estrutura.conteudo .group>.hdr-group {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px 4px 0;
    margin: 0;
    border-radius: 9px;
    cursor: pointer;
    user-select: none;
    transition: background .18s cubic-bezier(.16, 1, .3, 1);
}

.type-lista .contant-lista-estrutura.conteudo .group>.hdr-group:hover {
    background: var(--fx-hover);
}

.type-lista .contant-lista-estrutura.conteudo .group>.hdr-group .total {
    float: none;
    padding: 0 2px 0 1px;
    font-size: 11px;
    font-weight: 600;
    opacity: .45;
}

/* ---------- Os dois botoes vizinhos da barra ("Filtros" e "Eu") ----------
   Ficam na MESMA regua dos chips: mesma altura, mesmo raio, mesma borda e o
   mesmo estado ativo em tinta. Antes o "Filtros" era um texto solto com o
   contador em `position: absolute` por cima do proprio icone, e o "Eu" acendia
   com um contorno azul (#006eff) que nao existe em nenhum outro lugar. */
.header-filtros .btn-filtro {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    float: none;
    height: 28px;
    padding: 0 10px;
    border: 1px solid var(--fx-line);
    border-radius: 8px;
    background: var(--color-bg);
    color: var(--color-text-01);
    fill: currentColor;
    font-size: 12.5px;
    font-weight: 500;
    letter-spacing: -0.01em;
    position: relative;
    cursor: pointer;
    transition: background .2s cubic-bezier(.16, 1, .3, 1), border-color .2s;
}

.header-filtros .btn-filtro:hover {
    background: var(--fx-hover);
    border-color: var(--fx-line-forte);
}

.header-filtros .btn-filtro svg {
    float: none;
    width: 13px;
    height: 13px;
    margin: 0;
    opacity: .55;
}

.header-filtros .btn-filtro .txt {
    float: none;
    padding: 0;
    font-size: 12px;
}

/* O contador entra na LINHA (order:3), no fim do botao - no HTML ele nasce
   antes do icone, e era dai que vinha o `position: absolute` em cima dele. */
.header-filtros .filtro-count {
    position: static;
    float: none;
    left: auto;
    top: auto;
    order: 3;
    width: auto;
    min-width: 17px;
    height: 17px;
    padding: 0 5px;
    line-height: 17px;
    font-size: 10.5px;
    font-weight: 600;
    border-radius: 100px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.header-filtros .filtro-count.hidden {
    display: none;
}


/* ---------- Controle de PESSOAS: "Eu" + seta de responsaveis ----------
   Um controle segmentado, nao dois: a metade esquerda liga/desliga MIM e a
   seta abre a lista de responsaveis (o mesmo popover `usuario` do catalogo).
   Aceso NAO e uma pilula preta - o preto e o peso do botao primario do sistema
   e, ao lado dos chips de filtro, o "Eu" virava o elemento mais pesado do
   cabecalho por ser o mais simples. O aceso aqui e realce fraco + check. */
.header-pagina .header-filtros .pessoas {
    float: none;
    padding: 0;
    display: inline-flex;
}

.pes-wrap {
    display: inline-flex;
    align-items: stretch;
    height: 28px;
    border: 1px solid var(--fx-line);
    border-radius: 8px;
    background: var(--color-bg);
    overflow: hidden;
    transition: border-color .2s;
}

.pes-wrap:hover,
.pes-wrap:has(.atv) {
    border-color: var(--fx-line-forte);
}

.header-pagina .header-filtros .pessoas .btn-eu {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 9px 0 4px;
    margin: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    opacity: 1;
    cursor: pointer;
    user-select: none;
    transition: background .18s cubic-bezier(.16, 1, .3, 1);
}

.header-pagina .header-filtros .pessoas .btn-eu:hover {
    background: var(--fx-hover);
    border: 0;
    opacity: 1;
}

/* Aceso e um degrau ACIMA do hover - com o mesmo `--fx-hover` (4%) dos dois
   lados, a metade ligada e a metade sob o ponteiro ficavam identicas. */
.header-pagina .header-filtros .pessoas .btn-eu.atv,
.header-pagina .header-filtros .pessoas .btn-eu.atv:hover {
    background: color-mix(in srgb, var(--color-text-01) 9%, transparent);
    border: 0;
    color: var(--color-text-01);
    font-weight: 600;
    opacity: 1;
}

.header-pagina .header-filtros .pessoas .btn-eu .img {
    display: block;
    float: none;
    width: 19px;
    height: 19px;
    flex: 0 0 auto;
    border: 0;
    border-radius: 50%;
    background-color: var(--fx-hover);
    background-size: cover;
    background-position: center;
}

.header-pagina .header-filtros .pessoas .btn-eu p {
    float: none;
    margin: 0;
    padding: 0;
    font-size: 12px;
    line-height: 1;
}

/* O check e o unico lugar com a tinta cheia: e um selo de 13px, nao um fundo. */
.pes-check {
    display: none;
    width: 13px;
    height: 13px;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.header-pagina .header-filtros .pessoas .btn-eu.atv .pes-check {
    display: inline-flex;
}

.pes-check svg {
    width: 8px;
    height: 8px;
}

.pes-mais {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 0 7px;
    border-left: 1px solid var(--fx-line);
    color: var(--color-text-01);
    cursor: pointer;
    user-select: none;
    transition: background .18s cubic-bezier(.16, 1, .3, 1);
}

.pes-mais:hover,
.pes-mais.open {
    background: var(--fx-hover);
}

.pes-caret {
    width: 9px;
    height: 9px;
    flex: 0 0 auto;
    fill: currentColor;
    opacity: .4;
}

.pes-mais.atv .pes-caret {
    opacity: .6;
}

/* Quem mais esta filtrado mora DENTRO da seta: era isto que virava um segundo
   bloco "Responsaveis" solto na regua. */
.pes-avs {
    display: inline-flex;
    align-items: center;
}

.pes-avs .thumb-user {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    border-radius: 50%;
    background-size: cover;
    background-position: center;
    background-color: var(--fx-hover);
    font-size: 7px;
    line-height: 18px;
    text-align: center;
    box-shadow: 0 0 0 1.5px var(--color-bg);
}

.pes-avs .thumb-user+.thumb-user {
    margin-left: -6px;
}

.pes-n {
    font-size: 11px;
    font-weight: 600;
    opacity: .55;
}

/* ---------- Fecho da listagem: o total, no fim da pagina ---------- */
.lst-rodape {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 18px 4px 26px;
    font-size: 12px;
    color: var(--color-text-01);
    font-variant-numeric: tabular-nums;
}

.lst-rodape b {
    font-weight: 600;
}

.lst-rodape.hidden {
    display: none;
}


/* O nome da etapa dentro da pastilha do resumo. Sai primeiro no responsivo
   (media.css): o numero e o que nao pode faltar. */
.pg-rs-tx {
    max-width: 110px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    text-transform: uppercase;
    font-size: 10px;
    letter-spacing: .04em;
}

.pg-rs-qt {
    opacity: .85;
}

/* Etapa recolhida ocupa so a linha do cabecalho. Os 30px de respiro embaixo
   existem para separar a TABELA da etapa seguinte; sem tabela eles viram um vao
   morto, e tres etapas fechadas em sequencia ficavam a 45px uma da outra. */
.contant-lista-estrutura .estrutura-lista .group.is-recolhido {
    padding-bottom: 4px;
    padding-top: 6px;
}

/* Abertura de um grupo recolhido. Classe TEMPORARIA (ver ProducaoGrupos.anima):
   em regra fixa o keyframe tocaria de novo a cada repintura do polling. */
@keyframes pgAbrir {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.pg-abrindo {
    animation: pgAbrir .24s cubic-bezier(.16, 1, .3, 1);
}

/* Etapa que o filtro zerou sai do resumo (ver aplicaFiltro). */
.pg-rs.hidden {
    display: none;
}

/* ===== Log de Publicacao: estado "Em andamento" =====
   "Processando" nao e falha - e o worker ainda tentando. Antes caia no
   .log-item--erro e o cliente lia vermelho/"Falha" numa publicacao que seguia
   em andamento. Badge neutro (monocromatico), sem cor de acento. */
.contant-log-publicacao .log-item--processando .log-badge {
    background: var(--color-bg-01);
    color: var(--color-text);
    opacity: .75;
}

.contant-log-publicacao .log-item--processando .log-badge-dot {
    animation: logPulsa 1.4s ease-in-out infinite;
}

@keyframes logPulsa {

    0%,
    100% {
        opacity: 1;
    }

    50% {
        opacity: .25;
    }
}

/* ===== Selo de etapa no upload (bandeja + indicador do popup) =====
   Sinal do que esta acontecendo com o arquivo agora. Nasceu para a otimizacao
   de video: e a etapa mais longa e a unica em que o progresso nao e "quanto ja
   subiu", entao sem sinal a pessoa le como travamento.

   Aqui o azul do sistema e proposital e nao fere a regra monocromatica: nao e
   estado "ativo" de um controle, e um AVISO temporario de processo em curso -
   precisa ser achado no meio de uma linha de texto cinza. Some sozinho quando a
   otimizacao termina. */
.up-selo,
.up-in-selo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 19px;
    height: 19px;
    margin-right: 6px;
    border-radius: 6px;
    color: #2563eb;
    background: rgba(37, 99, 235, .12);
    cursor: help;
}

.up-in-selo {
    width: 17px;
    height: 17px;
    border-radius: 5px;
}

.up-selo svg,
.up-in-selo svg {
    width: 12px;
    height: 12px;
    display: block;
    animation: upSeloPulsa 1.5s ease-in-out infinite;
}

.up-in-selo svg {
    width: 11px;
    height: 11px;
}

.up-selo:hover,
.up-in-selo:hover {
    background: rgba(37, 99, 235, .2);
}

@keyframes upSeloPulsa {

    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }

    50% {
        opacity: .5;
        transform: scale(.88);
    }
}

/* ===== Relatorio da otimizacao de video (dentro do Swal de aviso) =====
   Os numeros da conversao na TELA, nao so no console: depurar "otimizou mas
   continuou grande" custou tres rodadas pedindo a linha do console. */
.ot-rel {
    width: 100%;
    margin: 16px 0 4px;
    border-collapse: collapse;
    font-size: 13px;
    text-align: left;
}

.ot-rel td {
    padding: 7px 0;
    border-bottom: 1px solid var(--color-border);
}

.ot-rel tr:last-child td {
    border-bottom: 0;
}

.ot-rel td:first-child {
    color: var(--color-text);
    opacity: .55;
    width: 42%;
}

.ot-rel td:last-child {
    text-align: right;
    font-weight: 600;
}

.ot-rel-nota {
    margin-top: 14px;
    font-size: 13px;
    line-height: 1.55;
}

/* =========================================================================
   REGRAS DAS REDES (.rdi-*)
   -------------------------------------------------------------------------
   O (i) no fim da linha "Redes" do popup do conteudo e o dropdown que ele
   abre (window.RedesRegras no footer.php). O dropdown mora no <body>, fixed,
   como o cartao de pessoa - dentro do trilho o overflow recortaria.

   Monocromatico: o que o conteudo ja estoura e marcado com o "!" da tinta,
   o mesmo selo da rede, nao com cor. Superficie propria (--rdi-surface) pelo
   motivo do --uc-surface. Celular: bottom sheet, no fim do media.css.
   ========================================================================= */
.item-post .redes-ativas .rdi-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 25px;
    height: 25px;
    margin-left: 2px;
    border-radius: 8px;
    color: var(--color-text-01);
    opacity: .4;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.item-post .redes-ativas .rdi-btn:hover,
.item-post .redes-ativas .rdi-btn:focus-visible,
.item-post .redes-ativas .rdi-btn.rdi-origem {
    opacity: 1;
    background: var(--color-hover-01);
    outline: none;
}

.item-post .redes-ativas .rdi-btn svg {
    display: block;
    width: 15px;
    height: 15px;
    fill: currentColor;
}

.rdi-pop {
    position: fixed;
    z-index: 100000;
    width: 392px;
    max-height: min(590px, calc(100vh - 20px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--rdi-surface);
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 18px 44px -12px #00000030, 0 4px 12px -6px #0000001a;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    font-size: 13px;
    line-height: 1.4;
    text-align: left;
    text-transform: none;
    opacity: 0;
    transform: translateY(-5px) scale(.985);
    transform-origin: top center;
    transition: opacity .16s cubic-bezier(.16, 1, .3, 1), transform .16s cubic-bezier(.16, 1, .3, 1);
}

.rdi-pop.rdi-aberto {
    opacity: 1;
    transform: none;
}

/* Ancorado ACIMA do (i): a animacao nasce do lado certo. */
.rdi-pop.rdi-acima {
    transform-origin: bottom center;
}

.rdi-pop.rdi-acima:not(.rdi-aberto) {
    transform: translateY(5px) scale(.985);
}

/* --- cabecalho ---------------------------------------------------------- */
.rdi-hdr {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px 12px;
}

.rdi-hdr-txt {
    min-width: 0;
}

.rdi-hdr h4 {
    margin: 0;
    font-size: 14px;
    font-weight: 550;
    line-height: 1.3;
    letter-spacing: -.01em;
    color: var(--color-text-01);
}

.rdi-hdr-txt span {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    opacity: .55;
}

.rdi-chip {
    flex: 0 0 auto;
    max-width: 46%;
    margin-left: auto;
    padding: 4px 10px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 500;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- abas (segmented control) ------------------------------------------- */
.rdi-tabs {
    display: flex;
    gap: 3px;
    margin: 0 12px;
    padding: 3px;
    border-radius: 11px;
    background: var(--color-bg-01);
}

.rdi-tab {
    position: relative;
    flex: 1 1 0;
    height: 32px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .5;
    cursor: pointer;
    transition: opacity .15s, background .15s, box-shadow .15s;
}

.rdi-tab:hover {
    opacity: .85;
}

.rdi-tab:focus-visible {
    outline: none;
    box-shadow: 0 0 0 1.5px var(--color-btn-bg-01);
}

.rdi-tab.atv {
    opacity: 1;
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 0 0 1px var(--color-border);
}

.rdi-tab>svg {
    display: block;
    width: 15px;
    height: 15px;
    fill: currentColor;
}

/* Rede que nao publica este formato: icone apagado e riscado. */
.rdi-tab.rdi-tab-nao>svg {
    opacity: .45;
}

/* Rede LIGADA neste conteudo: o logo na cor da marca. E a excecao explicita
   da regra monocromatica - logo de terceiro e identidade, nao decoracao - e
   as cores sao as do legado `.instagram.atv` & cia, as mesmas da linha de
   redes do popup. O TikTok nao tem cor la (o logo dele e preto/branco) e
   segue na tinta. Ligada, a aba tambem sai do cinza mesmo sem estar aberta:
   de relance se ve quais redes vao receber o conteudo. */
.rdi-tab.rdi-tab-on {
    opacity: .9;
}

.rdi-tab.rdi-tab-on.atv {
    opacity: 1;
}

.rdi-tab.rdi-tab-on.instagram>svg {
    fill: #e4405f;
}

.rdi-tab.rdi-tab-on.facebook>svg {
    fill: #1877F2;
}

.rdi-tab.rdi-tab-on.linkedin>svg {
    fill: #0e76a8;
}

.rdi-tab.rdi-tab-on.youtube>svg {
    fill: #ff0808;
}

.rdi-tab.rdi-tab-nao::after {
    content: "";
    position: absolute;
    width: 21px;
    height: 1.5px;
    border-radius: 1px;
    background: currentColor;
    transform: rotate(-45deg);
    opacity: .75;
}

/* Selo da aba: mesma pele do .rd-sinal da linha de redes. */
.rdi-sinal {
    position: absolute;
    top: 3px;
    right: calc(50% - 16px);
    width: 11px;
    height: 11px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 0 0 1.5px var(--color-bg);
}

.rdi-sinal svg,
.rdi-alerta-ico svg {
    display: block;
    width: 9px;
    height: 9px;
}

.rdi-sinal svg path,
.rdi-alerta-ico svg path {
    fill: none;
    stroke: currentColor;
}

.rdi-sinal svg circle,
.rdi-alerta-ico svg circle {
    fill: currentColor;
}

/* --- corpo da aba ------------------------------------------------------- */
.rdi-corpo {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 14px 16px 6px;
}

.rdi-rede-hdr {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 3px;
}

.rdi-rede-hdr b {
    font-size: 15px;
    font-weight: 550;
    letter-spacing: -.015em;
}

.rdi-estado {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 11.5px;
    white-space: nowrap;
    opacity: .55;
}

.rdi-estado::before {
    content: "";
    width: 7px;
    height: 7px;
    border: 1.5px solid currentColor;
    border-radius: 50%;
    box-sizing: border-box;
}

.rdi-estado-on {
    font-weight: 500;
    opacity: 1;
}

.rdi-estado-on::before {
    background: currentColor;
}

.rdi-estado-nao::before {
    display: none;
}

.rdi-como {
    margin-bottom: 12px;
    font-size: 12.5px;
    opacity: .7;
}

.rdi-como b {
    font-weight: 500;
}

.rdi-alerta {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 12px;
    padding: 9px 11px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-hover-01);
    font-size: 12.5px;
    line-height: 1.45;
}

.rdi-alerta-ico {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin-top: 1px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.rdi-alerta-ico svg {
    width: 12px;
    height: 12px;
}

.rdi-linhas {
    display: grid;
    grid-template-columns: 92px minmax(0, 1fr);
    gap: 9px 14px;
    margin: 0;
}

.rdi-linhas dt {
    margin: 0;
    padding-top: 1px;
    font-size: 12px;
    font-weight: 400;
    opacity: .5;
}

.rdi-linhas dd {
    margin: 0;
    font-size: 12.5px;
    font-weight: 500;
}

.rdi-linhas dd small {
    display: block;
    margin-top: 2px;
    font-size: 11.5px;
    font-weight: 400;
    line-height: 1.4;
    opacity: .55;
}

/* O conteudo passou do limite desta linha. */
.rdi-linhas dd.rdi-over::before {
    content: "!";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 14px;
    height: 14px;
    margin-right: 6px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    vertical-align: 1px;
}

.rdi-linhas dd.rdi-over small {
    font-weight: 500;
    opacity: 1;
}

.rdi-notas,
.rdi-rodape {
    list-style: none;
    margin: 0;
}

.rdi-notas {
    margin: 14px 0 8px;
    padding: 12px 0 0;
    border-top: 1px dashed var(--color-border);
}

.rdi-notas li,
.rdi-rodape li {
    position: relative;
    padding-left: 13px;
    line-height: 1.45;
}

.rdi-notas li {
    font-size: 12px;
    opacity: .75;
}

.rdi-notas li+li {
    margin-top: 6px;
}

.rdi-notas li::before,
.rdi-rodape li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: .62em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: currentColor;
    opacity: .6;
}

.rdi-nao {
    margin-bottom: 10px;
    padding: 14px 13px;
    border-radius: 10px;
    background: var(--color-hover-01);
    font-size: 12.5px;
    line-height: 1.5;
}

.rdi-nao b {
    font-weight: 550;
}

.rdi-rodape {
    padding: 10px 16px 12px;
    border-top: 1px solid var(--color-border);
}

.rdi-rodape li {
    font-size: 11.5px;
    opacity: .55;
}

.rdi-rodape li+li {
    margin-top: 3px;
}

/* =========================================================================
   MENCOES E COLABORACAO (.rfx-*)
   -------------------------------------------------------------------------
   Os dois botoes depois do (i) na linha "Redes" do popup do conteudo e o
   popover editor de cada um (window.RedesExtras no footer.php). O popover
   mora no <body>, fixed, como o .rdi-pop, e usa a mesma superficie elevada
   (--rdi-surface). Monocromatico; o unico vermelho e o hover de remover.

   So Feed e Stories publicam em rede: fora deles o grupo some, e Story nao
   tem colaboracao. Por data-local, que acompanha a troca de canal sem
   re-render da linha.
   ========================================================================= */
.item-post .redes-ativas .rfx {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-left: 4px;
    padding-left: 10px;
    border-left: 1px solid var(--color-border);
}

.item-post:not([data-local="1"]):not([data-local="2"]) .redes-ativas .rfx,
.item-post[data-local="2"] .redes-ativas .rfx-pill[data-rfx="colab"] {
    display: none;
}

.item-post .redes-ativas .rfx-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 27px;
    margin: 0;
    padding: 0 10px 0 9px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    opacity: .7;
    transition: opacity .15s, background .15s, border-color .15s;
}

.item-post .redes-ativas .rfx-pill:hover,
.item-post .redes-ativas .rfx-pill.rfx-origem {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .redes-ativas .rfx-pill:focus-visible {
    outline: none;
    opacity: 1;
    box-shadow: 0 0 0 1.5px var(--color-btn-bg-01);
}

/* Com alguem na lista: sai do cinza e ganha a contagem na tinta. */
.item-post .redes-ativas .rfx-pill.rfx-tem {
    opacity: 1;
    border-color: var(--color-btn-bg-01);
}

.item-post .redes-ativas .rfx-pill svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
    display: block;
    fill: none;
}

.item-post .redes-ativas .rfx-n {
    min-width: 17px;
    height: 17px;
    padding: 0 5px;
    margin-right: -4px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 10.5px;
    font-weight: 600;
}

.item-post .redes-ativas .rfx-n:empty {
    display: none;
}

/* --- popover ------------------------------------------------------------ */
.rfx-pop {
    position: fixed;
    z-index: 100000;
    width: 372px;
    /* 760: com o palco de posicao o popover de Mencoes fica alto; o corpo rola. */
    max-height: min(760px, calc(100vh - 20px));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--rdi-surface);
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
    border-radius: 16px;
    box-shadow: 0 18px 44px -12px #00000030, 0 4px 12px -6px #0000001a;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    font-size: 13px;
    line-height: 1.4;
    text-align: left;
    text-transform: none;
    opacity: 0;
    transform: translateY(-5px) scale(.985);
    transform-origin: top center;
    transition: opacity .16s cubic-bezier(.16, 1, .3, 1), transform .16s cubic-bezier(.16, 1, .3, 1);
}

.rfx-pop.rfx-aberto {
    opacity: 1;
    transform: none;
}

.rfx-pop.rfx-acima {
    transform-origin: bottom center;
}

.rfx-pop.rfx-acima:not(.rfx-aberto) {
    transform: translateY(5px) scale(.985);
}

.rfx-hdr {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 10px 10px 16px;
}

.rfx-hdr h4 {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    font-size: 14px;
    font-weight: 550;
    line-height: 1.3;
    letter-spacing: -.01em;
    color: var(--color-text-01);
}

.rfx-x {
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .5;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.rfx-x:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.rfx-x svg,
.rfx-chip-x svg {
    display: block;
    width: 13px;
    height: 13px;
}

/* Abas por rede (so em Mencoes): mesmo segmented control do .rdi-tabs. */
.rfx-tabs {
    display: flex;
    gap: 3px;
    margin: 0 12px;
    padding: 3px;
    border-radius: 11px;
    background: var(--color-bg-01);
}

.rfx-tab {
    flex: 1 1 0;
    min-width: 0;
    height: 32px;
    padding: 0 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 500;
    opacity: .55;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.rfx-tab:hover {
    opacity: .85;
}

.rfx-tab.atv {
    opacity: 1;
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 0 0 1px var(--color-border);
}

.rfx-tab>svg {
    display: block;
    width: 14px;
    height: 14px;
    fill: currentColor;
}

.rfx-tab b {
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 10px;
    font-weight: 600;
}

.rfx-corpo {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 14px 16px 6px;
}

.rfx-aviso {
    margin-bottom: 10px;
    padding: 8px 11px;
    border-radius: 9px;
    background: var(--color-hover-01);
    font-size: 12px;
    line-height: 1.45;
}

.rfx-form {
    display: flex;
    gap: 6px;
    margin: 0;
}

.rfx-ipt {
    flex: 1 1 auto;
    min-width: 0;
    height: 36px;
    padding: 0 12px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    /* veu e nao transparente: no escuro a --color-border (30,30,30) some
       sobre a superficie #191919, e o campo virava um buraco sem contorno */
    background: var(--color-bg-01);
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 13px;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}

.rfx-ipt:focus {
    border-color: var(--color-btn-bg-01);
    box-shadow: 0 0 0 3px var(--color-hover-01);
}

.rfx-ipt::placeholder {
    color: var(--color-text-01);
    opacity: .4;
}

.rfx-add {
    flex: 0 0 auto;
    height: 36px;
    padding: 0 15px;
    border: 0;
    border-radius: 10px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-family: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: opacity .15s, transform .15s;
}

.rfx-add:hover {
    transform: translateY(-1px);
}

.rfx-ipt[disabled],
.rfx-add[disabled],
.rfx-pop.rfx-ocupado .rfx-add {
    opacity: .4;
    cursor: default;
    pointer-events: none;
    transform: none;
}

.rfx-erro {
    display: flex;
    gap: 7px;
    align-items: flex-start;
    margin-top: 8px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.45;
}

.rfx-erro::before,
.rfx-nota-alerta::before {
    content: "!";
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin-top: 1px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

.rfx-limite {
    margin-top: 8px;
    font-size: 11.5px;
    opacity: .55;
}

.rfx-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.rfx-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    padding: 4px 4px 4px 9px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg-01);
    font-size: 12.5px;
    font-weight: 500;
}

.rfx-chip-txt {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* "midia 2" no carrossel, em tom de apoio, na mesma linha do @. */
.rfx-chip em {
    flex: 0 0 auto;
    font-style: normal;
    font-size: 11px;
    font-weight: 400;
    opacity: .5;
}

.rfx-chip-x {
    flex: 0 0 auto;
    width: 22px;
    height: 22px;
    padding: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--color-text-01);
    opacity: .45;
    cursor: pointer;
    transition: opacity .15s, background .15s, color .15s;
}

.rfx-chip-x:hover {
    opacity: 1;
    color: #e83a3a;
    background: var(--color-hover-01);
}

.rfx-vazio {
    padding: 4px 0 2px;
    font-size: 12.5px;
    opacity: .5;
}

.rfx-notas {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rfx-notas.rfx-alertas {
    margin-top: 12px;
}

.rfx-notas li {
    position: relative;
    padding-left: 13px;
    font-size: 12px;
    line-height: 1.45;
    opacity: .75;
}

.rfx-notas li+li {
    margin-top: 6px;
}

.rfx-notas li::before {
    content: "";
    position: absolute;
    left: 2px;
    top: .62em;
    width: 4px;
    height: 4px;
    border-radius: 50%;
    background: currentColor;
    opacity: .6;
}

/* A nota que e alerta troca o ponto pelo "!" da tinta. */
.rfx-notas li.rfx-nota-alerta,
.rfx-notas li.rfx-nota-ok {
    display: flex;
    gap: 7px;
    padding-left: 0;
    font-weight: 500;
    opacity: 1;
}

.rfx-notas li.rfx-nota-alerta::before {
    position: static;
    opacity: 1;
}

/* O formato aberto aceita: mesmo selo da tinta, com check no lugar do "!". */
.rfx-notas li.rfx-nota-ok::before {
    content: "✓";
    position: static;
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin-top: 1px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    opacity: 1;
}

/* --- De qual rede e (23/09/2026) -----------------------------------------
   A barra do topo mostra TODAS as redes: aba com nome para quem tem o recurso
   pela API, icone riscado (motivo no tooltip) para quem nao tem. Logo abaixo,
   a rede da lista aberta e como ela esta neste conteudo. */
/* Nome encolhe com reticencias antes de a barra estourar (Mencoes tem duas
   abas com nome e tres riscadas na mesma largura). */
.rfx-tab>span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.rfx-tab.rfx-tab-nao {
    position: relative;
    flex: 0 0 30px;
    padding: 0;
    opacity: .3;
    cursor: default;
}

.rfx-tab.rfx-tab-nao:hover {
    opacity: .45;
}

.rfx-tab.rfx-tab-nao::after {
    content: "";
    position: absolute;
    width: 19px;
    height: 1.5px;
    border-radius: 1px;
    background: currentColor;
    transform: rotate(-45deg);
}

.rfx-chip-ico {
    flex: 0 0 auto;
    display: inline-flex;
    margin-right: 2px;
    opacity: .6;
}

.rfx-chip-ico svg {
    width: 12px;
    height: 12px;
    fill: currentColor;
    display: block;
}

.rfx-outras {
    list-style: none;
    margin: 0;
    padding: 0;
}

.rfx-outras li {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    font-size: 12px;
    line-height: 1.45;
    opacity: .75;
}

.rfx-outras li+li {
    margin-top: 6px;
}

.rfx-outras li b {
    font-weight: 600;
}

.rfx-outra-icos {
    flex: 0 0 auto;
    display: inline-flex;
    gap: 3px;
    margin-top: 2px;
}

.rfx-outra-icos svg {
    width: 11px;
    height: 11px;
    fill: currentColor;
    display: block;
}

/* --- Palco de posicao da marcacao (Instagram) - 23/09/2026 ----------------
   A MESA e escura nos dois temas de proposito (mesmo motivo do preview de
   video): e o fundo em volta da midia, e a midia precisa ser julgada contra um
   fundo neutro, nao contra a superficie do popover. O quadro tem a proporcao
   da midia e e dimensionado em JS (ajustarQuadro). O @ e o balao do proprio
   Instagram: escuro, com a PONTA no ponto marcado - e esse ponto que vira x/y. */
.rfx-palco {
    position: relative;
    height: 244px;
    margin: 0 0 10px;
    border-radius: 12px;
    background: #0e0e10;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.rfx-quadro {
    position: relative;
    flex: 0 0 auto;
    width: 224px;
    height: 280px;
    user-select: none;
    -webkit-user-select: none;
    cursor: crosshair;
}

.rfx-quadro.rfx-quadro-travado {
    cursor: default;
}

.rfx-quadro>img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: fill;
    pointer-events: none;
}

.rfx-quadro-vazio {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 18px;
    background: #1c1c1f;
    color: #fff;
    text-align: center;
}

.rfx-quadro-vazio b {
    max-width: 100%;
    font-size: 13px;
    font-weight: 550;
    line-height: 1.35;
    opacity: .6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.rfx-quadro-vazio small {
    font-size: 11px;
    line-height: 1.4;
    opacity: .5;
}

.rfx-quadro-aviso {
    position: absolute;
    left: 10px;
    right: 10px;
    bottom: 10px;
    padding: 7px 10px;
    border-radius: 8px;
    background: rgba(0, 0, 0, .7);
    color: #fff;
    font-size: 11.5px;
    line-height: 1.4;
    text-align: center;
}

/* O @ - o ponto (left/top) e a PONTA do balao. */
.rfx-pino {
    position: absolute;
    z-index: 2;
    margin: 0;
    padding: 7px 0 0;
    border: 0;
    background: none;
    transform: translateX(-50%);
    cursor: grab;
    touch-action: none;
    outline: none;
}

.rfx-pino>span {
    position: relative;
    display: block;
    padding: 5px 9px;
    border-radius: 6px;
    background: rgba(18, 18, 18, .88);
    color: #fff;
    font-family: inherit;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.2;
    white-space: nowrap;
    box-shadow: 0 4px 14px -4px rgba(0, 0, 0, .55);
    transition: box-shadow .15s, opacity .15s;
}

.rfx-pino>span::before {
    content: "";
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    border: 6px solid transparent;
    border-top: 0;
    border-bottom-color: rgba(18, 18, 18, .88);
}

/* Ponto exato, para quem quer precisao. */
.rfx-pino::after {
    content: "";
    position: absolute;
    top: -3px;
    left: 50%;
    width: 6px;
    height: 6px;
    margin-left: -3px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 1.5px rgba(18, 18, 18, .8);
}

/* Automatico: ainda nao foi posicionado - tracejado, mais apagado. */
.rfx-pino.rfx-pino-auto>span {
    opacity: .78;
    outline: 1.5px dashed rgba(255, 255, 255, .65);
    outline-offset: 1px;
}

.rfx-pino.rfx-pino-sel>span,
.rfx-pino:focus-visible>span {
    box-shadow: 0 0 0 2px #fff, 0 4px 14px -4px rgba(0, 0, 0, .55);
    opacity: 1;
}

.rfx-pino.rfx-pino-arrastando {
    z-index: 3;
    cursor: grabbing;
}

.rfx-palco-nav {
    position: absolute;
    bottom: 10px;
    left: 50%;
    z-index: 4;
    transform: translateX(-50%);
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 3px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    font-size: 11.5px;
    font-weight: 600;
}

.rfx-palco-nav span {
    min-width: 38px;
    text-align: center;
}

.rfx-nav {
    width: 24px;
    height: 24px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: #fff;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
}

.rfx-nav:hover {
    background: rgba(255, 255, 255, .15);
}

.rfx-nav[disabled] {
    opacity: .3;
    cursor: default;
    background: transparent;
}

.rfx-palco-barra {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 6px;
    margin: -2px 0 12px;
}

/* Etiqueta no canto do palco: a dica do momento sem roubar uma linha. */
.rfx-palco-dica {
    position: absolute;
    top: 10px;
    left: 10px;
    z-index: 4;
    max-width: calc(100% - 20px);
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 11px;
    font-weight: 500;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    pointer-events: none;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
}

.rfx-palco-btn {
    flex: 0 0 auto;
    height: 28px;
    padding: 0 10px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    background: var(--color-bg-01);
    /* veu: no escuro so a borda some */
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: background .15s;
}

.rfx-palco-btn:hover {
    background: var(--color-hover-01);
}

.rfx-palco-btn.rfx-salvar {
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-weight: 600;
}

.rfx-palco-btn.rfx-salvar:hover {
    background: var(--color-btn-bg-01);
    opacity: .88;
}

/* Com o palco, o chip da marcacao vira seletor; tracejado = posicao
   automatica, o mesmo codigo visual do balao no palco. */
.rfx-chip.rfx-chip-pos {
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

.rfx-chip.rfx-chip-auto {
    border-style: dashed;
    /* cinza medio e nao --color-border: no escuro a borda (30,30,30) some sobre
       a superficie #191919 e o tracejado deixava de dizer "automatico" */
    border-color: rgba(128, 128, 128, .6);
}

.rfx-chip.rfx-chip-sel {
    border-color: var(--color-btn-bg-01);
    box-shadow: 0 0 0 1px var(--color-btn-bg-01);
}

/* --- Rodape recolhivel (Mencoes e Colaboracao) ---------------------------
   "Como funciona" e "Outras redes" comecam fechados: eram o bloco mais alto
   do popover e o menos consultado. Alerta de verdade nao entra aqui - fica a
   vista no corpo (.rfx-alertas). */
.rfx-rodape {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    padding: 6px 8px;
    border-top: 1px solid var(--color-border);
}

.rfx-tgl {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 9px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12px;
    font-weight: 500;
    opacity: .65;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.rfx-tgl:hover,
.rfx-tgl.atv {
    opacity: 1;
    background: var(--color-hover-01);
}

.rfx-tgl>svg {
    display: block;
    width: 14px;
    height: 14px;
}

/* a seta vira quando o painel esta aberto */
.rfx-tgl>svg:last-child {
    width: 12px;
    height: 12px;
    opacity: .6;
    transition: transform .2s cubic-bezier(.16, 1, .3, 1);
}

.rfx-tgl.atv>svg:last-child {
    transform: rotate(180deg);
}

.rfx-tgl-icos {
    display: inline-flex;
    gap: 3px;
}

.rfx-tgl-icos svg {
    display: block;
    width: 11px;
    height: 11px;
    fill: currentColor;
}

.rfx-painel {
    flex: 1 1 100%;
    padding: 6px 9px 8px;
}

/* =========================================================================
   CONTADOR DA LEGENDA (.lgd-conta) - linha discreta sob o campo Legenda
   (legendaAtualizarContador no footer.php). Conta o texto que VAI sair
   (legendaParaPublicar), mostra o limite mais apertado das redes ligadas e,
   quando estoura, vira alerta com o "!" da tinta - monocromatico, como o
   selo da rede. Vazio ou fora de Feed, some.
   ========================================================================= */
.item-post .inpt.legenda .lgd-conta,
.item-post .inpt.legenda-rede .lgd-conta {
    display: none;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 2px 9px 6px;
    font-size: 11.5px;
    line-height: 1.4;
    color: var(--color-text-01);
    opacity: .5;
    cursor: default;
}

.item-post .inpt.legenda .lgd-conta.lgd-on,
.item-post .inpt.legenda-rede .lgd-conta.lgd-on {
    display: flex;
}

.item-post .inpt.legenda .lgd-conta .lgd-lim,
.item-post .inpt.legenda-rede .lgd-conta .lgd-lim {
    flex: 0 0 auto;
    white-space: nowrap;
}

.item-post .inpt.legenda .lgd-conta.lgd-alerta,
.item-post .inpt.legenda-rede .lgd-conta.lgd-alerta {
    opacity: 1;
}

.item-post .inpt.legenda .lgd-conta.lgd-alerta .lgd-lim,
.item-post .inpt.legenda-rede .lgd-conta.lgd-alerta .lgd-lim {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
}

.item-post .inpt.legenda .lgd-conta.lgd-alerta .lgd-lim::before,
.item-post .inpt.legenda-rede .lgd-conta.lgd-alerta .lgd-lim::before {
    content: "!";
    width: 15px;
    height: 15px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
}

#estudio-texto-arte,
#estudio-contexto {
    max-height: 115px !important
}


/* =============================================================================
   STUDIO CRIATIVO v3 - kit .sc-* (barra, pilulas, popovers e seletores visuais)
   -----------------------------------------------------------------------------
   JS no footer.php: STUDIO_CAT, studioHtml*, window.StudioPop, barra do Studio
   (estudioCriativoHTML), carrossel em duas etapas, acoes do grid.

   Tudo escopado em .sc-v3 (a raiz do painel do Studio) ou em classes novas
   (.scp popover, .sc-* seletores): as regras antigas do Studio continuam no
   arquivo e perdem por ESPECIFICIDADE, nao por ordem - o dark.css carrega depois
   e tem seletores de uma classe (.estudio-slide-card, .input-bar...).

   Monocromatico: ativo/selecionado = tinta (--color-btn-bg-01). Cor so entra
   como DADO (paleta da marca na mini-arte do tema, cores do esboco).
   Superficies flutuantes com token proprio (--sc-*), invertido no dark.css.
   ============================================================================= */
:root {
    --sc-surface: #fff;
    --sc-bar: rgba(255, 255, 255, .88);
    --sc-campo: #f4f5f7;
    --sc-campo-2: #eceef1;
    --sc-line: rgba(16, 24, 40, .09);
    --sc-line-forte: rgba(16, 24, 40, .2);
    --sc-hover: rgba(16, 24, 40, .05);
    --sc-palco: #eef0f3;
    --sc-sombra: 0 1px 2px rgba(16, 24, 40, .05), 0 24px 56px -28px rgba(16, 24, 40, .45);
    --sc-sombra-barra: 0 1px 2px rgba(16, 24, 40, .04), 0 18px 44px -22px rgba(16, 24, 40, .38);
    --sc-ease: cubic-bezier(.16, 1, .3, 1);
}

/* ---------- raiz ---------- */
.chatgpt-image-layout.sc-v3 {
    font-family: "Golos Text", Inter, system-ui, sans-serif;
}

.sc-v3 .floating-input-wrapper {
    max-width: 700px;
}

.sc-v3.sc-modo-carrossel .floating-input-wrapper {
    max-width: 700px;
}

/* ---------- a barra ---------- */
.sc-v3 .input-bar.sc-bar {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 10px;
    border-radius: 22px;
    background: var(--sc-bar);
    border: 1px solid var(--sc-line);
    box-shadow: var(--sc-sombra-barra);
    backdrop-filter: blur(18px) saturate(1.4);
    -webkit-backdrop-filter: blur(18px) saturate(1.4);
    color: var(--color-text-01);
}

.sc-bar svg {
    flex: 0 0 auto;
}

/* Faixa de cima: tipo . vinculo . preencher */
.sc-bar-top {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
}

.sc-v3 .sc-tabs.estudio-tipo-tabs {
    display: inline-flex;
    gap: 2px;
    padding: 3px;
    border-radius: 12px;
    background: var(--sc-campo);
    border: 0;
    flex: 0 0 auto;
}

.sc-v3 .sc-tabs .estudio-tipo-tab {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 12px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font: 550 12.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    opacity: .6;
    cursor: pointer;
    transition: opacity .15s, background-color .15s, box-shadow .15s;
}

.sc-v3 .sc-tabs .estudio-tipo-tab svg {
    width: 15px;
    height: 15px;
}

.sc-v3 .sc-tabs .estudio-tipo-tab:hover {
    opacity: .9;
}

.sc-v3 .sc-tabs .estudio-tipo-tab.atv {
    opacity: 1;
    background: var(--sc-surface);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 0 0 1px var(--sc-line);
}

.sc-vinculo {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    height: 30px;
    padding: 0 6px 0 10px;
    border-radius: 10px;
    border: 1px dashed var(--sc-line-forte);
    font-size: 12px;
    color: var(--color-text-01);
}

.sc-vinculo[hidden] {
    display: none;
}

.sc-vinculo>svg {
    width: 14px;
    height: 14px;
    opacity: .6;
}

.sc-vinculo-txt {
    display: flex;
    align-items: baseline;
    gap: 6px;
    min-width: 0;
    overflow: hidden;
}

.sc-vinculo-txt b {
    font-weight: 600;
    white-space: nowrap;
}

.sc-vinculo-txt span {
    opacity: .6;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-vinculo-x {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    color: inherit;
    opacity: .55;
    cursor: pointer;
    padding: 0;
}

.sc-vinculo-x svg {
    width: 12px;
    height: 12px;
}

.sc-vinculo-x:hover {
    opacity: 1;
    background: var(--sc-hover);
}

.sc-prefill {
    margin-left: auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 11px;
    border-radius: 10px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    font: 550 12.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color .15s, border-color .15s;
}

.sc-prefill svg {
    width: 14px;
    height: 14px;
}

.sc-prefill:hover {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

.sc-prefill.loading {
    pointer-events: none;
    opacity: .7;
}

.sc-prefill.loading svg {
    animation: scGira 1s linear infinite;
}

@keyframes scGira {
    to {
        transform: rotate(360deg);
    }
}

/* Campos: um "compositor" so, com divisoria entre texto e direcao visual */
.sc-v3 .sc-campos.input-main {
    display: flex;
    flex-direction: column;
    border-radius: 14px;
    background: var(--sc-campo);
    position: relative;
    overflow: hidden;
    transition: box-shadow .15s;
}

.sc-v3 .sc-campos.input-main:focus-within {
    box-shadow: 0 0 0 1px var(--sc-line-forte);
    background: var(--sc-surface);
}

.sc-campo {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 9px 12px 6px;
}

.sc-campo+.sc-campo {
    border-top: 1px solid var(--sc-line);
}

.sc-campo>label {
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .01em;
    opacity: .5;
    margin: 0;
    cursor: text;
}

.sc-campo>label span {
    font-weight: 450;
    opacity: .8;
    margin-left: 4px;
}

.sc-v3 .sc-campo textarea {
    width: 100%;
    min-height: 24px;
    max-height: 150px;
    padding: 2px 0 4px;
    border: 0;
    border-bottom: 0;
    background: transparent;
    color: var(--color-text-01);
    font: 450 14px/1.45 "Golos Text", Inter, system-ui, sans-serif;
    resize: none;
    outline: none;
    overflow: auto;
}

.sc-v3 .sc-campo textarea::placeholder {
    color: var(--color-text-01);
    opacity: .35;
}

.sc-v3 .sc-campo-texto textarea {
    font-weight: 550;
}

.sc-campos.sc-carregando::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, var(--sc-surface) 50%, transparent 100%);
    opacity: .7;
    animation: scVarre 1.2s ease-in-out infinite;
    pointer-events: none;
}

@keyframes scVarre {
    0% {
        transform: translateX(-100%);
    }

    100% {
        transform: translateX(100%);
    }
}

/* Faixa de baixo: ferramentas + gerar */
.sc-bar-tools {
    display: flex;
    align-items: center;
    gap: 10px;
}

.sc-tools {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 6px;
    overflow-x: auto;
    scrollbar-width: none;
}

.sc-tools::-webkit-scrollbar {
    display: none;
}

.sc-pill {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 32px;
    padding: 0 9px 0 8px;
    border-radius: 10px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    font: 550 12.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
    transition: background-color .15s, border-color .15s;
}

.sc-pill:hover,
.sc-pill.sc-aberto {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

.sc-pill>svg {
    width: 15px;
    height: 15px;
    opacity: .75;
}

.sc-pill .lbl {
    max-width: 190px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.sc-pill-chev {
    display: inline-flex;
    opacity: .4;
    margin-left: -2px;
}

.sc-pill-chev svg {
    width: 12px;
    height: 12px;
    transition: transform .2s var(--sc-ease);
}

.sc-pill.sc-aberto .sc-pill-chev svg {
    transform: rotate(180deg);
}

.sc-pill.sc-off .lbl {
    opacity: .55;
}

.sc-pill-logo {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    background: var(--sc-campo);
    overflow: hidden;
}

.sc-pill-logo img {
    max-width: 16px;
    max-height: 16px;
    object-fit: contain;
}

.sc-tools-sep {
    flex: 0 0 1px;
    height: 18px;
    background: var(--sc-line);
    margin: 0 2px;
}

.sc-icon {
    position: relative;
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
    opacity: .7;
    transition: opacity .15s, background-color .15s;
}

.sc-icon svg {
    width: 17px;
    height: 17px;
}

.sc-icon:hover {
    opacity: 1;
    background: var(--sc-hover);
}

.sc-icon.atv {
    opacity: 1;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sc-v3 .sc-icon .contador-anexos {
    position: absolute;
    top: -3px;
    right: -3px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 8px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 10px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Botao de gerar: tinta, raio 13, custo em creditos visivel */
.sc-v3 .sc-gerar {
    position: static;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 40px;
    width: auto;
    margin: 0;
    padding: 0 12px 0 16px;
    border: 0;
    border-radius: 13px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font: 600 14px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
    transition: transform .2s var(--sc-ease), box-shadow .2s var(--sc-ease), opacity .15s;
}

.sc-v3 .sc-gerar:hover {
    background: var(--color-btn-bg-01);
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.sc-v3 .sc-gerar>svg {
    width: 16px;
    height: 16px;
}

.sc-gerar-cred {
    display: inline-flex;
    align-items: center;
    height: 20px;
    min-width: 20px;
    padding: 0 6px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    justify-content: center;
    background: color-mix(in srgb, var(--color-btn-text-01) 18%, transparent);
}

.sc-v3 .sc-gerar:disabled,
.sc-v3 .sc-gerar.disabled {
    opacity: .4;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.sc-v3 .sc-gerar.loading>svg {
    animation: scGira .9s linear infinite;
}

/* Anexos (referencias + esboco) */
.sc-v3 .sc-anexos.estudio-anexos-preview {
    position: static;
    display: none;
    flex-wrap: wrap;
    gap: 8px;
    padding: 0 2px;
    margin: 0;
    background: transparent;
    border: 0;
    box-shadow: none;
}

.sc-v3 .sc-anexos .estudio-anexo-item {
    position: relative;
    width: 54px;
    height: 54px;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid var(--sc-line);
    background: var(--sc-campo);
}

.sc-v3 .sc-anexos .estudio-anexo-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sc-v3 .sc-anexos .sc-anexo-esboco {
    cursor: pointer;
    background: #fff;
}

.sc-v3 .sc-anexos .sc-anexo-esboco img {
    object-fit: contain;
}

.sc-anexo-tag {
    position: absolute;
    left: 3px;
    right: 3px;
    bottom: 3px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    height: 16px;
    border-radius: 6px;
    background: rgba(17, 17, 17, .78);
    color: #fff;
    font-size: 9.5px;
    font-weight: 600;
}

.sc-anexo-tag svg {
    width: 9px;
    height: 9px;
}

.sc-v3 .sc-anexos .estudio-anexo-remover,
.sc-v3 .sc-anexos .sc-esboco-rm {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 18px;
    height: 18px;
    border: 0;
    border-radius: 50%;
    background: rgba(17, 17, 17, .72);
    color: #fff;
    font-size: 13px;
    line-height: 1;
    display: grid;
    place-items: center;
    cursor: pointer;
    opacity: 0;
    transition: opacity .15s;
    padding: 0;
}

.sc-v3 .sc-anexos .estudio-anexo-item:hover .estudio-anexo-remover,
.sc-v3 .sc-anexos .estudio-anexo-item:hover .sc-esboco-rm {
    opacity: 1;
}

.sc-v3 .estudio-creditos-saldo {
    position: static;
}

/* ---------- glifos ---------- */
.sc-fmt-glyph {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
}

.sc-fmt-glyph i {
    display: block;
    border: 1.6px solid currentColor;
    border-radius: 3px;
    box-sizing: border-box;
}

.sc-tema-glyph {
    position: relative;
    display: inline-flex;
    flex-direction: column;
    justify-content: flex-end;
    gap: 2px;
    width: 18px;
    height: 18px;
    padding: 3px;
    border-radius: 5px;
    border: 1px solid var(--sc-line-forte);
    overflow: hidden;
    flex: 0 0 auto;
    box-sizing: border-box;
}

.sc-tema-glyph b {
    position: absolute;
    top: 3px;
    left: 3px;
    width: 45%;
    height: 3px;
    border-radius: 2px;
}

.sc-tema-glyph em {
    display: block;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    opacity: .5;
}

.sc-tema-glyph em+em {
    width: 60%;
}

.sc-tema-claro {
    background: #fff;
    color: #111;
}

.sc-tema-escuro {
    background: #151517;
    color: #f2f2f2;
    border-color: #151517;
}

.sc-tema-auto {
    background: linear-gradient(135deg, #fff 0 50%, #151517 50% 100%);
    color: #8a8f98;
}

/* ---------- popover (window.StudioPop) ---------- */
.scp {
    position: fixed;
    z-index: 10030;
    width: 360px;
    max-width: calc(100vw - 20px);
    overflow: auto;
    overscroll-behavior: contain;
    background: var(--sc-surface);
    color: var(--color-text-01);
    border: 1px solid var(--sc-line);
    border-radius: 16px;
    box-shadow: var(--sc-sombra);
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    opacity: 0;
    transform: translateY(6px) scale(.985);
    transform-origin: bottom left;
    transition: opacity .18s var(--sc-ease), transform .22s var(--sc-ease);
    scrollbar-width: thin;
}

.scp.scp-on {
    opacity: 1;
    transform: none;
}

.scp:not(.scp-acima) {
    transform-origin: top left;
}

.scp.scp-estilo {
    width: 460px;
}

.scp.scp-formato {
    width: 420px;
}

.scp.scp-logo {
    width: 330px;
}

.scp.scp-layout {
    width: 400px;
}

.scp.scp-conteudos {
    width: 400px;
}

.scp-cab {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 14px 16px 10px;
    background: var(--sc-surface);
}

.scp-cab b {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.scp-cab span {
    font-size: 12px;
    opacity: .55;
    line-height: 1.4;
}

.scp-corpo {
    padding: 2px 12px 14px;
}

.scp-sec+.scp-sec {
    margin-top: 14px;
}

.scp-sec-rot,
.sc-grupo-rot {
    font-size: 11.5px;
    font-weight: 600;
    opacity: .5;
    margin: 0 2px 7px;
}

.sc-grupo-rot {
    margin-top: 10px;
}

.sc-fmts .sc-grupo-rot:first-child {
    margin-top: 0;
}

.scp-dica {
    font-size: 11.5px;
    line-height: 1.45;
    opacity: .55;
    margin: 7px 2px 0;
}

.scp-vazio {
    padding: 18px 12px;
    text-align: center;
    font-size: 12.5px;
    line-height: 1.5;
    opacity: .65;
}

.scp-veu {
    position: fixed;
    inset: 0;
    z-index: 10029;
    background: rgba(0, 0, 0, .38);
    opacity: 0;
    transition: opacity .2s;
}

.scp-veu.scp-on {
    opacity: 1;
}

/* ---------- seletores ---------- */
.sc-fmt-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}

/* Foco de teclado na tinta (o anel azul do navegador fugia do monocromatico) */
.sc-v3 button:focus,
.scp button:focus,
.sce-modal button:focus,
.cvi-modal button:focus,
.eia-modal .eia-sf:focus {
    outline: none;
}

.sc-v3 button:focus-visible,
.scp button:focus-visible,
.sce-modal button:focus-visible,
.cvi-modal button:focus-visible,
.eia-modal .eia-sf:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 2px;
}

.sc-fmt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 7px;
    padding: 12px 6px 10px;
    border-radius: 12px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
    font-family: inherit;
    transition: background-color .15s, border-color .15s, box-shadow .15s;
}

.sc-fmt:hover {
    background: var(--sc-hover);
}

.sc-fmt.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

.sc-fmt.atv .sc-fmt-glyph i {
    background: color-mix(in srgb, var(--color-btn-bg-01) 12%, transparent);
}

.sc-fmt-txt {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 2px;
    line-height: 1.2;
    text-align: center;
}

.sc-fmt-txt b {
    font-size: 12.5px;
    font-weight: 600;
}

.sc-fmt-txt span {
    font-size: 10.5px;
    opacity: .55;
}

.sc-fmt-mini {
    flex-direction: row;
    justify-content: flex-start;
    gap: 8px;
    padding: 8px 10px;
}

.sc-fmt-mini .sc-fmt-txt {
    align-items: flex-start;
    text-align: left;
}

.sc-temas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.sc-tema {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 10px;
    border-radius: 12px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    transition: background-color .15s, border-color .15s, box-shadow .15s;
}

.sc-tema:hover {
    background: var(--sc-hover);
}

.sc-tema.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

.sc-tema .sc-tema-glyph {
    width: 100%;
    height: 42px;
    padding: 7px;
    border-radius: 8px;
    gap: 4px;
}

.sc-tema .sc-tema-glyph b {
    top: 8px;
    left: 8px;
    width: 38%;
    height: 7px;
    border-radius: 3px;
}

.sc-tema .sc-tema-glyph em {
    height: 3px;
}

.sc-tema-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.2;
}

.sc-tema-txt b {
    font-size: 12.5px;
    font-weight: 600;
}

.sc-tema-txt span {
    font-size: 11px;
    opacity: .55;
}

.sc-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.sc-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 11px 0 9px;
    border-radius: 999px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    font: 500 12.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color .15s, border-color .15s, color .15s;
}

.sc-chip svg {
    width: 14px;
    height: 14px;
    opacity: .75;
}

.sc-chip:hover {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

.sc-chip.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sc-chip.atv svg {
    opacity: 1;
}

.sc-chip-sm {
    height: 26px;
    padding: 0 9px;
    font-size: 11.5px;
}

.sc-comp-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.sc-comp {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 7px 9px 7px 7px;
    border-radius: 12px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
    font-family: inherit;
    text-align: left;
    min-width: 0;
    transition: background-color .15s, border-color .15s, box-shadow .15s;
}

.sc-comp:hover {
    background: var(--sc-hover);
}

.sc-comp-ico {
    flex: 0 0 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    background: var(--sc-campo);
}

.sc-comp-ico svg {
    width: 16px;
    height: 16px;
}

.sc-comp-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
    line-height: 1.2;
}

.sc-comp-txt b {
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-comp-txt span {
    font-size: 10.5px;
    opacity: .55;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-comp.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

.sc-comp.atv .sc-comp-ico {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sc-seg {
    display: flex;
    gap: 2px;
    padding: 3px;
    border-radius: 11px;
    background: var(--sc-campo);
}

.sc-seg-it {
    flex: 1 1 0;
    min-width: 0;
    height: 30px;
    padding: 0 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    font: 550 12.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    opacity: .6;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    transition: opacity .15s, background-color .15s, box-shadow .15s;
}

.sc-seg-it:hover {
    opacity: .9;
}

.sc-seg-it.atv {
    opacity: 1;
    background: var(--sc-surface);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 0 0 1px var(--sc-line);
}

/* Posicao do logo: mini-arte na proporcao do formato */
.sc-lp {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
}

.sc-lp-board {
    position: relative;
    border-radius: 12px;
    background: var(--sc-campo);
    border: 1px solid var(--sc-line);
    overflow: hidden;
}

.sc-lp-linha,
.sc-lp-bloco {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    background: currentColor;
    opacity: .1;
    border-radius: 4px;
}

.sc-lp-linha.l1 {
    top: 30%;
    width: 62%;
    height: 9px;
}

.sc-lp-linha.l2 {
    top: calc(30% + 15px);
    width: 42%;
    height: 6px;
}

.sc-lp-bloco {
    top: calc(30% + 30px);
    width: 50%;
    height: 22%;
    opacity: .06;
}

.sc-lp-spot {
    position: absolute;
    display: grid;
    place-items: center;
    width: 34px;
    height: 26px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
    padding: 0;
    transition: background-color .15s;
}

.sc-lp-spot:hover {
    background: var(--sc-hover);
}

.sc-lp-spot.c1 {
    left: 5px;
}

.sc-lp-spot.c2 {
    left: 50%;
    transform: translateX(-50%);
}

.sc-lp-spot.c3 {
    right: 5px;
}

.sc-lp-spot.r1 {
    top: 5px;
}

.sc-lp-spot.r3 {
    bottom: 5px;
}

.sc-lp-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    border: 1.6px solid currentColor;
    opacity: .4;
    transition: transform .15s, opacity .15s;
}

.sc-lp-spot:hover .sc-lp-dot {
    transform: scale(1.25);
    opacity: .8;
}

.sc-lp-marca {
    display: grid;
    place-items: center;
    width: 32px;
    height: 22px;
    border-radius: 6px;
    background: var(--sc-surface);
    box-shadow: 0 0 0 1.5px var(--color-btn-bg-01), 0 4px 10px -4px rgba(16, 24, 40, .35);
    overflow: hidden;
}

.sc-lp-marca img {
    max-width: 26px;
    max-height: 16px;
    object-fit: contain;
}

.sc-lp-marca-vazia {
    width: 16px;
    height: 8px;
    border-radius: 3px;
    background: var(--color-btn-bg-01);
}

.sc-lp-extras {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 5px;
}

.sc-lp-rot {
    font-size: 11.5px;
    opacity: .6;
    min-height: 14px;
}

/* Logos da marca */
.sc-logos {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.sc-logo-thumb {
    display: grid;
    place-items: center;
    width: 56px;
    height: 56px;
    padding: 7px;
    border-radius: 12px;
    border: 1px solid var(--sc-line);
    background:
        linear-gradient(45deg, var(--sc-campo) 25%, transparent 25%, transparent 75%, var(--sc-campo) 75%) 0 0 / 12px 12px,
        linear-gradient(45deg, var(--sc-campo) 25%, transparent 25%, transparent 75%, var(--sc-campo) 75%) 6px 6px / 12px 12px,
        var(--sc-surface);
    cursor: pointer;
    transition: box-shadow .15s, border-color .15s;
}

.sc-logo-thumb img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    pointer-events: none;
}

.sc-logo-thumb:hover {
    border-color: var(--sc-line-forte);
}

.sc-logo-thumb.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: 0 0 0 1.5px var(--color-btn-bg-01);
}

.sc-logo-cfg {
    margin-top: 12px;
    transition: opacity .2s;
}

.sc-logo-cfg.sc-desligado {
    opacity: .35;
    pointer-events: none;
}

/* Interruptor */
.sc-switch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--color-text-01);
    cursor: pointer;
    user-select: none;
    margin: 0;
}

.sc-switch input {
    position: absolute;
    opacity: 0;
    width: 1px;
    height: 1px;
    pointer-events: none;
}

.sc-switch-ui {
    position: relative;
    flex: 0 0 30px;
    width: 30px;
    height: 18px;
    border-radius: 999px;
    background: var(--sc-line-forte);
    transition: background-color .2s;
}

.sc-switch-ui::after {
    content: "";
    position: absolute;
    top: 2px;
    left: 2px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .25);
    transition: transform .2s var(--sc-ease), background-color .2s;
}

.sc-switch input:checked+.sc-switch-ui {
    background: var(--color-btn-bg-01);
}

.sc-switch input:checked+.sc-switch-ui::after {
    transform: translateX(12px);
    background: var(--color-btn-text-01);
}

.sc-switch input:focus-visible+.sc-switch-ui {
    box-shadow: 0 0 0 3px var(--sc-hover);
}

.sc-switch-linha {
    display: flex;
    padding: 4px 2px 2px;
}

/* Modo (arte / imagem) */
.sc-modos {
    display: grid;
    gap: 6px;
}

.sc-modo {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 11px;
    border-radius: 14px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    text-align: left;
    font-family: inherit;
    cursor: pointer;
    transition: background-color .15s, border-color .15s, box-shadow .15s;
}

.sc-modo:hover {
    background: var(--sc-hover);
}

.sc-modo-ico {
    flex: 0 0 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--sc-campo);
}

.sc-modo-ico svg {
    width: 17px;
    height: 17px;
}

.sc-modo-txt {
    display: flex;
    flex-direction: column;
    gap: 3px;
    flex: 1 1 auto;
}

.sc-modo-txt b {
    font-size: 13px;
    font-weight: 600;
}

.sc-modo-txt span {
    font-size: 11.5px;
    line-height: 1.45;
    opacity: .6;
}

.sc-modo-check {
    opacity: 0;
    transition: opacity .15s;
}

.sc-modo-check svg {
    width: 16px;
    height: 16px;
}

.sc-modo.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

.sc-modo.atv .sc-modo-ico {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sc-modo.atv .sc-modo-check {
    opacity: 1;
}

/* Layouts do slide */
.sc-lay-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 6px;
}

.sc-lay {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 9px 4px 8px;
    border-radius: 12px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
    font-family: inherit;
    transition: background-color .15s, border-color .15s, box-shadow .15s;
}

.sc-lay:hover {
    background: var(--sc-hover);
}

.sc-lay-fio {
    display: grid;
    place-items: center;
    width: 38px;
    height: 46px;
    border-radius: 7px;
    background: var(--sc-campo);
}

.sc-lay-fio svg {
    width: 26px;
    height: 34px;
    opacity: .75;
}

.sc-lay-nome {
    font-size: 10.5px;
    font-weight: 550;
    line-height: 1.2;
    text-align: center;
}

.sc-lay.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

.sc-lay.atv .sc-lay-fio {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sc-lay.atv .sc-lay-fio svg {
    opacity: 1;
}

/* Lista de conteudos (preencher a partir de um conteudo) */
.scp-lista-cont {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 8px 10px;
}

.scp-cont {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color .15s;
}

.scp-cont:hover {
    background: var(--sc-hover);
}

.scp-cont-capa {
    flex: 0 0 38px;
    height: 46px;
    display: grid;
    place-items: center;
    border-radius: 9px;
    overflow: hidden;
    background: var(--sc-campo);
}

.scp-cont-capa img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.scp-cont-capa svg {
    width: 16px;
    height: 16px;
    opacity: .5;
}

.scp-cont-txt {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.scp-cont-txt b {
    font-size: 13px;
    font-weight: 550;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.scp-cont-txt span {
    font-size: 11.5px;
    opacity: .55;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ---------- botoes genericos do kit ---------- */
.sc-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 34px;
    padding: 0 13px;
    border-radius: 11px;
    border: 1px solid transparent;
    font: 600 12.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color .15s, border-color .15s, transform .2s var(--sc-ease), box-shadow .2s var(--sc-ease), opacity .15s;
}

.sc-btn svg {
    width: 15px;
    height: 15px;
}

.sc-btn-ghost {
    background: transparent;
    border-color: var(--sc-line);
    color: var(--color-text-01);
}

.sc-btn-ghost:hover {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

.sc-btn-pri {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sc-btn-pri:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.sc-btn-pri em {
    font-style: normal;
    font-size: 10.5px;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: color-mix(in srgb, var(--color-btn-text-01) 18%, transparent);
}

.sc-btn:disabled,
.sc-btn.loading {
    opacity: .5;
    pointer-events: none;
}

/* =============================================================================
   CARROSSEL - roteiro em linhas, etapas e aprovacao da capa
   ============================================================================= */
.sc-v3 .sc-car.estudio-carrossel-panel {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 0;
    margin: 0;
    background: transparent;
    border: 0;
}

.sc-car-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 14px;
    padding: 0 2px;
}

.sc-steps {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 600;
}

.sc-step {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    opacity: .4;
    transition: opacity .2s;
}

.sc-step i {
    display: grid;
    place-items: center;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    border: 1.5px solid currentColor;
    font-style: normal;
    font-size: 10.5px;
    font-weight: 700;
    box-sizing: border-box;
}

.sc-step.atv {
    opacity: 1;
}

.sc-step.atv i {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sc-step.feito {
    opacity: .75;
}

.sc-step-sep {
    width: 14px;
    height: 1.5px;
    border-radius: 2px;
    background: currentColor;
    opacity: .2;
}

.sc-car-opts {
    display: inline-flex;
    align-items: center;
    gap: 14px;
}

.sc-car-ind {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.sc-mini-rot {
    font-size: 11.5px;
    opacity: .55;
}

.sc-car-ind .sc-seg {
    padding: 2px;
    border-radius: 9px;
}

.sc-car-ind .sc-seg-it {
    flex: 0 0 auto;
    height: 24px;
    padding: 0 8px;
    font-size: 11.5px;
    border-radius: 7px;
}

.sc-car-corpo {
    max-height: min(46vh, 480px);
    overflow-y: auto;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 1px;
    scrollbar-width: thin;
}

.sc-v3 .sc-car-lista.estudio-carrossel-slides {
    display: flex;
    flex-direction: column;
    gap: 6px;
    overflow: visible;
    padding: 0;
    margin: 0;
    position: relative;
}

.sc-v3 .sc-slide.estudio-slide-card {
    display: grid;
    grid-template-columns: 100px minmax(0, 1fr) auto;
    align-items: start;
    gap: 10px;
    width: auto;
    min-width: 0;
    min-height: 0;
    flex: none;
    padding: 9px 9px 9px 10px;
    border-radius: 14px;
    background: var(--sc-campo);
    border: 1px solid transparent;
    transition: background-color .15s, border-color .15s, box-shadow .15s;
}

.sc-v3 .sc-slide.estudio-slide-card:hover {
    border-color: var(--sc-line);
}

.sc-v3 .sc-slide.estudio-slide-card:focus-within {
    background: var(--sc-surface);
    border-color: var(--sc-line-forte);
}

.sc-slide-lado {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.sc-slide-num {
    font-size: 11px;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    opacity: .45;
    padding-left: 2px;
}

.sc-slide-lay {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    padding: 4px 7px 4px 4px;
    border-radius: 9px;
    border: 1px solid var(--sc-line);
    background: var(--sc-surface);
    color: var(--color-text-01);
    font: 550 11px/1.15 "Golos Text", Inter, system-ui, sans-serif;
    text-align: left;
    cursor: pointer;
    transition: border-color .15s, box-shadow .15s;
}

button.sc-slide-lay:hover,
button.sc-slide-lay.sc-aberto {
    border-color: var(--sc-line-forte);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06);
}

.sc-slide-lay svg {
    flex: 0 0 16px;
    width: 16px;
    height: 20px;
    opacity: .7;
}

.sc-slide-lay span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.sc-slide-lay-capa {
    cursor: default;
    border-color: transparent;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sc-slide-lay-capa svg {
    opacity: 1;
}

.sc-slide-campos {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.sc-v3 .sc-slide .estudio-slide-texto,
.sc-v3 .sc-slide .estudio-slide-contexto {
    width: 100%;
    height: auto;
    margin: 0;
    border-radius: 0;
    min-height: 22px;
    max-height: 140px;
    padding: 2px 0;
    border: 0;
    background: transparent;
    color: var(--color-text-01);
    resize: none;
    outline: none;
    box-shadow: none;
    overflow: auto;
}

.sc-v3 .sc-slide .estudio-slide-texto {
    font: 550 13.5px/1.4 "Golos Text", Inter, system-ui, sans-serif;
}

.sc-v3 .sc-slide .estudio-slide-contexto {
    font: 450 12.5px/1.4 "Golos Text", Inter, system-ui, sans-serif;
    opacity: .72;
}

.sc-v3 .sc-slide .estudio-slide-texto::placeholder,
.sc-v3 .sc-slide .estudio-slide-contexto::placeholder {
    color: var(--color-text-01);
    opacity: .38;
}

.sc-v3 .sc-car-lista.modo-imagem .estudio-slide-texto {
    display: none;
}

.sc-slide-acoes {
    display: flex;
    align-items: flex-start;
    gap: 4px;
}

.sc-v3 .sc-slide .btn-anexar-slide {
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    margin: 0;
    padding: 0;
    border-radius: 9px;
    border: 1px dashed var(--sc-line-forte);
    background: transparent;
    color: var(--color-text-01);
    opacity: .6;
    cursor: pointer;
    transition: opacity .15s, background-color .15s;
}

.sc-v3 .sc-slide .btn-anexar-slide:hover {
    opacity: 1;
    background: var(--sc-hover);
}

.sc-v3 .sc-slide .btn-anexar-slide svg {
    width: 14px;
    height: 14px;
}

.sc-v3 .sc-slide .estudio-slide-anexo-preview {
    position: relative;
    display: block;
    width: 34px;
    height: 42px;
    margin: 0;
    padding: 0;
    border-radius: 8px;
    overflow: hidden;
    border: 1px solid var(--sc-line);
    background: var(--sc-surface);
}

.sc-v3 .sc-slide .estudio-slide-anexo-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sc-v3 .sc-slide .estudio-slide-anexo-preview .rm {
    position: absolute;
    top: 2px;
    right: 2px;
    width: 16px;
    height: 16px;
    border: 0;
    border-radius: 50%;
    background: rgba(17, 17, 17, .75);
    color: #fff;
    font-size: 12px;
    line-height: 1;
    display: grid;
    place-items: center;
    padding: 0;
    cursor: pointer;
    opacity: 0;
    transition: opacity .15s;
}

.sc-v3 .sc-slide .estudio-slide-anexo-preview:hover .rm {
    opacity: 1;
}

.sc-v3 .sc-slide .estudio-slide-remover {
    position: static;
    display: inline-grid;
    place-items: center;
    width: 26px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .35;
    cursor: pointer;
    transition: opacity .15s, color .15s, background-color .15s;
}

.sc-v3 .sc-slide .estudio-slide-remover svg {
    width: 14px;
    height: 14px;
}

.sc-v3 .sc-slide .estudio-slide-remover:hover {
    opacity: 1;
    color: #e83a3a;
    background: var(--sc-hover);
}

.sc-v3 .sc-slide-add.estudio-slide-add {
    min-height: 0;
    flex: none;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 7px;
    width: 100%;
    min-width: 0;
    height: 40px;
    padding: 0 12px;
    border-radius: 14px;
    border: 1px dashed var(--sc-line-forte);
    background: transparent;
    color: var(--color-text-01);
    font: 550 12.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    opacity: .7;
    cursor: pointer;
    transition: opacity .15s, background-color .15s;
}

.sc-v3 .sc-slide-add.estudio-slide-add:hover {
    opacity: 1;
    background: var(--sc-hover);
}

.sc-v3 .sc-slide-add svg {
    width: 15px;
    height: 15px;
}

.sc-slide-add em {
    font-style: normal;
    font-size: 11px;
    opacity: .5;
    margin-left: 4px;
}

.sc-v3 .sc-campo-geral {
    border-radius: 14px;
    background: var(--sc-campo);
}

.sc-v3 .sc-campo-geral:focus-within {
    background: var(--sc-surface);
    box-shadow: 0 0 0 1px var(--sc-line-forte);
}

.sc-v3 #estudio-carrossel-contexto {
    min-height: 22px;
    padding: 2px 0 4px;
    font: 450 13.5px/1.45 "Golos Text", Inter, system-ui, sans-serif;
}

/* Overlay da IA preenchendo os slides */
.sc-v3 .estudio-ia-overlay {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: var(--sc-campo);
    font-size: 12.5px;
}

.sc-v3 .estudio-carrossel-ia-loading {
    opacity: .45;
    pointer-events: none;
}

/* Aprovacao da capa */
.sc-car-capa {
    display: grid;
    grid-template-columns: 62px minmax(0, 1fr);
    grid-template-areas: "thumb info" "thumb acoes";
    align-items: start;
    gap: 6px 12px;
    padding: 10px;
    border-radius: 16px;
    border: 1px solid var(--sc-line-forte);
    background: var(--sc-surface);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
    animation: scEntra .35s var(--sc-ease);
}

.sc-car-capa[hidden] {
    display: none;
}

@keyframes scEntra {
    from {
        opacity: 0;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.sc-capa-thumb {
    grid-area: thumb;
    position: relative;
    width: 62px;
    height: 78px;
    border-radius: 10px;
    overflow: hidden;
    background: var(--sc-campo);
    border: 1px solid var(--sc-line);
    padding: 0;
    display: grid;
    place-items: center;
    cursor: pointer;
}

.sc-capa-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .3s var(--sc-ease);
}

.sc-capa-thumb:hover img {
    transform: scale(1.04);
}

.sc-capa-gerando {
    cursor: default;
}

.sc-capa-gerando .shimmer-bar {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent 0%, var(--sc-surface) 50%, transparent 100%);
    animation: scVarre 1.3s ease-in-out infinite;
}

.sc-capa-erro {
    cursor: default;
}

.sc-capa-erro svg {
    width: 18px;
    height: 18px;
    opacity: .5;
}

.sc-capa-info {
    grid-area: info;
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    padding-top: 2px;
}

.sc-capa-info b {
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.sc-capa-info span {
    font-size: 12px;
    line-height: 1.45;
    opacity: .6;
}

.sc-capa-acoes {
    grid-area: acoes;
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 6px;
    padding-top: 4px;
}

/* =============================================================================
   GRID - acoes de cada arte (.sc-acts) e selos
   ============================================================================= */
.sc-v3 .estudio-arte-acoes.sc-acts {
    top: 0;
    right: 0;
    left: 0;
    bottom: 0;
    max-width: none;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 8px;
    gap: 8px;
    transform: none;
    background: linear-gradient(to bottom, rgba(10, 10, 12, .5) 0%, rgba(10, 10, 12, 0) 34%, rgba(10, 10, 12, 0) 58%, rgba(10, 10, 12, .62) 100%);
    pointer-events: none;
}

.sc-v3 .arte-item:hover .estudio-arte-acoes.sc-acts,
.sc-v3 .arte-item:focus-within .estudio-arte-acoes.sc-acts {
    pointer-events: none;
}

.sc-acts>div {
    pointer-events: auto;
}

.sc-acts-topo {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 6px;
    transform: translateY(-4px);
    transition: transform .2s var(--sc-ease);
}

.sc-acts-rodape {
    display: flex;
    align-items: center;
    gap: 6px;
    transform: translateY(4px);
    transition: transform .2s var(--sc-ease);
}

.sc-v3 .arte-item:hover .sc-acts-topo,
.sc-v3 .arte-item:hover .sc-acts-rodape,
.sc-v3 .arte-item:focus-within .sc-acts-topo,
.sc-v3 .arte-item:focus-within .sc-acts-rodape {
    transform: none;
}

.sc-acts-fmt {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 22px;
    padding: 0 8px 0 6px;
    border-radius: 7px;
    background: rgba(10, 10, 12, .45);
    color: #fff;
    font: 600 10.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    pointer-events: none;
}

.sc-acts-fmt .sc-fmt-glyph i {
    border-width: 1.3px;
    border-radius: 2px;
}

.sc-acts-icones {
    display: flex;
    gap: 4px;
    flex-wrap: wrap;
    justify-content: flex-end;
}

.sc-v3 .sc-acts .ea-btn {
    position: relative;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    border: 1px solid rgba(255, 255, 255, .14);
    background: rgba(10, 10, 12, .64);
    color: #fff;
}

.sc-v3 .sc-acts .ea-btn svg {
    width: 15px;
    height: 15px;
}

.sc-v3 .sc-acts .ea-btn:hover {
    background: rgba(10, 10, 12, .78);
    color: #fff;
}

.sc-v3 .sc-acts .ea-delete:hover {
    background: #e83a3a;
    border-color: #e83a3a;
}

/* Dica em CSS puro (o grid pode ter centenas de itens) */
.sc-acts [data-tip]::after {
    content: attr(data-tip);
    position: absolute;
    top: calc(100% + 6px);
    right: 0;
    z-index: 3;
    padding: 5px 8px;
    border-radius: 7px;
    background: rgba(10, 10, 12, .9);
    color: #fff;
    font: 500 11px/1.2 "Golos Text", Inter, system-ui, sans-serif;
    white-space: nowrap;
    opacity: 0;
    transform: translateY(-3px);
    transition: opacity .12s, transform .12s;
    pointer-events: none;
}

.sc-acts [data-tip]:hover::after {
    opacity: 1;
    transform: none;
}

.sc-v3 .sc-acts .sc-act-pri,
.sc-v3 .sc-acts .sc-act-sec {
    width: auto;
    height: 34px;
    padding: 0 12px 0 10px;
    gap: 6px;
    border-radius: 11px;
    font: 600 12.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    white-space: nowrap;
}

.sc-v3 .sc-acts .sc-act-pri {
    background: #fff;
    color: #111;
    border-color: #fff;
}

.sc-v3 .sc-acts .sc-act-pri:hover {
    background: #fff;
    color: #111;
    transform: translateY(-1px);
}

.sc-v3 .sc-acts .ea-use .ea-use-lbl {
    display: inline;
    margin: 0;
}

.sc-v3 .sc-acts .sc-act-sec {
    min-width: 0;
    overflow: hidden;
}

.sc-v3 .sc-acts .sc-act-sec span {
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-v3 .estudio-badge-carrossel {
    top: 8px;
    bottom: auto;
    left: 8px;
    z-index: 6;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 24px;
    padding: 0 9px 0 7px;
    border-radius: 8px;
    background: rgba(10, 10, 12, .68);
    font: 600 11px/1 "Golos Text", Inter, system-ui, sans-serif;
    letter-spacing: 0;
}

.sc-v3 .estudio-badge-carrossel svg {
    width: 13px;
    height: 13px;
}

.sc-v3 .arte-item-carrossel .sc-acts-fmt {
    visibility: hidden;
}

.sc-v3 .estudio-carrossel-editar-btn svg {
    width: 16px;
    height: 16px;
}

/* Capa esperando aprovacao - selo sempre visivel, e o caminho de volta */
.sc-plano {
    position: absolute;
    left: 8px;
    top: 8px;
    z-index: 7;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 26px;
    padding: 0 10px 0 8px;
    border: 0;
    border-radius: 9px;
    background: #fff;
    color: #111;
    font: 600 11.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    box-shadow: 0 6px 18px -8px rgba(0, 0, 0, .5);
    cursor: pointer;
    transition: transform .2s var(--sc-ease);
}

.sc-plano svg {
    width: 14px;
    height: 14px;
}

.sc-plano:hover {
    transform: translateY(-1px);
}

.sc-v3 .arte-item[data-tem-plano] .sc-acts-fmt {
    visibility: hidden;
}

/* Carrossel gerando: faixa na tinta, nao no azul */
.sc-v3 .arte-item-gerando-overlay {
    background: linear-gradient(135deg, rgba(15, 15, 18, .22) 0%, rgba(15, 15, 18, .08) 50%, rgba(15, 15, 18, .22) 100%);
}

.sc-v3 .arte-item-gerando-overlay::after {
    background: linear-gradient(90deg, transparent 0%, rgba(255, 255, 255, .9) 50%, transparent 100%);
}

/* =============================================================================
   ESBOCO (#sce-modal, window.StudioEsboco) - kit .sce-*
   ============================================================================= */
.sce-modal {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    color: var(--color-text-01);
}

.sce-veu {
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, .6);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    opacity: 0;
    transition: opacity .2s;
}

.sce-box {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1080px;
    height: min(92vh, 820px);
    background: var(--sc-surface);
    border: 1px solid var(--sc-line);
    border-radius: 22px;
    box-shadow: 0 28px 70px -20px rgba(0, 0, 0, .45);
    overflow: hidden;
    opacity: 0;
    transform: translateY(10px) scale(.99);
    transition: opacity .22s var(--sc-ease), transform .3s var(--sc-ease);
}

.sce-modal.sce-on .sce-veu {
    opacity: 1;
}

.sce-modal.sce-on .sce-box {
    opacity: 1;
    transform: none;
}

.sce-cab {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 16px;
    border-bottom: 1px solid var(--sc-line);
}

.sce-cab-ico {
    flex: 0 0 32px;
    height: 32px;
    display: grid;
    place-items: center;
    border-radius: 10px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sce-cab-ico svg {
    width: 16px;
    height: 16px;
}

.sce-cab-txt {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.sce-cab-txt b {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.sce-cab-txt span {
    font-size: 12px;
    opacity: .6;
    line-height: 1.4;
}

.sce-fechar {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: inherit;
    opacity: .6;
    cursor: pointer;
}

.sce-fechar:hover {
    opacity: 1;
    background: var(--sc-hover);
}

.sce-fechar svg {
    width: 16px;
    height: 16px;
}

.sce-corpo {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr) 250px;
}

.sce-ferr {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 12px 8px;
    border-right: 1px solid var(--sc-line);
    overflow-y: auto;
    scrollbar-width: none;
}

.sce-f {
    display: grid;
    place-items: center;
    flex: 0 0 38px;
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .65;
    cursor: pointer;
    transition: opacity .15s, background-color .15s;
}

.sce-f svg {
    width: 18px;
    height: 18px;
}

.sce-f:hover {
    opacity: 1;
    background: var(--sc-hover);
}

.sce-f.atv {
    opacity: 1;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sce-f:disabled {
    opacity: .25;
    pointer-events: none;
}

.sce-sep {
    flex: 0 0 1px;
    width: 22px;
    height: 1px;
    background: var(--sc-line);
    margin: 6px 0;
}

.sce-cores {
    display: flex;
    flex-direction: column;
    gap: 6px;
    align-items: center;
}

.sce-cor {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid var(--sc-surface);
    background: var(--c);
    box-shadow: 0 0 0 1px var(--sc-line-forte);
    cursor: pointer;
    padding: 0;
    transition: transform .15s, box-shadow .15s;
}

.sce-cor:hover {
    transform: scale(1.1);
}

.sce-cor.atv {
    box-shadow: 0 0 0 2px var(--color-btn-bg-01);
}

.sce-esp {
    display: flex;
    justify-content: center;
    width: 38px;
    height: 84px;
    margin: 0;
}

.sce-esp input {
    width: 76px;
    transform: rotate(-90deg);
    transform-origin: center;
    margin-top: 38px;
    accent-color: var(--color-btn-bg-01);
}

.sce-palco {
    position: relative;
    min-width: 0;
    min-height: 0;
    display: grid;
    place-items: center;
    background:
        radial-gradient(circle, var(--sc-line) 1px, transparent 1.2px) 0 0 / 18px 18px,
        var(--sc-palco);
    overflow: hidden;
}

.sce-folha {
    position: relative;
    background: #fff;
    border-radius: 6px;
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 18px 40px -22px rgba(16, 24, 40, .45);
    overflow: hidden;
}

.sce-folha canvas {
    display: block;
    width: 100%;
    height: 100%;
    cursor: crosshair;
    touch-action: none;
}

.sce-seguro {
    position: absolute;
    inset: 8%;
    border: 1px dashed rgba(16, 24, 40, .16);
    border-radius: 4px;
    pointer-events: none;
}

.sce-modal.sce-vazio .sce-folha::after {
    content: "Desenhe aqui";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: rgba(16, 24, 40, .28);
    font-size: 13px;
    pointer-events: none;
}

.sce-lado {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
    border-left: 1px solid var(--sc-line);
    overflow-y: auto;
}

.sce-rot {
    font-size: 11.5px;
    font-weight: 600;
    opacity: .5;
    margin-top: 4px;
}

.sce-modelos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.sce-modelo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 9px 6px 8px;
    border-radius: 12px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    font: 550 11px/1.2 "Golos Text", Inter, system-ui, sans-serif;
    text-align: center;
    cursor: pointer;
    transition: background-color .15s, border-color .15s;
}

.sce-modelo:hover {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

.sce-modelo svg {
    width: 40px;
    height: 50px;
}

.sce-dica {
    font-size: 11.5px;
    line-height: 1.45;
    opacity: .55;
    margin: 0;
}

.sce-rod {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 16px;
    border-top: 1px solid var(--sc-line);
}

.sce-fmt {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12px;
    font-weight: 600;
    opacity: .6;
}

.sce-rod-acoes {
    display: flex;
    gap: 8px;
}

.editarPerfis .vsp-tema .sc-temas {
    max-width: 560px;
}

.editarPerfis .vsp-tema .sc-seg {
    max-width: 420px;
}

/* =============================================================================
   CAPA DE VIDEO COM IA (#cvi-modal) + escolha da origem (#cvc-modal) - .cvi-*
   ============================================================================= */
.cvi-modal {
    position: fixed;
    inset: 0;
    z-index: 10040;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    color: var(--color-text-01);
}

/* Mascara leve: quem vira nevoa e o proprio vidro da caixa (padrao dos dialogos). */
.cvi-veu {
    position: absolute;
    inset: 0;
    background: var(--glass-scrim);
    -webkit-backdrop-filter: var(--glass-scrim-filtro);
    backdrop-filter: var(--glass-scrim-filtro);
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

/* VIDRO NO ::before (regra de ouro): a caixa so escala (glass-folha); o vidro e os filhos
   fazem o fade. z-index 1 = contexto de empilhamento proprio, o ::before fica atras dos
   filhos e na frente da mascara. */
.cvi-box {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 880px;
    max-height: 92vh;
    border-radius: 24px;
    overflow: hidden;
    animation: glass-folha var(--glass-folha-dur) var(--glass-ease);
}

.cvi-box::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    pointer-events: none;
    background: var(--glass-fundo-forte);
    -webkit-backdrop-filter: var(--glass-filtro-forte);
    backdrop-filter: var(--glass-filtro-forte);
    border: 1px solid var(--glass-borda);
    box-shadow: var(--glass-brilho), var(--glass-sombra), 0 40px 90px -30px rgba(0, 0, 0, .28);
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.cvi-box>* {
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.cvi-cab {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 18px 14px;
    border-bottom: 1px solid var(--glass-borda);
}

.cvi-cab-ico {
    flex: 0 0 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.cvi-cab-ico svg {
    width: 16px;
    height: 16px;
}

.cvi-cab-txt {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cvi-cab-txt b {
    font-size: 15.5px;
    font-weight: 600;
    letter-spacing: -.012em;
}

.cvi-cab-txt span {
    font-size: 12.5px;
    opacity: .6;
    line-height: 1.4;
}

.cvi-saldo {
    font-size: 11.5px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--glass-realce);
    white-space: nowrap;
}

.cvi-saldo:empty {
    display: none;
}

.cvi-saldo b {
    font-weight: 600;
}

.cvi-fechar {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 999px;
    background: var(--glass-realce);
    color: inherit;
    opacity: .7;
    cursor: pointer;
    padding: 0;
    transition: opacity .15s, background .15s;
}

.cvi-fechar:hover {
    opacity: 1;
}

.cvi-fechar svg {
    width: 15px;
    height: 15px;
}

.cvi-corpo {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    overflow: hidden;
}

/* O palco e uma janela escura recuada dentro do vidro: a midia e o unico colorido. */
.cvi-palco {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 16px;
    background: #0d0d0f;
    min-height: 0;
}

.cvi-tela {
    position: relative;
    height: min(58vh, 540px);
    aspect-ratio: 9 / 16;
    max-width: 100%;
    border-radius: 14px;
    overflow: hidden;
    background: #000;
    box-shadow: 0 18px 40px -20px rgba(0, 0, 0, .8);
}

.cvi-tela video,
.cvi-tela img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cvi-tela [hidden] {
    display: none;
}

.cvi-carregando {
    position: absolute;
    inset: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    background: rgba(0, 0, 0, .62);
    color: #ddd;
    font-size: 12.5px;
}

.cvi-carregando[hidden] {
    display: none;
}

.cvi-barra {
    position: relative;
    width: 120px;
    height: 3px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .18);
    overflow: hidden;
}

.cvi-barra::after {
    content: "";
    position: absolute;
    inset: 0;
    width: 40%;
    border-radius: 999px;
    background: #fff;
    animation: eiaCorre 1.1s ease-in-out infinite;
}

.cvi-quadro {
    display: flex;
    align-items: center;
    gap: 10px;
    width: min(100%, 360px);
    color: #eee;
    font-size: 12px;
}

.cvi-quadro input {
    flex: 1 1 auto;
    accent-color: #fff;
}

.cvi-quadro.cvi-sem-video,
.cvi-quadro.cvi-oculto {
    visibility: hidden;
}

.cvi-tempo-rot {
    font-variant-numeric: tabular-nums;
    opacity: .7;
    min-width: 34px;
    text-align: right;
}

.cvi-form {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 16px 18px;
    overflow-y: auto;
}

.cvi-rot {
    font-size: 11.5px;
    font-weight: 600;
    opacity: .55;
    margin: 6px 0 0;
}

.cvi-rot em {
    font-style: normal;
    font-weight: 450;
    opacity: .8;
    margin-left: 4px;
}

.cvi-campo {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--glass-borda);
    border-radius: 12px;
    background: var(--pd2-campo, rgba(255, 255, 255, .5));
    color: var(--color-text-01);
    font: 450 13.5px/1.45 "Golos Text", Inter, system-ui, sans-serif;
    resize: vertical;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}

.cvi-campo::placeholder {
    color: var(--color-text-01);
    opacity: .38;
}

.cvi-campo:focus {
    border-color: var(--sc-line-forte);
    box-shadow: 0 0 0 3px var(--glass-realce);
}

.cvi-logo {
    margin-top: 8px;
}

.cvi-logo[hidden] {
    display: none;
}

.cvi-dica {
    font-size: 11.5px;
    line-height: 1.45;
    opacity: .55;
    margin: 6px 0 0;
}

.cvi-erro {
    display: block;
    font-size: 12px;
    color: #e83a3a;
}

.cvi-rod {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 18px 14px;
    border-top: 1px solid var(--glass-borda);
}

.cvi-rod-info {
    font-size: 11.5px;
    opacity: .55;
}

.cvi-rod-acoes {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

/* Escolha da origem da capa */
.cvc-box {
    max-width: 440px;
}

.cvc-lista {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 16px 16px;
}

.cvc-opc {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px;
    border-radius: 14px;
    border: 1px solid var(--sc-line);
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color .15s, border-color .15s, transform .2s var(--sc-ease);
}

.cvc-opc:hover {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

.cvc-ico {
    flex: 0 0 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: var(--sc-campo);
}

.cvc-ico svg {
    width: 18px;
    height: 18px;
}

.cvc-txt {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.cvc-txt b {
    font-size: 13.5px;
    font-weight: 600;
}

.cvc-txt span {
    font-size: 12px;
    line-height: 1.4;
    opacity: .6;
}

.cvc-destaque {
    border-color: var(--color-btn-bg-01);
}

.cvc-destaque .cvc-ico {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* Capa a partir de um quadro do video (#cvq-modal, window.CapaQuadro).
   Mesa escura do .cvi-palco; a tela assume a proporcao do video por --ar
   (setada no JS) e cabe no palco pelo lado que apertar primeiro - por isso
   o palco e container. `.cvq-modal .cvq-tela` (2 classes) vence o
   .cvi-tela do media.css, que fixa a altura. */
.cvq-box {
    max-width: 640px;
}

.cvq-palco {
    container-type: inline-size;
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    padding: 18px 18px 14px;
    background: #0f0f10;
    color: #eee;
}

.cvq-modal .cvq-tela {
    --ar: .5625;
    height: auto;
    width: min(100cqw, calc(min(52vh, 480px) * var(--ar)));
    aspect-ratio: var(--ar);
    flex: 0 0 auto;
}

.cvq-tela video {
    object-fit: contain;
}

.cvq-tela .cvq-v2 {
    position: absolute;
    inset: 0;
    opacity: 0;
    pointer-events: none;
}

.cvq-modal.cvq-sem-video .cvq-tela video,
.cvq-modal.cvq-sem-video .cvq-tira,
.cvq-modal.cvq-sem-video .cvq-ajuste {
    opacity: .3;
    pointer-events: none;
}

/* Tira de miniaturas + janela do quadro escolhido. --p (0..1) e a posicao;
   a janela anda em (100% - largura dela) para as pontas baterem no 1o e no
   ultimo quadro. */
.cvq-tira {
    --p: 0;
    --sel-w: 36px;
    position: relative;
    flex: 0 0 auto;
    width: min(100%, 560px);
    height: 52px;
    margin: 6px 0 0;
    cursor: pointer;
    touch-action: none;
    user-select: none;
    -webkit-user-select: none;
    outline: none;
}

.cvq-cels {
    position: absolute;
    inset: 0;
    display: flex;
    border-radius: 9px;
    overflow: hidden;
    background: #1c1c1f;
}

.cvq-cels canvas {
    flex: 1 1 0;
    min-width: 0;
    height: 100%;
    display: block;
    object-fit: cover;
    opacity: 0;
    transition: opacity .3s;
}

.cvq-cels canvas.on {
    opacity: .55;
}

.cvq-sel {
    position: absolute;
    top: -5px;
    bottom: -5px;
    left: calc(var(--p) * (100% - var(--sel-w)));
    width: var(--sel-w);
    border: 2px solid #fff;
    border-radius: 10px;
    overflow: hidden;
    background: #000;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .45), 0 8px 20px -6px rgba(0, 0, 0, .7);
    pointer-events: none;
}

.cvq-sel canvas {
    width: 100%;
    height: 100%;
    display: block;
}

.cvq-tira:focus-visible .cvq-sel {
    outline: 2px solid #fff;
    outline-offset: 2px;
}

.cvq-ajuste {
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 12px;
}

.cvq-passo {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: rgba(255, 255, 255, .08);
    color: #eee;
    cursor: pointer;
    transition: background-color .15s;
}

.cvq-passo:hover {
    background: rgba(255, 255, 255, .16);
}

.cvq-passo:disabled {
    opacity: .35;
    pointer-events: none;
}

.cvq-passo svg {
    width: 15px;
    height: 15px;
}

.cvq-tempo {
    min-width: 96px;
    text-align: center;
    font-variant-numeric: tabular-nums;
    color: rgba(255, 255, 255, .55);
}

.cvq-tempo b {
    font-weight: 600;
    color: #fff;
}

.cvq-msg {
    max-width: 420px;
    text-align: center;
}

.cvq-msg:empty {
    display: none;
}

/* "Gravar a capa atual no video" no popup de origem: e uma ACAO, nao mais
   uma origem de capa - fica separada da lista, com borda tracejada. */
.cvc-extra {
    padding: 0 16px 16px;
}

.cvc-extra .cvc-opc {
    width: 100%;
    border-style: dashed;
}

/* "Gravar a capa no 1o quadro do video" — o padrao, ligado; desligar fica lembrado */
.cvc-modal .cvc-gravar-sempre {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0 16px 14px;
    padding: 12px 14px;
    border: 1px solid var(--color-border-01, rgba(0, 0, 0, .1));
    border-radius: 14px;
    background: var(--color-hover-01, rgba(0, 0, 0, .03));
    cursor: pointer;
}

.cvc-modal .cvc-gravar-sempre .sc-switch-txt {
    display: grid;
    gap: 2px;
    font-size: 13px;
    line-height: 1.35;
}

.cvc-modal .cvc-gravar-sempre .sc-switch-txt b {
    font-weight: 600;
}

.cvc-modal .cvc-gravar-sempre .sc-switch-txt small {
    font-size: 12px;
    opacity: .66;
}

/* Gravar a capa no 1o quadro (#cnv-modal, window.CapaNoVideo) */
.cnv-box {
    max-width: 520px;
}

.cnv-corpo {
    flex: 1 1 auto;
    min-height: 0;
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 16px;
    overflow-y: auto;
}

.cnv-topo {
    display: flex;
    align-items: center;
    gap: 14px;
}

.cnv-capa {
    flex: 0 0 72px;
    height: 128px;
    border-radius: 12px;
    overflow: hidden;
    background: var(--sc-campo);
}

.cnv-capa img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cnv-porque {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.5;
    opacity: .75;
}

.cnv-opcoes {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cvc-opc.cnv-opc {
    width: 100%;
}

.cnv-opc .cvc-txt {
    flex: 1 1 auto;
}

.cnv-radio {
    flex: 0 0 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.5px solid var(--sc-line-forte);
    transition: border-width .15s, border-color .15s;
}

.cvc-opc.cnv-sel {
    border-color: var(--color-btn-bg-01);
}

.cnv-sel .cnv-radio {
    border: 5px solid var(--color-btn-bg-01);
}

.cnv-nota {
    margin: 0;
    font-size: 11.5px;
    line-height: 1.5;
    opacity: .6;
}

.cnv-carregando {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 0;
    font-size: 12.5px;
    opacity: .7;
}

.cnv-carregando .cvi-barra {
    background: var(--sc-line);
}

.cnv-carregando .cvi-barra::after {
    background: var(--color-text-01);
}

.cnv-bloqueio {
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--sc-campo);
    font-size: 13px;
    line-height: 1.5;
}

.cnv-escolher {
    align-self: flex-start;
    margin-top: 10px;
}

/* Capa escolhida ANTES do upload (#vp-capa-acao, window.VideoPreview) */
.vp-capa-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 32px;
    margin-top: var(--vp-gap-s);
    padding: 0 12px;
    color: var(--color-text-01);
}

.vp-capa-btn svg {
    width: 14px;
    height: 14px;
}

.vp-capa-escolhida {
    display: flex;
    align-items: center;
    gap: 10px;
}

.vp-capa-gravar {
    margin-top: 10px;
}

.vp-capa-gravar.vp-capa-off {
    opacity: .5;
    cursor: default;
}

.vp-capa-sub {
    margin-top: 4px;
}

/* A capa por cima do video no palco: mesma caixa e mesmo encaixe do <video>
   (cover; contain no modo Inteiro), abaixo das zonas e do mockup. Nao pega
   clique - o toque no video continua sendo do play/pause. */
.vp-midia .vp-capa-sobre {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    background: #000;
    pointer-events: none;
}

.vp-midia .vp-capa-sobre.vp-inteiro {
    object-fit: contain;
}

.vp-midia .vp-capa-sobre[hidden] {
    display: none;
}

/* =============================================================================
   ABA VISUAL - "Padroes do Studio Criativo" (.vsp-*, escopo .editarPerfis)
   ============================================================================= */
.editarPerfis .vsp-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 14px;
}

.editarPerfis .vsp-item {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px;
    border-radius: 14px;
    border: 1px solid var(--color-border);
    min-width: 0;
}

.editarPerfis .vsp-largo {
    grid-column: 1 / -1;
}

.editarPerfis .vsp-rot {
    font-size: 12px;
    font-weight: 600;
    opacity: .6;
}

.editarPerfis .vsp-rot-2 {
    margin-top: 6px;
}

.editarPerfis .vsp .sc-fmt-grid {
    grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
}

.editarPerfis .vsp .sc-fmts .sc-grupo-rot {
    margin-top: 8px;
}

.editarPerfis .vsp .sc-comp-grid {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
}

.editarPerfis .vsp-textarea {
    width: 100%;
    min-height: 76px;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: transparent;
    color: var(--color-text-01);
    font: 450 13.5px/1.5 "Golos Text", Inter, system-ui, sans-serif;
    resize: vertical;
    outline: none;
}

.editarPerfis .vsp-textarea:focus {
    border-color: var(--sc-line-forte);
}

.editarPerfis .vsp-dica,
.editarPerfis .vsp-vazio {
    font-size: 12px;
    line-height: 1.45;
    opacity: .55;
}

/* Atalho "Ajustar padroes da marca" na faixa de identidade do Studio */
.sc-padroes-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 10px 0 8px;
    border-radius: 9px;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-text-01);
    font: 550 12px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
    transition: background-color .15s, border-color .15s;
}

.sc-padroes-link svg {
    width: 14px;
    height: 14px;
    opacity: .7;
}

.sc-padroes-link:hover {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

/* =============================================================================
   STUDIO v3 - barra de criacao NO FLUXO (sticky) + recolher
   -----------------------------------------------------------------------------
   Antes a barra era position:fixed com um deslocamento magico
   (left: calc(50% - 220px)) calibrado para uma largura de menu; em qualquer
   outra largura ela saia 36-91px a direita do centro do Studio. Agora ela e o
   ultimo filho da coluna flex do Studio e gruda no rodape do scroller
   (#htmlSessaoAtual > .centraliza ou o corpo do modal): o centro e o da AREA
   do Studio, em qualquer resolucao, com ou sem menu, pagina ou modal.
   ============================================================================= */
.chatgpt-image-layout.sc-v3 .floating-input-wrapper,
.estudio-conteudo-modal-body .chatgpt-image-layout.sc-v3 .floating-input-wrapper {
    position: sticky;
    bottom: 18px;
    left: auto;
    right: auto;
    align-self: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: min(700px, calc(100% - 32px));
    max-width: none;
    margin: auto auto 0;
    padding: 0;
    z-index: 9;
    pointer-events: none;
}

.chatgpt-image-layout.sc-v3 .floating-input-wrapper>* {
    pointer-events: auto;
}

.chatgpt-image-layout.sc-v3 .input-bar.sc-bar {
    width: 100%;
    max-width: none;
}

/* A barra ocupa o proprio espaco no fluxo: a reserva antiga (--estudio-input-h)
   so sobra como respiro. */
.chatgpt-image-layout.sc-v3 .estudio-resultado {
    padding-bottom: 18px;
}

.estudio-conteudo-modal-body .chatgpt-image-layout.sc-v3 {
    height: auto;
    min-height: 100%;
}

/* ---------- recolher ---------- */
.sc-recolher {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 30px;
    margin-left: 2px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .55;
    cursor: pointer;
    transition: opacity .15s, background-color .15s;
}

.sc-recolher svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.sc-recolher:hover {
    opacity: 1;
    background: var(--sc-hover);
}

.sc-recolhida .floating-input-wrapper .input-bar.sc-bar {
    display: none;
}

/* ---------- pilula recolhida: resumo da geracao montada ---------- */
.sc-mini {
    display: flex;
    align-items: center;
    gap: 8px;
    width: 100%;
    box-sizing: border-box;
    padding: 6px;
    border: 1px solid var(--sc-line);
    border-radius: 18px;
    background: var(--sc-bar);
    box-shadow: var(--sc-sombra-barra);
    backdrop-filter: blur(18px) saturate(1.4);
    -webkit-backdrop-filter: blur(18px) saturate(1.4);
    color: var(--color-text-01);
    font: 500 13px/1.25 "Golos Text", Inter, system-ui, sans-serif;
    animation: sc-mini-in .28s var(--sc-ease);
    transition: border-color .15s;
}

.sc-mini[hidden] {
    display: none;
}

.sc-mini:hover {
    border-color: var(--sc-line-forte);
}

.sc-mini-alerta {
    border-color: var(--color-btn-bg-01);
}

.sc-mini-abrir {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
    padding: 0 4px 0 0;
    border: 0;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
}

/* miniatura: capa do carrossel ou o formato desenhado */
.sc-mini-thumb {
    position: relative;
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    background: var(--sc-campo);
    overflow: hidden;
}

.sc-mini-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sc-mini-thumb em {
    position: absolute;
    right: 3px;
    bottom: 3px;
    min-width: 15px;
    height: 15px;
    padding: 0 4px;
    border-radius: 8px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01, #fff);
    font: 600 10px/15px "Golos Text", Inter, system-ui, sans-serif;
    font-style: normal;
    text-align: center;
}

.sc-mini-spin {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid var(--sc-line-forte);
    border-top-color: var(--color-text-01);
    animation: sc-mini-giro .8s linear infinite;
}

.sc-mini-txt {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
    flex: 1 1 auto;
}

.sc-mini-tit {
    font-weight: 600;
    font-size: 13.5px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-mini-tit.vazio {
    font-weight: 500;
    opacity: .55;
}

.sc-mini-chips {
    display: flex;
    gap: 4px;
    min-width: 0;
    overflow: hidden;
    mask-image: linear-gradient(90deg, #000 88%, transparent);
    -webkit-mask-image: linear-gradient(90deg, #000 88%, transparent);
}

.sc-mini-chip {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 20px;
    padding: 0 7px;
    border-radius: 6px;
    background: var(--sc-hover);
    font-size: 11.5px;
    white-space: nowrap;
    opacity: .85;
}

.sc-mini-chip>svg {
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
}

.sc-mini-chip .sc-tema-glyph {
    transform: scale(.72);
    margin: 0 -3px;
}

.sc-mini-chip-alerta {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01, #fff);
    opacity: 1;
    font-weight: 600;
}

.sc-mini-chip-gerando {
    opacity: 1;
}

.sc-mini-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    animation: sc-mini-pulso 1.2s ease-in-out infinite;
}

.sc-mini-logo {
    display: inline-grid;
    place-items: center;
    width: 14px;
    height: 14px;
}

.sc-mini-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

/* acao: mesmo "Gerar" da barra, compacto */
.sc-mini-gerar {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 36px;
    padding: 0 12px 0 14px;
    border: 0;
    border-radius: 12px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01, #fff);
    font: 600 13px/1 "Golos Text", Inter, system-ui, sans-serif;
    white-space: nowrap;
    cursor: pointer;
    transition: opacity .15s, transform .15s var(--sc-ease);
}

.sc-mini-gerar[hidden] {
    display: none;
}

.sc-mini-gerar:hover {
    transform: translateY(-1px);
}

.sc-mini-gerar:disabled {
    opacity: .45;
    cursor: default;
    transform: none;
}

.sc-mini-gerar em {
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: rgba(255, 255, 255, .22);
    font: 600 11px/18px "Golos Text", Inter, system-ui, sans-serif;
    font-style: normal;
    text-align: center;
}

.sc-mini-gerar svg {
    width: 15px;
    height: 15px;
}

.sc-mini-chev {
    flex: 0 0 auto;
    display: inline-grid;
    place-items: center;
    width: 30px;
    height: 36px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: inherit;
    opacity: .55;
    cursor: pointer;
}

.sc-mini-chev:hover {
    opacity: 1;
    background: var(--sc-hover);
}

.sc-mini-chev svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform: rotate(180deg);
}

@keyframes sc-mini-giro {
    to {
        transform: rotate(360deg);
    }
}

@keyframes sc-mini-pulso {
    50% {
        opacity: .3;
    }
}

@keyframes sc-mini-in {
    from {
        opacity: 0;
        transform: translateY(8px) scale(.96);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* =============================================================================
   POPUP DE CONTEUDO - "Criar a capa com IA" na miniatura do video
   (mesma familia do .btn-alterar-capa: aparece no hover; toque = sempre)
   ============================================================================= */
.midia-item .bt.btn-capa-ia-item {
    position: absolute;
    left: 5px;
    top: 34px;
    display: flex;
    align-items: center;
    width: auto;
    gap: 6px;
    padding: 3px 9px !important;
    white-space: nowrap;
    color: #fff;
    cursor: pointer;
    z-index: 2;
}

.midia-item .bt.btn-capa-ia-item .bt-label {
    font-size: 12px;
    line-height: 1;
}

.midia-item .bt.btn-capa-ia-item svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* =============================================================================
   PROGRAMA DE AFILIADOS - central do usuario (#edit-popup-big > .afc)
   Menu da conta > "Indique e ganhe" / "Painel de afiliado". Modulo em
   window.AirpostAfiliado (footer.php).

   Dois registros na mesma tela, de proposito:
   - o HERO e o cartao do cupom sao o "momento site" (sitev2/css/style.css):
     fundo #080a14, aura indigo/ciano SEM filter: blur (so radial-gradient),
     grade mascarada, texto em gradiente de marca. Fixos - escuros nos dois
     temas, como as .dark-section do site;
   - o resto (passos, simulador, KPIs, listas) segue o chrome do app:
     tokens --color-*, hierarquia por peso/opacidade, estado ativo na tinta.
     Cor fora do hero so como acento (--afc-acento, com parcimonia) e status.
   Responsivo no media.css; acento e status do tema escuro no dark.css.
   ============================================================================= */
#edit-popup-big .boxpop:has(.afc) {
    overflow: hidden;
    border: 0;
}

#edit-popup-big .boxpop:has(.afc) .btn-close {
    z-index: 6;
}

#edit-popup-big .boxpop:has(.afc) .btn-close line {
    stroke: rgba(255, 255, 255, .72);
}

.afc {
    --afc-d-bg: #080a14;
    --afc-d-muted: #9aa3bd;
    --afc-acento: #2563eb;
    --afc-ease: cubic-bezier(.16, 1, .3, 1);
    --afc-t2: color-mix(in srgb, var(--color-text-01) 68%, transparent);
    --afc-t3: color-mix(in srgb, var(--color-text-01) 50%, transparent);
    position: relative;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    color: var(--color-text-01);
    letter-spacing: -.01em;
    border-radius: 21px;
    overflow: hidden;
    background: var(--color-bg);
}

.afc *,
.afc *::before,
.afc *::after {
    box-sizing: border-box;
}

/* :where() = especificidade zero: o reset nao pode vencer as margens das
   classes do kit (.afc-sub, .afc-sim-nota...), que vem com uma classe so. */
:where(.afc) :where(h1, h2, h3, p, ul) {
    margin: 0;
}

/* ---------- hero (escuro, estilo do site) ---------- */
.afc-hero,
.afc-dhd,
.afc-fim {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    background: var(--afc-d-bg);
    color: #f4f6fb;
}

.afc-hero {
    padding: 78px 56px 48px;
    text-align: center;
}

.afc-hero-mini {
    padding: 60px 48px 40px;
}

.afc-aura {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(640px 420px at 50% -120px, rgba(99, 102, 241, .5), transparent 70%),
        radial-gradient(460px 360px at 100% 110%, rgba(34, 211, 238, .22), transparent 70%),
        radial-gradient(380px 300px at 0% 100%, rgba(37, 99, 235, .18), transparent 70%);
}

.afc-grade {
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image:
        linear-gradient(to right, rgba(255, 255, 255, .05) 1px, transparent 1px),
        linear-gradient(to bottom, rgba(255, 255, 255, .05) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: radial-gradient(ellipse 70% 65% at 50% 30%, #000, transparent 78%);
    mask-image: radial-gradient(ellipse 70% 65% at 50% 30%, #000, transparent 78%);
}

.afc-hero-in {
    position: relative;
    z-index: 1;
    max-width: 780px;
    margin: 0 auto;
}

.afc-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    padding: 6px 13px 6px 11px;
    border: 1px solid rgba(138, 180, 255, .24);
    border-radius: 999px;
    background: rgba(138, 180, 255, .08);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #8ab4ff;
}

.afc-eyebrow i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: linear-gradient(115deg, #2563eb, #6366f1);
    box-shadow: 0 0 0 4px rgba(99, 102, 241, .25);
}

.afc-hero h1,
.afc-dhd h1 {
    margin-top: 22px;
    font-size: clamp(34px, 5vw, 60px);
    font-weight: 500;
    letter-spacing: -.035em;
    line-height: 1.02;
    color: #fff;
}

.afc .afc-h1-sm {
    font-size: clamp(28px, 3.6vw, 40px);
}

.afc-grad,
.afc-sim-mes {
    background: linear-gradient(110deg, #8ab4ff 0%, #a5b4fc 42%, #67e8f9 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent;
}

.afc-sub {
    max-width: 610px;
    margin: 20px auto 0;
    font-size: 16.5px;
    line-height: 1.6;
    color: var(--afc-d-muted);
}

.afc-sub b {
    color: #fff;
    font-weight: 550;
}

.afc-ctas {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-top: 32px;
}

.afc-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    max-width: 720px;
    margin: 44px auto 0;
}

.afc-stats>div {
    padding: 18px 18px 17px;
    border: 1px solid rgba(255, 255, 255, .09);
    border-radius: 16px;
    background: rgba(255, 255, 255, .04);
    text-align: left;
}

.afc-stats b {
    display: block;
    font-size: 28px;
    font-weight: 550;
    letter-spacing: -.03em;
    line-height: 1.1;
    color: #fff;
}

.afc-stats span {
    display: block;
    margin-top: 6px;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--afc-d-muted);
}

.afc-status {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    max-width: 560px;
    margin: 28px auto 0;
    padding: 14px 16px;
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 14px;
    background: rgba(255, 255, 255, .06);
    text-align: left;
}

.afc-status b {
    display: block;
    font-size: 14px;
    font-weight: 550;
    color: #fff;
}

.afc-status span {
    display: block;
    margin-top: 3px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--afc-d-muted);
}

.afc-status-ico svg {
    display: block;
    width: 20px;
    height: 20px;
    color: #8ab4ff;
}

.afc-status-rec {
    border-color: rgba(251, 191, 36, .3);
    background: rgba(251, 191, 36, .07);
}

.afc-load-bar {
    max-width: 460px;
    height: 34px;
    margin: 22px auto 0;
    border-radius: 12px;
    background: linear-gradient(90deg, rgba(255, 255, 255, .05), rgba(255, 255, 255, .13), rgba(255, 255, 255, .05));
    background-size: 200% 100%;
    animation: afc-brilho 1.2s linear infinite;
}

.afc-load-bar.curta {
    max-width: 300px;
    height: 16px;
    margin-top: 14px;
}

@keyframes afc-brilho {
    to {
        background-position: -200% 0;
    }
}

/* ---------- botoes ---------- */
.afc-bt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    height: 46px;
    padding: 0 22px;
    border: 1px solid transparent;
    border-radius: 13px;
    font-family: inherit;
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: -.01em;
    white-space: nowrap;
    cursor: pointer;
    transition: transform .24s var(--afc-ease), box-shadow .24s var(--afc-ease), background .24s, opacity .2s;
}

.afc-bt svg {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.afc-bt-luz {
    background: #fff;
    color: #0b1020;
    box-shadow: 0 14px 34px -16px rgba(99, 102, 241, .85);
}

.afc-bt-luz:hover {
    transform: translateY(-1px);
    box-shadow: 0 20px 44px -16px rgba(99, 102, 241, .95);
}

.afc-bt-vidro {
    border-color: rgba(255, 255, 255, .16);
    background: rgba(255, 255, 255, .06);
    color: #fff;
}

.afc-bt-vidro:hover {
    background: rgba(255, 255, 255, .12);
}

.afc-bt-pri {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.afc-bt-pri:hover {
    transform: translateY(-1px);
}

.afc-bt-sec {
    border-color: var(--color-border);
    background: transparent;
    color: var(--color-text-01);
}

.afc-bt-sec:hover {
    background: var(--color-hover-01);
}

.afc-bt-sm {
    height: 36px;
    padding: 0 14px;
    border-radius: 11px;
    font-size: 13px;
}

.afc-bt[disabled],
.afc-bt.carregando {
    opacity: .55;
    cursor: default;
    transform: none;
}

/* ---------- secoes do convite ---------- */
.afc-sec {
    padding: 60px 56px 0;
}

.afc-sec-hd {
    max-width: 620px;
    margin: 0 auto 28px;
    text-align: center;
}

.afc-kicker {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--afc-acento);
}

.afc-sec-hd h2 {
    margin-top: 10px;
    font-size: clamp(24px, 3vw, 34px);
    font-weight: 500;
    letter-spacing: -.03em;
    line-height: 1.12;
}

.afc-passos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}

.afc-passo {
    position: relative;
    padding: 24px 22px 22px;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    background: var(--color-bg);
    transition: transform .24s var(--afc-ease), box-shadow .24s var(--afc-ease);
}

.afc-passo:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
}

.afc-passo-n {
    position: absolute;
    top: 16px;
    right: 20px;
    font-size: 44px;
    font-weight: 500;
    letter-spacing: -.04em;
    line-height: 1;
    color: color-mix(in srgb, var(--color-text-01) 9%, transparent);
}

.afc-passo-ico {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: linear-gradient(135deg, rgba(37, 99, 235, .12), rgba(124, 58, 237, .12));
    color: var(--afc-acento);
}

.afc-passo-ico svg {
    width: 21px;
    height: 21px;
}

.afc-passo h3 {
    margin-top: 18px;
    font-size: 16px;
    font-weight: 550;
    letter-spacing: -.02em;
}

.afc-passo p {
    margin-top: 6px;
    font-size: 13.5px;
    line-height: 1.6;
    color: var(--afc-t2);
}

.afc-passo p b {
    color: var(--color-text-01);
    font-weight: 550;
}

/* simulador */
.afc-sim {
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    border: 1px solid var(--color-border);
    border-radius: 22px;
    overflow: hidden;
    background: var(--color-bg);
}

.afc-sim-ctl {
    padding: 30px;
}

.afc-rot {
    display: block;
    margin-bottom: 10px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--afc-t3);
}

.afc-rot em {
    margin-left: 4px;
    font-style: normal;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
}

.afc-sim-qtd {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 26px;
}

.afc-sim-range {
    flex: 1;
    height: 6px;
    margin: 0;
    border-radius: 99px;
    background: linear-gradient(to right, var(--color-btn-bg-01) var(--afc-p, 9%), var(--color-bg-01) var(--afc-p, 9%));
    -webkit-appearance: none;
    appearance: none;
    outline: none;
    cursor: pointer;
}

.afc-sim-range::-webkit-slider-thumb {
    width: 22px;
    height: 22px;
    border: 2px solid var(--color-btn-bg-01);
    border-radius: 50%;
    background: var(--color-bg);
    box-shadow: 0 4px 12px -4px rgba(0, 0, 0, .35);
    -webkit-appearance: none;
    appearance: none;
    cursor: grab;
}

.afc-sim-range::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border: 2px solid var(--color-btn-bg-01);
    border-radius: 50%;
    background: var(--color-bg);
    cursor: grab;
}

.afc-sim-n {
    min-width: 56px;
    font-size: 28px;
    font-weight: 550;
    letter-spacing: -.03em;
    text-align: center;
    font-variant-numeric: tabular-nums;
}

.afc-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.afc-pill {
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 13px;
    cursor: pointer;
    transition: background .2s, border-color .2s, color .2s;
}

.afc-pill:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 32%, transparent);
}

.afc-pill.atv {
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-weight: 550;
}

.afc-sim-res {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 30px 32px;
    background: var(--afc-d-bg);
    color: #fff;
}

.afc-sim-res::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background:
        radial-gradient(420px 260px at 100% 0%, rgba(99, 102, 241, .45), transparent 70%),
        radial-gradient(300px 220px at 0% 100%, rgba(34, 211, 238, .18), transparent 70%);
}

.afc-sim-res .afc-rot {
    color: var(--afc-d-muted);
}

.afc-sim-valor {
    display: flex;
    align-items: baseline;
    gap: 6px;
}

.afc-sim-mes {
    font-size: clamp(38px, 4.6vw, 54px);
    font-weight: 550;
    letter-spacing: -.04em;
    line-height: 1.05;
    font-variant-numeric: tabular-nums;
}

.afc-sim-valor span {
    font-size: 16px;
    color: var(--afc-d-muted);
}

.afc-sim-ano {
    margin-top: 12px;
    font-size: 14px;
    color: var(--afc-d-muted);
}

.afc-sim-ano b {
    color: #fff;
    font-weight: 550;
}

.afc-sim-nota {
    margin-top: 18px;
    font-size: 12px;
    line-height: 1.55;
    color: rgba(255, 255, 255, .45);
}

/* para quem e */
.afc-perfis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

.afc-perfil {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 20px;
    border-radius: 16px;
    background: var(--color-bg-01);
}

.afc-perfil svg {
    width: 22px;
    height: 22px;
    margin-bottom: 6px;
    color: var(--afc-acento);
}

.afc-perfil b {
    font-size: 14.5px;
    font-weight: 550;
}

.afc-perfil span {
    font-size: 13px;
    line-height: 1.55;
    color: var(--afc-t2);
}

/* regras */
.afc-sec-regras {
    padding-top: 44px;
}

.afc-regras {
    padding: 0 20px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
}

.afc-regras summary {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 56px;
    font-size: 14.5px;
    font-weight: 550;
    list-style: none;
    cursor: pointer;
}

.afc-regras summary::-webkit-details-marker {
    display: none;
}

.afc-regras summary::after {
    content: "+";
    margin-left: auto;
    font-size: 20px;
    font-weight: 400;
    color: var(--afc-t3);
}

.afc-regras[open] summary::after {
    content: "–";
}

.afc-regras summary svg {
    width: 18px;
    height: 18px;
    color: var(--afc-t3);
}

.afc-regras ul {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin: 0 0 18px;
    padding-left: 18px;
    font-size: 13.5px;
    line-height: 1.55;
    color: var(--afc-t2);
}

.afc-fim {
    margin: 48px 56px 56px;
    padding: 48px 30px;
    border-radius: 22px;
    text-align: center;
}

.afc-fim-in {
    position: relative;
    z-index: 1;
}

.afc-fim h2 {
    font-size: 30px;
    font-weight: 500;
    letter-spacing: -.03em;
    color: #fff;
}

.afc-fim p {
    margin: 8px 0 24px;
    color: var(--afc-d-muted);
}

/* ---------- formulario ---------- */
.afc-form {
    display: flex;
    flex-direction: column;
    gap: 20px;
    max-width: 660px;
    margin: 0 auto;
    padding: 38px 32px 46px;
}

.afc-campo {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.afc-dupla {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
}

.afc-i {
    width: 100%;
    height: 44px;
    padding: 0 14px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg);
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 14px;
    transition: border-color .2s, box-shadow .2s;
}

textarea.afc-i {
    height: auto;
    min-height: 84px;
    padding: 11px 14px;
    line-height: 1.5;
    resize: vertical;
}

.afc-i:focus {
    border-color: color-mix(in srgb, var(--color-text-01) 35%, transparent);
    box-shadow: 0 0 0 3px var(--color-hover-01);
    outline: 0;
}

.afc-aceite {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 13.5px;
    line-height: 1.45;
    cursor: pointer;
}

.afc-aceite input {
    flex: 0 0 auto;
    margin-top: 1px;
}

.afc-aceite-linha {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px 16px;
    flex-wrap: wrap;
}

/* "Ver regras" ao lado do aceite: pilula com contorno, na tinta ao abrir */
.afc-ver-regras {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 34px;
    padding: 0 14px 0 12px;
    border: 1px solid var(--color-border);
    border-radius: 999px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 13px;
    font-weight: 550;
    white-space: nowrap;
    cursor: pointer;
    transition: background .2s, border-color .2s, color .2s;
}

.afc-ver-regras svg {
    width: 15px;
    height: 15px;
}

.afc-ver-regras:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 32%, transparent);
}

.afc-ver-regras.aberto {
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.afc-regras-box {
    margin-top: -6px;
    padding: 16px 18px;
    border-radius: 14px;
    background: var(--color-bg-01);
}

.afc-f-erro {
    display: none;
    padding: 10px 12px;
    border-radius: 10px;
    background: rgba(232, 58, 58, .08);
    color: #e83a3a;
    font-size: 13px;
}

.afc-f-acoes {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
}

/* ---------- painel do afiliado ---------- */
.afc-dhd {
    padding: 50px 48px 42px;
}

.afc-dhd-in {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 420px);
    align-items: center;
    gap: 36px;
}

.afc-dhd .afc-sub,
.afc-dhd .afc-status {
    margin-left: 0;
}

.afc-dhd h1 {
    margin-top: 18px;
}

.afc-cupons {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.afc-cupom {
    position: relative;
    padding: 22px 22px 20px;
    border-radius: 20px;
    background: linear-gradient(135deg, rgba(255, 255, 255, .10), rgba(255, 255, 255, .03));
}

/* borda em gradiente (mascara), a "assinatura" visual do cupom */
.afc-cupom::before {
    content: "";
    position: absolute;
    inset: 0;
    padding: 1px;
    border-radius: inherit;
    background: linear-gradient(120deg, rgba(138, 180, 255, .85), rgba(165, 180, 252, .18), rgba(103, 232, 249, .75));
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    pointer-events: none;
}

.afc-cupom.off {
    opacity: .62;
}

.afc-cupom-rot {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: #8ab4ff;
}

.afc-cupom-rot svg {
    width: 15px;
    height: 15px;
}

.afc-cupom-cod {
    margin-top: 10px;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 34px;
    font-weight: 600;
    letter-spacing: .05em;
    line-height: 1.1;
    color: #fff;
    word-break: break-all;
}

.afc-cupom-desc {
    margin-top: 8px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--afc-d-muted);
}

.afc-cupom-desc b {
    color: #fff;
    font-weight: 550;
}

.afc-cupom-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.afc-kpis {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin: 24px 32px 0;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    overflow: hidden;
}

.afc-kpi {
    min-width: 0;
    padding: 18px 20px;
    border-left: 1px solid var(--color-border);
}

.afc-kpi:first-child {
    border-left: 0;
}

.afc-kpi.dest {
    background: var(--color-bg-01);
}

.afc-kpi-rot {
    display: block;
    font-size: 12px;
    font-weight: 550;
    color: var(--afc-t3);
}

.afc-kpi b {
    display: block;
    margin-top: 8px;
    font-size: 26px;
    font-weight: 550;
    letter-spacing: -.03em;
    line-height: 1.1;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.afc-kpi-sub {
    display: block;
    margin-top: 6px;
    font-size: 12px;
    line-height: 1.4;
    color: var(--afc-t3);
}

.afc-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 14px 32px 0;
}

.afc-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 32px;
}

.afc-span2 {
    grid-column: span 2;
}

.afc-card {
    min-width: 0;
    padding: 18px 20px;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    background: var(--color-bg);
}

.afc-card-hd {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 14px;
}

.afc-card-hd h3 {
    font-size: 14.5px;
    font-weight: 550;
    letter-spacing: -.02em;
}

.afc-card-hd span {
    font-size: 12px;
    color: var(--afc-t3);
}

.afc-barras {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 6px;
    height: 196px;
}

.afc-barra {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    min-width: 0;
    height: 100%;
}

.afc-barra-v {
    min-height: 13px;
    font-size: 10.5px;
    font-weight: 550;
    color: var(--afc-t2);
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.afc-barra-col {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    flex: 1;
    width: 100%;
    border-bottom: 1px solid var(--color-border);
}

.afc-barra-col i {
    display: block;
    width: 100%;
    max-width: 26px;
    border-radius: 6px 6px 2px 2px;
    background: color-mix(in srgb, var(--color-text-01) 20%, transparent);
    transition: background .2s;
}

.afc-barra:hover .afc-barra-col i {
    background: color-mix(in srgb, var(--color-text-01) 45%, transparent);
}

.afc-barra.atual .afc-barra-col i {
    background: var(--color-btn-bg-01);
}

.afc-barra-m {
    font-size: 10.5px;
    color: var(--afc-t3);
    white-space: nowrap;
}

.afc-lista {
    display: flex;
    flex-direction: column;
}

.afc-li {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 10px 0;
    border-bottom: 1px solid var(--color-border);
}

.afc-li:last-child {
    border-bottom: 0;
}

.afc-li-nm {
    flex: 1;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 550;
}

.afc-li-nm small {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    font-weight: 400;
    color: var(--afc-t3);
}

.afc-li-v {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 4px;
    font-size: 13.5px;
    font-weight: 550;
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.afc-tag {
    display: inline-flex;
    align-items: center;
    height: 20px;
    padding: 0 8px;
    border-radius: 99px;
    background: var(--color-bg-01);
    color: var(--afc-t2);
    font-size: 11px;
    font-weight: 550;
    white-space: nowrap;
}

.afc-tag.ok {
    background: rgba(22, 163, 74, .12);
    color: #15803d;
}

.afc-comps {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 6px;
}

.afc-comps a {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 190px;
    padding: 3px 8px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    color: var(--afc-t2);
    font-size: 11.5px;
    font-weight: 400;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.afc-comps a:hover {
    color: var(--color-text-01);
}

.afc-comps svg {
    flex: 0 0 auto;
    width: 12px;
    height: 12px;
}

.afc-tabela-wrap {
    overflow-x: auto;
}

.afc-tabela {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.afc-tabela th {
    padding: 0 8px 8px;
    border-bottom: 1px solid var(--color-border);
    color: var(--afc-t3);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .04em;
    text-align: left;
    text-transform: uppercase;
    white-space: nowrap;
}

.afc-tabela td {
    padding: 10px 8px;
    border-bottom: 1px solid var(--color-border);
    vertical-align: middle;
}

.afc-tabela tr:last-child td {
    border-bottom: 0;
}

.afc-tabela td small {
    display: block;
    margin-top: 1px;
    color: var(--afc-t3);
    font-size: 11.5px;
}

.afc-tabela .num {
    text-align: right;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.afc-tabela b {
    font-weight: 550;
}

.afc-vazio {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 28px 12px;
    color: var(--afc-t3);
    font-size: 13px;
    line-height: 1.5;
    text-align: center;
}

.afc-vazio svg {
    width: 26px;
    height: 26px;
}

.afc-regras-lista {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 0;
    list-style: none;
}

.afc-regras-lista li {
    display: flex;
    gap: 10px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--afc-t2);
}

.afc-regras-lista svg {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    color: var(--afc-acento);
}

.afc-receb {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* aviso flutuante (fica no .boxpop, fora do .afc: sem as vars dele) */
.afc-aviso {
    position: fixed;
    left: 50%;
    bottom: 28px;
    z-index: 7;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 16px;
    border-radius: 12px;
    background: #0b1020;
    color: #fff;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    font-size: 13.5px;
    box-shadow: 0 18px 40px -18px rgba(0, 0, 0, .6);
    transform: translateX(-50%);
    transition: opacity .3s, transform .3s;
}

.afc-aviso svg {
    width: 16px;
    height: 16px;
    color: #4ade80;
}

.afc-aviso.sai {
    opacity: 0;
    transform: translate(-50%, 8px);
}

/* =====================================================================
   LINKEDIN - "ENTRAR COM OUTRA CONTA" NO POPUP DE ESCOLHA
   ---------------------------------------------------------------------
   Segundo link do rodape de acoes, abaixo do "Buscar de novo". Mesmo
   desenho do vizinho (texto discreto, sublinhado so no hover): as duas
   sao saidas secundarias - a acao principal do popup e escolher a conta.
   ===================================================================== */
.edicao-popup.li-escolher .li-escolher-acoes {
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
}

.edicao-popup.li-escolher .btn-li-outro-login {
    font-size: 12.5px;
    font-weight: 600;
    color: var(--ap-muted);
    cursor: pointer;
    padding: 2px 0;
    border-bottom: 1px solid transparent;
    transition: color .12s ease, border-color .12s ease;
}

.edicao-popup.li-escolher .btn-li-outro-login:hover {
    color: var(--color-text-01);
    border-bottom-color: var(--ap-faint);
}

/* =============================================================================
   EDITAR COM IA v4 - editor de arte (#eia-modal, window.EditarIA)
   -----------------------------------------------------------------------------
   A arte e o centro. O palco ocupa a janela a esquerda e as ferramentas
   FLUTUAM por cima dele em vidro (.eia-vidro): seletor de versoes no topo a
   esquerda, antes/depois e baixar no topo a direita, ferramentas no rodape
   central, zoom no rodape a direita. O briefing mora numa coluna a direita que
   termina no botao de gerar. Sem rodape de janela e sem tira de versoes fixa:
   cada pixel vertical e do palco.

   Superficie propria (--eia-surface) pelo mesmo motivo do --uc-surface: no
   tema escuro a --color-bg vira preto puro e a janela flutuante perderia a
   borda contra o overlay. O escuro sai do dark.css (so tokens).

   Monocromatico: ativo/selecionado = tinta (--color-btn-bg-01); dentro de um
   controle segmentado, o ativo e a superficie com sombra de 1px (kit do site).
   Cor so como DADO (as cores do desenho) ou por cima da foto (rotulos do
   antes/depois). Responsivo no media.css.
   ============================================================================= */
:root {
    --eia-surface: #fff;
    --eia-palco: #eef0f3;
    --eia-ponto: rgba(16, 24, 40, .1);
    --eia-vidro: rgba(255, 255, 255, .84);
    --eia-vidro-borda: rgba(16, 24, 40, .08);
    --eia-linha: rgba(16, 24, 40, .09);
    --eia-linha-forte: rgba(16, 24, 40, .22);
    --eia-campo: #f4f5f7;
    --eia-hover: rgba(16, 24, 40, .05);
    --eia-sombra-fl: 0 1px 2px rgba(16, 24, 40, .06), 0 12px 32px -14px rgba(16, 24, 40, .32);
    --eia-sombra-arte: 0 1px 3px rgba(16, 24, 40, .1), 0 30px 70px -30px rgba(16, 24, 40, .5);
    --eia-raio: 22px;
    --eia-ease: cubic-bezier(.16, 1, .3, 1);
}

.eia-modal {
    position: fixed;
    inset: 0;
    z-index: 10010;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    color: var(--color-text-01);
}

.eia-modal *,
.eia-modal *::before,
.eia-modal *::after {
    box-sizing: border-box;
}

/* Varios elementos do kit tem display proprio (flex/grid) e o atributo
   hidden sozinho perderia para eles. */
.eia-modal [hidden] {
    display: none !important;
}

.eia-modal button {
    font-family: inherit;
    line-height: 1.2;
    -webkit-tap-highlight-color: transparent;
}

.eia-modal button:focus {
    outline: none;
}

.eia-modal button:focus-visible,
.eia-modal .eia-ver:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 2px;
}

.eia-overlay {
    position: absolute;
    inset: 0;
    background: rgba(10, 10, 12, .58);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    cursor: pointer;
    animation: eiaFade .24s ease;
}

.eia-box {
    position: relative;
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 1320px;
    height: min(900px, calc(100vh - 48px));
    background: var(--eia-surface);
    border: 1px solid var(--eia-linha);
    border-radius: var(--eia-raio);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 44px 100px -34px rgba(0, 0, 0, .6);
    overflow: hidden;
    animation: eiaEntra .34s var(--eia-ease);
}

@keyframes eiaEntra {
    from {
        opacity: 0;
        transform: translateY(10px) scale(.985);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

@keyframes eiaFade {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes eiaGira {
    to {
        transform: rotate(360deg);
    }
}

/* ---- Cabecalho ---- */
.eia-hdr {
    display: flex;
    align-items: center;
    gap: 12px;
    height: 62px;
    padding: 0 14px 0 18px;
    border-bottom: 1px solid var(--eia-linha);
    flex: 0 0 auto;
}

.eia-hdr-ico {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    flex: 0 0 auto;
}

.eia-hdr-txt {
    min-width: 0;
    flex: 1 1 auto;
}

.eia-hdr-tit {
    font-size: 15px;
    font-weight: 550;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.eia-hdr-sub {
    font-size: 12.5px;
    line-height: 1.35;
    opacity: .55;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.eia-hdr-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.eia-saldo {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 34px;
    padding: 0 13px;
    border-radius: 100px;
    background: var(--eia-campo);
    font-size: 12.5px;
    white-space: nowrap;
}

.eia-saldo b {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.eia-saldo span {
    opacity: .6;
}

.eia-x {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    padding: 0;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .55;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.eia-x:hover {
    opacity: 1;
    background: var(--eia-hover);
}

/* ---- Botoes ---- */
.eia-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 36px;
    padding: 0 15px;
    border: 1px solid transparent;
    border-radius: 12px;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -.005em;
    white-space: nowrap;
    cursor: pointer;
    transition: transform .24s var(--eia-ease), box-shadow .24s var(--eia-ease), background .15s, opacity .15s;
}

.eia-btn:disabled {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.eia-btn-usar {
    background: var(--eia-surface);
    color: var(--color-text-01);
    border-color: var(--color-btn-bg-01);
}

.eia-btn-usar:hover:not(:disabled) {
    background: var(--eia-hover);
}

.eia-btn-ok {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.eia-btn-ok:hover:not(:disabled) {
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

/* ---- Corpo: palco + briefing ---- */
.eia-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 376px;
    flex: 1 1 auto;
    min-height: 0;
}

/* ---- Palco ---- */
.eia-palco {
    position: relative;
    min-width: 0;
    min-height: 0;
    overflow: hidden;
    background-color: var(--eia-palco);
    background-image: radial-gradient(var(--eia-ponto) 1px, transparent 1.4px);
    background-size: 20px 20px;
    background-position: 10px 10px;
}

/* Quem rola quando a arte esta ampliada. A barra de rolagem some: move-se
   arrastando, com a roda ou pelo trackpad, como em qualquer editor. */
.eia-canvas {
    position: absolute;
    inset: 0;
    overflow: auto;
    scrollbar-width: none;
}

.eia-canvas::-webkit-scrollbar {
    display: none;
}

/* width:max-content + min-width:100% centraliza a arte quando ela cabe e
   deixa o conteudo crescer (e rolar inteiro, sem corte a esquerda) quando
   ampliada. O padding reserva o espaco dos controles flutuantes: no zoom
   "ajustar" a arte nunca fica por baixo deles. */
.eia-canvas-in {
    display: flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    min-width: 100%;
    min-height: 100%;
    padding: 72px 36px 96px;
}

.eia-canvas.eia-zoomado {
    cursor: grab;
}

.eia-canvas.eia-arrastando {
    cursor: grabbing;
}

/* O wrapper tem exatamente o tamanho da arte (o <img> recebe largura e altura
   em px do JS): e o que faz as camadas da mascara e do desenho cobrirem a
   arte pixel a pixel, em qualquer zoom. */
.eia-stage-img {
    position: relative;
    flex: 0 0 auto;
    line-height: 0;
    border-radius: 4px;
    box-shadow: var(--eia-sombra-arte);
}

#eia-img {
    display: block;
    max-width: none;
    max-height: none;
    border-radius: 4px;
    user-select: none;
    -webkit-user-drag: none;
}

.eia-palco.eia-img-carregando::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 22px;
    height: 22px;
    margin: -11px 0 0 -11px;
    border-radius: 50%;
    border: 2px solid var(--color-text-01);
    border-right-color: transparent;
    opacity: .35;
    animation: eiaGira .8s linear infinite;
}

.eia-mask,
.eia-anno {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border-radius: 4px;
    touch-action: none;
    pointer-events: none;
}

/* difference + traco branco = inversao da arte por baixo. Marca visivel em
   arte clara E em arte escura, sem escolher cor nenhuma (a interface e
   monocromatica e um acento aqui mentiria sobre o resultado). */
.eia-mask {
    mix-blend-mode: difference;
}

/* O circulo do pincel (.eia-cursor) substitui o ponteiro; no retangulo, cruz. */
#eia-modal.eia-marcando .eia-mask {
    pointer-events: auto;
    cursor: none;
}

#eia-modal.eia-marcando.eia-ferr-ret .eia-mask {
    cursor: crosshair;
}

#eia-modal.eia-anotando .eia-anno {
    pointer-events: auto;
    cursor: crosshair;
}

#eia-modal.eia-anotando .eia-mask {
    opacity: .5;
}

/* Na adaptacao de formato a mascara e os desenhos nao vao para a IA */
#eia-modal.eia-adaptando .eia-mask,
#eia-modal.eia-adaptando .eia-anno {
    opacity: .15;
}

#eia-modal.eia-comparando .eia-mask,
#eia-modal.eia-comparando .eia-anno {
    visibility: hidden;
}

.eia-cursor {
    position: fixed;
    z-index: 5;
    left: 0;
    top: 0;
    border-radius: 50%;
    border: 1.5px solid #fff;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .45), inset 0 0 0 1px rgba(0, 0, 0, .25);
    transform: translate(-50%, -50%);
    pointer-events: none;
}

/* ---- Antes e depois ---- */
.eia-cmp {
    --pos: 50%;
    position: absolute;
    inset: 0;
    z-index: 2;
    border-radius: 4px;
    overflow: hidden;
    cursor: ew-resize;
    touch-action: none;
    user-select: none;
}

.eia-cmp img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: var(--eia-palco);
    clip-path: inset(0 calc(100% - var(--pos)) 0 0);
}

.eia-cmp-lin {
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--pos);
    width: 2px;
    margin-left: -1px;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .12), 0 0 14px rgba(0, 0, 0, .25);
}

.eia-cmp-lin i {
    position: absolute;
    top: 50%;
    left: 50%;
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: #111;
    transform: translate(-50%, -50%);
    box-shadow: 0 6px 18px -4px rgba(0, 0, 0, .45);
}

.eia-cmp-rot {
    position: absolute;
    top: 12px;
    padding: 5px 10px;
    border-radius: 100px;
    background: rgba(0, 0, 0, .52);
    color: #fff;
    font-style: normal;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.2;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    pointer-events: none;
}

.eia-cmp-a {
    left: 12px;
}

.eia-cmp-b {
    right: 12px;
}

/* ---- Gerando: a arte de partida fica embacada sob um brilho que varre ---- */
.eia-stage-load {
    position: absolute;
    inset: 0;
    z-index: 4;
    display: grid;
    place-items: center;
    border-radius: 4px;
    overflow: hidden;
    line-height: 1.3;
    background: rgba(255, 255, 255, .28);
    backdrop-filter: blur(8px) saturate(.9);
    -webkit-backdrop-filter: blur(8px) saturate(.9);
}

.eia-stage-load::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: linear-gradient(100deg, transparent 30%, rgba(255, 255, 255, .5) 50%, transparent 70%);
    background-size: 250% 100%;
    animation: eiaVarre 1.8s ease-in-out infinite;
}

@keyframes eiaVarre {
    0% {
        background-position: 150% 0;
    }

    100% {
        background-position: -50% 0;
    }
}

.eia-stage-load-card {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 11px 18px;
    border-radius: 100px;
    background: var(--eia-vidro);
    border: 1px solid var(--eia-vidro-borda);
    box-shadow: var(--eia-sombra-fl);
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
}

.eia-spin {
    display: inline-block;
    width: 15px;
    height: 15px;
    border-radius: 50%;
    border: 2px solid currentColor;
    border-right-color: transparent;
    animation: eiaGira .75s linear infinite;
    flex: 0 0 auto;
}

/* ---- Controles flutuantes ---- */
.eia-fl {
    position: absolute;
    z-index: 5;
    display: flex;
    align-items: center;
    gap: 8px;
    pointer-events: none;
}

.eia-fl>* {
    pointer-events: auto;
}

.eia-fl-tl {
    top: 14px;
    left: 14px;
}

.eia-fl-tr {
    top: 14px;
    right: 14px;
}

.eia-fl-bc {
    left: 0;
    right: 0;
    bottom: 16px;
    justify-content: center;
}

.eia-fl-br {
    right: 14px;
    bottom: 16px;
}

.eia-vidro {
    background: var(--eia-vidro);
    border: 1px solid var(--eia-vidro-borda);
    box-shadow: var(--eia-sombra-fl);
    backdrop-filter: blur(16px) saturate(1.5);
    -webkit-backdrop-filter: blur(16px) saturate(1.5);
}

/* Seletor de versoes: < [miniatura] Versao 2 . 2/3 v > */
.eia-nav {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 44px;
    padding: 5px;
    border-radius: 15px;
}

.eia-nav-seta {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .7;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.eia-nav-seta:hover:not(:disabled) {
    opacity: 1;
    background: var(--eia-hover);
}

.eia-nav-seta:disabled {
    opacity: .22;
    cursor: default;
}

.eia-nav-atual {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    height: 32px;
    padding: 0 8px 0 3px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
    transition: background .15s;
}

.eia-nav-atual:hover,
.eia-nav-atual.atv {
    background: var(--eia-hover);
}

.eia-nav-thumb {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    border-radius: 7px;
    overflow: hidden;
    background: var(--eia-campo);
    box-shadow: inset 0 0 0 1px var(--eia-linha);
    flex: 0 0 auto;
}

.eia-nav-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.eia-nav-thumb .eia-spin {
    width: 12px;
    height: 12px;
    border-width: 1.5px;
    opacity: .6;
}

.eia-nav-rot {
    font-size: 13px;
    font-weight: 550;
    letter-spacing: -.01em;
    white-space: nowrap;
}

.eia-nav-n {
    font-size: 12px;
    opacity: .45;
    font-variant-numeric: tabular-nums;
}

.eia-nav-n:empty {
    display: none;
}

.eia-nav-chev {
    opacity: .45;
    transition: transform .2s var(--eia-ease);
}

.eia-nav-atual.atv .eia-nav-chev {
    transform: rotate(180deg);
}

/* Versao pronta que nao virou a ativa (lote de varias): ponto de tinta */
.eia-nav.eia-nav-novo .eia-nav-atual::after {
    content: '';
    position: absolute;
    top: 1px;
    left: 24px;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    box-shadow: 0 0 0 2px var(--eia-surface);
}

/* Historico de versoes */
.eia-ver-pop {
    position: absolute;
    z-index: 6;
    top: 66px;
    left: 14px;
    display: flex;
    flex-direction: column;
    width: 320px;
    max-height: calc(100% - 150px);
    border-radius: 16px;
    background: var(--eia-surface);
    border: 1px solid var(--eia-linha);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 24px 56px -24px rgba(16, 24, 40, .45);
    overflow: hidden;
    transform-origin: top left;
    animation: eiaPop .22s var(--eia-ease);
}

@keyframes eiaPop {
    from {
        opacity: 0;
        transform: translateY(-4px) scale(.98);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

.eia-ver-pop-hdr {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    padding: 14px 16px 10px;
}

.eia-ver-pop-hdr b {
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.eia-ver-pop-hdr span {
    font-size: 11.5px;
    opacity: .5;
}

.eia-versoes {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1 auto;
    min-height: 0;
    padding: 0 8px 8px;
    overflow-y: auto;
}

.eia-ver {
    position: relative;
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr) auto;
    align-items: center;
    gap: 11px;
    padding: 7px 8px;
    border-radius: 12px;
    cursor: pointer;
    transition: background .15s;
}

.eia-ver:hover {
    background: var(--eia-hover);
}

.eia-ver.atv {
    background: var(--eia-campo);
    box-shadow: inset 0 0 0 1.5px var(--color-btn-bg-01);
}

.eia-ver-orig {
    margin-top: 7px;
}

.eia-ver-orig::before {
    content: '';
    position: absolute;
    top: -5px;
    left: 8px;
    right: 8px;
    height: 1px;
    background: var(--eia-linha);
}

.eia-ver-thumb {
    display: grid;
    place-items: center;
    width: 46px;
    height: 56px;
    border-radius: 8px;
    overflow: hidden;
    background: var(--eia-palco);
    box-shadow: inset 0 0 0 1px var(--eia-linha);
}

.eia-ver-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.eia-ver-shimmer {
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, var(--sk-base) 25%, var(--sk-glow) 50%, var(--sk-base) 75%);
    background-size: 200% 100%;
    animation: eiaShimmer 1.3s linear infinite;
}

@keyframes eiaShimmer {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.eia-ver-falhou {
    opacity: .4;
}

.eia-ver-info {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.eia-ver-tit {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    font-size: 13px;
    line-height: 1.25;
}

.eia-ver-tit b {
    font-weight: 600;
    white-space: nowrap;
}

.eia-ver-tit time {
    margin-left: auto;
    font-size: 11px;
    opacity: .45;
    white-space: nowrap;
}

.eia-ver-selo {
    padding: 1px 7px;
    border-radius: 100px;
    background: var(--eia-hover);
    font-size: 10.5px;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
}

.eia-ver-desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 12px;
    line-height: 1.4;
    opacity: .6;
}

.eia-ver-reusar {
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    opacity: 0;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.eia-ver:hover .eia-ver-reusar,
.eia-ver-reusar:focus-visible {
    opacity: .6;
}

.eia-ver .eia-ver-reusar:hover {
    opacity: 1;
    background: var(--eia-surface);
    box-shadow: 0 0 0 1px var(--eia-linha);
}

.eia-ver-vazio {
    margin: 0 4px 8px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--eia-campo);
    font-size: 12.5px;
    line-height: 1.45;
}

.eia-ver-vazio b {
    font-weight: 600;
}

/* Antes/depois e baixar */
.eia-flbtn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 44px;
    padding: 0 16px;
    border-radius: 15px;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s, color .15s, opacity .15s;
}

.eia-flbtn:hover:not(:disabled) {
    background: var(--eia-surface);
}

.eia-flbtn.atv,
.eia-flbtn.atv:hover {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.eia-flbtn:disabled {
    opacity: .45;
    cursor: default;
}

.eia-flbtn-ico {
    width: 44px;
    padding: 0;
    justify-content: center;
}

/* Dica da ferramenta ativa, no topo central */
.eia-dica {
    position: absolute;
    z-index: 5;
    top: 14px;
    left: 50%;
    max-width: min(440px, calc(100% - 540px));
    padding: 10px 16px;
    border-radius: 14px;
    font-size: 12.5px;
    line-height: 1.4;
    text-align: center;
    transform: translateX(-50%);
    pointer-events: none;
    animation: eiaFade .2s ease;
}

/* Ferramentas: as opcoes da ativa entram na MESMA barra, a direita, em vez
   de empilhar outra barra para cima da arte. */
.eia-dock {
    display: flex;
    align-items: center;
    gap: 4px;
    max-width: calc(100% - 28px);
    padding: 5px;
    border-radius: 16px;
}

.eia-dock-main {
    display: flex;
    align-items: center;
    gap: 2px;
}

.eia-dk {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 38px;
    padding: 0 14px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 500;
    white-space: nowrap;
    cursor: pointer;
    transition: background .15s, color .15s;
}

.eia-dk svg {
    flex: 0 0 auto;
    opacity: .8;
}

.eia-dk:hover {
    background: var(--eia-hover);
}

.eia-dk.atv {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.eia-dk.atv svg {
    opacity: 1;
}

/* Com uma ferramenta aberta, as outras viram so icone e a barra cabe junto
   com as opcoes dela. */
#eia-modal.eia-marcando .eia-dk:not(.atv),
#eia-modal.eia-anotando .eia-dk:not(.atv) {
    padding: 0 11px;
}

#eia-modal.eia-marcando .eia-dk:not(.atv) span,
#eia-modal.eia-anotando .eia-dk:not(.atv) span {
    display: none;
}

#eia-modal.eia-adaptando .eia-dock-main {
    opacity: .4;
    pointer-events: none;
}

.eia-subbar {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: 4px;
    padding-left: 9px;
    border-left: 1px solid var(--eia-linha);
}

.eia-sub-ferr {
    display: inline-flex;
    gap: 2px;
    padding: 2px;
    border-radius: 10px;
    background: var(--eia-hover);
}

.eia-sf {
    display: grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .65;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.eia-sf:hover {
    opacity: 1;
}

.eia-subbar>.eia-sf:hover {
    background: var(--eia-hover);
}

.eia-sub-ferr .eia-sf {
    width: 30px;
    height: 30px;
    border-radius: 8px;
}

.eia-sub-ferr .eia-sf.atv {
    opacity: 1;
    background: var(--eia-surface);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .12), 0 0 0 1px var(--eia-linha);
}

.eia-sub-sep {
    width: 1px;
    height: 20px;
    background: var(--eia-linha);
}

.eia-brush-size {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    cursor: pointer;
}

.eia-brush-dot {
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
}

.eia-brush-dot::before {
    content: '';
    width: var(--d, 9px);
    height: var(--d, 9px);
    border-radius: 50%;
    background: var(--color-text-01);
    opacity: .7;
}

.eia-brush-size input[type="range"] {
    width: 92px;
    margin: 0;
    accent-color: var(--color-btn-bg-01);
    cursor: pointer;
}

.eia-anno-cores {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 0 2px;
}

.eia-acor {
    width: 20px;
    height: 20px;
    padding: 0;
    border-radius: 50%;
    border: 2px solid var(--eia-surface);
    background: var(--c);
    box-shadow: 0 0 0 1px var(--eia-linha-forte);
    cursor: pointer;
    transition: transform .15s var(--eia-ease);
}

.eia-acor:hover {
    transform: scale(1.1);
}

.eia-acor.atv {
    box-shadow: 0 0 0 2px var(--color-btn-bg-01);
}

/* Zoom */
.eia-zoom {
    display: flex;
    align-items: center;
    gap: 2px;
    height: 44px;
    padding: 5px;
    border-radius: 15px;
}

.eia-zoom button {
    display: grid;
    place-items: center;
    min-width: 32px;
    height: 32px;
    padding: 0 6px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
    opacity: .75;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.eia-zoom button:hover {
    opacity: 1;
    background: var(--eia-hover);
}

#eia-zoom-rot {
    min-width: 52px;
}

/* ---- Briefing ---- */
.eia-lado {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
    border-left: 1px solid var(--eia-linha);
    background: var(--eia-surface);
}

.eia-lado-rolo {
    display: flex;
    flex-direction: column;
    gap: 24px;
    flex: 1 1 auto;
    min-height: 0;
    padding: 20px 20px 14px;
    overflow-y: auto;
    scrollbar-width: thin;
}

/* A coluna rola e e flex: sem isto os filhos ENCOLHEM em vez de rolar. */
.eia-lado-rolo>* {
    flex-shrink: 0;
}

.eia-sec-tit {
    display: flex;
    align-items: baseline;
    gap: 8px;
    margin: 0 0 10px;
    font-size: 13.5px;
    font-weight: 550;
    letter-spacing: -.01em;
    line-height: 1.3;
}

.eia-sec-tit em {
    margin-left: auto;
    font-style: normal;
    font-size: 12px;
    font-weight: 500;
    opacity: .5;
}

/* Campo do pedido, no estilo de um compositor: o que vai junto (area,
   desenho, ajustes, referencias) aparece dentro dele. */
.eia-comp {
    border: 1px solid var(--eia-linha);
    border-radius: 16px;
    background: var(--eia-campo);
    transition: border-color .15s, background .15s, box-shadow .2s;
}

.eia-comp:focus-within {
    background: var(--eia-surface);
    border-color: var(--eia-linha-forte);
    box-shadow: 0 0 0 4px var(--eia-hover);
}

.eia-comp.eia-comp-drop {
    border-style: dashed;
    border-color: var(--color-btn-bg-01);
    background: var(--eia-surface);
}

.eia-ctx {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 10px 10px 0;
}

.eia-ctxp {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 26px;
    padding: 0 4px 0 9px;
    border-radius: 100px;
    background: var(--eia-surface);
    box-shadow: 0 0 0 1px var(--eia-linha);
    font-size: 12px;
    font-weight: 500;
    line-height: 1;
    white-space: nowrap;
}

.eia-ctxp svg {
    flex: 0 0 auto;
    opacity: .7;
}

.eia-ctxp-info {
    padding: 0 6px 0 3px;
    background: transparent;
    box-shadow: none;
    opacity: .6;
}

.eia-ctxp-x {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--color-text-01);
    opacity: .45;
    cursor: pointer;
}

.eia-ctxp-x:hover {
    opacity: 1;
    background: var(--eia-hover);
}

#eia-ajustes {
    display: block;
    width: 100%;
    min-height: 96px;
    max-height: 260px;
    margin: 0;
    padding: 12px 14px 6px;
    border: 0;
    outline: 0;
    background: transparent;
    box-shadow: none;
    color: var(--color-text-01);
    font: 400 14px/1.5 "Golos Text", Inter, system-ui, sans-serif;
    resize: vertical;
}

#eia-ajustes::placeholder {
    color: var(--color-text-01);
    opacity: .4;
}

.eia-anexos {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 2px 12px 4px;
}

.eia-anexos:empty {
    display: none;
}

.eia-anexo {
    position: relative;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: inset 0 0 0 1px var(--eia-linha);
}

.eia-anexo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.eia-anexo .rm {
    position: absolute;
    top: 3px;
    right: 3px;
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, .7);
    color: #fff;
    opacity: 0;
    cursor: pointer;
    transition: opacity .15s;
}

.eia-anexo:hover .rm,
.eia-anexo .rm:focus-visible {
    opacity: 1;
}

.eia-comp-rod {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 8px 8px;
}

.eia-comp-bt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 500;
    opacity: .65;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.eia-comp-bt:hover {
    opacity: 1;
    background: var(--eia-hover);
}

.eia-kbd {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    margin-left: auto;
    font-size: 11.5px;
    opacity: .45;
    white-space: nowrap;
}

.eia-kbd kbd {
    display: inline-grid;
    place-items: center;
    min-width: 20px;
    height: 20px;
    padding: 0 5px;
    border-radius: 6px;
    background: var(--eia-surface);
    color: inherit;
    box-shadow: 0 0 0 1px var(--eia-linha), 0 1px 0 var(--eia-linha);
    font-family: inherit;
    font-size: 11px;
    font-weight: 500;
    line-height: 1;
}

/* Comecos de pedido: somem assim que a pessoa comeca a escrever */
.eia-sug {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 10px;
}

.eia-sec-pedido.eia-comp-cheio .eia-sug {
    display: none;
}

.eia-sug-it {
    height: 28px;
    padding: 0 11px;
    border: 1px dashed var(--eia-linha-forte);
    border-radius: 100px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 500;
    opacity: .7;
    cursor: pointer;
    transition: opacity .15s, background .15s, border-color .15s;
}

.eia-sug-it:hover {
    opacity: 1;
    border-style: solid;
    background: var(--eia-hover);
}

/* Ajustes rapidos: abas (controle segmentado) + chips */
.eia-tabs {
    display: flex;
    gap: 2px;
    padding: 3px;
    border-radius: 12px;
    background: var(--eia-campo);
}

.eia-tab {
    position: relative;
    flex: 1 1 0;
    min-width: 0;
    height: 30px;
    padding: 0 6px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 500;
    white-space: nowrap;
    opacity: .6;
    cursor: pointer;
    transition: opacity .15s, background .15s, box-shadow .15s;
}

.eia-tab:hover {
    opacity: 1;
}

.eia-tab.atv {
    opacity: 1;
    background: var(--eia-surface);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 0 0 1px var(--eia-linha);
}

/* Ponto na aba que tem ajuste escolhido (a escolha nao some ao trocar de aba) */
.eia-tab i {
    display: none;
    width: 5px;
    height: 5px;
    margin: 0 0 0 5px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    vertical-align: 2px;
}

.eia-tab.eia-tab-sel i {
    display: inline-block;
}

.eia-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 12px;
}

.eia-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 34px;
    padding: 0 14px;
    border: 1px solid var(--eia-linha);
    border-radius: 100px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}

.eia-chip:hover {
    background: var(--eia-hover);
    border-color: var(--eia-linha-forte);
}

.eia-chip-ok {
    display: none;
}

.eia-chip.atv,
.eia-chip.atv:hover {
    padding-left: 11px;
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.eia-chip.atv .eia-chip-ok {
    display: block;
}

/* Acordeoes: trocar o texto e adaptar formato */
.eia-sec-acc {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.eia-acc {
    border: 1px solid var(--eia-linha);
    border-radius: 16px;
    overflow: hidden;
    transition: border-color .15s;
}

.eia-acc.atv {
    border-color: var(--eia-linha-forte);
}

.eia-acc-cab {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
    padding: 12px 14px 12px 12px;
    border: 0;
    background: transparent;
    color: var(--color-text-01);
    text-align: left;
    cursor: pointer;
    transition: background .15s;
}

.eia-acc-cab:hover {
    background: var(--eia-hover);
}

.eia-acc-ico {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--eia-campo);
    flex: 0 0 auto;
}

.eia-acc-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1 auto;
    min-width: 0;
}

.eia-acc-txt b {
    font-size: 13.5px;
    font-weight: 550;
    letter-spacing: -.01em;
}

.eia-acc-txt span {
    font-size: 12px;
    line-height: 1.35;
    opacity: .55;
}

.eia-acc-cab em {
    font-style: normal;
    font-size: 12px;
    font-weight: 600;
    opacity: .6;
    white-space: nowrap;
}

.eia-acc-chev {
    flex: 0 0 auto;
    opacity: .45;
    transition: transform .2s var(--eia-ease);
}

.eia-acc.atv .eia-acc-chev {
    transform: rotate(180deg);
}

.eia-acc-corpo {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 2px 14px 14px;
}

.eia-acc-dica {
    margin: 0;
    font-size: 12px;
    line-height: 1.45;
    opacity: .55;
}

.eia-textarea {
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid var(--eia-linha);
    border-radius: 12px;
    background: var(--eia-campo);
    color: var(--color-text-01);
    font: 400 13.5px/1.45 "Golos Text", Inter, system-ui, sans-serif;
    outline: 0;
    resize: vertical;
    transition: border-color .15s, background .15s;
}

.eia-textarea:focus {
    background: var(--eia-surface);
    border-color: var(--eia-linha-forte);
}

.eia-fmt-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}

.eia-aviso {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 12px 14px;
    border-radius: 14px;
    background: var(--eia-campo);
    font-size: 12.5px;
    line-height: 1.45;
}

.eia-aviso svg {
    flex: 0 0 auto;
    margin-top: 1px;
    opacity: .7;
}

.eia-aviso b {
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

/* ---- Rodape do briefing: mensagem + versoes por pedido + gerar ---- */
.eia-lado-rod {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 0 0 auto;
    padding: 14px 20px 20px;
    border-top: 1px solid var(--eia-linha);
    background: var(--eia-surface);
}

.eia-acoes-msg {
    font-size: 12.5px;
    line-height: 1.4;
}

.eia-acoes-msg:empty {
    display: none;
}

.eia-msg-erro,
.eia-msg-ok {
    display: flex;
    align-items: flex-start;
    gap: 7px;
}

.eia-msg-erro svg,
.eia-msg-ok svg {
    flex: 0 0 auto;
    margin-top: 1px;
}

.eia-msg-erro {
    color: var(--ac-perigo);
}

.eia-msg-ok {
    font-weight: 500;
}

.eia-gerar-linha {
    display: flex;
    gap: 8px;
}

.eia-qtd {
    display: flex;
    gap: 2px;
    flex: 0 0 auto;
    padding: 3px;
    border-radius: 14px;
    background: var(--eia-campo);
}

.eia-qtd button {
    width: 34px;
    padding: 0;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    opacity: .5;
    cursor: pointer;
    transition: opacity .15s, background .15s, box-shadow .15s;
}

.eia-qtd button:hover:not(:disabled) {
    opacity: 1;
}

.eia-qtd button.atv {
    opacity: 1;
    background: var(--eia-surface);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 0 0 1px var(--eia-linha);
}

.eia-qtd button:disabled {
    opacity: .2;
    cursor: not-allowed;
}

#eia-gerar {
    flex: 1 1 auto;
    min-width: 0;
    gap: 10px;
    height: 50px;
    border-radius: 14px;
    font-size: 14.5px;
}

/* Rotulo em cima, custo embaixo: "Gerar 3 versoes" + "3 creditos" lado a
   lado nao cabem ao lado do seletor de quantidade. */
.eia-gerar-txt {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
    line-height: 1.1;
}

.eia-gerar-rot {
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
}

#eia-gerar .eia-custo {
    font-style: normal;
    font-size: 11.5px;
    font-weight: 500;
    opacity: .6;
}

#eia-gerar .eia-spin {
    display: none;
}

#eia-gerar.eia-carregando .eia-spin {
    display: inline-block;
}

#eia-gerar.eia-carregando .eia-gerar-ico,
#eia-gerar.eia-carregando .eia-custo {
    display: none;
}

/* =============================================================================
   STUDIO - estilos visuais, layout da arte, modelos prontos e tela de marcas
   -----------------------------------------------------------------------------
   O popover "Estilo da arte" era uma lista unica de ~30 opcoes (tema, objetivo,
   composicao, texto). Virou tres abas, cada uma respondendo a UMA pergunta
   (como a arte parece / o que aparece / para que serve), com os estilos em
   miniaturas pintadas com a cor da marca (studioMiniArte - cor = dado).
   Layout ganhou pilula propria e os Modelos, um botao no topo da barra.
   Monocromatico: ativo = tinta (--color-btn-bg-01).
   ============================================================================= */

/* ---- Botao "Modelos" no topo da barra ---- */
.sc-modelos-bt+.sc-prefill {
    margin-left: 0;
}

.sc-modelos-bt .lbl {
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-modelos-bt.sc-modelo-on {
    border-color: var(--color-btn-bg-01);
    padding-right: 5px;
}

.sc-modelo-x {
    display: inline-grid;
    place-items: center;
    width: 20px;
    height: 20px;
    margin-left: 2px;
    border-radius: 50%;
    opacity: .5;
    transition: opacity .15s, background-color .15s;
}

.sc-modelo-x:hover {
    opacity: 1;
    background: var(--sc-hover);
}

.sc-modelos-bt .sc-modelo-x svg {
    width: 12px;
    height: 12px;
}

/* ---- Pilulas: miniatura do estilo e wireframe do layout ---- */
.sc-pill-est {
    display: inline-block;
    width: 16px;
    height: 20px;
    border-radius: 4px;
    overflow: hidden;
    flex: 0 0 auto;
    box-shadow: 0 0 0 1px var(--sc-line);
}

.sc-pill-est .sc-mini-arte {
    display: block;
    width: 100%;
    height: 100%;
}

.sc-pill-fio {
    display: inline-grid;
    place-items: center;
    width: 16px;
    height: 20px;
    flex: 0 0 auto;
}

.sc-pill-fio svg {
    width: 14px;
    height: 18px;
    opacity: .75;
}

.sc-pill[hidden] {
    display: none;
}

/* ---- Tamanhos dos popovers novos ---- */
.scp.scp-estilo {
    width: 500px;
}

.scp.scp-estiloVisual {
    width: 580px;
}

/* Fundo (Automatico / Claro / Escuro) e a escolha mais usada do popover:
   cartoes maiores e um bloco proprio no topo, separado do resto. */
.scp-estilo .scp-sec:first-child {
    padding-bottom: 14px;
    margin-bottom: 2px;
    border-bottom: 1px solid var(--sc-line);
}

.scp-estilo .sc-temas {
    gap: 8px;
}

.scp-estilo .sc-tema {
    gap: 10px;
    padding: 10px 10px 12px;
    border-radius: 14px;
}

.scp-estilo .sc-tema .sc-tema-glyph {
    height: 60px;
    border-radius: 9px;
}

.scp-estilo .sc-tema .sc-tema-glyph b {
    top: 10px;
    left: 10px;
    height: 9px;
}

.scp-estilo .sc-tema .sc-tema-glyph em {
    height: 4px;
}

.scp-estilo .sc-tema-txt b {
    font-size: 14px;
    letter-spacing: -.01em;
}

.scp-estilo .sc-tema-txt span {
    font-size: 11.5px;
}

.scp.scp-layoutArte {
    width: 470px;
}

.scp.scp-modelos {
    width: 720px;
}

/* A barra ganhou as pilulas de Estilo visual e Layout e o botao de Modelos:
   700px cortava as ultimas (a faixa de ferramentas rola na horizontal).
   Quem manda na largura e o `width: min(700px, ...)` da barra sticky (bloco
   "barra de criacao NO FLUXO"); mesmo seletor, vence por vir depois. */
.chatgpt-image-layout.sc-v3 .floating-input-wrapper,
.estudio-conteudo-modal-body .chatgpt-image-layout.sc-v3 .floating-input-wrapper {
    width: min(940px, calc(100% - 32px));
}

.sc-v3 #sc-pill-estilo .lbl {
    max-width: 170px;
}

/* Com um modelo aplicado os rotulos crescem e a faixa de ferramentas, que
   rolava na horizontal com a barra de rolagem escondida, sumia com o clipe e
   o esboco sem nenhum sinal de que estavam la. No desktop as pilulas quebram
   para uma segunda linha; o celular continua rolando (media.css). */
.sc-v3 .sc-tools {
    flex-wrap: wrap;
    row-gap: 6px;
    overflow: visible;
}

.sc-pill.sc-pill-so-ico {
    padding: 0 7px 0 6px;
    gap: 4px;
}

/* ---- Estilos visuais ---- */
.sc-est-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}

.sc-est {
    display: flex;
    flex-direction: column;
    gap: 7px;
    padding: 4px 4px 8px;
    border: 1px solid var(--sc-line);
    border-radius: 13px;
    background: transparent;
    color: var(--color-text-01);
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    transition: background-color .15s, border-color .15s, box-shadow .15s, transform .2s var(--sc-ease);
}

.sc-est:hover {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

.sc-est-prev {
    display: block;
    aspect-ratio: 4 / 5;
    border-radius: 9px;
    overflow: hidden;
    box-shadow: inset 0 0 0 1px var(--sc-line);
}

.sc-mini-arte {
    display: block;
    width: 100%;
    height: 100%;
}

.sc-est-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 3px;
    min-width: 0;
}

.sc-est-txt b {
    display: block;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-weight: 600;
    letter-spacing: -.01em;
}


.sc-est.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

/* ---- Layout da arte unica ---- */
.sc-lays .sc-lay-grid {
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.sc-lays .sc-lay-grid-auto {
    grid-template-columns: 1fr;
}

.sc-lays .sc-lay-grid-auto .sc-lay {
    flex-direction: row;
    justify-content: flex-start;
    gap: 12px;
    padding: 7px 10px;
}

.sc-lays .sc-lay-grid-auto .sc-lay-fio {
    width: 34px;
    height: 34px;
}

.sc-lays .sc-lay-grid-auto .sc-lay-fio svg {
    width: 22px;
    height: 28px;
}

.sc-lays .sc-lay-grid-auto .sc-lay-nome {
    font-size: 12.5px;
}

.sc-lays .sc-lay-nome {
    font-size: 11px;
}

.scp-aviso {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: 0 2px 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: var(--sc-campo);
    font-size: 12px;
    line-height: 1.45;
}

.scp-aviso svg {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    margin-top: 1px;
    opacity: .7;
}

.scp-travado .sc-lays {
    opacity: .38;
    pointer-events: none;
}

/* ---- Modelos prontos ---- */
.sc-mod-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
}

.sc-mod {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 0;
    padding: 4px 4px 8px;
    border: 1px solid var(--sc-line);
    border-radius: 14px;
    background: transparent;
    color: var(--color-text-01);
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    transition: background-color .15s, border-color .15s, box-shadow .2s var(--sc-ease), transform .2s var(--sc-ease);
}

.sc-mod:hover {
    border-color: var(--sc-line-forte);
    transform: translateY(-2px);
    box-shadow: 0 14px 28px -20px rgba(16, 24, 40, .45);
}

.sc-mod-prev {
    position: relative;
    display: block;
    aspect-ratio: 1 / 1;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: inset 0 0 0 1px var(--sc-line);
}

.sc-mod-ok {
    position: absolute;
    top: 6px;
    right: 6px;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 0 0 2px var(--sc-surface);
}

.sc-mod-ok svg {
    width: 12px;
    height: 12px;
}

.sc-mod-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 0 3px;
    min-width: 0;
}

.sc-mod-txt span,
.sc-mod-txt em {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Nome em ate duas linhas ("Oferta relampago" cortado vira adivinhacao). */
.sc-mod-txt b {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 2.6em;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: -.01em;
    line-height: 1.3;
}

.sc-mod-txt span {
    font-size: 11px;
    line-height: 1.3;
    opacity: .55;
}

.sc-mod-txt em {
    margin-top: 2px;
    font-style: normal;
    font-size: 10.5px;
    font-weight: 600;
    opacity: .4;
}

.sc-mod.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

.sc-mods .sc-grupo-rot:first-child {
    margin-top: 0;
}

/* ---- Tela sem marca: a propria tela e o seletor ---- */
.chatgpt-image-layout.sc-sem-marca .floating-input-wrapper,
.chatgpt-image-layout.sc-sem-marca .estudio-acoes-extras,
.chatgpt-image-layout.sc-sem-marca .estudio-resultado {
    display: none !important;
}

.sc-marcas {
    max-width: 760px;
    margin: 28px auto 40px;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    color: var(--color-text-01);
}

.sc-marcas-cab {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin-bottom: 22px;
    text-align: center;
}

.sc-marcas-ico {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-bottom: 6px;
    border-radius: 14px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.sc-marcas-ico svg {
    width: 22px;
    height: 22px;
}

.sc-marcas-cab h2 {
    margin: 0;
    font-size: 22px;
    font-weight: 550;
    letter-spacing: -.025em;
    line-height: 1.2;
}

.sc-marcas-cab p {
    margin: 0;
    font-size: 14px;
    line-height: 1.5;
    opacity: .55;
}

.sc-marcas-busca {
    display: flex;
    align-items: center;
    gap: 9px;
    max-width: 420px;
    height: 42px;
    margin: 0 auto 16px;
    padding: 0 14px;
    border: 1px solid var(--sc-line);
    border-radius: 13px;
    background: var(--sc-campo);
    cursor: text;
    transition: border-color .15s, background-color .15s, box-shadow .2s;
}

.sc-marcas-busca:focus-within {
    background: var(--sc-surface);
    border-color: var(--sc-line-forte);
    box-shadow: 0 0 0 4px var(--sc-hover);
}

.sc-marcas-busca svg {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    opacity: .5;
}

.sc-marcas-busca input {
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    color: var(--color-text-01);
    font: 400 14px/1 "Golos Text", Inter, system-ui, sans-serif;
}

.sc-marcas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 10px;
}

.sc-marca {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    padding: 12px 14px 12px 12px;
    border: 1px solid var(--sc-line);
    border-radius: 15px;
    background: var(--sc-surface);
    color: var(--color-text-01);
    text-align: left;
    cursor: pointer;
    font-family: inherit;
    transition: border-color .15s, transform .24s var(--sc-ease), box-shadow .24s var(--sc-ease);
}

.sc-marca[hidden] {
    display: none;
}

.sc-marca:hover {
    border-color: var(--sc-line-forte);
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
}

.sc-marca .sc-marca-av {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 12px;
    background-size: cover;
    background-position: center;
    font-size: 13px;
    font-weight: 600;
}

/* Iniciais (marca sem imagem): o cinza fixo do fallback global nao troca de
   tema - aqui sai do token do Studio. */
.sc-marca .sc-marca-av.avatar-perfil-letra {
    background-color: var(--sc-campo);
    color: var(--color-text-01);
}

.sc-marca-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1 auto;
    min-width: 0;
}

.sc-marca-txt b {
    font-size: 14px;
    font-weight: 550;
    letter-spacing: -.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-marca-txt span {
    font-size: 11.5px;
    opacity: .5;
}

/* Cor principal da marca (dado): um ponto discreto ao lado da seta */
.sc-marca-cor {
    width: 10px;
    height: 10px;
    flex: 0 0 auto;
    border-radius: 50%;
    box-shadow: 0 0 0 1px var(--sc-line);
}

.sc-marca-seta {
    display: inline-flex;
    flex: 0 0 auto;
    opacity: 0;
    transform: translateX(-4px);
    transition: opacity .15s, transform .24s var(--sc-ease);
}

.sc-marca-seta svg {
    width: 16px;
    height: 16px;
}

.sc-marca:hover .sc-marca-seta,
.sc-marca:focus-visible .sc-marca-seta {
    opacity: .6;
    transform: none;
}

.sc-marca-nova {
    border-style: dashed;
    background: transparent;
}

.sc-marca-av-mais {
    display: grid;
    place-items: center;
    background: var(--sc-campo);
}

.sc-marca-av-mais svg {
    width: 18px;
    height: 18px;
    opacity: .7;
}

/* Esqueleto enquanto a lista de marcas nao chegou (pagina aberta direto no Studio) */
.sc-marca.sc-marca-sk {
    cursor: default;
    pointer-events: none;
}

.sc-marca-sk .sc-marca-av,
.sc-marca-sk .sc-marca-txt i {
    background: linear-gradient(90deg, var(--sk-base) 25%, var(--sk-glow) 50%, var(--sk-base) 75%);
    background-size: 200% 100%;
    animation: scMarcaSk 1.3s linear infinite;
}

.sc-marca-sk .sc-marca-txt i {
    display: block;
    width: 70%;
    height: 11px;
    border-radius: 6px;
}

@keyframes scMarcaSk {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.sc-marcas-nada {
    padding: 22px 0;
    text-align: center;
    font-size: 13px;
    opacity: .55;
}

.sc-marcas-vazio {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 28px 20px;
    border: 1px dashed var(--sc-line-forte);
    border-radius: 16px;
    text-align: center;
}

.sc-marcas-vazio b {
    font-size: 14.5px;
    font-weight: 600;
}

.sc-marcas-vazio span {
    font-size: 13px;
    opacity: .6;
}

.sc-marca-nova-bt {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 38px;
    margin-top: 10px;
    padding: 0 16px;
    border: 0;
    border-radius: 13px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font: 600 13.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
}

.sc-marca-nova-bt svg {
    width: 15px;
    height: 15px;
}

/* Aba Visual > Padroes do Studio: a grade de estilos em largura cheia viraria
   miniaturas enormes - colunas de tamanho fixo, como no popover. */
.editarPerfis .vsp .sc-est-grid {
    grid-template-columns: repeat(auto-fill, minmax(92px, 1fr));
    max-width: 720px;
}

/* =============================================================================
   STUDIO - popup do CARROSSEL (#estudio-modal-carrossel, window.StudioCarrossel)
   -----------------------------------------------------------------------------
   A sequencia numa faixa horizontal, cada slide na proporcao do formato
   (--scm-ar, vem do JS) e todos com a mesma altura (--scm-h). As acoes de cada
   slide ficam numa barra de vidro que aparece no hover - antes eram circulos
   pretos sempre por cima da arte, cobrindo o titulo. Monocromatico: a capa nao
   tem mais a borda azul; o que pede decisao (nova versao) ganha anel de tinta.
   z-index 9990: abaixo do "Adicionar slides"/"Usar" (.estudio-modal, 9999) e
   do Editar com IA (10010), que abrem POR CIMA dele.
   ============================================================================= */
.scm-modal {
    /* ~4 slides de 4:5 a vista numa tela de notebook: a sequencia inteira
       importa mais que o tamanho de cada um (ampliar e um clique). */
    --scm-h: min(44vh, 380px);
    --scm-ar: 4 / 5;
    position: fixed;
    inset: 0;
    z-index: 9990;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    color: var(--color-text-01);
}

.scm-modal * {
    box-sizing: border-box;
}

.scm-modal [hidden] {
    display: none !important;
}

.scm-modal button {
    font-family: inherit;
}

.scm-modal button:focus {
    outline: none;
}

.scm-modal button:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 2px;
}

.scm-overlay {
    position: absolute;
    inset: 0;
    background: rgba(10, 10, 12, .58);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    cursor: pointer;
}

.scm-box {
    position: relative;
    display: flex;
    flex-direction: column;
    width: min(1320px, 100%);
    max-height: calc(100vh - 48px);
    background: var(--sc-surface);
    border: 1px solid var(--sc-line);
    border-radius: 22px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 44px 100px -34px rgba(0, 0, 0, .6);
    overflow: hidden;
    animation: scmEntra .3s var(--sc-ease);
}

@keyframes scmEntra {
    from {
        opacity: 0;
        transform: translateY(10px) scale(.985);
    }

    to {
        opacity: 1;
        transform: none;
    }
}

/* ---- Cabecalho ---- */
.scm-hdr {
    display: flex;
    align-items: center;
    gap: 12px;
    min-height: 68px;
    padding: 12px 16px 12px 22px;
    border-bottom: 1px solid var(--sc-line);
    flex: 0 0 auto;
}

.scm-hdr-ico {
    display: grid;
    place-items: center;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    flex: 0 0 auto;
}

.scm-hdr-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
    flex: 1 1 auto;
    min-width: 0;
}

.scm-hdr-txt b {
    font-size: 16px;
    font-weight: 550;
    letter-spacing: -.02em;
}

.scm-hdr-txt span {
    font-size: 12.5px;
    opacity: .55;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.scm-hdr-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

.scm-bt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 38px;
    padding: 0 15px;
    border: 1px solid var(--sc-line);
    border-radius: 12px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .15s, border-color .15s, transform .24s var(--sc-ease), box-shadow .24s var(--sc-ease), opacity .15s;
}

.scm-bt:hover:not(:disabled) {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

.scm-bt:disabled {
    opacity: .4;
    cursor: not-allowed;
}

.scm-bt-ico {
    width: 38px;
    padding: 0;
}

.scm-bt-pri {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.scm-bt-pri:hover:not(:disabled) {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.scm-bt.scm-carregando {
    opacity: .6;
    pointer-events: none;
}

.scm-x {
    display: grid;
    place-items: center;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .55;
    cursor: pointer;
    transition: opacity .15s, background-color .15s;
}

.scm-x:hover {
    opacity: 1;
    background: var(--sc-hover);
}

/* ---- Faixa de slides ---- */
.scm-corpo {
    flex: 1 1 auto;
    min-height: 0;
    background: var(--sc-palco);
}

.scm-trilho {
    display: flex;
    align-items: flex-start;
    gap: 18px;
    height: 100%;
    padding: 22px 24px 20px;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x proximity;
    scroll-padding: 24px;
    scrollbar-width: thin;
}

.scm-slide {
    display: flex;
    flex-direction: column;
    gap: 9px;
    flex: 0 0 auto;
    scroll-snap-align: start;
}

.scm-slide-rot {
    display: flex;
    align-items: center;
    gap: 7px;
    height: 24px;
    font-size: 12px;
    font-weight: 600;
}

.scm-slide-rot b {
    display: inline-grid;
    place-items: center;
    min-width: 24px;
    height: 24px;
    padding: 0 6px;
    border-radius: 8px;
    background: var(--sc-surface);
    box-shadow: 0 0 0 1px var(--sc-line);
    font-size: 12px;
    font-weight: 650;
    font-variant-numeric: tabular-nums;
}

.scm-slide.is-capa .scm-slide-rot b {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: none;
}

.scm-slide-rot span {
    opacity: .6;
}

.scm-grip {
    display: inline-flex;
    margin-left: auto;
    opacity: 0;
    cursor: grab;
    transition: opacity .15s;
}

.scm-slide:hover .scm-grip {
    opacity: .4;
}

.scm-slide-img {
    position: relative;
    height: var(--scm-h);
    aspect-ratio: var(--scm-ar);
    border-radius: 12px;
    overflow: hidden;
    background: var(--sc-surface);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 18px 40px -26px rgba(16, 24, 40, .45);
}

.scm-slide-img>img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    user-select: none;
    -webkit-user-drag: none;
}

/* Clique na arte = ampliar (a barra de ferramentas fica por cima dele). */
.scm-ampliar {
    position: absolute;
    inset: 0;
    z-index: 1;
    padding: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
}

.scm-slide[draggable="true"] .scm-ampliar {
    cursor: grab;
}

.scm-tools {
    position: absolute;
    left: 50%;
    bottom: 10px;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 2px;
    padding: 4px;
    border-radius: 13px;
    background: var(--sc-bar);
    border: 1px solid var(--sc-line);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 12px 28px -12px rgba(16, 24, 40, .35);
    backdrop-filter: blur(14px) saturate(1.4);
    -webkit-backdrop-filter: blur(14px) saturate(1.4);
    opacity: 0;
    transform: translate(-50%, 6px);
    transition: opacity .18s, transform .24s var(--sc-ease);
    white-space: nowrap;
}

.scm-slide-img:hover .scm-tools,
.scm-slide-img:focus-within .scm-tools {
    opacity: 1;
    transform: translate(-50%, 0);
}

.scm-tl {
    display: inline-grid;
    place-items: center;
    width: 32px;
    height: 32px;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .75;
    cursor: pointer;
    transition: opacity .15s, background-color .15s, color .15s;
}

.scm-tl:hover:not(:disabled) {
    opacity: 1;
    background: var(--sc-hover);
}

.scm-tl:disabled {
    opacity: .22;
    cursor: default;
}

.scm-tl-txt {
    display: inline-flex;
    gap: 6px;
    width: auto;
    padding: 0 11px;
    font-size: 12.5px;
    font-weight: 600;
    opacity: 1;
}

.scm-tl-perigo:hover:not(:disabled) {
    color: #e83a3a;
}

/* Gerando / falhou */
.scm-gerando {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    width: 100%;
    height: 100%;
    font-size: 12.5px;
    font-weight: 500;
    background: linear-gradient(90deg, var(--sk-base) 25%, var(--sk-glow) 50%, var(--sk-base) 75%);
    background-size: 200% 100%;
    animation: scmBrilho 1.4s linear infinite;
}

@keyframes scmBrilho {
    0% {
        background-position: 200% 0;
    }

    100% {
        background-position: -200% 0;
    }
}

.scm-spin {
    display: inline-block;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid currentColor;
    border-right-color: transparent;
    animation: scmGira .75s linear infinite;
    opacity: .7;
}

@keyframes scmGira {
    to {
        transform: rotate(360deg);
    }
}

.scm-falha {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    height: 100%;
    padding: 20px;
    text-align: center;
    background: var(--sc-campo);
}

.scm-falha svg {
    opacity: .5;
}

.scm-falha b {
    font-size: 13.5px;
    font-weight: 600;
}

.scm-falha span {
    font-size: 12px;
    line-height: 1.45;
    opacity: .6;
}

.scm-mini-bt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 32px;
    padding: 0 12px;
    border: 1px solid var(--sc-line);
    border-radius: 10px;
    background: var(--sc-surface);
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .15s, border-color .15s;
}

.scm-mini-bt:hover:not(:disabled) {
    background: var(--sc-hover);
    border-color: var(--sc-line-forte);
}

.scm-mini-bt:disabled {
    opacity: .45;
    cursor: not-allowed;
}

.scm-mini-pri,
.scm-mini-pri:hover:not(:disabled) {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.scm-falha .scm-mini-bt {
    margin-top: 4px;
}

/* Nova versao pendente: antes/depois e a decisao, com anel de tinta */
.scm-par-corpo {
    display: flex;
    flex-direction: column;
    gap: 10px;
    height: var(--scm-h);
    padding: 10px;
    border-radius: 14px;
    background: var(--sc-surface);
    box-shadow: inset 0 0 0 1.5px var(--color-btn-bg-01), 0 18px 40px -26px rgba(16, 24, 40, .45);
}

.scm-par-lados {
    display: flex;
    gap: 10px;
    flex: 1 1 auto;
    min-height: 0;
}

.scm-par-lado {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.scm-par-lado em {
    font-style: normal;
    font-size: 11px;
    font-weight: 600;
    opacity: .55;
}

.scm-par-img {
    height: calc(var(--scm-h) - 92px);
    aspect-ratio: var(--scm-ar);
    border-radius: 9px;
    overflow: hidden;
    background: var(--sc-campo);
}

.scm-par-img img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.scm-par-acoes {
    display: flex;
    justify-content: flex-end;
    gap: 6px;
}

.scm-par-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    margin-left: auto;
    padding: 2px 8px;
    border-radius: 100px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 11px;
    font-weight: 600;
    opacity: 1 !important;
}

/* Adicionar slide (ultimo cartao da faixa) */
.scm-add {
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-text-01);
    text-align: left;
    cursor: pointer;
}

.scm-add .scm-slide-img {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    background: transparent;
    border: 1.5px dashed var(--sc-line-forte);
    box-shadow: none;
    transition: background-color .15s, border-color .15s;
}

.scm-add:hover .scm-slide-img {
    background: var(--sc-surface);
    border-color: var(--color-btn-bg-01);
}

.scm-add-ico {
    display: grid;
    place-items: center;
    width: 46px;
    height: 46px;
    margin-bottom: 4px;
    border-radius: 14px;
    background: var(--sc-surface);
    box-shadow: 0 0 0 1px var(--sc-line);
}

.scm-add-txt {
    font-size: 13.5px;
    font-weight: 600;
}

.scm-add-sub {
    font-size: 12px;
    opacity: .55;
}

/* Arrastar */
.scm-slide.scm-arrastando {
    opacity: .4;
}

.scm-slide.scm-antes .scm-slide-img::before,
.scm-slide.scm-depois .scm-slide-img::after,
.scm-slide.scm-antes .scm-par-corpo::before,
.scm-slide.scm-depois .scm-par-corpo::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 3px;
    border-radius: 3px;
    background: var(--color-btn-bg-01);
    z-index: 3;
}

.scm-slide.scm-antes .scm-slide-img::before {
    left: 0;
}

.scm-slide.scm-depois .scm-slide-img::after {
    right: 0;
}

.scm-par-corpo {
    position: relative;
}

.scm-slide.scm-antes .scm-par-corpo::before {
    left: 0;
}

.scm-slide.scm-depois .scm-par-corpo::after {
    right: 0;
}

.scm-slide.scm-processando {
    opacity: .5;
    pointer-events: none;
}

/* Esqueleto (primeira carga) */
.scm-sk .scm-slide-img,
.scm-sk .scm-slide-rot i {
    background: linear-gradient(90deg, var(--sk-base) 25%, var(--sk-glow) 50%, var(--sk-base) 75%);
    background-size: 200% 100%;
    animation: scmBrilho 1.4s linear infinite;
    box-shadow: none;
}

.scm-sk .scm-slide-rot i {
    display: block;
    width: 56px;
    height: 14px;
    border-radius: 7px;
}

.scm-vazio {
    align-self: center;
    width: 100%;
    padding: 60px 20px;
    text-align: center;
    font-size: 13.5px;
    opacity: .6;
}

/* ---- Rodape ---- */
.scm-rod {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 20px 14px 22px;
    border-top: 1px solid var(--sc-line);
    flex: 0 0 auto;
}

.scm-rod-info {
    display: flex;
    align-items: center;
    gap: 16px;
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12.5px;
}

.scm-status {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-weight: 600;
}

.scm-status>span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.scm-status .scm-spin {
    width: 12px;
    height: 12px;
    border-width: 1.5px;
}

.scm-dica {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    opacity: .5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ============================================================================
   MATERIAL DE VIDRO (.glass / --glass-*) - padrao Apple, revisao de 2026
   ----------------------------------------------------------------------------
   Referencia: o Liquid Glass do iOS/macOS 26 na revisao do iOS 27 / macOS 27
   (WWDC jun/2026). A revisao e o que interessa aqui, porque corrige o que o
   vidro de 2025 errou em legibilidade:
     - MENOS transparencia por padrao e DIFUSAO maior: o que passa por tras
       vira mancha de cor, nunca texto legivel concorrendo com o do menu;
     - BORDA levemente escurecida em volta do vidro + BRILHO especular no
       topo: e o que separa a peca do fundo sem depender de sombra pesada;
     - respeito a "Reduzir transparencia" e "Aumentar contraste" do sistema
       (media.css) - ali o vidro vira superficie solida.

   ONDE O VIDRO ENTRA - e onde NAO entra (a regra e da propria Apple: vidro e
   a camada de NAVEGACAO, que flutua sobre o conteudo; o conteudo e opaco):
     - SIM: dropdowns e menus (.dropdown-default e as familias de picker),
       popovers (cartao de pessoa, regras das redes, filtros), tooltip, os
       popups de DIALOGO (#edit-popup-mini, #edit-popup-medium e o popup de
       criacao) e a doca de janelas minimizadas;
     - JANELAS DE TRABALHO Conteudo/Tarefa 2.0: vidro no DESKTOP (tokens
       --pd2-* abaixo; aplicacao no media.css, min-width 921px), depois de uma
       auditoria de runtime de toda superficie que pinta fundo la dentro - as
       faixas grudadas ganham vidro proprio, cartoes e campos viram preenchimento
       translucido, e o editor de comentario deixa de ficar POR CIMA da conversa.
       No celular a janela vira tela e segue opaca.
     - NAO: #edit-popup-big, #edit-popup-full e as telas grandes do #edit-popup
       (Equipes, Workflow, BI, configuracao da marca). Nao foram auditadas
       superficie a superficie; sobre fundo translucido cada --color-bg delas
       viraria um remendo. Recebem so borda, brilho e a mascara nova.

   ATENCAO: POR QUE A MASCARA DOS POPUPS MUDOU DE LUGAR. `backdrop-filter` so enxerga
   ate o "backdrop root" mais proximo - e qualquer ancestral com
   backdrop-filter/filter/opacity<1 e um. A casca (#edit-popup, #edit-popup-mini)
   tinha `backdrop-filter: blur(4px)`, entao o vidro do .boxpop so enxergava a
   camada escura da propria casca: por isso o `blur(90px)` que o dark.css ja
   punha no boxpop nunca teve efeito visivel. Agora o desfoque da pagina mora na
   .mask (IRMA do boxpop, pintada antes dele) e a casca fica sem filtro.

   ATENCAO: `!important` nas superficies: o dark.css carrega depois e pinta varias
   variantes de dropdown com seletor proprio (`.item-post .dropdown-default`,
   `.picker-dropdown { ... !important }`). O material e uma camada do SISTEMA,
   acima das pinturas legadas - o prefixo `:root` sobe a especificidade para
   vencer os `!important` de mesmo peso do dark.css.

   ATENCAO: Nada de `backdrop-filter` em ANCESTRAL de coisa `position: fixed` que
   precise da viewport: o filtro vira bloco de contencao do fixed. As pecas
   abaixo sao folhas (menus) ou ja eram bloco de contencao por transform.
   ========================================================================== */
:root {
    /* O MATERIAL E EM CAMADAS (2a calibracao, 25/09 - "nao da para ver"):
       a 1a versao era uma tinta branca unica de .72/.86 e, sobre uma
       interface quase toda branca, lia como branco solido. Agora e como o
       Liquid Glass se constroi:
         - REFLEXO: gradiente de luz no terco de cima da superficie;
         - TINTA bem mais translucida (.5 menus / .64 janelas) + saturacao
           de 200%: a cor do que esta atras SANGRA para dentro do vidro
           (o "vibrancy" da Apple), em vez de sumir num branco;
         - ARO (--glass-brilho): brilho especular forte no topo, aro claro
           por dentro e um halo interno que da ESPESSURA - por fora, o fio
           escuro da revisao iOS 27 (--glass-borda);
       Usar sempre como `background:` (shorthand), nunca background-color:
       o valor e uma lista de camadas. */
    /* TINTA CINZA-AZULADA, NAO BRANCA, no tema claro: sobre uma pagina
       branca, qualquer vidro branco (e qualquer brightness > 1) estoura em
       branco puro e some - era o "no claro nao da para perceber". O material
       claro da Apple e um cinza frio translucido: sobre branco ele le como
       peca, e o reflexo/aro claros aparecem CONTRA esse tom. */
    --glass-fundo: linear-gradient(180deg, rgba(255, 255, 255, .6) 0%, rgba(255, 255, 255, .16) 30%, rgba(255, 255, 255, 0) 60%), rgba(255, 255, 255, .56);
    --glass-filtro: blur(22px) saturate(210%);
    /* Dialogos (folha). Mais cheio: e onde se le e se digita. */
    --glass-fundo-forte: linear-gradient(180deg, rgba(255, 255, 255, .6) 0%, rgba(255, 255, 255, .14) 28%, rgba(255, 255, 255, 0) 56%), rgba(255, 255, 255, .66);
    --glass-filtro-forte: blur(32px) saturate(200%);
    /* Superficie solida equivalente - usada quando o sistema pede menos
       transparencia ou o navegador nao tem backdrop-filter. */
    --glass-opaco: #fbfbfc;
    /* Borda escurecida (revisao iOS 27) POR FORA + aro claro, brilho
       especular e halo POR DENTRO. As duas linhas juntas (fio escuro + fio
       claro) sao o que faz a peca ler como vidro mesmo sobre fundo branco. */
    --glass-borda: rgba(0, 0, 0, .06);
    --glass-brilho: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 0 0 1px rgba(255, 255, 255, .42), inset 0 -1px 0 rgba(255, 255, 255, .28), inset 0 0 20px -6px rgba(255, 255, 255, .6);
    --glass-sombra: 0 0 0 .5px rgb(0 0 0 / 7%), 0 8px 24px -6px rgb(32 32 32 / 9%), 0 30px 64px -22px rgb(39 39 39 / 5%);
    /* Realce de item (hover/selecionado) sobre o vidro. */
    --glass-realce: rgba(0, 0, 0, .055);
    /* Mascara por tras dos popups: LEVE. Desfoque forte aqui + o desfoque
       do popup = duas passadas, e o vidro so mostrava um cinza chapado. Com
       3px a pagina continua reconhecivel e colorida, e quem a transforma em
       nevoa e o proprio vidro - e o que o torna visivel. */
    --glass-scrim: rgba(17, 19, 24, .2);
    --glass-scrim-filtro: blur(3px) saturate(120%);
    /* Tooltip: vidro escuro nos dois temas (e o padrao do macOS). */
    --glass-tip: rgba(30, 30, 32, .80);
    --glass-ease: cubic-bezier(.16, 1, .3, 1);
    /* ENTRADA PADRAO de tudo que abre por cima da tela (o mesmo gesto do editor
       de artes): menus crescem de .94 descendo 6px; janelas e dialogos crescem
       de .94 subindo 14px; o vidro e o conteudo aparecem em fade. So opacity +
       scale/translate: composto na GPU. "Reduzir movimento" zera os tres (media.css). */
    --glass-entra-dur: .22s;
    --glass-folha-dur: .34s;
    --glass-surge-dur: .22s;
    /* saida: encolhe para .96, desce 10px e apaga (mais curta que a entrada) */
    --glass-sai-dur: .2s;
    /* Mola curta (leve ultrapassagem) - entrada de chip na doca. */
    --glass-mola: cubic-bezier(.34, 1.56, .64, 1);

    /* JANELAS DE TRABALHO EM VIDRO (Conteudo e Tarefa 2.0). Aplicadas so no
       desktop (media.css, min-width 921px): no celular a janela vira TELA e
       continua opaca. A auditoria de runtime que originou estes tokens esta no
       cabecalho do bloco no media.css. */
    --pd2-vidro: linear-gradient(180deg, rgba(255, 255, 255, .5) 0%, rgba(255, 255, 255, .12) 18%, rgba(255, 255, 255, 0) 40%), rgba(255, 255, 255, .75);
    --pd2-vidro-filtro: blur(40px) saturate(200%);
    /* Faixa grudada (cabecalho da lista de subtarefas, dia do chat): SEM
       tinta propria, so desfoque. Com tinta ela aparecia parada como uma tira
       mais clara mesmo sem nada por baixo (medido nos prints da auditoria);
       sem tinta ela e invisivel em repouso e, quando a lista rola por baixo,
       o que passa vira nevoa - o "scroll edge effect" da Apple. */
    --pd2-faixa: rgba(255, 255, 255, 0);
    --pd2-faixa-filtro: blur(20px) saturate(180%);
    /* Campo/cartao: um branco translucido um pouco MAIS claro que a janela,
       para ler como peca elevada (o "grouped field" da Apple). */
    --pd2-campo: rgba(255, 255, 255, .5);
    /* Botao elevado do segmented control. */
    --pd2-controle: rgba(255, 255, 255, .80);
    --pd2-realce: rgba(0, 0, 0, .045);
    /* Bolha de comentario: o "fill" cinza da Apple, translucido. */
    --pd2-bolha: rgba(120, 120, 128, .12);
    /* Mascara por tras da janela: mais leve que a dos dialogos, para o vidro
       ter o que mostrar. */
    --pd2-scrim: rgba(17, 19, 24, .14);
}

/* Navegador sem backdrop-filter: translucido sem desfoque deixa o texto de
   tras aparecer - pior que opaco. `html:root` vence os tokens do dark.css. */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
    html:root {
        --glass-fundo: var(--glass-opaco) !important;
        --glass-fundo-forte: var(--glass-opaco) !important;
    }
}

/* ---------- 1. Menus, dropdowns e popovers ---------- */
:root .dropdown-default,
:root .dropdown2,
:root .picker-dropdown,
:root .mencao-dropdown,
:root .cr-menu,
:root .bfr-pop,
:root .dropdown-filtros-01,
:root .ap-usercard,
:root .rdi-pop,
:root .gf-pop,
/* O flatpickr EMBUTIDO (.inline) mora dentro de outro flutuante (o .ap-dtp)
   - vidro so no de fora, senao sai uma moldura dentro da moldura. */
:root .flatpickr-calendar:not(.inline),
:root .apcp,
:root .item-post.tarefa .edicao .editor-toolbar .ap-dropdown-menu,
/* Inventario automatico de 25/09 (regra com position fixed/absolute +
   sombra + fundo opaco, em todo o CSS do painel) - os flutuantes que ainda
   estavam solidos: */
:root .ap-dtp,
:root .custom-calendar-tooltip,
:root .dropdown-status,
:root .dropdown-perfis,
:root .dropdown-criar,
:root .etapas-lst .etapa-pop,
:root .ap-img-popover,
:root .ap-slash-menu,
:root .ap-anexo-picker,
:root .ap-color-picker,
:root .ap-inline-picker,
:root .ap-link-popover,
:root .contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-menu,
:root .contant-metrica-perfil-conteudo.bi-dashboard .bi-brasil-drop,
:root #modal-busca-global .bg-escopo-pop,
:root #htmlSessaoAtual .cfg-resp-dd,
:root .dropdown-subtarefa,
:root .picker-overlay,
:root .ws-sw-lst,
:root .ac-niveis-pop,
:root .ecc-pop,
:root .rfx-pop,
:root .vr-menu,
:root .eia-ver-pop,
:root .arq-menu,
:root .atv-pop,
:root .plan-kebab-menu,
:root #doc-emoji-pop,
:root #doc-item-pop,
:root #doc-pdf-pop,
:root #doc-esp-pop,
:root #doc-pg-pop,
:root .doc-share-sug,
:root #doc-capa-pop,
:root #doc-resp-pop,
:root #doc-vinc-pop,
:root #doc-mod-pop,
:root .doc-pop,
/* 2a varredura (25/09): o que ainda estava solido. A barra flutuante do
   editor (tarefa, Documentos e Notas) tem o vidro no ::before - ver o bloco
   "EDITOR DE BLOCOS v2" no fim do arquivo; aqui ficam os dropdowns dela. Os
   paineis do editor de comentario valiam so dentro das janelas 2.0 e seguiam
   solidos no feed de Atividades e nos Documentos. */
:root .ap-doc-page .editor-toolbar .ap-dropdown-menu,
:root .ap-nota-page .editor-toolbar .ap-dropdown-menu,
:root .ct-bulk-pop.is-data,
:root .ce-pop,
:root .ce-opcoes-popup,
:root .coment-emoji-dropdown.is-reacao,
:root .coment-quem-reagiu,
:root .edicao-page-comentarios .container-atividades .atividades-lst .item .acao-coment-btns,
:root .ap-salvando,
:root .up-tray {
    background: var(--glass-fundo) !important;
    -webkit-backdrop-filter: var(--glass-filtro) !important;
    backdrop-filter: var(--glass-filtro) !important;
    border: 1px solid var(--glass-borda) !important;
    box-shadow: var(--glass-brilho), var(--glass-sombra) !important;
}

/* Entrada de menu no gesto da Apple: surge do proprio lugar, sem deslizar
   longe. `scale`/`translate` (propriedades individuais) e nao `transform`:
   compoem com o transform que alguma variante usa para se posicionar, em vez
   de substitui-lo durante a animacao. Menus que ja tinham entrada propria
   (.bfr-pop, .dropdown-filtros-01, cartao de pessoa, regras) ficam com ela. */
:root .dropdown-default,
:root .picker-dropdown,
:root .mencao-dropdown,
:root .cr-menu {
    animation: glass-entra var(--glass-entra-dur) var(--glass-ease);
}

@keyframes glass-entra {
    from {
        scale: .94;
        translate: 0 -6px;
    }
}

/* Entrada em TODO flutuante da lista do vidro (out/2026): mesmo gesto dos
   menus acima. Animacao CSS dispara quando o elemento ganha caixa (display
   none -> visivel ou inserido no DOM): nenhum JS muda. So opacity + scale/
   translate (propriedades individuais: compoem com o transform que posiciona
   cada um) - composto na GPU, sem layout por quadro. Auditado: nenhum destes
   abre com fadeIn/slideDown do jQuery (duas opacidades brigando). Ficam de
   fora os que ja tem entrada propria (.bfr-pop, .dropdown-filtros-01, cartao
   de pessoa, regras, flatpickr) e os que nao "abrem" (bandeja de uploads,
   indicador de salvamento, botoes do comentario, .picker-overlay). */
:root .dropdown2,
:root .ap-dtp,
:root .custom-calendar-tooltip,
:root .dropdown-status,
:root .dropdown-perfis,
:root .dropdown-criar,
:root .etapas-lst .etapa-pop,
:root .ap-img-popover,
:root .ap-anexo-picker,
:root .ap-color-picker,
:root .ap-inline-picker,
:root .ap-link-popover,
:root .contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-menu,
:root .contant-metrica-perfil-conteudo.bi-dashboard .bi-brasil-drop,
:root #modal-busca-global .bg-escopo-pop,
:root #htmlSessaoAtual .cfg-resp-dd,
:root .dropdown-subtarefa,
:root .ws-sw-lst,
:root .ac-niveis-pop,
:root .ecc-pop,
:root .rfx-pop,
:root .eia-ver-pop,
:root .arq-menu,
:root .atv-pop,
:root .gf-pop,
:root .plan-kebab-menu,
:root #doc-emoji-pop,
:root #doc-item-pop,
:root #doc-pdf-pop,
:root #doc-esp-pop,
:root #doc-pg-pop,
:root .doc-share-sug,
:root #doc-capa-pop,
:root #doc-resp-pop,
:root #doc-vinc-pop,
:root #doc-mod-pop,
:root .doc-pop,
:root .ct-bulk-pop.is-data,
:root .ce-pop,
:root .ce-opcoes-popup,
:root .coment-emoji-dropdown.is-reacao,
:root .coment-quem-reagiu,
:root .apcp {
    animation: glass-entra var(--glass-entra-dur) var(--glass-ease);
}


/* Calendario (flatpickr + AirpostDataPeriodo). O rodape "Salvar" e sticky e
   pintava --fp-bg (branco solido) para esconder os dias que passam por baixo
   quando o calendario e mais alto que a tela: sobre o vidro seria um retalho.
   --fp-bg vira o proprio vidro e o rodape ganha desfoque - os dias passam por
   baixo como nevoa. `:root` vence o --fp-bg do dark.css (.flatpickr-calendar). */
:root .flatpickr-calendar {
    --fp-bg: var(--glass-fundo);
}

:root .flatpickr-calendar .ap-dp-foot {
    -webkit-backdrop-filter: var(--glass-filtro);
    backdrop-filter: var(--glass-filtro);
}

/* MODAIS EM VIDRO (folha): a busca Ctrl+K - o "Spotlight" do sistema - e a
   caixa da Lixeira. --color-bg vira o preenchimento translucido la dentro,
   como nas cascas grandes (cartoes e campos deixam de ser retalhos).
   Ficam OPACOS de proposito, por serem superficies de FERRAMENTA com paineis
   internos proprios (mesma decisao do Design Studio e do cropper): a previa
   de video (.vp-box) e a previa nas redes (.pr-box), cujo palco e escuro por
   design; o popup de Documentos em tela cheia; e os modais de edicao do Studio
   (.sce-*, .cvi-*, .scm-*, .estudio-*). */
:root #modal-busca-global .bg-box,
:root .lx-overlay-box {
    background: var(--glass-fundo-forte) !important;
    -webkit-backdrop-filter: var(--glass-filtro-forte) !important;
    backdrop-filter: var(--glass-filtro-forte) !important;
    border: 1px solid var(--glass-borda) !important;
    box-shadow: var(--glass-brilho), var(--glass-sombra), 0 40px 90px -30px rgba(0, 0, 0, .08) !important;
    --color-bg: var(--pd2-campo);
}

/* A Lixeira fazia o fade na PROPRIA opacidade do overlay - que e pai do box
   de vidro (regra de ouro, secao 3a): o fade desce para os filhos. */
:root .lx-overlay {
    opacity: 1;
}

:root .lx-overlay>* {
    opacity: 0;
    transition: opacity .2s ease;
}

:root .lx-overlay.show>* {
    opacity: 1;
}

/* O editor de comentario nao pode ter backdrop-filter em tela nenhuma: ele
   vira o limite do desfoque dos proprios paineis (emoji, opcoes, "+"), que
   abrem para cima e mostrariam a conversa por tras sem desfoque. O dark.css
   punha blur(13px) nele. */
:root .edicao-page-comentarios .lst-comentarios .box-add-comentario {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

/* Campo branco solido dentro do popover de link do editor. */
:root .ap-link-popover input {
    background: var(--glass-realce);
}

/* A previa do conteudo no calendario do planejamento pintava #fff (e #333
   !important no dark.css); a miniatura dentro dela tem fundo proprio. */
:root .custom-calendar-tooltip.cal-tip-conteudo,
:root .custom-calendar-tooltip.cal-tip-tarefa {
    color: var(--color-text-01) !important;
}

/* ---------- 2. Tooltip ---------- */
:root .contant-metrica-perfil-conteudo.bi-dashboard .bi-mapa-tip {
    background: var(--glass-tip);
    -webkit-backdrop-filter: blur(18px) saturate(180%);
    backdrop-filter: blur(18px) saturate(180%);
}

.tooltip-custom {
    background-color: var(--glass-tip);
    -webkit-backdrop-filter: blur(18px) saturate(180%);
    backdrop-filter: blur(18px) saturate(180%);
    border-radius: 8px;
    padding: 6px 10px;
    line-height: 1.35;
    letter-spacing: -.005em;
    text-wrap: pretty;
    box-shadow: inset 0 0 0 .5px rgba(255, 255, 255, .12), 0 6px 18px -6px rgba(0, 0, 0, .35);
}

.tooltip-custom[data-placement="top"]::after {
    border-top-color: var(--glass-tip);
}

.tooltip-custom[data-placement="bottom"]::after {
    border-bottom-color: var(--glass-tip);
}

.tooltip-custom[data-placement="left"]::after {
    border-left-color: var(--glass-tip);
}

.tooltip-custom[data-placement="right"]::after {
    border-right-color: var(--glass-tip);
}

/* ---------- 3a. Fade das cascas SEM opacidade na casca ----------
   O jQuery (fadeIn/fadeOut) escreve a opacidade das cascas em --casca-op, e
   nao em `opacity` (cssHook no footer.php, "FADE DAS CASCAS DE POPUP"): com
   opacity < 1 na casca, ela vira backdrop root e o Chrome nao recaptura o
   fundo no fim da animacao - o popup de criar conteudo abria com a pagina
   NITIDA atras e so ganhava o desfoque quando o mouse passava num botao.
   Quem aplica o fade sao os filhos, cada um em si mesmo.

   REGRA DE OURO: nenhum ANCESTRAL de uma peca com backdrop-filter pode ter
   opacity < 1 (nem animada). Por isso, quando o .boxpop e de vidro (abaixo),
   ele fica em 1 e o fade desce mais um nivel: para o ::before que pinta o
   vidro e para os filhos de conteudo. */
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full, #edit-popup-right)>.contant>* {
    opacity: var(--casca-op, 1);
}

/* ---------- 3. Mascara dos popups (todas as cascas) ----------
   O desfoque sai da casca e vai para a .mask - ver o cabecalho deste bloco.
   A .mask do #edit-popup era `absolute` dentro do .contant (que rola): com
   conteudo alto ela subia junto e deixava a pagina sem desfoque embaixo. O
   escurecimento que morava no .contant tambem vai para a .mask: la ele
   acompanha o fade (o .contant nao anima mais). */
:root #edit-popup,
:root #edit-popup-mini,
:root #edit-popup-medium,
:root #edit-popup-big,
:root #edit-popup-full,
:root #edit-popup-right {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

:root #edit-popup .contant,
:root #edit-popup-mini .contant,
:root #edit-popup-medium .contant,
:root #edit-popup-big .contant,
:root #edit-popup-full .contant,
:root #edit-popup-right .contant {
    background: transparent;
}

:root #edit-popup .contant .mask,
:root #edit-popup-mini .contant .mask,
:root #edit-popup-medium .contant .mask,
:root #edit-popup-big .contant .mask,
:root #edit-popup-full .contant .mask,
:root #edit-popup-right .contant .mask {
    position: fixed;
    inset: 0;
    background: var(--glass-scrim);
    -webkit-backdrop-filter: var(--glass-scrim-filtro);
    backdrop-filter: var(--glass-scrim-filtro);
    /* a mascara faz o proprio fade (a casca abre por show(): ver footer.php) */
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

/* Fora do vidro (celular, casca da direita) o .boxpop e opaco: o dark.css
   punha `blur(90px)` debaixo de um fundo preto solido - custo de GPU sem
   nada para mostrar. */
:root #edit-popup .contant .boxpop,
:root #edit-popup-big .contant .boxpop,
:root #edit-popup-full .contant .boxpop {
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: var(--glass-brilho), 0 30px 80px -24px rgba(0, 0, 0, .35);
}

/* ---------- 4. Popups de dialogo em vidro ----------
   O VIDRO MORA NO ::before, nao no .boxpop (mesma razao da janela 2.0, ver
   media.css "JANELAS DE TRABALHO EM VIDRO"): com backdrop-filter no proprio
   box ele vira backdrop root, e todo menu/faixa com desfoque la dentro
   redesenharia o fundo translucido por cima dele mesmo. O box fica sem fundo,
   sem borda e sem sombra - tudo isso e desenhado pelo ::before, que tambem e
   quem faz o fade (a regra de ouro do 3a). */
:root #edit-popup-mini .contant .boxpop,
:root #edit-popup-medium .contant .boxpop,
:root #edit-popup .contant .boxpop:has(.cr-pop) {
    opacity: 1;
    background: transparent;
    border-color: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    animation: glass-folha var(--glass-folha-dur) var(--glass-ease);
}

:root #edit-popup-mini .contant .boxpop::before,
:root #edit-popup-medium .contant .boxpop::before,
:root #edit-popup .contant .boxpop:has(.cr-pop)::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    pointer-events: none;
    background: var(--glass-fundo-forte);
    -webkit-backdrop-filter: var(--glass-filtro-forte);
    backdrop-filter: var(--glass-filtro-forte);
    border: 1px solid var(--glass-borda);
    box-shadow: var(--glass-brilho), var(--glass-sombra), 0 40px 90px -30px rgba(0, 0, 0, .08);
    opacity: var(--casca-op, 1);
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

/* Os filhos do .boxpop sao so o X e o .conteudo. Depois de um :has() o alvo
   NUNCA pode ser "*": o Chrome passa a recalcular o estilo da pagina inteira a
   cada mudanca no DOM (medido no editor: 1376 elementos e ~12 ms por insercao,
   contra 180 e ~2 ms com os dois filhos nomeados). */
:root #edit-popup-mini .contant .boxpop>*,
:root #edit-popup-medium .contant .boxpop>*,
:root #edit-popup .contant .boxpop:has(.cr-pop)>:is(.btn-close, .conteudo) {
    opacity: var(--casca-op, 1);
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

/* Raio concentrico: o medium era o unico degrau com 8px. */
:root #edit-popup-medium .contant .boxpop {
    border-radius: 20px;
}

/* A entrada da folha e so ESCALA: opacidade no .boxpop quebraria o vidro
   do ::before (regra de ouro). O "aparecer" e do glass-surge, aplicado no
   ::before e nos filhos. */
@keyframes glass-folha {
    from {
        scale: .94;
        translate: 0 14px;
    }
}

@keyframes glass-surge {
    from {
        opacity: 0;
    }
}

@keyframes glass-sai {
    to {
        scale: .96;
        translate: 0 10px;
    }
}

@keyframes glass-some {
    to {
        opacity: 0;
    }
}

/* SAIDA PADRAO DAS CASCAS (.ap-saindo vem do fadeOut, footer.php): o box encolhe e
   desce; mascara, vidro e conteudo apagam. Opacidade NUNCA no .boxpop de vidro
   (regra de ouro) - no celular, onde o box e opaco, ele mesmo apaga (media.css). */
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full, #edit-popup-right).ap-saindo>.contant>.mask,
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full).ap-saindo>.contant>.boxpop::before,
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full).ap-saindo>.contant>.boxpop>* {
    opacity: 0 !important;
    transition: opacity var(--glass-sai-dur) ease-in;
}

:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full).ap-saindo>.contant>.boxpop {
    scale: .96;
    translate: 0 10px;
    pointer-events: none;
    transition: scale var(--glass-sai-dur) ease-in, translate var(--glass-sai-dur) ease-in;
}

/* a casca da direita e um painel opaco: apaga inteiro */
#edit-popup-right.ap-saindo>.contant>.boxpop {
    opacity: 0 !important;
    transition: opacity var(--glass-sai-dur) ease-in;
}

/* JANELAS 2.0 (Conteudo e Tarefa, .pd-v2): mesma entrada (abrem por .atv) e a
   saida pelo fantasma - copia visual que o fechar() deixa por cima (footer.php). */
.pd-v2.atv .pd2-mask {
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.pd-v2.atv .pd2-win {
    animation: glass-folha var(--glass-folha-dur) var(--glass-ease);
}

.pd-v2.atv .pd2-win::before,
.pd-v2.atv .pd2-win>* {
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.pd-v2.pd2-fantasma {
    pointer-events: none !important;
}

.pd-v2.pd2-fantasma .pd2-mask {
    animation: glass-some var(--glass-sai-dur) ease-in forwards;
}

.pd-v2.pd2-fantasma .pd2-win {
    animation: glass-sai var(--glass-sai-dur) ease-in forwards;
}

.pd-v2.pd2-fantasma .pd2-win::before,
.pd-v2.pd2-fantasma .pd2-win>* {
    animation: glass-some var(--glass-sai-dur) ease-in forwards;
}

/* Superficies das telas dentro das cascas em vidro. --color-bg vira o
   preenchimento translucido (os cartoes, campos e botoes fantasma pintados
   com ele deixam de ser retalhos opacos) - ver o cabecalho do bloco no
   media.css. Estas regras de texto existem porque 5 seletores usam
   --color-bg como COR DE TEXTO ("a cor inversa da tinta"); o token certo
   para isso e --color-btn-text-01 (mesmo valor nos dois temas). */
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full) .pf-avatar-grande-ini,
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full) .pf-card-thumb-ini,
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full) #wf-host .wf-cat-ck.atv,
#edit-popup-mini .wfe-chip.atv,
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full) .popup-cargo-editor .cargo-st-rec:not(.vazio):hover,
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full) .cfg-resp-op.atv {
    color: var(--color-btn-text-01);
}

/* Mesmo caso, indireto: o kit da configuracao da marca le a cor do texto
   sobre botao cheio de --ap-fill-text, declarado como var(--color-bg). Na
   casca de vidro o botao "Conectar" das Conexoes ficava branco e SEM texto
   no tema escuro (achado nos prints da auditoria). */
:is(#edit-popup, #edit-popup-mini, #edit-popup-medium, #edit-popup-big, #edit-popup-full) .editarPerfis {
    --ap-fill-text: var(--color-btn-text-01);
}

:root #edit-popup-mini .contant .boxpop,
:root #edit-popup-medium .contant .boxpop {
    --color-bg: var(--pd2-campo);
}

/* O kit de Equipes declara --eq-surface no proprio conteiner (e o dark.css
   o crava em #191919): redeclarado aqui, ele volta a seguir o --color-bg da
   casca de vidro. */
:root :is(#edit-popup-mini, #edit-popup-medium) :is(.contant-equipes-home, .equipe-tela, .pessoa-tela, .equipe-header, .edicao-equipe, .dash-drill-popup, .sub-popup, .conteudo) {
    --eq-surface: var(--color-bg);
}

/* A camada "Ideia gerada" do popup de criacao cobre o formulario inteiro
   (inset 0). Com a folha em vidro, um branco solido por cima destoaria;
   vira vidro sobre vidro e o formulario de baixo fica so como nevoa. */
:root #edit-popup .contant .boxpop:has(.cr-pop) .cr-ia,
:root #edit-popup-mini .contant .boxpop:has(.cr-pop) .cr-ia {
    background: var(--glass-fundo-forte);
    -webkit-backdrop-filter: var(--glass-filtro-forte);
    backdrop-filter: var(--glass-filtro-forte);
}

:root #edit-popup .contant .boxpop:has(.cr-pop) .cr-ia-doca,
:root #edit-popup-mini .contant .boxpop:has(.cr-pop) .cr-ia-doca {
    background: transparent;
}

/* Titulos de dialogo: quebra equilibrada (Safari 26 / Chrome 117+). */
.cf-hdr-txt,
.cr-hdr-ttl {
    text-wrap: balance;
}

/* ---------- 5. Janelas de trabalho (Conteudo e Tarefa 2.0) ----------
   Aqui: mascara, borda escurecida e brilho (valem em qualquer largura). O
   VIDRO da janela e o tratamento de cada superficie interna estao no media.css
   (bloco "JANELAS DE TRABALHO EM VIDRO", min-width 921px). */
:root .pd-v2 .pd2-mask {
    background: var(--glass-scrim);
    -webkit-backdrop-filter: var(--glass-scrim-filtro);
    backdrop-filter: var(--glass-scrim-filtro);
    transition: opacity .3s ease;
}

:root .pd-v2 .pd2-win {
    border-color: var(--glass-borda);
    border-radius: 18px;
    /* box-shadow: 0 0 0 .5px rgba(0, 0, 0, .06), 0 2px 10px rgba(0, 0, 0, .08), 0 40px 100px -30px rgba(0, 0, 0, .4); */
    box-shadow: none;
    border: none;
}

:root .pd-v2.pd-full .pd2-win {
    border-radius: 0;
    box-shadow: none;
}

/* Botoes da barra de titulo: alvo redondo, realce suave. */
.pd-v2 .pd2-acoes {
    gap: 4px;
}

.pd-v2 .pd2-btn {
    border-radius: 10px;
    transition: background .18s var(--glass-ease), opacity .18s var(--glass-ease), scale .18s var(--glass-ease);
}

.pd-v2 .pd2-btn:active {
    scale: .92;
}

/* MINIMIZAR - a janela encolhe ate o chip da doca (window.AirpostDock).
   --dk-dx/--dk-dy vem do JS: distancia do centro da janela ao centro do chip.
   O translate(-50%, -50%) de base e o mesmo do posicionamento da janela. */
.pd-v2.pd2-minimizando .pd2-win {
    transform: translate(calc(-50% + var(--dk-dx, 0px)), calc(-50% + var(--dk-dy, 40vh))) scale(.06);
    opacity: 0;
    pointer-events: none;
    transition: transform .34s cubic-bezier(.5, 0, .2, 1), opacity .26s ease-in .08s;
}

.pd-v2.pd2-minimizando .pd2-mask {
    opacity: 0;
    pointer-events: none;
}

/* ============================================================================
   DOCA DE JANELAS MINIMIZADAS (.dk-*) - JS: window.AirpostDock (footer.php)
   ----------------------------------------------------------------------------
   Pilula de vidro no rodape. 2a versao (out/2026): uma linha so por chip
   (avatar 20px + titulo; de quem e e o tipo vao para o tooltip), 34px de
   altura no total - a 1a tinha 54px e duas linhas.

   ONDE ELA MORA (media.css, bloco "DOCA NO CHAO"):
     - desktop, `html.dk-chao`: a moldura da tela termina acima da doca e ela
       fica numa faixa propria, centralizada na moldura (--dk-cx/--dk-max vem
       do JS). Nao cobre mais nada das telas - compositor do Chat, barra de
       pedido do Auto, barras de lote;
     - desktop, `html.dk-sobre`: com uma janela minimizavel aberta a doca sobe
       para o andar dela (z-index posto pelo JS) e a janela encolhe para nao
       cobrir a faixa;
     - celular: flutua acima da barra de abas, como antes.
   Sem chao (z-index 97) ela fica abaixo das janelas 2.0 (98) e de toda
   mascara, entao qualquer popup aberto cobre a doca sem codigo nenhum.

   VIDRO NO ::before, como as cascas de popup: a entrada anima so translate e
   scale na .dk e o fade vai para o ::before e os filhos. Opacidade animada na
   peca com backdrop-filter deixa o fundo nitido (DEVELOPMENT_RULES 14.3b).
   ========================================================================== */
.dk {
    position: fixed;
    left: var(--dk-cx, 50%);
    bottom: 14px;
    translate: -50% 0;
    z-index: 97;
    isolation: isolate;
    max-width: min(var(--dk-max, 980px), calc(100vw - 24px));
    padding: 3px;
    border-radius: 14px;
    color: var(--color-text-01);
    animation: dk-sobe .42s var(--glass-ease);
}

.dk::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    pointer-events: none;
    background: var(--glass-fundo);
    -webkit-backdrop-filter: var(--glass-filtro);
    backdrop-filter: var(--glass-filtro);
    border: 1px solid var(--glass-borda);
    box-shadow: var(--glass-brilho), var(--glass-sombra);
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.dk-lista {
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.dk.dk-vazia {
    display: none;
}

@keyframes dk-sobe {
    from {
        translate: -50% 14px;
        scale: .96;
    }
}

.dk-lista {
    display: flex;
    align-items: center;
    gap: 3px;
    overflow-x: auto;
    overflow-y: hidden;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
}

.dk-lista::-webkit-scrollbar {
    display: none;
}

.dk-it {
    position: relative;
    flex: 0 1 auto;
    min-width: 92px;
    max-width: 210px;
    height: 28px;
    display: flex;
    align-items: center;
    gap: 7px;
    padding: 0 3px 0 4px;
    border-radius: 11px;
    cursor: pointer;
    user-select: none;
    outline: none;
    transition: background .18s var(--glass-ease), opacity .22s ease, scale .32s var(--glass-mola);
}

/* Fio entre um chip e o outro (o das abas do Safari): some ao lado do chip
   em hover, que ja se destaca pelo fundo. */
.dk-it+.dk-it::before {
    content: "";
    position: absolute;
    left: -2px;
    top: 8px;
    bottom: 8px;
    width: 1px;
    background: var(--glass-borda);
    transition: opacity .18s ease;
}

.dk-it:hover::before,
.dk-it:hover+.dk-it::before {
    opacity: 0;
}

.dk-it:hover {
    background: var(--glass-realce);
}

.dk-it:active {
    scale: .96;
}

.dk-it:focus-visible {
    box-shadow: 0 0 0 2px var(--color-text-01);
}

/* Estados da animacao: o chip nasce invisivel enquanto a janela voa ate ele
   (dk-chegando) e encolhe antes de sair da lista (dk-saindo). */
.dk-it.dk-chegando {
    opacity: 0;
    scale: .6;
}

.dk-it.dk-saindo {
    opacity: 0;
    scale: .85;
    pointer-events: none;
    transition: opacity .16s ease, scale .18s ease;
}

.dk-av {
    flex: 0 0 20px;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-bg-01);
    box-shadow: inset 0 0 0 1px var(--glass-borda);
}

/* O avatar chega com as classes do cabecalho da janela (.avatar-perfil /
   .pd2-av-espaco), cujo tamanho esta escopado em .pd-v2 - aqui ele precisa
   do proprio. */
.dk-av>* {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: inherit;
    background-size: cover;
    background-position: center;
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
}

.dk-av .pd2-av-espaco {
    color: #fff;
}

.dk-av-ini {
    opacity: .7;
}

/* Chip sem avatar (Documento, AirStudio PRO/Auto): o icone do tipo. */
.dk-av .dk-av-ico svg {
    width: 13px;
    height: 13px;
}

.dk-av .dk-av-ico .ico-airstudio {
    fill: currentColor;
}

/* Janela VIVA minimizada (AirStudio Auto): fica no DOM, fora da tela.
   dk-indo = o instante do voo ate o chip (a mascara apaga, nada clica). */
.dk-oculto {
    display: none !important;
}

.dk-indo {
    pointer-events: none;
}

.dk-indo>.estudio-conteudo-modal-overlay {
    opacity: 0;
    transition: opacity .26s ease;
}

.dk-tit {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12.5px;
    font-weight: 550;
    line-height: 28px;
    letter-spacing: -.01em;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dk-x {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    border-radius: 6px;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity .15s ease, background .15s ease;
}

.dk-x svg {
    width: 10px;
    height: 10px;
}

.dk-it:hover .dk-x,
.dk-it:focus-visible .dk-x,
.dk-x:focus-visible {
    opacity: .55;
}

.dk-x:hover {
    opacity: 1;
    background: var(--glass-realce);
}

/* COMPACTA - os chips nao cabem com titulo (o JS mede): so os avatares, o
   titulo fica no tooltip e o X vira um selo no canto, no hover. */
.dk.dk-compacta .dk-it {
    min-width: 0;
    width: 28px;
    flex: 0 0 28px;
    padding: 0;
    justify-content: center;
}

.dk.dk-compacta .dk-it::before,
.dk.dk-compacta .dk-tit {
    display: none;
}

.dk.dk-compacta .dk-x {
    position: absolute;
    top: 0;
    right: 0;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--color-text-01);
    color: var(--color-bg);
}

.dk.dk-compacta .dk-x svg {
    width: 7px;
    height: 7px;
}

.dk.dk-compacta .dk-it:hover .dk-x,
.dk.dk-compacta .dk-x:hover {
    opacity: 1;
    background: var(--color-text-01);
}

/* ============================================================================
   DIALOGO PADRAO (#ap-dialogo, .apd-*) - JS: window.AirpostDialogo
   (browse/comum/js/popup-kit.js)
   ----------------------------------------------------------------------------
   Todo alerta, confirmacao e aviso do painel sai aqui - inclusive os alert()
   e Swal.fire() antigos, que o adaptador do popup-kit.js redireciona. O miolo
   e o kit .cf-* (o mesmo do AirpostConfirmar); a casca e propria e fica
   acima de todas as outras (z-index logo abaixo do tooltip).

   Mesma arquitetura das cascas de vidro: o vidro mora no ::before, o box
   nunca tem opacity < 1 (regra de ouro, secao 3a do bloco do vidro) e o
   fade de entrada/saida e do ::before, dos filhos e da mascara.
   ========================================================================== */
.apd {
    position: fixed;
    inset: 0;
    z-index: 2147483600;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.apd.apd-on {
    display: flex;
}

.apd-mask {
    position: absolute;
    inset: 0;
    background: var(--glass-scrim);
    -webkit-backdrop-filter: var(--glass-scrim-filtro);
    backdrop-filter: var(--glass-scrim-filtro);
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.apd-box {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 428px;
    border-radius: 22px;
    --color-bg: var(--pd2-campo);
    animation: glass-folha var(--glass-folha-dur) var(--glass-ease);
}

.apd-box::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    pointer-events: none;
    background: var(--glass-fundo-forte);
    -webkit-backdrop-filter: var(--glass-filtro-forte);
    backdrop-filter: var(--glass-filtro-forte);
    border: 1px solid var(--glass-borda);
    box-shadow: var(--glass-brilho), var(--glass-sombra), 0 40px 90px -30px rgba(0, 0, 0, .08);
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.apd-box>* {
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.apd.apd-saindo .apd-mask,
.apd.apd-saindo .apd-box::before,
.apd.apd-saindo .apd-box>* {
    opacity: 0;
    transition: opacity .16s ease;
}

.apd.apd-saindo .apd-box {
    scale: .97;
    transition: scale .16s ease;
}

.apd-pop {
    position: relative;
}

/* Sem o X da casca mini, o cabecalho nao precisa reservar o canto. */
.apd-pop .cf-hdr {
    padding-right: 22px;
}

.apd-pop:has(.apd-x) .cf-hdr {
    padding-right: 52px;
}

/* Mensagem longa rola no corpo; o rodape fica sempre a vista. */
.apd-pop .cf-body {
    max-height: min(56vh, 520px);
    overflow: auto;
}

.apd-pop .cf-body p {
    margin: 0 0 8px;
    text-wrap: pretty;
}

/* O rodape tem fundo proprio: acompanha o raio do vidro (o box nao corta com
   overflow para nao cortar a sombra do ::before). */
.apd-pop .cf-ftr {
    border-radius: 0 0 21px 21px;
}

.apd-respiro {
    height: 22px;
}

.apd-x {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 2;
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--glass-realce);
    color: var(--color-text-01);
    cursor: pointer;
    transition: background .15s ease;
}

.apd-x:hover {
    background: var(--color-hover-01);
}

/* Acao destrutiva: o vermelho aparece no hover (interface monocromatica). */
.apd .cf-btn-primary.apd-perigo:hover {
    background: #e83a3a;
    color: #fff;
}

/* Swal.showLoading() sobre o dialogo padrao: o botao principal vira spinner. */
.apd.apd-carregando [data-apd="ok"] {
    position: relative;
    color: transparent;
    pointer-events: none;
}

.apd.apd-carregando [data-apd="ok"]::after {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 2px solid currentColor;
    border-color: var(--color-btn-text-01) var(--color-btn-text-01) transparent transparent;
    animation: apd-gira .7s linear infinite;
}

@keyframes apd-gira {
    to {
        rotate: 360deg;
    }
}

/* ---------- SweetAlert na pele do sistema ----------
   O que o dialogo padrao nao cobre (campo de entrada, toast, ganchos de ciclo
   de vida) continua no SweetAlert2 - vestido com o mesmo material para nao
   destoar. O .swal2-container NAO ganha backdrop-filter: ele e pai do popup
   e viraria backdrop root dele (o vidro do popup nao enxergaria a pagina). */
:root .swal2-container.swal2-backdrop-show,
:root .swal2-container.swal2-noanimation {
    background: var(--glass-scrim) !important;
}

:root .swal2-popup {
    background: var(--glass-fundo-forte) !important;
    -webkit-backdrop-filter: var(--glass-filtro-forte);
    backdrop-filter: var(--glass-filtro-forte);
    border: 1px solid var(--glass-borda) !important;
    border-radius: 22px !important;
    box-shadow: var(--glass-brilho), var(--glass-sombra) !important;
    color: var(--color-text-01) !important;
}

:root .swal2-popup .swal2-title {
    color: var(--color-text-01) !important;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: -.02em;
    text-wrap: balance;
}

:root .swal2-popup .swal2-html-container {
    color: var(--color-text-01) !important;
    opacity: .78;
    font-size: 14px;
}

:root .swal2-popup .swal2-styled {
    border-radius: 13px !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 600;
    padding: 9px 18px !important;
}

:root .swal2-popup .swal2-styled.swal2-confirm {
    background: var(--color-btn-bg-01) !important;
    color: var(--color-btn-text-01) !important;
}

:root .swal2-popup .swal2-styled.swal2-cancel,
:root .swal2-popup .swal2-styled.swal2-deny {
    background: transparent !important;
    color: var(--color-text-01) !important;
    border: 1px solid var(--color-border) !important;
}

:root .swal2-popup .swal2-input,
:root .swal2-popup .swal2-textarea,
:root .swal2-popup .swal2-select {
    background: var(--pd2-campo) !important;
    border: 1px solid var(--color-border) !important;
    border-radius: 12px !important;
    color: var(--color-text-01) !important;
    box-shadow: none !important;
}

/* ============================================================================
   EDITOR DE BLOCOS v2 (editor-text.js, window.AirpostEditor)
   ----------------------------------------------------------------------------
   UM bloco so para os tres clientes do editor: descricao da TAREFA, pagina de
   DOCUMENTO e aba de NOTAS da marca. Antes eram tres copias (painel3 escopado
   em .item-post.tarefa, documentos.css em .ap-doc-page/.ap-nota-page e o
   dark.css repetindo tudo com cor fixa) que ja tinham divergido.

   Regras da casa aplicadas aqui:
   - cores por TOKEN (--ed-*): o dark.css so troca os tokens no :root;
   - chrome MONOCROMATICO: ativo/selecionado e a tinta (--color-btn-bg-01),
     nunca azul. Cor so onde ela e DADO (paleta de texto/realce, callout);
   - todo flutuante e VIDRO (--glass-*) e fica acima do popup de documento
     (#doc-popup, 99990): z-index 100050 (.ap-flut).
   ========================================================================== */
:root {
    --ed-linha: rgba(15, 23, 42, .12);
    --ed-linha-forte: rgba(15, 23, 42, .22);
    --ed-bloco: rgba(15, 23, 42, .045);
    --ed-realce: rgba(15, 23, 42, .06);
    --ed-sutil: rgba(15, 23, 42, .42);
    --ed-code-txt: #c0265e;
    --ed-link: #2d52b3;
    --ed-sel-bloco: rgba(15, 23, 42, .06);
    --ed-callout-neutral: rgba(15, 23, 42, .045);
    --ed-callout-info: rgba(47, 127, 209, .1);
    --ed-callout-success: rgba(47, 158, 91, .1);
    --ed-callout-warn: rgba(222, 176, 16, .15);
    --ed-callout-danger: rgba(224, 68, 62, .1);
}

/* ---------- 1. CONTEUDO ---------- */
.t-descricao .texto {
    caret-color: var(--color-text-01);
}

.t-descricao .texto p {
    margin: 0;
}

.t-descricao h1,
.t-descricao h2,
.t-descricao h3,
.t-descricao h4 {
    font-weight: 600;
    letter-spacing: -.015em;
    color: inherit;
}

.t-descricao h1 {
    font-size: 26px;
    line-height: 1.25;
    margin: 18px 0 6px;
}

.t-descricao h2 {
    font-size: 21px;
    line-height: 1.3;
    margin: 16px 0 5px;
}

.t-descricao h3 {
    font-size: 18px;
    line-height: 1.35;
    margin: 12px 0 4px;
}

.t-descricao h4 {
    font-size: 16px;
    line-height: 1.4;
    margin: 10px 0 4px;
}

.t-descricao .texto>h1:first-child,
.t-descricao .texto>h2:first-child,
.t-descricao .texto>h3:first-child,
.t-descricao .texto>h4:first-child {
    margin-top: 2px;
}

.t-descricao blockquote {
    margin: 8px 0;
    padding: 2px 0 2px 14px;
    border-left: 3px solid var(--color-text-01);
    background: transparent;
    font-style: normal;
    color: inherit;
    font-size: 1.04em;
}

.t-descricao pre {
    margin: 10px 0;
    padding: 14px 16px;
    background: var(--ed-bloco);
    border: 1px solid var(--ed-linha);
    border-radius: 10px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 13px;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
    tab-size: 4;
    color: inherit;
}

.t-descricao code {
    background: var(--ed-bloco);
    border: 1px solid var(--ed-linha);
    padding: 1px 5px;
    border-radius: 5px;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: .88em;
    color: var(--ed-code-txt);
}

.t-descricao pre code {
    background: none;
    border: 0;
    padding: 0;
    color: inherit;
    font-size: inherit;
}

.t-descricao hr.ap-divisor {
    border: none;
    border-top: 1px solid var(--ed-linha-forte);
    margin: 18px 0;
}

.t-descricao ul,
.t-descricao ol {
    padding-left: 26px;
    margin: 4px 0;
}

.t-descricao li {
    margin: 2px 0;
    padding-left: 2px;
}

.t-descricao ul {
    list-style: disc;
}

.t-descricao ul ul {
    list-style: circle;
}

.t-descricao ul ul ul {
    list-style: square;
}

.t-descricao ol {
    list-style: decimal;
}

.t-descricao ol ol {
    list-style: lower-alpha;
}

.t-descricao ol ol ol {
    list-style: lower-roman;
}

.t-descricao li::marker {
    color: color-mix(in srgb, var(--color-text-01) 60%, transparent);
}

.t-descricao a {
    color: var(--ed-link);
    text-decoration: underline;
    text-decoration-color: color-mix(in srgb, var(--ed-link) 40%, transparent);
    text-underline-offset: 2px;
    cursor: pointer;
}

.t-descricao a:hover {
    text-decoration-color: currentColor;
}

/* Cor de BLOCO (menu da alca): o fundo ganha respiro e canto, como destaque. */
.t-descricao .texto>div[style*="background-color"],
.t-descricao .texto>h1[style*="background-color"],
.t-descricao .texto>h2[style*="background-color"],
.t-descricao .texto>h3[style*="background-color"],
.t-descricao .texto>h4[style*="background-color"],
.t-descricao .texto>blockquote[style*="background-color"],
.t-descricao .texto li[style*="background-color"] {
    padding: 3px 8px;
    border-radius: 6px;
}

.t-descricao .texto>.checklist-item[style*="background-color"] {
    padding: 3px 8px;
    border-radius: 6px;
}

/* ---------- 2. CHECKLIST ---------- */
.t-descricao .checklist-item {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 2px 0;
}

.t-descricao .checklist-item input[type="checkbox"] {
    appearance: none;
    -webkit-appearance: none;
    position: relative;
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    margin: 3px 0 0 1px;
    border: 1.5px solid color-mix(in srgb, var(--color-text-01) 45%, transparent);
    border-radius: 5px;
    background: transparent;
    cursor: pointer;
    transition: background .15s, border-color .15s, transform .12s;
}

.t-descricao .checklist-item input[type="checkbox"]:hover {
    border-color: var(--color-text-01);
}

.t-descricao .checklist-item input[type="checkbox"]:active {
    transform: scale(.9);
}

.t-descricao .checklist-item input[type="checkbox"]::before {
    content: none;
    display: none;
}

.t-descricao .checklist-item input[type="checkbox"]:checked {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

.t-descricao .checklist-item input[type="checkbox"]:checked::after {
    content: "";
    display: block;
    position: absolute;
    left: 4.5px;
    top: 1.5px;
    width: 4px;
    height: 8px;
    border: solid var(--color-btn-text-01);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.t-descricao .checklist-item span {
    min-width: 1ch;
    flex: 1 1 auto;
    line-height: 1.5;
    transition: opacity .15s;
}

.t-descricao .checklist-item input[type="checkbox"]:checked+span {
    text-decoration: line-through;
    text-decoration-color: color-mix(in srgb, var(--color-text-01) 45%, transparent);
    opacity: .5;
}

/* ---------- 3. IMAGEM ---------- */
.t-descricao .ap-img-wrap {
    display: inline-block;
    position: relative;
    max-width: 100%;
    vertical-align: top;
    line-height: 0;
    margin: 6px 0;
    border-radius: 8px;
}

/* Por padrao a imagem NAO flutua (texto nao a envolve): fica sozinha na linha,
   alinhada na borda escolhida. Envolver e opt-in (.ap-wrap-text). */
.t-descricao .ap-img-wrap.ap-align-left {
    display: block;
    float: none;
    margin-left: 0;
    margin-right: auto;
}

.t-descricao .ap-img-wrap.ap-align-right {
    display: block;
    float: none;
    margin-left: auto;
    margin-right: 0;
}

.t-descricao .ap-img-wrap.ap-align-center {
    display: block;
    float: none;
    margin-left: auto;
    margin-right: auto;
}

.t-descricao .ap-img-wrap.ap-align-left.ap-wrap-text {
    float: left;
    margin-right: 14px;
    margin-left: 0;
}

.t-descricao .ap-img-wrap.ap-align-right.ap-wrap-text {
    float: right;
    margin-left: 14px;
    margin-right: 0;
}

.t-descricao .ap-img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    border-radius: 8px;
    cursor: pointer;
}

.t-descricao .ap-img-wrap:not([style*="width"]) .ap-img {
    width: auto;
}

.t-descricao .ap-img-wrap.selected,
.t-descricao .ap-img.selected {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 2px;
}

.t-descricao .ap-img-wrap.loading::after {
    content: "";
    position: absolute;
    inset: 0;
    background: color-mix(in srgb, var(--color-bg) 45%, transparent);
    border-radius: 8px;
    pointer-events: none;
}

.t-descricao .ap-img-progress {
    position: absolute;
    left: 8px;
    right: 8px;
    bottom: 8px;
    height: 4px;
    background: rgba(0, 0, 0, .18);
    border-radius: 4px;
    overflow: hidden;
    z-index: 2;
}

.t-descricao .ap-img-progress .bar {
    display: block;
    height: 100%;
    width: 0%;
    background: var(--color-btn-bg-01);
    transition: width .2s;
}

.t-descricao .ap-img-handle {
    position: absolute;
    bottom: 50%;
    width: 6px;
    height: 44px;
    max-height: 60%;
    transform: translateY(50%);
    background: var(--color-btn-bg-01);
    border: 2px solid var(--color-btn-text-01);
    border-radius: 6px;
    cursor: ew-resize;
    z-index: 3;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .3);
    touch-action: none;
}

.t-descricao .ap-img-handle.br {
    right: -4px;
}

.t-descricao .ap-img-handle.bl {
    left: -4px;
}

body.ap-redimensionando,
body.ap-redimensionando * {
    cursor: ew-resize !important;
    user-select: none !important;
}

/* ---------- 4. CARD DE LINK (OG) ---------- */
.t-descricao .ap-og-card {
    display: flex;
    gap: 12px;
    align-items: stretch;
    margin: 8px 0;
    padding: 10px 12px;
    border: 1px solid var(--ed-linha);
    border-radius: 12px;
    background: var(--ed-bloco);
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    position: relative;
    transition: border-color .15s, box-shadow .15s;
    overflow: hidden;
}

.t-descricao .ap-og-card:hover {
    border-color: var(--ed-linha-forte);
    box-shadow: 0 6px 18px -10px rgba(16, 24, 40, .35);
}

.t-descricao .ap-og-card .ap-og-thumb {
    flex: 0 0 84px;
    width: 84px;
    height: 64px;
    align-self: center;
    border-radius: 8px;
    background: var(--ed-realce) center/cover no-repeat;
}

.t-descricao .ap-og-card .ap-og-info {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
}

.t-descricao .ap-og-card .ap-og-ttl {
    font-weight: 600;
    font-size: 14px;
    line-height: 1.3;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.t-descricao .ap-og-card .ap-og-ds {
    font-size: 12.5px;
    opacity: .7;
    line-height: 1.35;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.t-descricao .ap-og-card .ap-og-host {
    font-size: 11.5px;
    opacity: .5;
    margin-top: 2px;
}

.t-descricao .ap-og-card .ap-og-tools {
    position: absolute;
    top: 6px;
    right: 6px;
    display: flex;
    gap: 2px;
    align-items: center;
    padding: 2px;
    border-radius: 8px;
    background: var(--glass-fundo);
    -webkit-backdrop-filter: var(--glass-filtro);
    backdrop-filter: var(--glass-filtro);
    border: 1px solid var(--glass-borda);
    opacity: 0;
    transition: opacity .15s;
}

.t-descricao .ap-og-card:hover .ap-og-tools {
    opacity: 1;
}

.t-descricao .ap-og-card .ap-og-size,
.t-descricao .ap-og-card .ap-og-x {
    width: 22px;
    height: 22px;
    line-height: 22px;
    text-align: center;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    user-select: none;
    color: var(--color-text-01);
    opacity: .7;
}

.t-descricao .ap-og-card .ap-og-x {
    font-size: 15px;
    font-weight: 400;
}

.t-descricao .ap-og-card .ap-og-size:hover,
.t-descricao .ap-og-card .ap-og-x:hover {
    background: var(--glass-realce);
    opacity: 1;
}

.t-descricao .ap-og-card .ap-og-x:hover {
    color: #e83a3a;
}

.t-descricao .ap-og-card.ap-og-sm .ap-og-size[data-size="sm"],
.t-descricao .ap-og-card.ap-og-md .ap-og-size[data-size="md"],
.t-descricao .ap-og-card.ap-og-lg .ap-og-size[data-size="lg"] {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    opacity: 1;
}

.t-descricao .ap-og-card.ap-og-sm {
    max-width: 380px;
    padding: 8px 10px;
    gap: 10px;
}

.t-descricao .ap-og-card.ap-og-sm .ap-og-thumb {
    flex: 0 0 44px;
    width: 44px;
    height: 44px;
}

.t-descricao .ap-og-card.ap-og-sm .ap-og-ttl {
    -webkit-line-clamp: 1;
    line-clamp: 1;
}

.t-descricao .ap-og-card.ap-og-sm .ap-og-ds {
    display: none;
}

.t-descricao .ap-og-card.ap-og-md {
    max-width: 480px;
}

.t-descricao .ap-og-card.ap-og-lg {
    max-width: 560px;
    flex-direction: column;
    gap: 10px;
}

.t-descricao .ap-og-card.ap-og-lg .ap-og-thumb {
    flex: none;
    width: 100%;
    height: 200px;
    align-self: stretch;
}

.t-descricao .ap-og-card.ap-og-lg .ap-og-ttl {
    font-size: 15px;
}

.t-descricao .ap-og-card.loading .ap-og-ttl {
    opacity: .55;
    font-weight: 500;
}

/* O card e um <a>: vence o sublinhado dos links do editor. */
.t-descricao a.ap-og-card:link,
.t-descricao a.ap-og-card:visited,
.t-descricao a.ap-og-card:hover {
    text-decoration: none;
    color: inherit;
}

/* ---------- 5. CHIPS: anexo e tarefa (monocromaticos) ---------- */
.t-descricao .ap-anexo-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 1px 9px;
    background: var(--ed-bloco);
    border: 1px solid var(--ed-linha);
    border-radius: 999px;
    color: inherit;
    text-decoration: none !important;
    font-size: .92em;
    line-height: 1.5;
    vertical-align: baseline;
}

.t-descricao .ap-anexo-pill:hover {
    background: var(--ed-realce);
    border-color: var(--ed-linha-forte);
}

.t-descricao .ap-anexo-pill.loading {
    opacity: .6;
    pointer-events: none;
}

.t-descricao .ap-anexo-pill .ap-anexo-ico,
.t-descricao .ap-anexo-pill .ap-anexo-pct {
    opacity: .55;
}

.t-descricao .ap-anexo-pill .ap-anexo-pct {
    font-size: .8em;
    margin-left: 2px;
}

.t-descricao .ap-taskref-chip {
    display: inline-flex;
    align-items: center;
    padding: 0 7px;
    background: var(--ed-realce);
    border: 1px solid var(--ed-linha);
    border-radius: 6px;
    color: inherit;
    font-size: .92em;
    font-weight: 500;
    cursor: pointer;
    vertical-align: baseline;
}

.t-descricao .ap-taskref-chip:hover {
    border-color: var(--ed-linha-forte);
    background: var(--ed-bloco);
}

/* ---------- 6. CALLOUT ---------- */
.t-descricao .ap-callout {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 12px 0;
    padding: 14px 16px;
    border-radius: 10px;
    border: 0;
    background: var(--ed-callout-neutral);
    cursor: text;
    position: relative;
}

.t-descricao .ap-callout-neutral {
    background: var(--ed-callout-neutral);
}

.t-descricao .ap-callout-info {
    background: var(--ed-callout-info);
}

.t-descricao .ap-callout-success {
    background: var(--ed-callout-success);
}

.t-descricao .ap-callout-warn {
    background: var(--ed-callout-warn);
}

.t-descricao .ap-callout-danger {
    background: var(--ed-callout-danger);
}

.t-descricao .ap-callout-ico {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
    line-height: 1;
    border-radius: 7px;
    background: transparent;
    color: inherit;
    user-select: none;
    cursor: pointer;
    transition: background .15s;
}

.t-descricao .texto .ap-callout-ico:hover {
    background: var(--ed-realce);
}

.t-descricao .ap-callout-body {
    flex: 1;
    min-width: 0;
    outline: none;
    line-height: 1.55;
    padding-top: 2px;
}

.t-descricao .ap-callout-body> :first-child {
    margin-top: 0;
}

.t-descricao .ap-callout-body> :last-child {
    margin-bottom: 0;
}

/* ---------- 7. TABELA ---------- */
.t-descricao .ap-table-wrap {
    margin: 12px 0;
    overflow-x: auto;
    border: 1px solid var(--ed-linha);
    border-radius: 10px;
    background: transparent;
}

.t-descricao .ap-table {
    width: 100%;
    border-collapse: collapse;
    border-style: hidden;
}

.t-descricao .ap-table td,
.t-descricao .ap-table th {
    border: 1px solid var(--ed-linha);
    padding: 8px 11px;
    min-width: 90px;
    vertical-align: top;
    outline: none;
    transition: background .12s;
}

.t-descricao .ap-table.ap-table-hdr tr:first-child td,
.t-descricao .ap-table.ap-table-hdr tr:first-child th {
    background: var(--ed-bloco);
    font-weight: 600;
}

.t-descricao .ap-table td.ap-cel-atv,
.t-descricao .ap-table th.ap-cel-atv {
    background: var(--ed-realce);
    box-shadow: inset 0 0 0 1.5px var(--color-text-01);
}

/* Barra antiga de botoes que vinha DENTRO do conteudo: os controles agora
   sao a barra flutuante (#ap-tbl-pop). HTML antigo ainda a traz ate o 1o foco. */
.t-descricao .ap-table-ctrl {
    display: none !important;
}

/* ---------- 8. COLUNAS ---------- */
.t-descricao .ap-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
    margin: 10px 0;
}

.t-descricao .ap-cols.ap-cols-3 {
    grid-template-columns: 1fr 1fr 1fr;
}

.t-descricao .ap-col {
    min-width: 0;
    min-height: 40px;
    padding: 6px 10px;
    border: 1px dashed transparent;
    border-radius: 8px;
    outline: none;
    transition: border-color .15s;
}

.t-descricao .texto .ap-cols:hover .ap-col,
.t-descricao .texto .ap-col:focus-within {
    border-color: var(--ed-linha);
}

/* ---------- 9. TOGGLE ---------- */
.t-descricao .ap-toggle {
    margin: 6px 0;
}

.t-descricao .ap-toggle-head {
    display: flex;
    align-items: flex-start;
    gap: 4px;
}

.t-descricao .ap-toggle-arrow {
    flex: 0 0 24px;
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    cursor: pointer;
    user-select: none;
    font-size: 12px;
    opacity: .7;
    transition: transform .18s var(--glass-ease), background .15s, opacity .15s;
    transform: rotate(90deg);
    margin-top: 0;
}

.t-descricao .ap-toggle-arrow:hover {
    background: var(--ed-realce);
    opacity: 1;
}

.t-descricao .ap-toggle.fechado .ap-toggle-arrow {
    transform: rotate(0deg);
}

.t-descricao .ap-toggle-ttl {
    flex: 1;
    min-width: 0;
    font-weight: 600;
    outline: none;
    padding: 1px 0;
}

.t-descricao .ap-toggle-body {
    margin-left: 12px;
    padding: 2px 0 2px 16px;
    border-left: 1.5px solid var(--ed-linha);
    outline: none;
}

.t-descricao .ap-toggle.fechado .ap-toggle-body {
    display: none;
}

/* ---------- 10. PLACEHOLDER ---------- */
/* Linha vazia do caret. float + height 0: o caret fica no INICIO da linha,
   nao depois do texto do placeholder (tecnica do ProseMirror/TipTap). */
.t-descricao .texto .ap-ph-linha::before {
    content: "Digite \"/\" para comandos";
    float: left;
    height: 0;
    pointer-events: none;
    color: var(--ed-sutil);
    font-weight: 400;
    font-style: normal;
}

.t-descricao .texto h1.ap-ph-linha::before,
.t-descricao .texto h2.ap-ph-linha::before,
.t-descricao .texto h3.ap-ph-linha::before,
.t-descricao .texto h4.ap-ph-linha::before {
    font-weight: 600;
}

.t-descricao .texto h1.ap-ph-linha::before {
    content: "T\00EDtulo 1";
}

.t-descricao .texto h2.ap-ph-linha::before {
    content: "T\00EDtulo 2";
}

.t-descricao .texto h3.ap-ph-linha::before {
    content: "T\00EDtulo 3";
}

.t-descricao .texto h4.ap-ph-linha::before {
    content: "T\00EDtulo 4";
}

.t-descricao .texto li.ap-ph-linha::before {
    content: "Item da lista";
}

.t-descricao .texto blockquote.ap-ph-linha::before {
    content: "Cita\00E7\00E3o";
}

.t-descricao .texto pre.ap-ph-linha::before {
    content: "C\00F3 digo";
}

.t-descricao .texto .ap-toggle-ttl.ap-ph-linha::before {
    content: "T\00EDtulo do alternador";
    font-weight: 600;
}

.t-descricao .texto .ap-callout-body .ap-ph-linha::before,
.t-descricao .texto .ap-toggle-body .ap-ph-linha::before,
.t-descricao .texto .ap-col .ap-ph-linha::before {
    content: "Escreva algo";
}

.t-descricao .texto .checklist-item.ap-ph-linha::before {
    content: none;
}

.t-descricao .texto .checklist-item.ap-ph-linha>span::before {
    content: "Tarefa";
    float: left;
    height: 0;
    pointer-events: none;
    color: var(--ed-sutil);
}

/* Editor inteiro vazio e SEM foco: convite no lugar da caixa vazia. Com foco
   quem fala e o placeholder da linha. */
.t-descricao .texto:not(:focus):empty::before,
.t-descricao .texto:not(:focus):has(> div:only-child > br:only-child)::before {
    content: "Escreva algo ou digite \"/\" para ver os blocos";
    position: absolute;
    pointer-events: none;
    color: var(--ed-sutil);
}

.item-post.tarefa .t-descricao .texto:not(:focus):empty::before,
.item-post.tarefa .t-descricao .texto:not(:focus):has(> div:only-child > br:only-child)::before {
    content: "Adicione uma descri\00E7\00E3o ou digite \"/\" para ver os blocos";
}

.t-descricao .texto:not([data-ph]) {
    position: relative;
}

/* ---------- 11. SELECAO DE BLOCO, ARRASTO ---------- */
.t-descricao .texto .ap-blk-sel {
    background: var(--ed-sel-bloco);
    border-radius: 8px;
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--color-text-01) 55%, transparent);
}

.t-descricao .texto .ap-drag-src {
    opacity: .35;
}

body.ap-arrastando,
body.ap-arrastando * {
    cursor: grabbing !important;
    user-select: none !important;
}

.ap-drop-linha {
    position: absolute;
    display: none;
    height: 3px;
    border-radius: 3px;
    background: var(--color-btn-bg-01);
    pointer-events: none;
    z-index: 100046;
}

::highlight(ap-ia-sel) {
    background-color: color-mix(in srgb, var(--color-text-01) 18%, transparent);
}

/* ---------- 12. SUPERFICIES FLUTUANTES (vidro) ---------- */
.ap-flut {
    z-index: 100050;
}

.t-descricao .editor-toolbar .ap-dropdown-menu,
.ap-slash-menu,
.ap-img-popover,
.ap-anexo-picker,
.ap-color-picker,
.ap-inline-picker,
.ap-link-popover,
.ap-link-card,
.ap-blk-menu,
.ap-tbl-pop,
.ap-callout-pop,
.ap-ia-pop,
.ap-code-copy {
    background: var(--glass-fundo);
    -webkit-backdrop-filter: var(--glass-filtro);
    backdrop-filter: var(--glass-filtro);
    border: 1px solid var(--glass-borda);
    box-shadow: var(--glass-brilho), var(--glass-sombra);
    color: var(--color-text-01);
}

svg.ap-ico {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    display: block;
}

/* Botao-icone base de todas as barras do editor. */
.t-descricao .editor-toolbar button,
.ap-img-popover button,
.ap-tbl-pop button,
.ap-link-card button,
.ap-line-handle button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 4px;
    height: 30px;
    min-width: 30px;
    padding: 0 7px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 500;
    line-height: 1;
    opacity: .82;
    cursor: pointer;
    transition: background .12s, opacity .12s, color .12s;
}

.t-descricao .editor-toolbar button:hover,
.ap-img-popover button:hover,
.ap-tbl-pop button:hover,
.ap-link-card button:hover {
    background: var(--glass-realce);
    opacity: 1;
}

.t-descricao .editor-toolbar button.ativo,
.t-descricao .editor-toolbar .ap-dropdown-toggle.aberto,
.ap-img-popover button.ativo,
.ap-tbl-pop button.ativo {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    opacity: 1;
}

.ap-img-popover button.danger:hover,
.ap-tbl-pop button.danger:hover,
.ap-link-card button.danger:hover {
    color: #e83a3a;
    background: rgba(232, 58, 58, .1);
}

.t-descricao .editor-toolbar .ap-sep,
.ap-img-popover .sep,
.ap-tbl-pop .sep,
.ap-link-card .sep {
    display: inline-block;
    flex: 0 0 1px;
    width: 1px;
    height: 18px;
    margin: 0 3px;
    background: var(--ed-linha-forte);
}

/* ---------- 13. BARRA DA SELECAO ---------- */
/* O VIDRO da barra mora no ::before (DEVELOPMENT_RULES 14.3): o dropdown
   "Transformar em" fica DENTRO dela, e com o backdrop-filter na propria barra
   ele so desfocaria a barra, nao a pagina. Pelo mesmo motivo a entrada da
   barra so desliza - opacidade animada num ancestral apaga o desfoque. */
.t-descricao .editor-toolbar {
    display: none;
    align-items: center;
    gap: 1px;
    position: absolute;
    z-index: 999;
    padding: 4px;
    border-radius: 12px;
    white-space: nowrap;
    background: transparent;
    border: 0;
    box-shadow: none;
    color: var(--color-text-01);
    animation: ap-ed-sobe .16s var(--glass-ease);
}

.t-descricao .editor-toolbar::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    background: var(--glass-fundo);
    -webkit-backdrop-filter: var(--glass-filtro);
    backdrop-filter: var(--glass-filtro);
    border: 1px solid var(--glass-borda);
    box-shadow: var(--glass-brilho), var(--glass-sombra);
    pointer-events: none;
}

@keyframes ap-ed-sobe {
    from {
        translate: 0 4px;
    }
}

@keyframes ap-ed-entra {
    from {
        opacity: 0;
        translate: 0 3px;
    }
}

.t-descricao .editor-toolbar .ap-tb-tipo {
    padding: 0 6px 0 10px;
    gap: 4px;
    font-weight: 600;
}

.t-descricao .editor-toolbar .ap-tb-tipo .lbl {
    max-width: 120px;
    overflow: hidden;
    text-overflow: ellipsis;
}

.t-descricao .editor-toolbar .ap-dropdown-toggle svg.ap-ico,
.t-descricao .editor-toolbar .ap-tb-cor svg.ap-ico {
    width: 12px;
    height: 12px;
    opacity: .6;
}

.t-descricao .editor-toolbar .ico-cor {
    font-weight: 700;
    font-size: 14px;
    border-bottom: 2px solid currentColor;
    line-height: 1;
    padding: 0 1px;
}

.t-descricao .editor-toolbar .ap-tb-ia {
    padding: 0 9px;
    font-weight: 600;
}

.t-descricao .editor-toolbar .ap-dropdown {
    position: relative;
    display: inline-flex;
}

.t-descricao .editor-toolbar .ap-dropdown-menu {
    display: none;
    position: absolute;
    top: calc(100% + 8px);
    left: -4px;
    z-index: 1000;
    min-width: 236px;
    padding: 5px;
    border-radius: 12px;
    white-space: normal;
}

.t-descricao .editor-toolbar .ap-dropdown-menu.ap-dd-dir {
    left: auto;
    right: -4px;
    min-width: 200px;
}

.t-descricao .editor-toolbar .ap-dropdown-menu.open {
    display: block;
    overflow-y: auto;
    overscroll-behavior: contain;
    animation: ap-ed-entra .14s var(--glass-ease);
}

/* Sem espaco embaixo (barra perto do rodape do popup): abre para cima.
   A classe e a max-height vem do posicionarMenuBarra (editor-text.js).
   z-index -1: a sombra do vidro cai para BAIXO e, com o menu acima da barra,
   apagava os botoes dela (o "Transformar em" aberto ficava cinza). Na camada
   negativa da barra ele fica sob os botoes e ainda acima do texto. */
.t-descricao .editor-toolbar .ap-dropdown-menu.ap-dd-cima {
    top: auto;
    bottom: calc(100% + 8px);
    z-index: -1;
}

/* Item de menu com icone + rotulo + atalho (barra, menu do bloco, IA). */
.t-descricao .editor-toolbar .ap-dropdown-menu button,
.ap-blk-menu .ap-bm-it,
.ap-ia-pop .ap-ia-it {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    height: auto;
    min-height: 32px;
    padding: 6px 8px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 500;
    text-align: left;
    opacity: 1;
    cursor: pointer;
}

.t-descricao .editor-toolbar .ap-dropdown-menu button:hover,
.ap-blk-menu .ap-bm-it:hover,
.ap-ia-pop .ap-ia-it:hover,
.ap-ia-pop .ap-ia-it.sel {
    background: var(--glass-realce);
}

.t-descricao .editor-toolbar .ap-dropdown-menu button.ativo {
    background: var(--glass-realce);
    color: var(--color-text-01);
    font-weight: 600;
}

.ap-dd-ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    opacity: .75;
}

.ap-dd-lbl {
    flex: 1 1 auto;
    min-width: 0;
}

.ap-dd-kbd {
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 500;
    opacity: .45;
    letter-spacing: .02em;
}

.ap-dd-sec,
.ap-bm-sec,
.ap-ia-sec,
.ap-cp-sec {
    padding: 6px 8px 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    opacity: .5;
}

.ap-dd-sep,
.ap-bm-sep {
    height: 1px;
    margin: 5px 4px;
    background: var(--ed-linha);
}

/* ---------- 14. MENU "/" ---------- */
.ap-slash-menu {
    position: absolute;
    display: none;
    flex-direction: column;
    width: 320px;
    max-width: calc(100vw - 24px);
    max-height: 400px;
    padding: 0;
    border-radius: 14px;
    overflow: hidden;
    animation: ap-ed-entra .14s var(--glass-ease);
}

.ap-slash-menu .ap-slash-lst {
    flex: 1 1 auto;
    overflow-y: auto;
    padding: 5px;
    overscroll-behavior: contain;
}

.ap-slash-menu .ap-slash-grp {
    padding: 8px 8px 4px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    opacity: .5;
}

.ap-slash-menu .ap-slash-item {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 5px 8px;
    border-radius: 9px;
    cursor: pointer;
    color: var(--color-text-01);
    min-width: 0;
}

.ap-slash-menu .ap-slash-item.selected {
    background: var(--glass-realce);
}

.ap-slash-menu .ap-slash-icon {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 9px;
    border: 1px solid var(--ed-linha);
    background: var(--pd2-controle, rgba(255, 255, 255, .7));
    color: var(--color-text-01);
}

.ap-slash-menu .ap-slash-icon svg.ap-ico {
    width: 18px;
    height: 18px;
}

.ap-slash-menu .ap-slash-text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    line-height: 1.25;
    min-width: 0;
    flex: 1 1 auto;
}

.ap-slash-menu .ap-slash-label {
    font-size: 13.5px;
    font-weight: 500;
}

.ap-slash-menu .ap-slash-hint {
    font-size: 11.5px;
    opacity: .5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ap-slash-menu .ap-slash-md {
    flex: 0 0 auto;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11px;
    opacity: .45;
}

.ap-slash-menu .ap-slash-empty {
    padding: 18px 14px;
    text-align: center;
    font-size: 13px;
    opacity: .55;
}

.ap-slash-menu .ap-slash-ft {
    display: flex;
    gap: 12px;
    padding: 7px 12px;
    border-top: 1px solid var(--ed-linha);
    font-size: 11px;
    opacity: .5;
}

/* ---------- 15. ALCA DO BLOCO (+ e ::) ---------- */
.ap-line-handle {
    position: absolute;
    display: none;
    align-items: center;
    gap: 0;
    height: 24px;
    z-index: 100045;
}

.ap-line-handle button {
    width: 24px;
    min-width: 24px;
    height: 24px;
    padding: 0;
    border-radius: 6px;
    opacity: .35;
}

.ap-line-handle button:hover {
    opacity: 1;
    background: var(--ed-realce);
}

.ap-line-handle .ap-lh-alca {
    cursor: grab;
    touch-action: none;
}

.ap-line-handle svg.ap-ico {
    width: 16px;
    height: 16px;
}

/* Alca COMPACTA: o respiro ate a borda do popup (26px na tarefa) nao cabe
   os dois botoes. Fica UM so, de 22px: "+" na linha vazia, "::" na linha com
   texto (o menu do "::" tem "Inserir bloco abaixo"). Quem escolhe o modo e o
   positionLineHandle (editor-text.js), medindo a area visivel. */
.ap-line-handle.lh-compacta button {
    width: 22px;
    min-width: 22px;
}

.ap-line-handle.lh-so-add .ap-lh-alca,
.ap-line-handle.lh-so-alca .ap-lh-add {
    display: none;
}

/* ---------- 16. MENU DO BLOCO ---------- */
.ap-blk-menu {
    position: absolute;
    display: none;
    width: 272px;
    padding: 5px;
    border-radius: 14px;
    animation: ap-ed-entra .14s var(--glass-ease);
}

.ap-blk-menu .ap-bm-tipos {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 2px;
    padding: 0 3px 4px;
}

.ap-blk-menu .ap-bm-tipo {
    height: 34px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: .8;
}

.ap-blk-menu .ap-bm-tipo:hover {
    background: var(--glass-realce);
    opacity: 1;
}

.ap-blk-menu .ap-bm-tipo.ativo {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    opacity: 1;
}

.ap-blk-menu .ap-bm-cores {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 3px;
    padding: 2px 5px 4px;
}

.ap-blk-menu .ap-bm-cores button {
    height: 22px;
    border-radius: 6px;
    border: 1px solid var(--ed-linha);
    background: transparent;
    color: var(--color-text-01);
    font-size: 12px;
    font-weight: 700;
    padding: 0;
    cursor: pointer;
    transition: transform .1s;
}

.ap-blk-menu .ap-bm-cores button:hover {
    transform: scale(1.12);
}

.ap-blk-menu .ap-bm-cor-bg.sem,
.ap-color-picker .grid button.sem[data-mode="bg"] {
    background: linear-gradient(135deg, transparent 45%, var(--ed-linha-forte) 45%, var(--ed-linha-forte) 55%, transparent 55%);
}

.ap-blk-menu .ap-bm-it.danger:hover {
    color: #e83a3a;
    background: rgba(232, 58, 58, .1);
}

.ap-blk-menu .ap-bm-it:disabled {
    opacity: .35;
    cursor: default;
    background: transparent;
}

/* ---------- 17. POPOVER DE IMAGEM, TABELA, CALLOUT ---------- */
.ap-img-popover,
.ap-tbl-pop {
    position: absolute;
    display: none;
    align-items: center;
    gap: 1px;
    padding: 4px;
    border-radius: 12px;
}

.ap-img-popover .ap-img-tam {
    padding: 0 7px;
    font-size: 12px;
    font-variant-numeric: tabular-nums;
}

.ap-callout-pop {
    position: absolute;
    display: none;
    width: 268px;
    padding: 6px;
    border-radius: 14px;
}

.ap-callout-pop .ap-cp-tipos {
    display: flex;
    gap: 6px;
    padding: 2px 6px 6px;
}

.ap-callout-pop .ap-cp-tipo {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: 1px solid var(--ed-linha-forte);
    cursor: pointer;
    padding: 0;
}

.ap-callout-pop .ap-cp-tipo.ap-callout-neutral {
    background: var(--ed-callout-neutral);
}

.ap-callout-pop .ap-cp-tipo.ap-callout-info {
    background: var(--ed-callout-info);
}

.ap-callout-pop .ap-cp-tipo.ap-callout-success {
    background: var(--ed-callout-success);
}

.ap-callout-pop .ap-cp-tipo.ap-callout-warn {
    background: var(--ed-callout-warn);
}

.ap-callout-pop .ap-cp-tipo.ap-callout-danger {
    background: var(--ed-callout-danger);
}

.ap-callout-pop .ap-cp-tipo.ativo {
    box-shadow: 0 0 0 2px var(--color-btn-bg-01);
}

.ap-callout-pop .ap-cp-emojis {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 1px;
    padding: 0 3px 3px;
}

.ap-callout-pop .ap-cp-emoji {
    height: 26px;
    border: 0;
    border-radius: 6px;
    background: transparent;
    font-size: 16px;
    cursor: pointer;
    padding: 0;
}

.ap-callout-pop .ap-cp-emoji:hover {
    background: var(--glass-realce);
}

/* ---------- 18. LINK: popover de URL e cartao ---------- */
.ap-link-popover {
    position: absolute;
    display: none;
    flex-direction: column;
    gap: 4px;
    width: 360px;
    max-width: calc(100vw - 24px);
    padding: 6px;
    border-radius: 14px;
}

.ap-link-popover .ap-lp-linha {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 0 0 0 8px;
    border-radius: 10px;
    background: var(--glass-realce);
}

.ap-link-popover .ap-lp-ico {
    opacity: .5;
    display: inline-flex;
}

.ap-link-popover input {
    flex: 1 1 auto;
    min-width: 0;
    height: 34px;
    padding: 0 6px 0 2px;
    border: 0;
    background: transparent !important;
    color: var(--color-text-01);
    font-size: 13.5px;
    outline: none;
}

.ap-link-popover .ap-lp-txt {
    display: none;
    margin-right: 0;
}

.ap-link-popover.com-texto .ap-lp-txt {
    display: flex;
}

.ap-lp-ok {
    flex: 0 0 auto;
    height: 30px;
    margin: 2px;
    padding: 0 12px !important;
    border: 0;
    border-radius: 8px !important;
    background: var(--color-btn-bg-01) !important;
    color: var(--color-btn-text-01) !important;
    font-size: 12.5px;
    font-weight: 600;
    opacity: 1 !important;
    cursor: pointer;
}

.ap-link-popover .ap-lp-dica {
    padding: 2px 8px 2px;
    font-size: 11px;
    opacity: .5;
}

.ap-link-card {
    position: absolute;
    display: none;
    align-items: center;
    padding: 4px;
    border-radius: 12px;
    max-width: calc(100vw - 24px);
}

.ap-link-card .ap-lc-ver,
.ap-link-card .ap-lc-edit {
    display: flex;
    align-items: center;
    gap: 1px;
}

.ap-link-card .ap-lc-edit {
    display: none;
    gap: 4px;
}

.ap-link-card.editando .ap-lc-ver {
    display: none;
}

.ap-link-card.editando .ap-lc-edit {
    display: flex;
}

.ap-link-card .ap-lc-url {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 320px;
    height: 30px;
    padding: 0 8px;
    border-radius: 8px;
    color: var(--color-text-01);
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
}

.ap-link-card .ap-lc-url:hover {
    background: var(--glass-realce);
}

.ap-link-card .ap-lc-ico {
    opacity: .5;
    display: inline-flex;
}

.ap-link-card .ap-lc-txt {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.ap-link-card input {
    width: 280px;
    max-width: 60vw;
    height: 32px;
    padding: 0 10px;
    border: 0;
    border-radius: 8px;
    background: var(--glass-realce);
    color: var(--color-text-01);
    font-size: 13px;
    outline: none;
}

/* ---------- 19. COR (texto e realce) ---------- */
.ap-color-picker {
    position: absolute;
    display: none;
    width: 292px;
    padding: 6px 8px 8px;
    border-radius: 14px;
}

.ap-color-picker .hdr {
    padding: 4px 2px;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: none;
    opacity: .5;
}

.ap-color-picker .grid {
    display: grid;
    grid-template-columns: repeat(10, 1fr);
    gap: 4px;
    margin-bottom: 4px;
}

.ap-color-picker button {
    width: 24px;
    height: 24px;
    padding: 0;
    border-radius: 7px;
    border: 1px solid var(--ed-linha);
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: transform .1s;
}

.ap-color-picker button:hover {
    transform: scale(1.12);
}

/* ---------- 20. SELETORES INLINE (@, #, :) E ANEXO ---------- */
.ap-inline-picker {
    position: absolute;
    display: none;
    min-width: 250px;
    max-width: 320px;
    max-height: 300px;
    overflow-y: auto;
    padding: 5px;
    border-radius: 12px;
}

.ap-pkr-item {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 6px 8px;
    border-radius: 8px;
    cursor: pointer;
    color: var(--color-text-01);
}

.ap-pkr-item.selected,
.ap-pkr-item:hover {
    background: var(--glass-realce);
}

.ap-pkr-item .th {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--ed-realce) center/cover no-repeat;
    flex: 0 0 26px;
}

.ap-pkr-item .th.icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.ap-pkr-item .ap-pkr-hash {
    width: 24px;
    height: 24px;
    flex: 0 0 24px;
    border-radius: 7px;
    background: var(--ed-realce);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.ap-pkr-item .nm {
    font-size: 13px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.ap-pkr-item .ap-pkr-emoji {
    width: 24px;
    flex: 0 0 24px;
    text-align: center;
    font-size: 18px;
    line-height: 24px;
}

.ap-pkr-empty {
    padding: 10px;
    text-align: center;
    font-size: 12px;
    opacity: .55;
}

.ap-anexo-picker {
    position: absolute;
    display: flex;
    flex-direction: column;
    width: 320px;
    max-height: 360px;
    overflow: hidden;
    border-radius: 14px;
}

.ap-anexo-picker .hdr {
    padding: 10px 12px 6px;
    font-size: 11px;
    font-weight: 600;
    opacity: .5;
    border: 0;
}

.ap-anexo-picker .lst {
    overflow-y: auto;
    padding: 0 5px 5px;
}

.ap-anexo-picker .it {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 6px 8px;
    border-radius: 8px;
    cursor: pointer;
}

.ap-anexo-picker .it:hover {
    background: var(--glass-realce);
}

.ap-anexo-picker .th {
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    border-radius: 7px;
    background: var(--ed-realce) center/cover no-repeat;
}

.ap-anexo-picker .th.icon {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    font-weight: 700;
}

.ap-anexo-picker .nm {
    font-size: 13px;
}

.ap-anexo-picker .nm em {
    font-style: normal;
    opacity: .5;
}

/* ---------- 21. COPIAR CODIGO ---------- */
.ap-code-copy {
    position: absolute;
    display: none;
    align-items: center;
    gap: 5px;
    height: 26px;
    padding: 0 9px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    z-index: 100040;
}

.ap-code-copy svg.ap-ico {
    width: 13px;
    height: 13px;
}

.ap-code-copy.ok {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* ---------- 22. IA ---------- */
.ap-ia-pop {
    position: absolute;
    display: none;
    flex-direction: column;
    max-width: calc(100vw - 24px);
    padding: 6px;
    border-radius: 16px;
    animation: ap-ed-entra .16s var(--glass-ease);
}

.ap-ia-pop .ap-ia-campo {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 4px 4px 4px 10px;
    border-radius: 12px;
    background: var(--glass-realce);
}

.ap-ia-pop .ap-ia-marca {
    display: inline-flex;
}

.ap-ia-pop .ap-ia-input {
    flex: 1 1 auto;
    min-width: 0;
    height: 34px;
    border: 0;
    background: transparent;
    color: var(--color-text-01);
    font-size: 14px;
    outline: none;
}

.ap-ia-pop .ap-ia-input::placeholder {
    color: var(--ed-sutil);
}

.ap-ia-pop .ap-ia-enviar {
    width: 32px;
    height: 32px;
    border: 0;
    border-radius: 9px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.ap-ia-pop[data-fase="carregando"] .ap-ia-enviar {
    opacity: .35;
    pointer-events: none;
}

.ap-ia-pop .ap-ia-corpo {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.ap-ia-pop .ap-ia-lst {
    display: flex;
    flex-direction: column;
    max-height: 300px;
    overflow-y: auto;
}

.ap-ia-pop .ap-ia-carregando {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 12px 10px 6px;
    font-size: 13px;
    font-weight: 500;
}

.ap-ia-pop .ap-ia-pulso {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    animation: ap-ia-pulso 1s ease-in-out infinite;
}

@keyframes ap-ia-pulso {
    50% {
        transform: scale(.55);
        opacity: .4;
    }
}

.ap-ia-pop .ap-ia-parar {
    margin-left: auto;
    height: 28px;
    padding: 0 10px;
    border: 1px solid var(--ed-linha-forte);
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
}

.ap-ia-pop .ap-ia-esq {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 6px 10px 12px;
}

.ap-ia-pop .ap-ia-esq i {
    display: block;
    height: 10px;
    border-radius: 6px;
    background: linear-gradient(90deg, var(--ed-realce) 0%, var(--ed-linha-forte) 50%, var(--ed-realce) 100%);
    background-size: 200% 100%;
    animation: ap-ia-brilho 1.2s linear infinite;
}

.ap-ia-pop .ap-ia-esq i:nth-child(2) {
    width: 86%;
}

.ap-ia-pop .ap-ia-esq i:nth-child(3) {
    width: 62%;
}

@keyframes ap-ia-brilho {
    to {
        background-position: -200% 0;
    }
}

.ap-ia-pop .ap-ia-res {
    margin: 8px 2px 4px;
    padding: 10px 12px;
    max-height: 320px;
    overflow-y: auto;
    border-radius: 12px;
    background: var(--pd2-campo, rgba(255, 255, 255, .5));
    border: 1px solid var(--ed-linha);
    font-size: 14px;
    line-height: 1.55;
}

.ap-ia-pop .ap-ia-res .ap-ia-prev> :first-child {
    margin-top: 0;
}

.ap-ia-pop .ap-ia-acts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 6px 2px 2px;
}

.ap-ia-pop .ap-ia-bt {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 32px;
    padding: 0 11px;
    border: 1px solid var(--ed-linha-forte);
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}

.ap-ia-pop .ap-ia-bt svg.ap-ico {
    width: 14px;
    height: 14px;
}

.ap-ia-pop .ap-ia-bt:hover {
    background: var(--glass-realce);
}

.ap-ia-pop .ap-ia-bt.primario {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.ap-ia-pop .ap-ia-bt.fantasma {
    border-color: transparent;
    margin-left: auto;
    opacity: .7;
}

.ap-ia-pop .ap-ia-aviso {
    padding: 6px 4px 2px;
    font-size: 11px;
    opacity: .45;
}

.ap-ia-pop .ap-ia-erro {
    padding: 12px 10px 4px;
    font-size: 13px;
}

/* ---------- 23. JANELA DE ATALHOS (dentro do AirpostDialogo) ---------- */
.ap-atalhos {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px 26px;
    text-align: left;
    max-height: 60vh;
    overflow-y: auto;
    padding: 2px;
}

.ap-atalhos .ap-at-ttl {
    font-size: 11px;
    font-weight: 600;
    opacity: .5;
    margin: 2px 0 6px;
}

.ap-atalhos .ap-at-l {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 5px 0;
    border-bottom: 1px solid var(--ed-linha);
    font-size: 13px;
}

.ap-atalhos kbd {
    flex: 0 0 auto;
    padding: 2px 7px;
    border-radius: 6px;
    border: 1px solid var(--ed-linha-forte);
    background: var(--ed-bloco);
    color: inherit;
    font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    font-size: 11.5px;
    box-shadow: none;
}

/* EDITOR DE BLOCOS v2 - Observacoes internas do CONTEUDO (popup). O editor
   mora na caixa do campo (.campo-style-02 > .inpt.observacoes > .t-obs);
   o autosave segue o do campo (savePostObservacao). Convite proprio quando
   vazio: o generico fala em "descricao". */
.t-descricao.t-obs .texto:not(:focus):empty::before,
.t-descricao.t-obs .texto:not(:focus):has(> div:only-child > br:only-child)::before {
    content: "Anota\00E7\00F5 es para o time (n\00E3o v\00E3o para a rede) \2014  digite \"/\" para ver os blocos";
}

/* EDITOR DE BLOCOS v2 - card de link: carregando, miniatura e "Transformar em
   link". O icone de link e mascara CSS: o card e salvo com a barra dentro e o
   sanitizador nao deixa <svg> no conteudo. */
.t-descricao .ap-og-card {
    white-space: normal;
}

@keyframes ap-og-brilho {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: -100% 0;
    }
}

.t-descricao .ap-og-card .ap-og-thumb.ap-og-esq,
.t-descricao .ap-og-card .ap-og-thumb.ap-og-carregando,
.t-descricao .ap-og-card .ap-og-esq-linha {
    background-image: linear-gradient(90deg, var(--ed-realce) 25%, var(--ed-linha) 50%, var(--ed-realce) 75%) !important;
    background-size: 300% 100% !important;
    animation: ap-og-brilho 1.2s linear infinite;
}

.t-descricao .ap-og-card .ap-og-esq-linha {
    display: block;
    width: 70%;
    height: 8px;
    margin: 3px 0 1px;
    border-radius: 4px;
}

.t-descricao .ap-og-card.loading {
    cursor: progress;
}

/* Miniatura que nao abre mais: icone de link no lugar do quadrado vazio. */
.t-descricao .ap-og-card .ap-og-thumb.ap-og-falhou {
    position: relative;
    background-image: none !important;
}

.t-descricao .ap-og-card .ap-og-thumb.ap-og-falhou::after,
.t-descricao .ap-og-card .ap-og-link::before {
    content: "";
    position: absolute;
    inset: 0;
    margin: auto;
    background-color: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71'/%3E%3Cpath d='M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71'/%3E%3C/svg%3E") center / contain no-repeat;
}

.t-descricao .ap-og-card .ap-og-thumb.ap-og-falhou::after {
    width: 20px;
    height: 20px;
    color: var(--color-text-01);
    opacity: .4;
}

.t-descricao .ap-og-card .ap-og-link {
    position: relative;
    width: 22px;
    height: 22px;
    border-radius: 6px;
    cursor: pointer;
    color: var(--color-text-01);
    opacity: .7;
}

.t-descricao .ap-og-card .ap-og-link::before {
    width: 13px;
    height: 13px;
}

.t-descricao .ap-og-card .ap-og-link:hover {
    background: var(--glass-realce);
    opacity: 1;
}

/* Design do editor de artes nos anexos da tarefa (card .is-design): clicar na
   miniatura abre o editor. */
.midias-tarefas .midia-item.is-design .img {
    cursor: pointer;
}

/* Anexo em qualquer formato (zip, docx, psd, svg...): o icone do tipo com a
   cor da convencao (window.Arquivos.iconeTipo), como no Drive, no lugar da
   miniatura que o arquivo nao tem. */
.midias-tarefas .midia-item .img.t-ficon {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 8px;
    color: var(--c, var(--color-text-01));
}

.midias-tarefas .midia-item .img.t-ficon .arq-i {
    width: 34%;
    max-width: 48px;
    height: auto;
    fill: none;
    stroke-width: 1.4;
}

.midias-tarefas .midia-item .img.t-ficon b {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .06em;
}

.midias-tarefas .midia-item .img.t-ficon .t-expand {
    position: absolute;
    inset: 0;
}

/* a extensao ja esta embaixo do icone: o selo do canto so repetiria */
.midias-tarefas .midia-item .img.t-ficon~.t-type {
    display: none;
}

/* AIRSTUDIO PRO (pagina do editor de artes) e icone da familia AirStudio
   (window.ICO_AIRSTUDIO: moldura com alcas; PRO = formas, Auto = brilhos). */
.header-pagina.airstudio-header {
    display: flex;
    align-items: center;
    gap: 14px;
    min-width: 0;
}

.header-pagina.airstudio-header .title-section {
    float: none;
    flex: none;
    display: flex;
    align-items: center;
    gap: 9px;
}

.airstudio-ico {
    display: inline-flex;
    flex: none;
}

.airstudio-ico svg {
    width: 20px;
    height: 20px;
    fill: var(--color-text-01);
}

.airstudio-sub {
    padding-left: 10px;
    margin-left: 1px;
    font-size: 14.5px;
    border-left: 1px solid color-mix(in srgb, var(--color-text-01) 16%, transparent);
    font-weight: 500;
    opacity: .55;
    line-height: 18px;
}

.airstudio-desc {
    flex: 1;
    min-width: 0;
    font-size: 13px;
    opacity: .5;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.airstudio-pagina {
    padding-top: 0;
}

.airstudio-carregando {
    display: flex;
    justify-content: center;
    padding: 80px 0;
}

.airstudio-erro {
    padding: 40px 0;
    opacity: .7;
}

/* Selo da familia AirStudio: "AirStudio [PRO]" / "AirStudio [Auto]". Vale em claro e
   escuro (mistura com a cor do proprio texto). */
.as-tag {
    /* display: inline-block; */
    padding: .24em .46em .2em;
    position: relative;
    top: 1px;
    left: 2px;
    border-radius: 4px;
    font-size: .64em;
    font-weight: 500;
    letter-spacing: .02em;
    line-height: 1;
    vertical-align: .27em;
    /* tokens do tema (nao currentColor: o color-mix com currentColor nao se refaz
       quando o tema troca com a tela aberta, e o selo sumia) */
    color: var(--color-text-01);
    opacity: .58;
    background: color-mix(in srgb, var(--color-text-01) 10%, transparent);
    box-shadow: inset 0 0 0 .5px color-mix(in srgb, var(--color-text-01) 24%, transparent);
    white-space: nowrap;
}

.title-section .as-tag {
    font-size: .56em;
}

/* Titulo da familia AirStudio no popup do Auto: icone + nome + selo na mesma linha */
.estudio-conteudo-modal-titulo {
    display: inline-flex;
    align-items: center;
    gap: 9px;
}

.studio-header.airstudio-header .estudio-seletor-perfil {
    flex: none;
}

/* TROCA DE CONTA NAS REDES (.troca-conta / .trc-*, footer.php). Facebook,
   TikTok e LinkedIn entram com a conta aberta no navegador; a escolha acontece
   aqui antes de abrir a rede. Tres telas no mesmo bloco: escolha (lista de duas
   opcoes, como o seletor de perfis do Facebook), passos (.trc-modo-passos) e a
   barra depois do login (.trc-modo-barra). */
.troca-conta {
    margin: 0 0 14px;
    color: var(--color-text-01);
    font-size: 13px;
}

.troca-popup .troca-conta {
    margin: 0;
}

.troca-conta b {
    font-weight: 500;
}

.troca-conta .trc-foto {
    flex: none;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--color-bg-01);
}

/* Conta ja conectada na marca (Atualizar conexao) */
.troca-conta .trc-ref {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
    padding: 10px 12px;
    border-radius: 13px;
    background: var(--color-bg-01);
}

.troca-conta .trc-ref .trc-foto.vazia {
    display: none;
}

.troca-conta .trc-pergunta {
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 500;
}

/* Escolha: duas linhas clicaveis */
.troca-conta .trc-opcoes {
    border: 1px solid var(--color-border);
    border-radius: 13px;
    overflow: hidden;
}

.troca-conta .trc-opcao {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
    cursor: pointer;
}

.troca-conta .trc-opcao+.trc-opcao {
    border-top: 1px solid var(--color-border);
}

.troca-conta .trc-opcao:hover {
    background: var(--color-hover-01);
}

.troca-conta .trc-opcao-texto,
.troca-conta .trc-passo-texto {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    line-height: 1.4;
}

.troca-conta .trc-opcao-texto span,
.troca-conta .trc-passo-texto span {
    font-size: 12px;
    opacity: .6;
}

.troca-conta .trc-seta {
    flex: none;
    opacity: .45;
}

/* Passos */
.troca-conta .trc-explica {
    margin-bottom: 12px;
    line-height: 1.45;
    opacity: .75;
}

.troca-conta .trc-explica.trc-alerta {
    opacity: 1;
}

.troca-conta .trc-passos {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--color-border);
    border-radius: 13px;
}

.troca-conta .trc-passo {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 14px;
}

.troca-conta .trc-passo+.trc-passo {
    border-top: 1px solid var(--color-border);
}

.troca-conta .trc-num {
    flex: none;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: var(--color-bg-01);
    font-size: 11px;
    font-weight: 500;
    line-height: 22px;
    text-align: center;
}

.troca-conta .trc-rodape {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 12px;
}

.troca-conta .trc-voltar {
    font-weight: 500;
    cursor: pointer;
}

.troca-conta .trc-voltar:hover {
    text-decoration: underline;
}

.troca-conta .trc-dica {
    font-size: 12px;
    opacity: .55;
    text-align: right;
}

/* Barra depois do login */
.troca-conta.trc-modo-barra {
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
}

.troca-conta .trc-linha {
    display: flex;
    align-items: center;
    gap: 10px;
}

.troca-conta .trc-texto {
    flex: 1;
    min-width: 0;
    opacity: .8;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* Botoes */
.troca-conta .trc-btn,
.troca-conta .trc-trocar,
.trc-nao-achou .trc-btn {
    flex: none;
    padding: 6px 12px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
}

.troca-conta .trc-btn:hover,
.troca-conta .trc-trocar:hover,
.trc-nao-achou .trc-btn:hover {
    background: var(--color-hover-01);
}

.troca-conta .trc-btn.trc-principal {
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.troca-conta .trc-btn.trc-principal:hover {
    background: var(--color-btn-bg-01);
    opacity: .85;
}

/* "Nao encontrou a Pagina?" no fim da lista de Paginas (fbNaoAchouHtml) */
.trc-nao-achou {
    margin-top: 14px;
    padding: 12px 14px;
    border-radius: 13px;
    background: var(--color-bg-01);
    font-size: 13px;
    color: var(--color-text-01);
}

.trc-nao-achou b,
.trc-nao-achou .trc-nao-achou-titulo {
    font-weight: 500;
}

.trc-nao-achou .trc-nao-achou-texto {
    margin-top: 4px;
    font-size: 12px;
    line-height: 1.45;
    opacity: .65;
}

.trc-nao-achou .trc-acoes {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 10px;
}

/* Resultado do "Atualizar conexao" do Facebook (atualizarContasConextadas) */
#accounts-list .trc-resultado {
    padding: 4px 2px;
    font-size: 13px;
    line-height: 1.5;
    color: var(--color-text-01);
}

#accounts-list .trc-resultado b {
    font-weight: 500;
}

/* CONEXAO DO FACEBOOK (.mc-pop, fbAbrirPopup no footer.php). Casca do popup
   com o indicador de etapas (1 conta, 2 pagina) e, dentro do #accounts-list,
   a lista de Paginas (fbPaginasHtml), estados vazio/erro/resultado e o
   rodape com o Conectar. As pecas da lista valem tambem na criacao de marca
   (.criar-page), por isso ficam escopadas no #accounts-list. */
.mc-pop .mc-intro {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: -4px 0 16px;
    font-size: 13px;
    line-height: 1.45;
    color: var(--color-text-01);
}

.mc-pop .mc-intro>span:last-child {
    opacity: .7;
}

.mc-pop .mc-redes {
    flex: none;
    display: flex;
}

.mc-pop .mc-rede {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    background: var(--color-bg);
}

.mc-pop .mc-rede+.mc-rede {
    margin-left: -8px;
}

.mc-pop .mc-rede svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

/* Indicador de etapas */
.mc-pop .mc-etapas {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 18px;
    font-size: 12px;
    font-weight: 500;
    color: var(--color-text-01);
}

.mc-pop .mc-etapa {
    display: flex;
    align-items: center;
    gap: 7px;
    opacity: .4;
    white-space: nowrap;
    transition: opacity .24s cubic-bezier(.16, 1, .3, 1);
}

.mc-pop .mc-etapa.atual,
.mc-pop .mc-etapa.feita {
    opacity: 1;
}

.mc-pop .mc-etapa-n {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    border: 1px solid var(--color-border);
    font-size: 11px;
    line-height: 18px;
    text-align: center;
}

.mc-pop .mc-etapa.atual .mc-etapa-n {
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.mc-pop .mc-etapa.feita .mc-etapa-n {
    background: var(--color-bg-01);
}

.mc-pop .mc-etapa-linha {
    flex: 1;
    height: 1px;
    background: var(--color-border);
}

/* Busca (mais de 6 Paginas) */
#accounts-list .mc-busca {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 10px;
    padding: 0 12px;
    height: 38px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    color: var(--color-text-01);
}

#accounts-list .mc-busca svg {
    flex: none;
    width: 15px;
    height: 15px;
    opacity: .5;
}

#accounts-list .mc-busca-i {
    flex: 1;
    min-width: 0;
    height: 100%;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 13px;
    color: var(--color-text-01);
}

/* Lista de Paginas */
#accounts-list .mc-paginas {
    max-height: 340px;
    overflow-y: auto;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    color: var(--color-text-01);
}

#accounts-list .mc-pg {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 11px 14px;
    cursor: pointer;
    transition: background .2s cubic-bezier(.16, 1, .3, 1);
}

#accounts-list .mc-pg+.mc-pg {
    border-top: 1px solid var(--color-border);
}

#accounts-list .mc-pg:hover,
#accounts-list .mc-pg.sel {
    background: var(--color-hover-01);
}

#accounts-list .mc-pg.bloqueada {
    cursor: default;
    opacity: .45;
}

#accounts-list .mc-pg.bloqueada:hover {
    background: transparent;
}

#accounts-list .mc-radio {
    flex: none;
    box-sizing: border-box;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 1.5px solid var(--color-border);
    transition: border .2s cubic-bezier(.16, 1, .3, 1);
}

#accounts-list .mc-pg:hover .mc-radio {
    border-color: color-mix(in srgb, var(--color-text-01) 35%, transparent);
}

#accounts-list .mc-pg.sel .mc-radio {
    border: 5.5px solid var(--color-btn-bg-01);
}

#accounts-list .mc-pg.bloqueada .mc-radio {
    visibility: hidden;
}

#accounts-list .mc-pg-foto {
    flex: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--color-bg-01);
}

#accounts-list .mc-pg-foto.vazia {
    display: flex;
    align-items: center;
    justify-content: center;
}

#accounts-list .mc-pg-foto.vazia svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
    opacity: .5;
}

#accounts-list .mc-pg-info {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

#accounts-list .mc-pg-info b {
    font-size: 14px;
    font-weight: 500;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

#accounts-list .mc-pg-ig {
    display: flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    opacity: .6;
    overflow: hidden;
    white-space: nowrap;
}

#accounts-list .mc-pg-ig svg {
    flex: none;
    width: 11px;
    height: 11px;
    fill: currentColor;
}

#accounts-list .mc-pg-ig.sem {
    opacity: .4;
}

#accounts-list .mc-tag {
    flex: none;
    padding: 3px 9px;
    border-radius: 999px;
    background: var(--color-bg-01);
    font-size: 11px;
    font-weight: 500;
    white-space: nowrap;
}

#accounts-list .mc-nada-busca {
    padding: 14px 4px 0;
    font-size: 13px;
    text-align: center;
    opacity: .55;
    color: var(--color-text-01);
}

/* Rodape: ajuda a esquerda, Conectar a direita */
#accounts-list .mc-rodape {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 16px;
    color: var(--color-text-01);
}

#accounts-list .mc-link {
    font-size: 13px;
    font-weight: 500;
    opacity: .7;
    cursor: pointer;
}

#accounts-list .mc-link:hover,
#accounts-list .mc-link.aberto {
    opacity: 1;
}

#accounts-list .mc-btn {
    flex: none;
    padding: 8px 16px;
    border-radius: 13px;
    border: 1px solid var(--color-border);
    font-size: 13px;
    font-weight: 500;
    color: var(--color-text-01);
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
    transition: transform .24s cubic-bezier(.16, 1, .3, 1), box-shadow .24s cubic-bezier(.16, 1, .3, 1), opacity .2s;
}

#accounts-list .mc-btn:hover {
    background: var(--color-hover-01);
}

#accounts-list .mc-btn.mc-principal {
    padding: 9px 20px;
    border-color: var(--color-btn-bg-01);
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 14px;
    font-weight: 600;
}

#accounts-list .mc-btn.mc-principal:hover {
    background: var(--color-btn-bg-01);
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

#accounts-list .mc-btn.desativado,
#accounts-list .mc-btn.carregando {
    opacity: .35;
    cursor: default;
    transform: none;
    box-shadow: none;
}

/* "Nao encontrou a Pagina?" (fbNaoAchouHtml) */
#accounts-list .mc-ajuda {
    margin-top: 12px;
    padding: 12px 14px;
    border-radius: 13px;
    background: var(--color-bg-01);
    color: var(--color-text-01);
}

#accounts-list .mc-ajuda-lista {
    margin: 0;
    padding-left: 18px;
    font-size: 12.5px;
    line-height: 1.5;
    text-align: left;
}

#accounts-list .mc-ajuda-lista li+li {
    margin-top: 5px;
}

#accounts-list .mc-ajuda-lista b {
    font-weight: 500;
}

#accounts-list .mc-acoes {
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

/* Vazio, erro e resultado do Atualizar */
#accounts-list .mc-vazio {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 18px 8px 4px;
    text-align: center;
    color: var(--color-text-01);
}

#accounts-list .mc-vazio-ico {
    width: 46px;
    height: 46px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background: var(--color-bg-01);
}

#accounts-list .mc-vazio-ico svg {
    width: 20px;
    height: 20px;
    fill: currentColor;
}

#accounts-list .mc-resultado.ok .mc-vazio-ico {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

#accounts-list .mc-resultado.ok .mc-vazio-ico svg {
    fill: none;
}

#accounts-list .mc-vazio>b {
    font-size: 15px;
    font-weight: 500;
}

#accounts-list .mc-vazio>span {
    max-width: 380px;
    font-size: 13px;
    line-height: 1.5;
    opacity: .65;
}

#accounts-list .mc-vazio>span b {
    font-weight: 500;
}

#accounts-list .mc-vazio .mc-ajuda-lista {
    align-self: stretch;
    margin-top: 14px;
    padding: 12px 14px 12px 32px;
    border-radius: 13px;
    background: var(--color-bg-01);
}

#accounts-list .mc-vazio .mc-acoes {
    justify-content: center;
}

/* Esqueleto da lista enquanto o Facebook responde (reusa o sk-shimmer) */
#accounts-list .mc-esq .mc-pg {
    cursor: default;
}

#accounts-list .mc-esq .mc-pg:hover {
    background: transparent;
}

#accounts-list .mc-sk {
    position: relative;
    overflow: hidden;
    display: block;
    height: 12px;
    border-radius: 5px;
    background: var(--sk-base);
}

#accounts-list .mc-sk::after {
    content: "";
    position: absolute;
    inset: 0;
    transform: translateX(-100%);
    background: linear-gradient(90deg, transparent 0%, var(--sk-glow) 50%, transparent 100%);
    animation: sk-shimmer 1.4s ease-in-out infinite;
}

#accounts-list .mc-sk-foto {
    flex: none;
    width: 36px;
    height: 36px;
    border-radius: 50%;
}

#accounts-list .mc-sk-fina {
    height: 9px;
    margin-top: 6px;
}

/* Bloco de troca de conta dentro do popup: respiro antes da lista */
.mc-pop .troca-conta.trc-modo-barra {
    margin-bottom: 12px;
}

/* @ da conta conectada com link para o perfil (perfilRedeLink, aba Conexoes).
   Monocromatico: o link e texto secundario que ganha tinta no hover. */
.editarPerfis .rede-conta-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    max-width: 100%;
    margin-top: 1px;
    font-size: 12px;
    font-weight: 500;
    color: var(--color-text-01);
    opacity: .7;
    text-decoration: none;
    transition: opacity .2s cubic-bezier(.16, 1, .3, 1);
}

.editarPerfis .rede-conta-link span {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.editarPerfis .rede-conta-link:hover {
    opacity: 1;
    text-decoration: underline;
}

.editarPerfis .rede-conta-link-ic {
    flex: none;
    width: 11px;
    height: 11px;
}

/* Na linha do canal (card Facebook + Instagram) o @ fica ao lado do nome */
.editarPerfis .rede-canal .rede-conta-link {
    margin: 0 0 0 8px;
    font-weight: 400;
}

/* ==========================================================================
   LISTA VAZIA - kit .lv-* (window.ListaVazia, footer.php)
   O vazio da Producao e das listas de Tarefas. Dois estados: nada carregado
   (cartoes de acao rapida) e tudo filtrado (Limpar filtros + Novo).
   Monocromatico: a tinta so no icone do primeiro cartao e no botao primario.
   ========================================================================== */
.inf-txt.lv,
.lv {
    display: flex;
    flex-direction: column;
    align-items: center;
    max-width: 700px;
    margin: 0 auto;
    padding: 56px 16px 64px;
    text-align: center;
    font-size: 13px;
    font-weight: 400;
    color: var(--color-text-01);
    opacity: 1;
}

.lv .lv-ico {
    display: grid;
    place-items: center;
    width: 52px;
    height: 52px;
    margin-bottom: 18px;
    border-radius: 16px;
    background: var(--color-hover-01);
    border: 1px solid var(--color-border);
}

.lv .lv-ico svg {
    display: block;
    width: 22px;
    height: 22px;
    margin: 0;
    fill: var(--color-text-01);
    opacity: .7;
}

.lv .lv-ttl {
    font-size: 17px;
    font-weight: 550;
    letter-spacing: -.02em;
    line-height: 1.3;
}

.lv .lv-desc {
    max-width: 420px;
    margin-top: 6px;
    font-size: 13.5px;
    line-height: 1.5;
    opacity: .6;
}

/* Acoes rapidas (nada carregado) */
.lv .lv-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 10px;
    width: 100%;
    margin-top: 26px;
}

.lv .lv-card {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
    padding: 14px 16px 15px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-bg);
    color: var(--color-text-01);
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .24s cubic-bezier(.16, 1, .3, 1), box-shadow .24s cubic-bezier(.16, 1, .3, 1), background .24s;
}

.lv .lv-card:hover {
    transform: translateY(-2px);
    background: var(--fx-hover);
    box-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
}

.lv .lv-card-ico {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.lv .lv-card:first-child .lv-card-ico {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.lv .lv-card-ico svg {
    width: 16px;
    height: 16px;
    margin: 0;
    fill: currentColor;
}

.lv .lv-card-tx {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.lv .lv-card-tx b {
    font-size: 13.5px;
    font-weight: 550;
    line-height: 1.3;
}

.lv .lv-card-tx small {
    margin-top: 3px;
    font-size: 12px;
    line-height: 1.4;
    opacity: .55;
}

/* Tudo filtrado: dois botoes lado a lado, mesma altura e raio */
.lv .lv-bts {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin-top: 22px;
}

.lv .lv-bt {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 36px;
    padding: 0 16px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 13px;
    font-weight: 550;
    cursor: pointer;
    transition: background .2s, opacity .2s;
}

.lv .lv-bt:hover {
    background: var(--color-hover-01);
}

.lv .lv-bt svg {
    width: 13px;
    height: 13px;
    margin: 0;
    fill: none;
    stroke: currentColor;
}

.lv .lv-bt-pri {
    border-color: transparent;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.lv .lv-bt-pri:hover {
    background: var(--color-btn-bg-01);
    opacity: .86;
}

/* Fecho da listagem: texto discreto + saida do filtro na mesma linha */
.lst-rodape .lst-rod-tx {
    opacity: .45;
}

.lst-rodape .lst-rod-limpar {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 26px;
    padding: 0 10px;
    border: 1px solid var(--color-border);
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    opacity: .7;
    transition: opacity .2s, background .2s;
}

.lst-rodape .lst-rod-limpar:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.lst-rodape .lst-rod-limpar svg {
    width: 10px;
    height: 10px;
    fill: none;
    stroke: currentColor;
}

/* Producao DA MARCA: o cartao da lista fica, o cabecalho da marca sai.
   Sem ele as etapas encostavam na borda de cima. */
.group-lista-pai.pg-sem-marca {
    padding-top: 6px;
}


/* =========================================================================
   AVISO DE SALVAMENTO AUTOMATICO (window.AirpostSalvando, footer.php)
   Pilula discreta no canto: "Salvando...", "Salvo" e erro com "Tentar de
   novo". Vidro pelo bloco "1. Menus, dropdowns e popovers". Monocromatico:
   so o erro ganha cor de alerta.
   ========================================================================= */
.ap-salvando {
    position: fixed;
    left: 16px;
    bottom: 16px;
    z-index: 2147483000;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    min-height: 32px;
    padding: 6px 12px 6px 10px;
    border-radius: 999px;
    font: 500 12.5px/1.2 "Golos Text", Inter, system-ui, sans-serif;
    color: var(--color-text-01);
    opacity: 0;
    transform: translateY(6px);
    pointer-events: none;
    transition: opacity .18s ease, transform .18s ease;
}

.ap-salvando.on {
    opacity: 1;
    transform: none;
    pointer-events: auto;
}

.ap-salvando .aps-ic {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
    display: inline-flex;
}

.ap-salvando .aps-ic svg {
    width: 14px;
    height: 14px;
}

.ap-salvando.is-salvando .aps-ic {
    border-radius: 50%;
    border: 1.6px solid currentColor;
    border-right-color: transparent;
    animation: aps-gira .7s linear infinite;
    opacity: .55;
}

.ap-salvando.is-erro {
    color: var(--ac-perigo, #c62f2f);
}

.ap-salvando .aps-btn {
    margin-left: 2px;
    padding: 3px 9px;
    border: 0;
    border-radius: 999px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font: inherit;
    font-size: 12px;
    cursor: pointer;
}

.ap-salvando .aps-btn:hover {
    opacity: .85;
}

@keyframes aps-gira {
    to {
        transform: rotate(360deg);
    }
}

.ap-salvando.is-off {
    color: var(--color-text-01);
}

.ap-salvando.is-off .aps-ic {
    opacity: .7;
}

/* Conversao de foto HEIC (arquivosCompativeis, footer.php): mesma pilula, um
   degrau acima, para nao brigar com o "Salvando..." quando os dois aparecem. */
.ap-salvando.ap-convertendo {
    bottom: 56px;
}

/* =========================================================================
   FAIXA DE CONEXAO (window.AirpostConexao, footer.php)
   Alerta de largura total no topo, estilo Slack: sem internet nada chega ao
   servidor, entao o aviso PRECISA ser visto. Por isso foge da regra
   monocromatica e do vidro: cor solida, fixa nos dois temas (o vermelho do
   tema escuro e claro demais para texto branco). Entra deslizando de cima;
   o icone pulsa. Na volta, faixa verde breve.
   ========================================================================= */
.ap-conexao {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 2147483001;
    color: #fff;
    background: #d92d20;
    box-shadow: 0 6px 24px -6px rgba(217, 45, 32, .55), 0 1px 0 rgba(0, 0, 0, .12);
    font: 500 13.5px/1.3 "Golos Text", Inter, system-ui, sans-serif;
    transform: translateY(-110%);
    pointer-events: none;
    transition: transform .28s cubic-bezier(.2, .8, .2, 1), background-color .3s ease;
}

.ap-conexao.on {
    transform: none;
    pointer-events: auto;
}

.ap-conexao.is-volta {
    background: #0b7f50;
    box-shadow: 0 6px 24px -6px rgba(11, 127, 80, .5), 0 1px 0 rgba(0, 0, 0, .12);
}

.ap-conexao .apc-in {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    max-width: 1200px;
    min-height: 52px;
    margin: 0 auto;
    padding: 8px 16px;
}

.ap-conexao .apc-ic {
    position: relative;
    flex: 0 0 32px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, .18);
}

.ap-conexao .apc-ic svg {
    width: 18px;
    height: 18px;
}

.ap-conexao.is-off .apc-ic::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: 50%;
    animation: apc-pulso 1.6s ease-out infinite;
}

.ap-conexao .apc-txts {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.ap-conexao .apc-txt {
    font-weight: 600;
    font-size: 14.5px;
}

.ap-conexao .apc-sub {
    opacity: .9;
    font-size: 12.5px;
}

.ap-conexao .apc-sub:empty {
    display: none;
}

.ap-conexao .apc-btn {
    flex: 0 0 auto;
    margin-left: 6px;
    padding: 8px 16px;
    border: 0;
    border-radius: 999px;
    background: #fff;
    color: #b42318;
    font: 600 13px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
    white-space: nowrap;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .15);
}

.ap-conexao .apc-btn:hover {
    background: #fff4f3;
}

@keyframes apc-pulso {
    0% {
        box-shadow: 0 0 0 0 rgba(255, 255, 255, .55);
    }

    100% {
        box-shadow: 0 0 0 12px rgba(255, 255, 255, 0);
    }
}

@media (prefers-reduced-motion: reduce) {
    .ap-conexao {
        transition: none;
    }

    .ap-conexao.is-off .apc-ic::after {
        animation: none;
    }
}

/* =========================================================================
   BARRA DE NAVEGACAO DO CELULAR (#ap-tabbar) - window.AirpostTabbar
   -------------------------------------------------------------------------
   Marcacao em index.php, JS no footer.php. Aqui mora so o VISUAL; quem liga
   a barra e o media.css (max-width: 900px, bloco "APP NO CELULAR"). Fora
   dele os dois elementos ficam display:none e o desktop nao muda nada.

   Monocromatica: aba ativa = tinta cheia (--color-text-01) + pilula
   --color-bg-01 atras do icone; o "+" e o botao primario do kit
   (--color-btn-bg-01), saltado para fora da barra com um anel da cor do
   fundo, como o botao central dos apps.

   Pilha (dentro do #browse): conteudo < menu da gaveta (3) < fundo do
   "Criar novo" (4) < barra (5) < popups do <body> (98+).
   ========================================================================= */

#ap-tabbar,
#ap-tb-scrim {
    display: none;
}

#ap-tabbar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 5;
    align-items: flex-start;
    justify-content: space-around;
    height: var(--ap-tb-h, 64px);
    padding: 7px 6px 0;
    color: var(--color-text-01);
    fill: currentColor;
    font-family: "Golos Text", Inter, system-ui, -apple-system, sans-serif;
    -webkit-tap-highlight-color: transparent;
    -webkit-user-select: none;
    user-select: none;
}

#ap-tabbar::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    background: var(--color-bg);
    border-top: 1px solid var(--color-border);
}

#ap-tabbar button {
    -webkit-appearance: none;
    appearance: none;
    background: none;
    border: 0;
    margin: 0;
    color: inherit;
    font: inherit;
    cursor: pointer;
    outline: none;
}

#ap-tabbar .tb-it {
    flex: 1 1 0;
    min-width: 0;
    max-width: 96px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 0 2px;
    opacity: .5;
    transition: opacity .2s ease, transform .22s var(--glass-ease, ease);
}

#ap-tabbar .tb-it.tb-off {
    display: none;
}

#ap-tabbar .tb-ico {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 30px;
    border-radius: 15px;
    transition: background .28s var(--glass-ease, ease);
}

#ap-tabbar .tb-ico svg {
    width: 21px;
    height: 21px;
}

#ap-tabbar .tb-menu .tb-ico svg {
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
}

/* Dentro de uma marca o icone do "Menu" e o logotipo dela (htmlAvatarPerfil
   com a classe .tb-marca, ver pintarMarca no footer.php). Anel fino de
   respiro + borda: aparece sem pesar na barra monocromatica. */
#ap-tabbar .tb-marca {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 8px;
    background-color: var(--color-bg-01);
    background-size: cover;
    background-position: center;
    box-shadow: 0 0 0 1.5px var(--color-bg), 0 0 0 2.5px var(--color-border);
    font-size: 10px;
    font-weight: 650;
    letter-spacing: -.02em;
    color: var(--color-text-01);
    transition: box-shadow .25s ease;
}

#ap-tabbar .tb-menu.atv .tb-marca {
    box-shadow: 0 0 0 1.5px var(--color-bg), 0 0 0 3px var(--color-text-01);
}

/* Na marca a aba tem foto: nao esmaecer a 50% como os icones (ficaria
   apagada); o rotulo e que segue o estado. */
#ap-tabbar.tb-na-marca .tb-menu {
    opacity: 1;
}

#ap-tabbar.tb-na-marca .tb-menu:not(.atv) .tb-txt {
    opacity: .5;
}

#ap-tabbar .tb-txt {
    max-width: 100%;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.15;
    letter-spacing: -.01em;
}

#ap-tabbar .tb-it.atv {
    opacity: 1;
}

#ap-tabbar .tb-it.atv .tb-ico {
    background: var(--color-bg-01);
}

#ap-tabbar .tb-it.atv .tb-txt {
    font-weight: 600;
}

#ap-tabbar .tb-it:active {
    transform: scale(.92);
}

#ap-tabbar .tb-it:focus-visible .tb-ico {
    box-shadow: 0 0 0 2px var(--color-text-01);
}

/* Ponto de notificacao nova: espelha o sino da gaveta (.btn-notificacao-m.atv).
   O :has() fica no .menu-sistema (irmao anterior da barra), nao no body: a
   classe "atv" muda o tempo todo pelo DOM e o body como sujeito faria o
   navegador reavaliar a regra a cada troca. */
#ap-tabbar .tb-dot {
    display: none;
    position: absolute;
    top: 2px;
    right: 14px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #ff3b30;
    box-shadow: 0 0 0 2px var(--color-bg);
}

.menu-sistema:has(.btn-notificacao-m.atv)~#ap-tabbar .tb-dot {
    display: block;
}

#ap-tabbar .tb-plus {
    flex: 0 0 66px;
    display: flex;
    justify-content: center;
    margin-top: -17px;
    padding: 0;
}

#ap-tabbar .tb-plus-in {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 0 0 5px var(--color-bg), 0 14px 28px -12px rgba(0, 0, 0, .55), 0 14px 34px -16px rgba(37, 99, 235, .55);
    transition: transform .32s var(--glass-mola, ease);
}

#ap-tabbar .tb-plus-in svg {
    width: 25px;
    height: 25px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.3;
    stroke-linecap: round;
    transition: transform .4s var(--glass-mola, ease);
}

#ap-tabbar .tb-plus:active .tb-plus-in {
    transform: scale(.88);
}

#ap-tabbar .tb-plus:focus-visible .tb-plus-in {
    box-shadow: 0 0 0 5px var(--color-bg), 0 0 0 7px var(--color-text-01);
}

/* "Criar novo" aberto: o + gira e vira X (toque de novo fecha).
   O alvo e uma CLASSE (.tb-plus-svg), nunca "svg": com :has() no body, um
   alvo por tag faz o Chrome recalcular o estilo da pagina a cada mudanca no
   DOM (medido: 180 elementos por insercao contra 14). */
body:has(> .dropdown-default.t-criar-novo) #ap-tabbar .tb-plus-svg {
    transform: rotate(135deg);
}

#ap-tb-scrim {
    position: fixed;
    inset: 0;
    z-index: 4;
    background: var(--glass-scrim, rgba(17, 19, 24, .3));
    -webkit-backdrop-filter: blur(3px);
    backdrop-filter: blur(3px);
    opacity: 0;
    pointer-events: none;
    transition: opacity .26s ease;
}

/* So filhos DIRETOS do body (todos sao anexados no body): um :has() sem ">" no body
   faz o Chrome conferir a pagina inteira a cada no inserido em qualquer lugar. */
body:has(> .dropdown-default.t-criar-novo) #ap-tb-scrim,
body:has(> .dropdown-default:not(.t-menu-notificacoes)) #ap-tb-scrim,
body:has(> .picker-overlay) #ap-tb-scrim,
body:has(> .dropdown-filtros-01) #ap-tb-scrim {
    opacity: 1;
    pointer-events: auto;
}

/* Entrada da gaveta em tela cheia no celular (media.css, "APP NO CELULAR") */
@keyframes ap-gaveta-entra {
    from {
        opacity: 0;
        transform: translateY(14px);
    }
}

@keyframes ap-folha-sobe {
    from {
        transform: translateY(18px) scale(.97);
    }
}

/* Marcas do acesso rapido da Inicio: sem href (o clique abre o planejamento
   direto pelo JS), o <a> perdia o cursor de link. */
.inicial-acesso-rapido-planejamentos .lst .it {
    cursor: pointer;
}

/* Coluna de marcas desenhada do cache na abertura (index.php, window.railMarcasChave):
   sem clique ate a lista real chegar - o handler da marca le window.lstPerfis. */
.menu-fixado-perfis .lst.rail-cache {
    pointer-events: none;
}

/* Responsaveis em dropdown (window.MembrosDropdown, footer.php): mesma casca do
   picker de pessoas da Producao (.ct-picker-membros); aqui so o que e dele. */
.picker-overlay.mdrop {
    min-width: 264px;
    max-width: 320px;
}

.picker-overlay.mdrop .ct-membros-lista {
    max-height: 320px;
    overflow-y: auto;
}

.picker-overlay.mdrop .ct-membro-item {
    transition: opacity .2s ease, background .15s ease;
}

.picker-overlay.mdrop .ct-membro-item.mdrop-salvando {
    opacity: .55;
    pointer-events: none;
}

/* =========================================================================
   PRE-LOADING PREMIUM: shimmer + kit .skx-* (window.Skeleton, footer.php)
   -------------------------------------------------------------------------
   Shimmer antigo: um bloco solido indo e voltando por `left` (repintava a
   cada quadro) e, no escuro, um brilho de 1,2s. Cada bloco brilhava no SEU
   tempo: linhas de larguras diferentes piscavam fora de compasso.

   Agora e UM brilho que atravessa a tela inteira em sincronia (fundo fixo
   na viewport, padrao LinkedIn/Linear), suave (1,8s, curva com repouso), e
   os blocos entram com um fade escalonado. Cores por token: --sk-base /
   --sk-brilho / --sk-linha aqui e no :root do dark.css.

   Especificidade: o dark.css (carrega depois) tem `.loading-bloco` e
   `.loading-bloco::before`; `html body .loading-bloco` (0,1,2) vence.
   ========================================================================= */
:root {
    --sk-base: rgba(17, 24, 39, .065);
    --sk-brilho: rgba(255, 255, 255, .7);
    --sk-linha: rgba(17, 24, 39, .07);
}

html body .loading-bloco {
    background-color: var(--sk-base);
    background-image: linear-gradient(100deg, transparent 0%, transparent 42%, var(--sk-brilho) 50%, transparent 58%, transparent 100%);
    background-size: 200vw 100%;
    background-repeat: no-repeat;
    background-attachment: fixed;
    animation: sk-varre 1.8s cubic-bezier(.45, 0, .25, 1) infinite;
}

html body .loading-bloco::before {
    display: none;
}

@keyframes sk-varre {
    from {
        background-position: -150vw 0;
    }

    to {
        background-position: 50vw 0;
    }
}

.pre-loading>* {
    animation: sk-entra .5s cubic-bezier(.16, 1, .3, 1) both;
}

.pre-loading>*:nth-child(2) {
    animation-delay: .04s;
}

.pre-loading>*:nth-child(3) {
    animation-delay: .08s;
}

.pre-loading>*:nth-child(4) {
    animation-delay: .12s;
}

.pre-loading>*:nth-child(5) {
    animation-delay: .16s;
}

.pre-loading>*:nth-child(6) {
    animation-delay: .2s;
}

.pre-loading>*:nth-child(n+7) {
    animation-delay: .24s;
}

@keyframes sk-entra {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
}

/* Cartao neutro dos esqueletos (KPI, cartoes do Inicio, documentos). */
.skx-card {
    border: 1px solid var(--sk-linha);
    border-radius: 16px;
    padding: 16px;
}

/* Lista agrupada (Producao, Tarefas, Espaco) */
.skx-grupo {
    padding: 6px 0 18px;
}

.skx-gh,
.skx-sh,
.skx-th,
.skx-row,
.skx-ini-hd,
.skx-ini-ln,
.skx-campo {
    display: flex;
    align-items: center;
}

.skx-gh {
    gap: 10px;
    padding: 6px 14px 14px;
}

.skx-sh {
    gap: 8px;
    padding: 0 14px 12px 22px;
}

.skx-th {
    gap: 14px;
    padding: 0 14px 10px 76px;
    border-bottom: 1px solid var(--sk-linha);
}

.skx-row {
    gap: 12px;
    padding: 11px 14px;
    border-bottom: 1px solid var(--sk-linha);
}

.skx-tt {
    flex: 1 1 auto;
    min-width: 0;
}

.skx-c {
    flex: 0 0 120px;
    display: flex;
    align-items: center;
}

.skx-c-av {
    flex-basis: 74px;
}

.skx-th>.loading-bloco:first-child {
    flex: 1 1 auto;
    max-width: 64px;
    margin-right: auto !important;
}

.skx-th .skx-c:first-of-type {
    margin-left: auto;
}

/* Inicio */
.skx-ini-wrap {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 14px;
    width: 100%;
}

.skx-ini {
    padding: 18px 18px 14px;
    min-height: 196px;
}

.skx-ini-hd {
    justify-content: space-between;
    margin: 0 0 22px;
}

.skx-ini-ln {
    gap: 12px;
    padding: 0 0 18px;
}

.skx-av-row {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* Dashboard e metricas */
.skx-kpis {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 14px;
}

.skx-dash-2 {
    display: grid;
    grid-template-columns: minmax(240px, 1fr) minmax(0, 2fr);
    gap: 14px;
    margin-top: 14px;
}

.skx-etapas {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}

/* Documentos */
.skx-doc-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
    gap: 12px;
}

.skx-doc {
    padding: 0;
    overflow: hidden;
}

.skx-doc-capa {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 92px;
    border-bottom: 1px solid var(--sk-linha);
}

/* Janelas Conteudo / Tarefa 2.0 */
.skx-conteudo {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 26px;
}

.skx-campo {
    gap: 22px;
    min-height: 34px;
}

.skx-campo>.loading-bloco:first-child {
    width: 92px !important;
}

.skx-2col {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 34px;
}

@media (prefers-reduced-motion: reduce) {

    html body .loading-bloco,
    .pre-loading>* {
        animation: none;
    }
}

/* =========================================================================
   MICRO-INTERACOES (efeitos leves) - so onde ha acao por tras
   -------------------------------------------------------------------------
   Quase todos os cartoes clicaveis ja tinham o hover do kit (KPIs, marcas,
   planejamentos, documentos). Aqui entram os que faltavam e o "pop" do
   check no dropdown de responsaveis. As regras de hover/toque ficam no
   media.css ((hover: hover) / (hover: none)); aqui so transicao e keyframes.
   ========================================================================= */
.etapas-lst .etapa-card,
.lst-membros-all>.item {
    transition: transform .24s var(--glass-ease, cubic-bezier(.16, 1, .3, 1)), box-shadow .24s var(--glass-ease, ease), background .2s ease, border-color .2s ease;
}

.picker-overlay.mdrop .ct-membro-item.sel .ct-membro-ck {
    animation: mdrop-ck .32s var(--glass-mola, cubic-bezier(.34, 1.56, .64, 1)) both;
}

@keyframes mdrop-ck {
    from {
        transform: scale(.4);
        opacity: 0;
    }
}

@media (prefers-reduced-motion: reduce) {
    .picker-overlay.mdrop .ct-membro-item.sel .ct-membro-ck {
        animation: none;
    }
}

/* Esqueleto do Planejamento da marca (.plan-skeleton, footer.php): estava
   colado nas bordas do cartao - sem recuo nenhum e com o calendario a
   -15px de cada lado. Medido na tela pronta: o conteudo fica 16px para
   dentro do cartao (desktop e celular); o esqueleto segue o mesmo eixo. */
.plan-skeleton {
    box-sizing: border-box;
    padding: 0 16px;
}

.plan-skeleton .sk-cal {
    margin: 0;
}

/* =========================================================================
   PESSOAS DA MARCA - pilha do cabecalho (.hdr-pessoas) e popup (.psm-*)
   -------------------------------------------------------------------------
   JS: window.PessoasMarca e window.planejamentoHdrPessoas (footer.php, junto
   de planejamentoMembros). O bloco de avatares do cabecalho e UM botao: o
   hover tem de dizer "da para mexer aqui" - fundo de pilula, os avatares se
   afastam um pouco e o "+" tracejado vira a tinta do sistema.

   Monocromatico: o unico ponto de cor e o verde do "online agora", que e
   DADO (presenca), e o vermelho de remover, so no hover.
   ========================================================================= */
.menu-planejamento .hdr-perfil .hdr-pessoas {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2px;
    width: fit-content;
    max-width: 100%;
    margin: 8px auto 0;
    padding: 3px 4px 3px 9px;
    border: 1px solid transparent;
    border-radius: 100px;
    cursor: pointer;
    outline: none;
    transition: background .2s var(--glass-ease, ease), border-color .2s ease, box-shadow .2s ease;
}

.menu-planejamento .hdr-perfil .hdr-pessoas .lst-membros-all {
    float: none;
    display: flex;
    align-items: center;
    width: auto;
    height: auto;
    margin: 0;
    padding: 0;
}

.menu-planejamento .hdr-perfil .hdr-pessoas .lst-membros-all::after {
    display: none;
}

.menu-planejamento .hdr-perfil .hdr-pessoas .lst-membros-all .item {
    float: none;
    /* Sobreposicao de 8px. A original era 13 (este -7 somado ao -6 de
       margin-left da regra generica da pilha) e escondia o rosto de cada um;
       com 2 os avatares ficavam soltos demais. O margin-left zera o -6 para
       a conta ficar so aqui. Ordem natural (o seguinte por cima) de
       proposito: so a borda DIREITA de cada um fica coberta. */
    margin-left: 0;
    margin-right: -8px;
    cursor: pointer;
    transition: margin .24s var(--glass-ease, ease);
}

.menu-planejamento .hdr-perfil .hdr-pessoas .lst-membros-all .item .thumb {
    margin: 0;
    box-shadow: 0 0 0 2px var(--color-bg);
}

.menu-planejamento .hdr-perfil .hdr-pessoas .hdr-pessoas-resto {
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: -.02em;
    /* SOLIDO: --color-bg-01 tem 5% de alfa e o avatar de tras aparecia
       atraves do "+N". A mistura com o fundo da um cinza opaco nos dois
       temas; border-color solida pelo mesmo motivo (a do .thumb-user e
       translucida e o fundo e recortado no padding-box). */
    background: color-mix(in srgb, var(--color-text-01) 9%, var(--color-bg));
    border-color: color-mix(in srgb, var(--color-text-01) 14%, var(--color-bg)) !important;
    color: var(--color-text-01);
}

.menu-planejamento .hdr-perfil .hdr-pessoas-mais {
    display: grid;
    place-items: center;
    flex: none;
    width: 26px;
    height: 26px;
    margin-left: 10px;
    border-radius: 50%;
    border: 1px dashed color-mix(in srgb, var(--color-text-01) 32%, transparent);
    color: var(--color-text-01);
    opacity: .7;
    transition: background .2s var(--glass-ease, ease), color .2s ease, border-color .2s ease, opacity .2s ease, transform .24s var(--glass-mola, ease);
}

.menu-planejamento .hdr-perfil .hdr-pessoas-mais svg {
    width: 12px;
    height: 12px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
}

.menu-planejamento .hdr-perfil .hdr-pessoas:hover,
.menu-planejamento .hdr-perfil .hdr-pessoas:focus-visible {
    background: var(--color-hover-01);
    border-color: var(--color-border);
}

.menu-planejamento .hdr-perfil .hdr-pessoas:focus-visible {
    box-shadow: 0 0 0 3px var(--color-hover-01);
}

.menu-planejamento .hdr-perfil .hdr-pessoas:hover .lst-membros-all .item {
    margin-right: -5px;
}

.menu-planejamento .hdr-perfil .hdr-pessoas:hover .hdr-pessoas-mais,
.menu-planejamento .hdr-perfil .hdr-pessoas:focus-visible .hdr-pessoas-mais {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    border-style: solid;
    color: var(--color-btn-text-01);
    opacity: 1;
    transform: rotate(90deg);
}

.menu-planejamento .hdr-perfil .hdr-pessoas:active .hdr-pessoas-mais {
    transform: rotate(90deg) scale(.92);
}

/* ---------- Casca do popup ---------- */
#edit-popup-mini:has(.psm-pop) {
    width: 100%;
}

#edit-popup-mini .contant .boxpop:has(.psm-pop) {
    max-width: 560px;
    border-radius: 22px;
    overflow: hidden;
}

.psm-pop {
    --psm-t2: color-mix(in srgb, var(--color-text-01) 64%, transparent);
    --psm-t3: color-mix(in srgb, var(--color-text-01) 46%, transparent);
    --psm-ease: cubic-bezier(.16, 1, .3, 1);
    --psm-on: #22a559;
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 60px);
    font-size: 14px;
    color: var(--color-text-01);
    animation: cf-entra .22s var(--psm-ease);
}

/* ---------- Cabecalho ---------- */
.psm-hdr {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: none;
    /* 52 a direita = folga do .btn-close da casca */
    padding: 22px 52px 16px 22px;
}

.psm-hdr .psm-marca-av {
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: 13px;
    background-size: cover;
    background-position: center;
    background-color: var(--color-bg-01);
    border: 1px solid var(--color-border);
    background-clip: padding-box;
}

.psm-hdr .psm-marca-av.avatar-perfil-letra {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    font-weight: 700;
}

.psm-hdr-txt {
    min-width: 0;
}

.psm-ttl {
    font-size: 20px;
    font-weight: 550;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.psm-sub {
    margin-top: 3px;
    font-size: 12.5px;
    line-height: 1.4;
    color: var(--psm-t3);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.psm-sub b {
    font-weight: 600;
    color: var(--psm-t2);
}

/* ---------- Adicionar ---------- */
.psm-add {
    flex: none;
    margin: 0 22px 6px;
    padding: 12px;
    border-radius: 16px;
    background: var(--color-bg-01);
}

.psm-add-linha {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.psm-campo {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 5px;
    min-height: 40px;
    padding: 5px 5px 5px 10px;
    border: 1px solid var(--color-border);
    border-radius: 12px;
    background: var(--color-bg);
    cursor: text;
    transition: border-color .18s var(--psm-ease), box-shadow .18s var(--psm-ease);
}

.psm-campo:focus-within {
    border-color: color-mix(in srgb, var(--color-text-01) 35%, transparent);
    box-shadow: 0 0 0 3px var(--color-hover-01);
}

.psm-fichas {
    display: contents;
}

.psm-email {
    flex: 1 1 120px;
    min-width: 120px;
    height: 28px;
    padding: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13.5px;
    font-weight: 500;
    font-family: inherit;
}

.psm-email::placeholder {
    color: var(--psm-t3);
    font-weight: 400;
}

.psm-ficha {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    max-width: 100%;
    height: 26px;
    padding: 0 3px 0 9px;
    border-radius: 100px;
    background: var(--color-hover-01);
    border: 1px solid var(--color-border);
    font-size: 12.5px;
    font-weight: 500;
    animation: psm-ficha .22s var(--glass-mola, ease) both;
}

.psm-ficha:has(.thumb-user) {
    padding-left: 3px;
}

.psm-ficha .thumb-user {
    width: 18px;
    height: 18px;
    margin: 0;
    font-size: 7.5px;
}

.psm-ficha>span {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.psm-ficha button {
    display: grid;
    place-items: center;
    width: 18px;
    height: 18px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    opacity: .5;
    cursor: pointer;
}

.psm-ficha button:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.psm-ficha button svg {
    width: 11px;
    height: 11px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
}

/* E-mail invalido: traco tracejado e texto riscado - sem cor nova. */
.psm-ficha.erro {
    border-style: dashed;
    border-color: color-mix(in srgb, var(--color-text-01) 45%, transparent);
    background: transparent;
}

.psm-ficha.erro>span {
    text-decoration: line-through;
    text-decoration-color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
}

.psm-ficha.ja {
    opacity: .5;
}

@keyframes psm-ficha {
    from {
        opacity: 0;
        transform: scale(.85);
    }
}

.psm-btn-add {
    flex: none;
    height: 40px;
}

.psm-btn-add:disabled {
    opacity: .35;
    cursor: default;
    transform: none !important;
    box-shadow: none !important;
}

.psm-btn-add.carregando {
    opacity: .7;
}

.psm-add-dica {
    margin: 8px 2px 0;
    font-size: 11.5px;
    line-height: 1.45;
    color: var(--psm-t3);
}

.psm-resultado {
    display: none;
    margin-top: 10px;
    padding: 9px 11px;
    border-radius: 11px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--psm-t2);
}

.psm-resultado b {
    color: var(--color-text-01);
    font-weight: 600;
}

.psm-resultado.on {
    display: block;
    animation: cf-entra .22s var(--psm-ease);
}

.psm-resultado.erro {
    border-style: dashed;
    border-color: color-mix(in srgb, var(--color-text-01) 35%, transparent);
}

/* Botao do TIPO - o mesmo no campo de adicionar e em cada linha. */
.psm-tipo-btn {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    flex: none;
    height: 28px;
    padding: 0 6px 0 10px;
    border: 1px solid transparent;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 600;
    font-family: inherit;
    white-space: nowrap;
    cursor: pointer;
    transition: background .16s ease, border-color .16s ease;
}

.psm-tipo-btn svg {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .55;
    transition: transform .2s var(--psm-ease);
}

.psm-tipo-btn:hover,
.psm-tipo-btn.aberto {
    background: var(--color-hover-01);
    border-color: var(--color-border);
}

.psm-tipo-btn.aberto svg {
    transform: rotate(180deg);
}

/* No campo de adicionar o botao do tipo tem a altura do campo e o traco dele. */
.psm-tipo-btn.psm-tipo-add {
    height: 40px;
    padding: 0 8px 0 12px;
    border-color: var(--color-border);
    border-radius: 12px;
    background: var(--color-bg);
}

.psm-tipo-btn.psm-tipo-add:hover,
.psm-tipo-btn.psm-tipo-add.aberto {
    background: var(--color-hover-01);
}

/* ---------- Filtros + busca ---------- */
.psm-filtros {
    flex: none;
    padding: 10px 22px 0;
}

.psm-filtros:empty {
    display: none;
}

.psm-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.psm-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 11px;
    border: 1px solid var(--color-border);
    border-radius: 100px;
    background: transparent;
    color: var(--psm-t2);
    font-size: 12px;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: background .16s ease, color .16s ease, border-color .16s ease;
}

.psm-pill span {
    font-size: 11px;
    font-weight: 600;
    opacity: .6;
    font-variant-numeric: tabular-nums;
}

.psm-pill:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.psm-pill.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.psm-pill.atv span {
    opacity: .7;
}

.psm-busca {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 10px 0 0;
    height: 36px;
    padding: 0 12px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    cursor: text;
    transition: border-color .18s var(--psm-ease), box-shadow .18s var(--psm-ease);
}

.psm-busca:focus-within {
    border-color: color-mix(in srgb, var(--color-text-01) 35%, transparent);
    box-shadow: 0 0 0 3px var(--color-hover-01);
}

.psm-busca svg {
    width: 15px;
    height: 15px;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    opacity: .45;
}

.psm-busca-i {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-family: inherit;
}

.psm-busca-i::placeholder {
    color: var(--psm-t3);
}

/* ---------- Lista ---------- */
.psm-body {
    flex: 1 1 auto;
    min-height: 0;
    overflow-y: auto;
    padding: 8px 12px 6px;
    overscroll-behavior: contain;
}

.psm-row {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 8px 10px;
    border-radius: 13px;
    transition: background .16s ease, opacity .2s ease;
}

.psm-row:hover {
    background: var(--color-hover-01);
}

.psm-row.ocupado {
    opacity: .45;
    pointer-events: none;
}

.psm-row.novo {
    animation: psm-novo 2.4s var(--psm-ease) both;
}

@keyframes psm-novo {
    0% {
        background: color-mix(in srgb, var(--color-text-01) 12%, transparent);
    }

    100% {
        background: transparent;
    }
}

.psm-av {
    position: relative;
    flex: none;
}

.psm-av .thumb-user {
    width: 36px;
    height: 36px;
    margin: 0;
    font-size: 12px;
    font-weight: 600;
}

.psm-on {
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 11px;
    height: 11px;
    border-radius: 50%;
    background: var(--psm-on);
    box-shadow: 0 0 0 2.5px var(--color-bg);
}

.psm-info {
    flex: 1 1 auto;
    min-width: 0;
}

.psm-nome {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.3;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.psm-eu {
    flex: none;
    padding: 1px 7px;
    border-radius: 100px;
    background: var(--color-hover-01);
    border: 1px solid var(--color-border);
    font-size: 10.5px;
    font-weight: 600;
    color: var(--psm-t2);
}

.psm-meta {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.35;
    color: var(--psm-t3);
    min-width: 0;
}

.psm-mail {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.psm-pres {
    flex: none;
    white-space: nowrap;
}

.psm-pres::before {
    content: "\00b7";
    margin-right: 6px;
}

.psm-pres.on {
    color: var(--color-text-01);
    font-weight: 500;
}

/* Nunca entrou = convite pendente: e o que o adm precisa enxergar. */
.psm-pres.nunca {
    font-style: italic;
}

.psm-acao {
    flex: none;
}

.psm-tag {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 28px;
    padding: 0 10px;
    font-size: 12.5px;
    font-weight: 500;
    color: var(--psm-t2);
}

.psm-tag svg {
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linejoin: round;
}

.psm-tag-dono {
    color: var(--color-text-01);
    font-weight: 600;
}

.psm-vazio {
    padding: 26px 10px;
    text-align: center;
    font-size: 13px;
    color: var(--psm-t3);
}

.psm-sk {
    pointer-events: none;
}

.psm-sk-av {
    width: 36px;
    height: 36px;
    flex: none;
    border-radius: 50%;
}

/* ---------- Rodape ---------- */
.psm-ftr {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    flex: none;
    padding: 12px 22px 18px;
    border-top: 1px solid var(--color-border);
}

.psm-link {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 30px;
    padding: 0 10px 0 8px;
    margin-left: -8px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--psm-t2);
    font-size: 12.5px;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    transition: background .16s ease, color .16s ease;
}

.psm-link+.psm-link {
    margin-left: 0;
}

.psm-link svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.psm-link:hover,
.psm-link.ok {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

/* ---------- Menu do tipo (flutua no body, por cima da casca) ---------- */
.psm-menu {
    position: fixed;
    z-index: 100001;
    width: 300px;
    max-width: calc(100vw - 20px);
    padding: 6px;
    border-radius: 16px;
    border: 1px solid var(--glass-borda);
    background: var(--glass-fundo-forte);
    -webkit-backdrop-filter: var(--glass-filtro-forte);
    backdrop-filter: var(--glass-filtro-forte);
    box-shadow: var(--glass-brilho), var(--glass-sombra);
    color: var(--color-text-01);
    opacity: 0;
    transform: translateY(-4px) scale(.98);
    transform-origin: top right;
    transition: opacity .16s var(--glass-ease, ease), transform .2s var(--glass-ease, ease);
}

.psm-menu.on {
    opacity: 1;
    transform: none;
}

.psm-mi {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: inherit;
    text-align: left;
    font-family: inherit;
    cursor: pointer;
    transition: background .14s ease;
}

.psm-mi:hover {
    background: var(--glass-realce);
}

.psm-mi-txt {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.psm-mi-txt b {
    font-size: 13px;
    font-weight: 600;
}

.psm-mi-txt span {
    font-size: 11.5px;
    line-height: 1.4;
    opacity: .55;
}

.psm-mi-ck {
    flex: none;
    width: 16px;
    height: 16px;
    opacity: 0;
}

.psm-mi-ck svg {
    width: 16px;
    height: 16px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.psm-mi.atv .psm-mi-ck {
    opacity: 1;
}

.psm-mi.off {
    opacity: .38;
    cursor: not-allowed;
}

.psm-mi.off:hover {
    background: transparent;
}

.psm-mi>svg {
    width: 16px;
    height: 16px;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .7;
}

.psm-mi-sep {
    height: 1px;
    margin: 5px 8px;
    background: var(--color-border);
}

.psm-mi-perigo:hover {
    color: #e83a3a;
    background: rgba(232, 58, 58, .08);
}

/* Foco do teclado na tinta do sistema - o anel azul padrao do navegador era
   o unico ponto de cor do popup. */
.psm-pop button:focus,
.psm-menu button:focus {
    outline: none;
}

.psm-pop button:focus-visible,
.psm-menu button:focus-visible {
    box-shadow: 0 0 0 3px var(--color-hover-01), 0 0 0 1px color-mix(in srgb, var(--color-text-01) 35%, transparent);
}

/* =========================================================================
   MENU DA MARCA - os itens passam POR BAIXO do cabecalho
   -------------------------------------------------------------------------
   Ao rolar a lista (.nice-scroll da .menu-planejamento), o topo dela ganha
   um degrade de mascara: os itens se dissolvem ao chegar no cartao da
   marca, que passa a parecer uma camada por cima. Mascara e nao uma faixa
   pintada: nao depende da cor do fundo (vidro, claro, escuro).

   So com a classe .rolado (footer.php, listener de scroll em captura): no
   topo da lista o primeiro item fica inteiro. A largura do degrade e uma
   @property para a mascara entrar e sair com transicao, sem salto.
   ========================================================================= */
@property --mm-fade {
    syntax: '<length>';
    inherits: false;
    initial-value: 0px;
}

.menu-sistema .menu-planejamento>.nice-scroll {
    --mm-fade: 0px;
    -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 var(--mm-fade));
    mask-image: linear-gradient(to bottom, transparent 0, #000 var(--mm-fade));
    transition: --mm-fade .28s var(--glass-ease, ease);
}

.menu-sistema .menu-planejamento>.nice-scroll.rolado {
    --mm-fade: 38px;
}

/* ==========================================================================
   CONTEUDOS RELACIONADOS (.rl-*)  -  principal e variacoes
   --------------------------------------------------------------------------
   Bloco do popup de conteudo 2.0, logo abaixo de "Tarefas". O cabecalho e o
   mesmo das outras secoes (.t-sec-hdr; os seletores de la foram estendidos
   para .pd-v2 .rl-wrap) e a LINHA e a .tc-item dos Conteudos da tarefa, por
   isso o bloco carrega a classe .tc (tokens --su-* e --tc-*).

   Tres estados, uma secao:
     solto      -> uma frase do para que serve + [Relacionar] [Criar variacao]
     principal  -> as variacoes + as mesmas duas acoes no rodape
     variacao   -> "Variacao de" + card do principal, e a familia (este
                   conteudo marcado). Sem "+": quem monta a familia e o
                   principal.
   E o chip na barra de titulo da janela (.pd2-rel), para a informacao do
   principal aparecer sem rolar o post.
   ========================================================================== */
.pd-v2 .rl-host {
    clear: both;
    width: 100%;
    padding-top: 4px;
}

/* Mesmo ritmo de .pd-v2 .ct-wrap (tokens repetidos de proposito: sem eles a
   secao viveria dos fallbacks do var()). A fonte e a do popup, nao a do kit
   .tc: a secao de Tarefas logo acima usa a do popup, e duas secoes vizinhas
   com familias diferentes parecem coladas de telas distintas. */
.pd-v2 .rl-wrap.tc {
    --t-sec-caret: 24px;
    --t-sec-gap: 24px;
    --t-sec-ttl-gap: 8px;
    --t-sec-ttl-pad: 8px;
    font-family: inherit;
    width: 100%;
    margin-top: 6px;
    border-radius: 12px;
    transition: background .5s, box-shadow .5s;
}

/* Variacao nao recebe variacoes (um nivel so): o "+" do cabecalho sai. */
.pd-v2 .rl-wrap.is-variacao .t-sec-add {
    display: none;
}

/* Chegada pelo chip "N variacoes": um realce curto mostra onde a familia
   esta, sem cor (monocromatico). */
.pd-v2 .rl-wrap.rl-pisca {
    background: var(--color-hover-01);
    box-shadow: 0 0 0 8px var(--color-hover-01);
}

.pd-v2 .rl-body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding-bottom: 4px;
}

.pd-v2 .rl-wrap .tc-item {
    margin-bottom: 0;
}

/* A etiqueta ("Principal", "Este conteudo") encosta no titulo em vez de
   ser empurrada para a borda pelo flex do titulo. */
.pd-v2 .rl-wrap .tc-tit {
    flex: 0 1 auto;
}

/* Coluna de acoes com largura FIXA: o principal tem dois botoes, as irmas
   um, e "este conteudo" nenhum. Sem a largura fixa a data de cada linha
   cairia num lugar diferente. */
.pd-v2 .rl-wrap .tc-acoes {
    width: 57px;
    justify-content: flex-end;
}

/* Rotulos internos ("Variacao de", "Variacoes da familia"). */
.pd-v2 .rl-sub {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 6px 0 0 2px;
    font-size: 11.5px;
    font-weight: 500;
    color: var(--su-fg-soft);
}

.pd-v2 .rl-sub:first-child {
    margin-top: 0;
}

.pd-v2 .rl-sub-n {
    padding: 0 5px;
    border-radius: 5px;
    background: var(--su-bg-hover);
    font-size: 10.5px;
    line-height: 16px;
    font-variant-numeric: tabular-nums;
}

/* Etiqueta ao lado do titulo. "Principal" e a unica em tinta cheia: e a
   peca de referencia da familia. */
.pd-v2 .rl-tag {
    flex: 0 0 auto;
    padding: 1px 6px;
    border-radius: 6px;
    background: var(--su-bg-hover);
    color: var(--su-fg-soft);
    font-size: 9.5px;
    font-weight: 500;
    line-height: 15px;
    white-space: nowrap;
}

.pd-v2 .rl-tag.rl-tag-principal {
    background: var(--tc-tinta);
    color: var(--tc-tinta-txt);
}

.pd-v2 .rl-item-principal {
    border-color: var(--su-line);
}

/* O conteudo aberto dentro da propria familia: referencia de posicao, nao
   alvo de clique. Tracejado = "voce esta aqui". */
.pd-v2 .rl-item.rl-atual,
.pd-v2 .rl-item.rl-atual:hover {
    cursor: default;
    border-style: dashed;
    background: var(--su-bg-subtle);
    box-shadow: none;
}

.pd-v2 .rl-intro {
    max-width: 520px;
    padding: 0 8px;
    font-size: 12.5px;
    line-height: 1.5;
    color: var(--su-fg-soft);
}

/* As duas entradas ficam a vista, lado a lado, no mesmo desenho do
   "+ Nova tarefa" da secao de cima. */
.pd-v2 .rl-acoes-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 2px;
}

.pd-v2 .rl-acoes-row .add-sub-row {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 8px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 400;
    color: var(--color-text);
    opacity: .55;
    cursor: pointer;
    transition: background .12s, opacity .12s;
}

.pd-v2 .rl-acoes-row .add-sub-row svg {
    flex: 0 0 auto;
    width: 14px;
    height: 14px;
}

.pd-v2 .rl-acoes-row .add-sub-row:hover {
    opacity: 1;
    background: var(--color-hover-01);
    color: var(--color-text);
}

.pd-v2 .rl-acoes-row .add-sub-row.is-ocupado {
    opacity: .4;
    pointer-events: none;
}

/* ---- chip na barra de titulo da janela ---------------------------------
   "Variacao de #12" (volta ao principal) / "3 variacoes" (rola ate o bloco).
   Fica colado no #numero, que e o que ele qualifica. */
.pd-v2 .pd2-rel {
    flex: 0 1 auto;
    min-width: 0;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 10px 0 8px;
    border: 1px solid var(--color-border);
    border-radius: 9px;
    background: transparent;
    color: var(--color-text);
    font: inherit;
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: background .12s, border-color .12s;
}

.pd-v2 .pd2-rel svg {
    flex: 0 0 auto;
    opacity: .7;
}

.pd-v2 .pd2-rel b {
    font-weight: 600;
}

.pd-v2 .pd2-rel:hover {
    background: var(--color-hover-01);
}

/* A variacao precisa ser percebida de primeira: realce cheio, sem borda. */
.pd-v2 .pd2-rel.rl-chip-ir {
    border-color: transparent;
    background: var(--color-hover-01);
}

.pd-v2 .pd2-rel.rl-chip-ir:hover {
    border-color: var(--color-border);
}

/* ---- picker: relacionar conteudos (#edit-popup-medium .rl-modal) ----
   Layout de 4 faixas do .tc-modal (a regra la foi estendida para .rl-modal).
   A raiz NAO e .tc-modal: os handlers do picker da tarefa sao escopados nela. */
.tc .rl-pk-tit {
    min-width: 0;
}

.tc .rl-pk-h {
    font-size: 15px;
    font-weight: 600;
    color: var(--su-fg);
}

.tc .rl-pk-s {
    margin-top: 3px;
    font-size: 12px;
    color: var(--su-fg-soft);
}

.tc .rl-busca {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 36px;
    margin: 0 0 10px;
    padding: 0 12px;
    border: 1px solid var(--su-border);
    border-radius: 10px;
    background: var(--su-bg-input);
    color: var(--su-fg-soft);
    cursor: text;
    transition: border-color .12s, box-shadow .12s;
}

.tc .rl-busca:focus-within {
    border-color: var(--su-line);
    box-shadow: 0 0 0 3px var(--tc-realce);
}

.tc .rl-busca input {
    flex: 1 1 auto;
    min-width: 0;
    height: 100%;
    padding: 0;
    border: 0;
    outline: 0;
    background: transparent;
    font: inherit;
    font-size: 13px;
    color: var(--su-fg);
}

.tc .rl-busca input::placeholder {
    color: var(--su-fg-mute);
}

/* Buscando, o strip de meses vira referencia apagada: a lista e da busca. */
.rl-modal.rl-buscando .rl-meses {
    opacity: .4;
}

/* =============================================================================
   EDITAR VIDEO (#vp-modal.vp-v4) - edicao rapida antes do upload
   -----------------------------------------------------------------------------
   JS: window.VideoPreview (footer.php). O preview virou editor: a mesa escura
   continua sendo do video, e o PAPEL da direita ganhou um trilho de
   ferramentas colado ao painel de cada uma. Tudo escopado em .vp-v4: o
   .vp-palco e o mockup .vpm-* tambem sao usados pela Previa nas redes (.pr-*),
   que nao muda.

   Grade: [mesa escura | trilho | painel]. O trilho fica ENTRE a mesa e o
   painel - a ferramenta e o que ela mostra ficam lado a lado, e a fronteira
   escuro/claro continua sendo uma so.
   ============================================================================= */
#vp-modal.vp-v4 .vp-box {
    max-width: 1180px;
    height: min(92vh, 860px);
    max-height: 92vh;
}

#vp-modal.vp-v4 .vp-body {
    grid-template-columns: minmax(0, 1fr) 76px 336px;
    grid-template-areas: "palco rail painel";
}

#vp-modal.vp-v4 .vp-col-palco {
    grid-area: palco;
    gap: 10px;
    padding: var(--vp-pad) var(--vp-pad) 14px;
}

#vp-modal.vp-v4 .vp-col-info {
    grid-area: painel;
}

/* ---- Cabecalho: veredito sempre a vista ---------------------------------- */
#vp-modal.vp-v4 .vp-hdr {
    align-items: center;
}

.vp-hdr-vd {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 30px;
    padding: 0 12px 0 11px;
    border-radius: 100px;
    border: 1px solid var(--color-border);
    background: var(--vp-trilho);
    color: var(--color-text-01);
    font-size: var(--vp-fs-sub);
    cursor: pointer;
    transition: background .15s;
}

.vp-hdr-vd b {
    font-weight: 600;
    white-space: nowrap;
}

.vp-hdr-vd:hover {
    background: var(--color-hover-01);
}

/* ---- Trilho de ferramentas ----------------------------------------------- */
.vp-rail {
    grid-area: rail;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 7px;
    background: var(--vp-surface);
    border-right: 1px solid var(--color-border);
    overflow-y: auto;
    scrollbar-width: none;
}

.vp-rail::-webkit-scrollbar {
    display: none;
}

.vp-rail-bt {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    width: 100%;
    padding: 7px 0 6px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--vp-mudo);
    cursor: pointer;
    transition: color .15s, background .15s;
}

.vp-rail-bt svg {
    width: 34px;
    height: 34px;
    padding: 7px;
    border-radius: 10px;
    transition: background .15s, color .15s;
}

.vp-rail-bt span {
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.1;
    letter-spacing: -.1px;
}

.vp-rail-bt:hover:not(:disabled) {
    color: var(--color-text-01);
}

.vp-rail-bt:hover:not(:disabled) svg {
    background: var(--color-hover-01);
}

.vp-rail-bt.atv {
    color: var(--color-text-01);
}

.vp-rail-bt.atv span {
    font-weight: 600;
}

.vp-rail-bt.atv svg,
.vp-rail-bt.atv:hover:not(:disabled) svg {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* Ponto = esta ferramenta tem edicao aplicada (um olhar no trilho diz o que
   ja foi mexido, sem abrir nada). */
.vp-rail-bt.tem::after {
    content: '';
    position: absolute;
    top: 7px;
    right: 13px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-text-01);
    box-shadow: 0 0 0 2px var(--vp-surface);
}

.vp-rail-bt:disabled {
    opacity: .35;
    cursor: not-allowed;
}

/* ---- Palco: o video posicionado pelo JS (encaixar) ----------------------- */
#vp-modal.vp-v4 .vp-midia {
    overflow: hidden;
}

#vp-modal.vp-v4 .vp-midia video.vp-enc {
    inset: auto;
    object-fit: fill;
    transform-origin: 50% 50%;
    background: transparent;
}

#vp-modal.vp-v4 .vp-midia .vp-capa-sobre {
    inset: auto;
    object-fit: cover;
    z-index: 1;
}

#vp-modal.vp-v4 .vp-enc-q {
    position: absolute;
}

#vp-sobre {
    z-index: 2;
    pointer-events: none;
}

#vp-txt-hit {
    z-index: 3;
    pointer-events: none;
}

#vp-modal[data-ferr="texto"] #vp-txt-hit {
    pointer-events: auto;
    cursor: move;
}

/* Ima no centro: as duas guias aparecem so enquanto o texto esta preso nelas */
#vp-txt-hit.ima-x::before,
#vp-txt-hit.ima-y::after {
    content: '';
    position: absolute;
    background: rgba(255, 255, 255, .7);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .25);
    pointer-events: none;
}

#vp-txt-hit.ima-x::before {
    left: 50%;
    top: 0;
    bottom: 0;
    width: 1px;
}

#vp-txt-hit.ima-y::after {
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
}

/* O play do meio sai quando a ferramenta usa o palco (arrastar o quadro ou o
   texto): no centro ele cairia exatamente onde se quer pegar. A barra tem o
   play de sempre. */
#vp-modal[data-ferr="enquadrar"] .vp-play,
#vp-modal[data-ferr="texto"] .vp-play {
    display: none;
}

#vp-modal.vp-v4 .vp-palco.vp-modo-quadro {
    background: #000;
    cursor: default;
}

/* Moldura do enquadramento: o que fica fora escurece (sombra gigante), a
   grade dos tercos ajuda a compor, as quinas mudam o zoom. */
.vp-crop {
    position: absolute;
    z-index: 4;
    border: 1.5px solid #fff;
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, .58);
    cursor: move;
    touch-action: none;
}

.vp-crop[hidden] {
    display: none;
}

.vp-crop-gr {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(90deg, transparent calc(33.333% - .5px), rgba(255, 255, 255, .45) calc(33.333% - .5px), rgba(255, 255, 255, .45) calc(33.333% + .5px), transparent calc(33.333% + .5px), transparent calc(66.666% - .5px), rgba(255, 255, 255, .45) calc(66.666% - .5px), rgba(255, 255, 255, .45) calc(66.666% + .5px), transparent calc(66.666% + .5px)),
        linear-gradient(180deg, transparent calc(33.333% - .5px), rgba(255, 255, 255, .45) calc(33.333% - .5px), rgba(255, 255, 255, .45) calc(33.333% + .5px), transparent calc(33.333% + .5px), transparent calc(66.666% - .5px), rgba(255, 255, 255, .45) calc(66.666% - .5px), rgba(255, 255, 255, .45) calc(66.666% + .5px), transparent calc(66.666% + .5px));
}

.vp-crop b {
    position: absolute;
    width: 18px;
    height: 18px;
    border: 3px solid #fff;
}

.vp-crop b[data-c="nw"] {
    left: -3px;
    top: -3px;
    border-right: 0;
    border-bottom: 0;
    cursor: nwse-resize;
}

.vp-crop b[data-c="ne"] {
    right: -3px;
    top: -3px;
    border-left: 0;
    border-bottom: 0;
    cursor: nesw-resize;
}

.vp-crop b[data-c="sw"] {
    left: -3px;
    bottom: -3px;
    border-right: 0;
    border-top: 0;
    cursor: nesw-resize;
}

.vp-crop b[data-c="se"] {
    right: -3px;
    bottom: -3px;
    border-left: 0;
    border-top: 0;
    cursor: nwse-resize;
}

/* ---- Barra do palco ------------------------------------------------------ */
#vp-modal.vp-v4 .vp-barra {
    gap: 8px;
}

#vp-modal.vp-v4 .vp-tempo {
    margin-left: 0;
    min-width: 76px;
    color: rgba(255, 255, 255, .8);
    font-size: var(--vp-fs-sub);
}

#vp-modal.vp-v4 .vp-tag {
    flex: 1 1 auto;
    color: rgba(255, 255, 255, .45);
}

.vp-bt-redondo {
    flex: 0 0 auto;
    height: 32px;
    min-width: 32px;
    padding: 0;
    display: inline-grid;
    place-items: center;
    border: 0;
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    cursor: pointer;
    transition: background .15s;
}

.vp-bt-redondo svg {
    width: 16px;
    height: 16px;
}

.vp-bt-redondo:hover {
    background: rgba(255, 255, 255, .16);
}

.vp-bt-redondo.atv {
    background: #fff;
    color: #15161a;
}

.vp-bt-redondo[hidden] {
    display: none;
}

#vp-bt-play {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: #111;
}

#vp-bt-play svg {
    width: 15px;
    height: 15px;
}

#vp-bt-play:hover {
    background: #e9eaec;
}

.vp-bt-comp {
    padding: 0 11px;
    font-size: var(--vp-fs-sub);
    font-weight: 600;
    user-select: none;
    touch-action: none;
}

/* ---- Linha do tempo ------------------------------------------------------ */
.vp-tl {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    gap: 5px;
    user-select: none;
}

.vp-tl-pista {
    position: relative;
    height: 48px;
    border-radius: 9px;
    overflow: hidden;
    cursor: pointer;
    touch-action: none;
    background: #1b1d22;
}

#vp-tl-cv {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    display: block;
}

.vp-tl-fora {
    position: absolute;
    top: 0;
    bottom: 0;
    background: rgba(8, 9, 11, .72);
    pointer-events: none;
}

.vp-tl-fora-e {
    left: 0;
}

.vp-tl-fora-d {
    right: 0;
}

/* O trecho escolhido: moldura branca grossa em cima e embaixo, alcas nas
   pontas - o desenho que todo editor de celular usa para "aparar". */
.vp-tl-sel {
    position: absolute;
    top: 0;
    bottom: 0;
    min-width: 30px;
    border-top: 3px solid #fff;
    border-bottom: 3px solid #fff;
    border-radius: 7px;
    pointer-events: none;
}

.vp-tl-al {
    position: absolute;
    top: -3px;
    bottom: -3px;
    width: 14px;
    background: #fff;
    pointer-events: auto;
    cursor: ew-resize;
}

.vp-tl-al::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    width: 2px;
    height: 16px;
    margin: -8px 0 0 -1px;
    border-radius: 2px;
    background: #15161a;
    opacity: .55;
}

.vp-tl-al-e {
    left: 0;
    border-radius: 7px 0 0 7px;
}

.vp-tl-al-d {
    right: 0;
    border-radius: 0 7px 7px 0;
}

.vp-tl[data-off] .vp-tl-al {
    display: none;
}

.vp-tl-cab {
    position: absolute;
    top: 0;
    bottom: 0;
    width: 2px;
    margin-left: -1px;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .35);
    pointer-events: none;
}

.vp-tl-txts {
    position: relative;
    height: 6px;
}

.vp-tl-txts:empty {
    display: none;
}

.vp-tl-txts i {
    position: absolute;
    top: 0;
    height: 6px;
    border-radius: 3px;
    background: rgba(255, 255, 255, .38);
    cursor: pointer;
}

.vp-tl-txts i.atv {
    background: #fff;
}

.vp-tl-rot {
    display: flex;
    justify-content: space-between;
    font-size: var(--vp-fs-mic);
    font-variant-numeric: tabular-nums;
    color: rgba(255, 255, 255, .45);
    line-height: 1;
}

/* ---- Painel (.vpe-*) ----------------------------------------------------- */
.vpe-cab {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 4px;
}

.vpe-tit {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.2px;
    color: var(--color-text-01);
    line-height: 1.25;
}

.vpe-sub {
    margin-top: 3px;
    font-size: var(--vp-fs-sub);
    line-height: 1.45;
    color: var(--vp-mudo);
}

.vpe-sub-tit {
    margin-top: 6px;
    font-size: var(--vp-fs-sub);
    font-weight: 600;
    color: var(--color-text-01);
}

.vpe-link {
    flex: 0 0 auto;
    padding: 0;
    border: 0;
    background: none;
    font-size: var(--vp-fs-sub);
    font-weight: 500;
    color: var(--color-text-01);
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

.vpe-link[hidden] {
    display: none;
}

.vpe-faixa {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 4px 0;
}

.vpe-faixa-cab {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    font-size: var(--vp-fs-txt);
    color: var(--color-text-01);
    cursor: default;
}

.vpe-dica {
    font-style: normal;
    font-size: var(--vp-fs-mic);
    color: var(--vp-mudo);
}

.vpe-val {
    font-size: var(--vp-fs-sub);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--vp-mudo);
}

#vp-modal input.vpe-r {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 18px;
    margin: 0;
    padding: 0;
    background: transparent;
    border: 0;
    cursor: pointer;
}

#vp-modal input.vpe-r::-webkit-slider-runnable-track {
    height: 4px;
    border-radius: 4px;
    background: var(--color-border);
}

#vp-modal input.vpe-r::-moz-range-track {
    height: 4px;
    border-radius: 4px;
    background: var(--color-border);
}

#vp-modal input.vpe-r::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 16px;
    height: 16px;
    margin-top: -6px;
    border-radius: 50%;
    border: 0;
    background: var(--color-btn-bg-01);
    box-shadow: 0 0 0 3px var(--vp-surface), 0 1px 4px rgba(0, 0, 0, .3);
}

#vp-modal input.vpe-r::-moz-range-thumb {
    width: 16px;
    height: 16px;
    border-radius: 50%;
    border: 0;
    background: var(--color-btn-bg-01);
    box-shadow: 0 0 0 3px var(--vp-surface), 0 1px 4px rgba(0, 0, 0, .3);
}

.vpe-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.vpe-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 12px;
    border-radius: 100px;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-text-01);
    font-size: var(--vp-fs-sub);
    font-weight: 500;
    cursor: pointer;
    transition: background .15s;
}

.vpe-chip i {
    font-style: normal;
    color: var(--vp-mudo);
}

.vpe-chip:hover:not(.atv) {
    background: var(--color-hover-01);
}

.vpe-chip.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-weight: 600;
}

.vpe-chips-vel .vpe-chip {
    min-width: 54px;
    justify-content: center;
}

.vpe-formatos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
    margin-bottom: 4px;
}

.vpe-fmt {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 8px;
    padding: 8px 10px 8px 8px;
    border-radius: 11px;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-text-01);
    text-align: left;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.vpe-fmt i {
    grid-row: 1 / 3;
    justify-self: center;
    border: 1.5px solid currentColor;
    border-radius: 3px;
    opacity: .7;
}

.vpe-fmt b {
    font-size: var(--vp-fs-txt);
    font-weight: 600;
    line-height: 1.2;
}

.vpe-fmt span {
    font-size: var(--vp-fs-mic);
    line-height: 1.25;
    color: var(--vp-mudo);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vpe-fmt:hover:not(.atv) {
    background: var(--color-hover-01);
}

.vpe-fmt.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

.vpe-fmt.atv i {
    opacity: 1;
    background: var(--color-hover-01);
}

.vpe-linha-bts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.vpe-bt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 34px;
    padding: 0 12px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-text-01);
    font-size: var(--vp-fs-sub);
    font-weight: 500;
    cursor: pointer;
    transition: background .15s;
}

.vpe-bt svg {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

.vpe-bt:hover {
    background: var(--color-hover-01);
}

.vpe-bt.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.vpe-bt-largo {
    width: 100%;
    margin: 2px 0 4px;
}

.vpe-ico {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--vp-mudo);
    cursor: pointer;
}

.vpe-ico svg {
    width: 16px;
    height: 16px;
}

.vpe-ico:hover {
    color: var(--color-text-01);
    background: var(--color-hover-01);
}

.vpe-ico.atv {
    color: var(--color-text-01);
    background: var(--color-hover-01);
}

.vpe-filtros {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 8px;
    margin-bottom: 4px;
}

.vpe-filtro {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 0;
    border: 0;
    background: none;
    color: var(--vp-mudo);
    cursor: pointer;
    text-align: center;
}

.vpe-filtro-img {
    display: block;
    aspect-ratio: 1;
    border-radius: 11px;
    overflow: hidden;
    background: #1b1d22;
    box-shadow: inset 0 0 0 1px var(--color-border);
    transition: box-shadow .15s, transform .15s;
}

.vpe-filtro-img canvas {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.vpe-filtro b {
    font-size: var(--vp-fs-sub);
    font-weight: 500;
}

.vpe-filtro:hover .vpe-filtro-img {
    transform: translateY(-1px);
}

.vpe-filtro.atv {
    color: var(--color-text-01);
}

.vpe-filtro.atv b {
    font-weight: 600;
}

.vpe-filtro.atv .vpe-filtro-img {
    box-shadow: 0 0 0 2px var(--vp-surface), 0 0 0 4px var(--color-btn-bg-01);
}

.vpe-tempos {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.vpe-tempo {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 2px;
    margin: 0;
    padding: 6px 4px 6px 10px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--vp-surface);
}

.vpe-tempo span {
    grid-column: 1 / 3;
    font-size: var(--vp-fs-mic);
    color: var(--vp-mudo);
    line-height: 1.2;
}

#vp-modal .vpe-tempo input {
    width: 100%;
    min-width: 0;
    height: 26px;
    padding: 0;
    border: 0;
    background: transparent;
    font-size: 15px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    color: var(--color-text-01);
    outline: none;
    box-shadow: none;
}

.vpe-tempo:focus-within {
    border-color: var(--color-btn-bg-01);
}

.vpe-resultado {
    margin-top: 6px;
    font-size: var(--vp-fs-sub);
    color: var(--vp-mudo);
}

.vpe-resultado b {
    color: var(--color-text-01);
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.vpe-grupo.vpe-off {
    opacity: .4;
    pointer-events: none;
}

.vpe-acao {
    display: inline-flex;
    align-items: center;
    height: 26px;
    margin: 7px 0 1px;
    padding: 0 10px;
    border-radius: 8px;
    border: 1px solid var(--color-border);
    background: var(--vp-surface);
    color: var(--color-text-01);
    font-size: var(--vp-fs-sub);
    font-weight: 600;
    cursor: pointer;
}

.vp-nota .vpe-acao {
    display: flex;
}

.vpe-acao:hover {
    background: var(--color-hover-01);
}

/* ---- Texto --------------------------------------------------------------- */
.vpe-txt-lst {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.vpe-txt-it {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 0 4px 0 11px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    cursor: pointer;
    font-size: var(--vp-fs-txt);
    color: var(--color-text-01);
}

.vpe-txt-it span {
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.vpe-txt-it span i {
    color: var(--vp-mudo);
}

.vpe-txt-it.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
    font-weight: 600;
}

#vp-modal .vpe-txt-in {
    width: 100%;
    min-height: 58px;
    padding: 9px 11px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--vp-surface);
    color: var(--color-text-01);
    font: inherit;
    font-size: 14px;
    line-height: 1.4;
    resize: vertical;
    outline: none;
}

#vp-modal .vpe-txt-in:focus {
    border-color: var(--color-btn-bg-01);
}

.vpe-estilos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.vpe-estilo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    padding: 7px 4px 6px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--vp-mudo);
    cursor: pointer;
}

.vpe-estilo b {
    display: grid;
    place-items: center;
    width: 100%;
    height: 30px;
    border-radius: 7px;
    background: #2a2d33;
    color: #fff;
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    font-size: 16px;
    font-weight: 800;
}

.vpe-estilo span {
    font-size: var(--vp-fs-mic);
}

.vpe-est-classico b {
    text-shadow: 0 1px 4px rgba(0, 0, 0, .9);
    background: linear-gradient(160deg, #6c7a89, #3c4652);
}

.vpe-est-caixa b {
    background: #fff;
    color: #111;
}

.vpe-est-legenda b {
    background: rgba(0, 0, 0, .62);
    box-shadow: inset 0 0 0 4px #4b525b;
}

.vpe-est-legenda b {
    font-weight: 600;
}

.vpe-est-contorno b {
    color: #fff;
    -webkit-text-stroke: 1px #000;
    paint-order: stroke fill;
    background: linear-gradient(160deg, #8e9aa6, #59636e);
}

.vpe-est-brilho b {
    text-shadow: 0 0 8px #fff, 0 0 2px #fff;
}

.vpe-est-simples b {
    font-weight: 600;
}

.vpe-estilo.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
    color: var(--color-text-01);
}

.vpe-cores {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}

.vpe-cor {
    width: 24px;
    height: 24px;
    padding: 0;
    border-radius: 50%;
    border: 1px solid rgba(0, 0, 0, .18);
    background: var(--c);
    cursor: pointer;
}

.vpe-cor.atv {
    box-shadow: 0 0 0 2px var(--vp-surface), 0 0 0 4px var(--color-btn-bg-01);
}

.vpe-alin {
    margin-left: auto;
    display: inline-flex;
    gap: 1px;
}

/* ---- Rodape -------------------------------------------------------------- */

.vp-hist {
    display: inline-flex;
    gap: 2px;
}

.vp-bt-ico {
    width: 32px;
    height: 32px;
    display: inline-grid;
    place-items: center;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
}

.vp-bt-ico svg {
    width: 17px;
    height: 17px;
}

.vp-bt-ico:hover:not(:disabled) {
    background: var(--color-hover-01);
}

.vp-bt-ico:disabled {
    opacity: .3;
    cursor: default;
}

.vp-resumo {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 7px;
    font-size: var(--vp-fs-sub);
    color: var(--vp-mudo);
    white-space: nowrap;
    overflow: hidden;
}

.vp-resumo b {
    color: var(--color-text-01);
    font-weight: 600;
}

.vp-resumo span {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* =============================================================================
   EDITAR IMAGEM (#edit-image) - trilho + paineis + lote (08/10/2026)
   -----------------------------------------------------------------------------
   JS: footer.php (cpFerramenta, cpLote, cpFundo, ajustes). O mesmo desenho do
   Editar video: [mesa escura | trilho | painel]. Os dois paineis flutuantes
   antigos (Luz e cor / Marca d'agua) viraram secoes da coluna da direita;
   [data-cp-ferr] no #edit-image escolhe qual aparece. Regras antigas do kit
   .cp-* continuam valendo (botoes, sliders, logos); aqui so a casca nova.
   ============================================================================= */
#edit-image .contant .conteudo {
    max-width: 1180px;
    max-height: none;
    height: min(92vh, 860px);
}

#edit-image .cp-hdr-acoes {
    gap: 10px;
}

#edit-image .cp-hdr .cp-saida {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 30px;
    padding: 0 12px 0 10px;
    border-radius: 100px;
    border: 1px solid var(--color-border);
    background: var(--color-hover-01);
    font-size: 12px;
}

#edit-image .cp-hdr .cp-saida .material-icons-round {
    font-size: 15px;
    opacity: .55;
}

#edit-image .cp-x {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    cursor: pointer;
    opacity: .55;
    transition: .15s;
}

#edit-image .cp-x svg {
    width: 16px;
    height: 16px;
}

#edit-image .cp-x:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

#edit-image .cp-corpo {
    flex: 1 1 auto;
    min-height: 0;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 76px 320px;
    grid-template-areas: "mesa rail painel";
}

#edit-image .cp-mesa {
    grid-area: mesa;
    min-width: 0;
    min-height: 0;
    display: flex;
    flex-direction: column;
    background: var(--cp-palco);
}

#edit-image .cp-mesa .image {
    flex: 1 1 auto;
    padding: 18px;
}

/* ---- Processando (remover fundo) ---------------------------------------- */
#edit-image .cp-processando {
    display: none;
    position: absolute;
    inset: 0;
    z-index: 21;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 12px;
    background: rgba(10, 11, 13, .62);
    backdrop-filter: blur(3px);
    -webkit-backdrop-filter: blur(3px);
    color: #fff;
}

#edit-image .cp-processando b {
    font-size: 12.5px;
    font-weight: 500;
    max-width: 260px;
    text-align: center;
    line-height: 1.45;
    opacity: .9;
}

#edit-image .cp-processando span {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 2px solid #ffffff26;
    border-top-color: #fff;
    animation: cp-gira .7s linear infinite;
}

#edit-image.cp-processando-atv .cp-processando {
    display: flex;
}

/* ---- Look (temperatura e vinheta) por cima da area de recorte ------------- */
#edit-image .cp-look {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

#edit-image .cp-look i {
    position: absolute;
    inset: 0;
}

#edit-image .cp-look .cp-look-temp {
    mix-blend-mode: soft-light;
}

/* ---- Trilho -------------------------------------------------------------- */
#edit-image .cp-rail {
    grid-area: rail;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 7px;
    background: var(--cp-surface);
    border-right: 1px solid var(--color-border);
    overflow-y: auto;
    scrollbar-width: none;
}

#edit-image .cp-rail::-webkit-scrollbar {
    display: none;
}

#edit-image .cp-rail-bt {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    width: 100%;
    padding: 7px 0 6px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--color-text-01);
    opacity: .62;
    cursor: pointer;
    font: inherit;
    transition: opacity .15s;
}

#edit-image .cp-rail-bt svg {
    width: 34px;
    height: 34px;
    padding: 7px;
    border-radius: 10px;
    transition: background .15s, color .15s;
}

#edit-image .cp-rail-bt span {
    font-size: 10.5px;
    font-weight: 500;
    line-height: 1.1;
}

#edit-image .cp-rail-bt:hover {
    opacity: 1;
}

#edit-image .cp-rail-bt:hover svg {
    background: var(--color-hover-01);
}

#edit-image .cp-rail-bt.atv {
    opacity: 1;
}

#edit-image .cp-rail-bt.atv span {
    font-weight: 600;
}

#edit-image .cp-rail-bt.atv svg,
#edit-image .cp-rail-bt.atv:hover svg {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

#edit-image .cp-rail-bt.tem::after {
    content: '';
    position: absolute;
    top: 7px;
    right: 13px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-text-01);
    box-shadow: 0 0 0 2px var(--cp-surface);
}

#edit-image.cp-sem-texto .cp-rail-bt.btn-texto-editor,
#edit-image.cropper-avatar-mode .cp-rail-bt.btn-texto-editor,
#edit-image.cropper-avatar-mode .cp-rail-bt.mais-opcoes {
    display: none;
}

/* ---- Painel -------------------------------------------------------------- */
#edit-image .cp-pn {
    grid-area: painel;
    min-height: 0;
    overflow-y: auto;
    background: var(--cp-surface);
    scrollbar-width: thin;
}

#edit-image .cp-pn-sec {
    display: none;
    flex-direction: column;
    gap: 12px;
    padding: 16px 18px 20px;
}

#edit-image[data-cp-ferr="recortar"] .cp-pn-sec[data-pn="recortar"],
#edit-image[data-cp-ferr="filtros"] .cp-pn-sec[data-pn="filtros"],
#edit-image[data-cp-ferr="ajustar"] .cp-pn-sec[data-pn="ajustar"],
#edit-image[data-cp-ferr="fundo"] .cp-pn-sec[data-pn="fundo"],
#edit-image[data-cp-ferr="logo"] .cp-pn-sec[data-pn="logo"] {
    display: flex;
}

#edit-image .cp-pn-cab {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

#edit-image .cp-pn-tit {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.2px;
    line-height: 1.25;
}

#edit-image .cp-pn-sub {
    margin-top: 3px;
    font-size: 11.5px;
    line-height: 1.45;
    opacity: .55;
}

#edit-image .cp-link {
    flex: 0 0 auto;
    font-size: 11.5px;
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 2px;
    cursor: pointer;
}

#edit-image .cp-dica {
    font-style: normal;
    font-size: 10.5px;
    opacity: .5;
    margin-left: 4px;
}

#edit-image .cp-pn .cp-grupo+.cp-grupo {
    padding-left: 0;
    border-left: 0;
}

#edit-image .cp-pn .cp-grupo-girar {
    flex: none;
    min-width: 0;
}

#edit-image .cp-bt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 34px;
    padding: 0 12px;
    border-radius: 10px;
    border: 1px solid var(--color-border);
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
    user-select: none;
    transition: background .15s;
}

#edit-image .cp-bt svg {
    width: 16px;
    height: 16px;
    flex: 0 0 auto;
}

#edit-image .cp-bt:hover {
    background: var(--color-hover-01);
}

#edit-image .cp-bt-largo {
    width: 100%;
}

#edit-image .cp-bt-forte {
    height: 40px;
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-weight: 600;
}

#edit-image .cp-bt-forte:hover {
    background: var(--color-btn-bg-01);
    box-shadow: 0 3px 10px -2px rgba(0, 0, 0, .3);
}

/* "Usar em todas" so existe no lote */
#edit-image .cp-todas {
    display: none;
    align-items: center;
    justify-content: center;
    height: 34px;
    margin-top: 2px;
    border-radius: 10px;
    border: 1px dashed var(--color-border);
    font-size: 12px;
    font-weight: 500;
    cursor: pointer;
}

#edit-image .cp-todas:hover {
    background: var(--color-hover-01);
    border-style: solid;
}

#edit-image.cp-em-lote .cp-todas {
    display: flex;
}

/* Formatos: grade de 3, nome do USO + a razao embaixo */
#edit-image .cp-pn .proporcoes {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

#edit-image .cp-pn .proporcoes .item {
    padding: 8px 0 7px;
    border: 1px solid var(--color-border);
    border-radius: 11px;
    cursor: pointer;
    user-select: none;
    text-align: center;
    transition: background .15s, border-color .15s;
}

#edit-image .cp-pn .proporcoes .item:hover {
    background: var(--color-hover-01);
}

#edit-image .cp-pn .proporcoes .item .c {
    height: 26px;
    display: flex;
    align-items: center;
    justify-content: center;
}

#edit-image .cp-pn .proporcoes .item .c div {
    border: 1.5px solid var(--color-text-01);
    border-radius: 3px;
    opacity: .45;
}

#edit-image .cp-pn .proporcoes .item .c .cp-livre {
    border: 0;
    display: flex;
    fill: var(--color-text-01);
}

#edit-image .cp-pn .proporcoes .item p {
    margin: 4px 0 0;
    font-size: 11.5px;
    font-weight: 600;
    line-height: 1.15;
}

#edit-image .cp-pn .proporcoes .item em {
    display: block;
    font-style: normal;
    font-size: 10px;
    opacity: .5;
    font-variant-numeric: tabular-nums;
}

#edit-image .cp-pn .proporcoes .item.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

#edit-image .cp-pn .proporcoes .item.atv .c div {
    background: var(--color-text-01);
    opacity: 1;
}

#edit-image .cp-pn .proporcoes .item.atv .c .cp-livre {
    background: none;
}

/* Filtros: 3 colunas, a foto da pessoa em cada um */
#edit-image .cp-pn .cp-presets {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px 8px;
}

/* Ajustar: os sliders do kit, um pouco mais de ar */
#edit-image .cp-pn .cp-painel-ajustes .lg-slider,
#edit-image .cp-pn-sec[data-pn="ajustar"] .lg-slider {
    margin: 0;
}

#edit-image .cp-pn-sec[data-pn="ajustar"] .lg-slider label {
    cursor: default;
    user-select: none;
}

/* Fundo: amostras */
#edit-image .cp-fundo-opcoes {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

#edit-image .cp-fundos {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
}

#edit-image .cp-fd {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    cursor: pointer;
    font-size: 11px;
}

#edit-image .cp-fd span {
    opacity: .7;
}

#edit-image .cp-fd i {
    width: 100%;
    aspect-ratio: 1.3;
    border-radius: 10px;
    box-shadow: inset 0 0 0 1px var(--color-border);
    transition: box-shadow .15s;
}

#edit-image .cp-fd .cp-fd-xadrez {
    background-color: #fff;
    background-image:
        linear-gradient(45deg, #d9dbe0 25%, transparent 25%, transparent 75%, #d9dbe0 75%),
        linear-gradient(45deg, #d9dbe0 25%, transparent 25%, transparent 75%, #d9dbe0 75%);
    background-size: 12px 12px;
    background-position: 0 0, 6px 6px;
}

#edit-image .cp-fd .cp-fd-desf {
    background: linear-gradient(135deg, #8aa3b8, #c9b79c 55%, #7f8f6e);
    filter: blur(.4px);
}

#edit-image .cp-fd .cp-fd-cor {
    background: conic-gradient(#ff5a4e, #ffd60a, #3ddc84, #4da3ff, #c48bff, #ff5a4e);
}

#edit-image .cp-fd input {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 70%;
    opacity: 0;
    pointer-events: none;
}

#edit-image .cp-fd:hover span,
#edit-image .cp-fd.atv span {
    opacity: 1;
}

#edit-image .cp-fd.atv {
    font-weight: 600;
}

#edit-image .cp-fd.atv i {
    box-shadow: 0 0 0 2px var(--cp-surface), 0 0 0 4px var(--color-btn-bg-01);
}

#edit-image .cp-pn-sec[data-pn="fundo"]:not(.cp-fundo-tem) .cp-fundo-opcoes {
    opacity: .55;
}

/* Logo: as acoes do antigo rodape do painel */
#edit-image .logo-acoes {
    display: flex;
    gap: 7px;
    margin-top: 6px;
}

#edit-image .logo-acoes .cp-bt {
    flex: 1 1 0;
}

/* ---- Lote: fita de miniaturas -------------------------------------------- */
#edit-image .cp-lote {
    flex: 0 0 auto;
    padding: 0 18px 14px;
}

#edit-image .cp-lote[hidden] {
    display: none;
}

#edit-image .cp-lote-lst {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding: 4px 2px 2px;
    scrollbar-width: thin;
}

#edit-image .cp-lote-it {
    position: relative;
    flex: 0 0 64px;
    height: 64px;
    border-radius: 10px;
    overflow: hidden;
    cursor: pointer;
    background: #1b1d22;
    box-shadow: 0 0 0 1px rgba(255, 255, 255, .1);
    opacity: .62;
    transition: opacity .15s, box-shadow .15s, transform .15s;
}

#edit-image .cp-lote-it img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

#edit-image .cp-lote-it b {
    position: absolute;
    left: 5px;
    bottom: 4px;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 5px;
    background: rgba(0, 0, 0, .62);
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    line-height: 16px;
    text-align: center;
}

#edit-image .cp-lote-it.tem::after {
    content: '';
    position: absolute;
    right: 5px;
    bottom: 6px;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 2px rgba(0, 0, 0, .45);
}

#edit-image .cp-lote-it:hover {
    opacity: 1;
}

#edit-image .cp-lote-it.atv {
    opacity: 1;
    box-shadow: 0 0 0 2px #fff;
}

#edit-image .cp-lote-x {
    position: absolute;
    top: 3px;
    right: 3px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .7);
    color: #fff;
    font-size: 13px;
    line-height: 17px;
    text-align: center;
    opacity: 0;
    transition: opacity .15s;
}

#edit-image .cp-lote-it:hover .cp-lote-x {
    opacity: 1;
}

#edit-image .cp-lote-x:hover {
    background: #e83a3a;
}

/* ---- Rodape -------------------------------------------------------------- */
#edit-image .cp-lote-info {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    align-items: baseline;
    gap: 8px;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
}

#edit-image .cp-lote-info b {
    font-weight: 600;
}

#edit-image .cp-lote-info span {
    opacity: .5;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Editar video: o atalho para o AirStudio PRO no pe do trilho */
.vp-rail-sep {
    display: block;
    height: 1px;
    margin: 6px 10px;
    background: var(--color-border);
}

.vp-rail-pro span {
    font-weight: 600;
}

/* =============================================================================
   POPUP DE CONTEUDO - "Editar video" na miniatura do video (AirStudio PRO,
   projeto de video). Mesma familia do .btn-capa-ia-item: aparece no hover,
   embaixo dele; sem o botao de capa com IA, sobe para o lugar dele.
   ============================================================================= */
.midia-item .bt.btn-editar-video {
    position: absolute;
    left: 5px;
    top: 63px;
    display: flex;
    align-items: center;
    width: auto;
    gap: 6px;
    padding: 3px 9px !important;
    white-space: nowrap;
    color: #fff;
    cursor: pointer;
    z-index: 2;
}

.midia-item .btn-alterar-capa+.bt.btn-editar-video {
    top: 34px;
}

.midia-item .bt.btn-editar-video .bt-label {
    font-size: 12px;
    line-height: 1;
}

.midia-item .bt.btn-editar-video svg {
    width: 15px;
    height: 15px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
}

/* ==========================================================================
   INICIO SEM DADOS - aviso .ini-falha (inicioSemDados, index.php)
   A carga inicial da Inicio demorou (internet ruim) ou falhou: a tela abre
   com os cartoes zerados e este aviso acima deles. Monocromatico.
   ========================================================================== */
.ini-falha {
    display: flex;
    align-items: center;
    gap: 14px;
    width: 100%;
    margin: 0 0 16px;
    padding: 14px 16px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.ini-falha .ini-falha-ico {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
}

.ini-falha .ini-falha-ico svg {
    width: 18px;
    height: 18px;
    margin: 0;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .75;
}

.ini-falha .ini-falha-tx {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    min-width: 0;
}

.ini-falha .ini-falha-tx b {
    font-size: 14px;
    font-weight: 550;
    line-height: 1.3;
}

.ini-falha .ini-falha-tx span {
    margin-top: 2px;
    font-size: 12.5px;
    line-height: 1.45;
    opacity: .6;
}

.ini-falha .ini-falha-bt {
    flex: 0 0 auto;
    height: 36px;
    padding: 0 16px;
    border: 0;
    border-radius: 13px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font: inherit;
    font-size: 13px;
    font-weight: 550;
    cursor: pointer;
    transition: opacity .2s;
}

.ini-falha .ini-falha-bt:hover {
    opacity: .86;
}

.ini-falha .ini-falha-bt:disabled {
    opacity: .5;
    cursor: default;
}

/* ===================================================================
   ENTRADA DAS TELAS (out/2026)
   Classe .ap-entra na moldura #htmlSessaoAtual por uma janela curta
   (window.telaEntra, footer.php, chamada pelo sessaoRender - ponto unico
   de toda troca de tela). Animacao CSS dispara quando o elemento e INSERIDO:
   dentro da janela, a tela nova sobe e o conteudo que chega do AJAX no
   lugar do esqueleto revela no proprio lugar. Fora dela (polling de 10s,
   domPatch) nada anima - por isso a janela, e nao uma regra fixa.
   So opacity + translate (compostos na GPU, nenhum layout por quadro),
   sem will-change e sem fill depois do fim: terminada a animacao o
   elemento volta a nao ter transform nem opacidade.
   Fora de proposito: a .header-pagina e a .centraliza em si (a moldura
   e o scroller nao animam: so os filhos), os popups e menus (tem a
   entrada do vidro, glass-entra/glass-folha) e os esqueletos (sk-entra).
   =================================================================== */
:root {
    --ap-entra-ease: cubic-bezier(.16, 1, .3, 1);
    --ap-entra-dur: .42s;
    --ap-revela-dur: .38s;
    --ap-entra-passo: 28ms;
}

/* Corpo da tela: sobe 8px e aparece. */
#htmlSessaoAtual.ap-entra>.centraliza>* {
    animation: ap-tela-sobe var(--ap-entra-dur) var(--ap-entra-ease);
}

/* Header: so os filhos, e mais curto - e a moldura da tela, nao conteudo.
   O titulo sobe pouco; filtros e botoes so aparecem (tem dropdowns
   absolutos dentro, que nao devem deslizar). */
#htmlSessaoAtual.ap-entra>.header-pagina>* {
    animation: ap-tela-surge .26s ease-out;
}

#htmlSessaoAtual.ap-entra>.header-pagina>.title-section {
    animation: ap-tela-sobe .34s var(--ap-entra-ease);
}

/* Conteudo real chegando nos conteineres que recebem esqueleto (ver
   window.Skeleton, footer.php): revela no lugar com passo curto entre os
   oito primeiros; do nono em diante entra junto (lista longa nao fica
   "pingando" item por item). O .pre-loading tem a entrada dele. */
#htmlSessaoAtual.ap-entra :is(.dash-blocos, .ini-grade, .inicial-acesso-rapido-planejamentos .lst, .contant-perfis-home .bloco-item, .contant-planejamento-home .bloco-item, .lst-equipes-cards, .estrutura-pessoas-lst-01, .totais-group-box, #bi-dashboard-content, .estrutura-lista, .atv-coluna, #cal-body, .doc-hub-corpo)>:not(.pre-loading) {
    animation: ap-revela var(--ap-revela-dur) var(--ap-entra-ease) backwards;
}

#htmlSessaoAtual.ap-entra :is(.dash-blocos, .ini-grade, .inicial-acesso-rapido-planejamentos .lst, .contant-perfis-home .bloco-item, .contant-planejamento-home .bloco-item, .lst-equipes-cards, .estrutura-pessoas-lst-01, .totais-group-box, #bi-dashboard-content, .estrutura-lista, .atv-coluna, #cal-body, .doc-hub-corpo)>:not(.pre-loading):nth-child(2) {
    animation-delay: calc(var(--ap-entra-passo) * 1);
}

#htmlSessaoAtual.ap-entra :is(.dash-blocos, .ini-grade, .inicial-acesso-rapido-planejamentos .lst, .contant-perfis-home .bloco-item, .contant-planejamento-home .bloco-item, .lst-equipes-cards, .estrutura-pessoas-lst-01, .totais-group-box, #bi-dashboard-content, .estrutura-lista, .atv-coluna, #cal-body, .doc-hub-corpo)>:not(.pre-loading):nth-child(3) {
    animation-delay: calc(var(--ap-entra-passo) * 2);
}

#htmlSessaoAtual.ap-entra :is(.dash-blocos, .ini-grade, .inicial-acesso-rapido-planejamentos .lst, .contant-perfis-home .bloco-item, .contant-planejamento-home .bloco-item, .lst-equipes-cards, .estrutura-pessoas-lst-01, .totais-group-box, #bi-dashboard-content, .estrutura-lista, .atv-coluna, #cal-body, .doc-hub-corpo)>:not(.pre-loading):nth-child(4) {
    animation-delay: calc(var(--ap-entra-passo) * 3);
}

#htmlSessaoAtual.ap-entra :is(.dash-blocos, .ini-grade, .inicial-acesso-rapido-planejamentos .lst, .contant-perfis-home .bloco-item, .contant-planejamento-home .bloco-item, .lst-equipes-cards, .estrutura-pessoas-lst-01, .totais-group-box, #bi-dashboard-content, .estrutura-lista, .atv-coluna, #cal-body, .doc-hub-corpo)>:not(.pre-loading):nth-child(5) {
    animation-delay: calc(var(--ap-entra-passo) * 4);
}

#htmlSessaoAtual.ap-entra :is(.dash-blocos, .ini-grade, .inicial-acesso-rapido-planejamentos .lst, .contant-perfis-home .bloco-item, .contant-planejamento-home .bloco-item, .lst-equipes-cards, .estrutura-pessoas-lst-01, .totais-group-box, #bi-dashboard-content, .estrutura-lista, .atv-coluna, #cal-body, .doc-hub-corpo)>:not(.pre-loading):nth-child(6) {
    animation-delay: calc(var(--ap-entra-passo) * 5);
}

#htmlSessaoAtual.ap-entra :is(.dash-blocos, .ini-grade, .inicial-acesso-rapido-planejamentos .lst, .contant-perfis-home .bloco-item, .contant-planejamento-home .bloco-item, .lst-equipes-cards, .estrutura-pessoas-lst-01, .totais-group-box, #bi-dashboard-content, .estrutura-lista, .atv-coluna, #cal-body, .doc-hub-corpo)>:not(.pre-loading):nth-child(7) {
    animation-delay: calc(var(--ap-entra-passo) * 6);
}

#htmlSessaoAtual.ap-entra :is(.dash-blocos, .ini-grade, .inicial-acesso-rapido-planejamentos .lst, .contant-perfis-home .bloco-item, .contant-planejamento-home .bloco-item, .lst-equipes-cards, .estrutura-pessoas-lst-01, .totais-group-box, #bi-dashboard-content, .estrutura-lista, .atv-coluna, #cal-body, .doc-hub-corpo)>:not(.pre-loading):nth-child(n+8) {
    animation-delay: calc(var(--ap-entra-passo) * 7);
}

/* TROCA esqueleto -> dados pelo proprio sessaoRender (.ap-troca, ver
   window.telaEntra): o header ja estava na tela e fica parado; o corpo so
   revela no lugar (sem subir de novo). */
#htmlSessaoAtual.ap-entra.ap-troca>.centraliza>* {
    animation: ap-tela-surge .3s ease-out;
}

#htmlSessaoAtual.ap-entra.ap-troca>.header-pagina>*,
#htmlSessaoAtual.ap-entra.ap-troca>.header-pagina>.title-section {
    animation: none;
}

/* Menu lateral: ao trocar Geral <-> menu da marca, o menu que entra
   (display none -> .atv) aparece deslizando 6px da direita, uma vez. */
.menu-sistema .itens.atv {
    animation: ap-menu-entra .3s var(--ap-entra-ease);
}

/* Toque no item do menu: afunda rapido e volta no tempo da transicao
   que o item ja tem (.3s). Monocromatico, so escala. */
.menu-sistema .itens .item:active {
    scale: .975;
    transition-duration: .08s;
}

@keyframes ap-tela-sobe {
    from {
        opacity: 0;
        translate: 0 8px;
    }
}

@keyframes ap-tela-surge {
    from {
        opacity: 0;
    }
}

@keyframes ap-revela {
    from {
        opacity: 0;
        translate: 0 5px;
    }
}

@keyframes ap-menu-entra {
    from {
        opacity: 0;
        translate: 6px 0;
    }
}

/* ===================================================================
   MENUS DO SISTEMA - REFINO (out/2026)
   Menu lateral, coluna de marcas, espacos, topo (workspace/busca/+) e
   cartao do usuario. Teclado: os itens tem tabindex="0" no HTML e o JS
   (footer.php "MENUS PELO TECLADO") ativa com Enter/Espaco e anda nos
   menus abertos com as setas. Tudo monocromatico: o anel de foco e o
   indicador de ativo sao a tinta do sistema.
   =================================================================== */

/* Anel de foco SO de teclado (:focus-visible): o clique do mouse tambem
   foca o item e nao deve desenhar anel. Por dentro (-2px) nas linhas do
   menu - a lista rola e cortaria o anel por fora. */
.menu-sistema .itens .item:focus-visible,
.menu-sistema .espacos .hdr-espaco:focus-visible,
.menu-sistema .espacos .espaco-lista-item:focus-visible,
.menu-sistema .espacos .espaco-doc-item:focus-visible,
.menu-sistema .btn-novo-espaco:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: -2px;
}

/* Botoes pequenos e avatares: anel por fora, acompanhando o raio. */
.menu-sistema .menu-fixado-perfis .lst .it:focus-visible,
.menu-sistema .menu-top-h [tabindex="0"]:focus-visible,
.menu-sistema .usuario [tabindex="0"]:focus-visible,
.menu-sistema .espacos .m .btn-add:focus-visible,
.menu-sistema .m-t-btns-configs .t-btn:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
    border-radius: 8px;
}

/* Item focado dentro do menu aberto = o mesmo realce do hover. */
.dropdown-default .it-bt:focus-visible,
.ws-sw-lst :is(.ws-sw-btn, .ws-sw-it, .ws-sw-ac, .ws-sw-up):focus-visible {
    outline: none;
    background: var(--glass-realce);
    opacity: 1;
}

/* Marca ativa na coluna: era azul #0064e0 com brilho (unica cor de
   chrome do menu). Vira a tinta do sistema, sem halo. No celular a
   coluna tem desenho proprio (anel + nome, media.css) e vence por
   especificidade. */
.menu-fixado-perfis .lst .it.atv::after {
    background: var(--color-btn-bg-01);
    box-shadow: none;
}

/* Menus que abrem do menu lateral ("Criar novo", "..." do usuario e o
   seletor de workspace) caem sobre a tela - titulos grandes, logos,
   capas. Com a tinta de menu (.56) o texto de tras brigava com o do
   menu; aqui usam a tinta de folha (--glass-fundo-forte), a mesma dos
   dialogos: continua vidro, mas e onde se le. */
:root .dropdown-default.t-menu-opcoes,
:root body>.ws-sw-lst {
    background: var(--glass-fundo-forte) !important;
    -webkit-backdrop-filter: var(--glass-filtro-forte) !important;
    backdrop-filter: var(--glass-filtro-forte) !important;
}

/* "Novo espaco" com .3 de opacidade sumia no tema claro. */
.menu-sistema .btn-novo-espaco {
    opacity: .5;
}

.menu-sistema .btn-novo-espaco:hover,
.menu-sistema .btn-novo-espaco:focus-visible {
    opacity: 1;
}

/* Acoes do espaco/lista ("..." e "+"): apareciam so no hover - pelo
   teclado o foco entrava em botao invisivel. Aparecem tambem com o foco
   dentro da linha. O realce era branco 10% fixo (invisivel no claro). */
.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco:focus-within .m-t-btns-configs,
.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item:focus-within .m-t-btns-configs {
    display: block !important;
}

/* ...e o titulo encolhe como no hover, senao as acoes caem para uma
   segunda linha. */
.menu-sistema .espacos .espacos-lst .espaco-item .hdr-espaco:focus-within .titulo {
    width: calc(100% - 75px) !important;
}

.menu-sistema .espacos .espacos-lst .espaco-item .espaco-listas .espaco-lista-item:focus-within .hdr-lista .titulo {
    width: calc(100% - 56px);
}

.menu-sistema .m-t-btns-configs .t-btn:hover {
    background: color-mix(in srgb, var(--color-text-01) 10%, transparent);
}


/* ===================================================================
   ENTRADA DO VIDRO SEM OPACIDADE NO VIDRO (out/2026)
   A glass-entra (e a ap-folha-sobe do celular) animava a OPACIDADE da
   propria peca de vidro. Medido no Chrome: ao terminar, o backdrop-filter
   ficava sem redesenhar - o fundo aparecia NITIDO atras do menu ate
   algum hover (era o "nitido ate o hover"). Travando so a opacidade em 1
   o desfoque volta; so escala/translate nao quebram. E a regra de ouro
   que as caixas ja seguem (glass-folha so escala): o vidro cresce, e
   quem aparece em fade e o CONTEUDO dele. Conferido: nenhum filho
   destes flutuantes tem animacao propria para ser sobrescrita.
   =================================================================== */
:root .dropdown-default>*,
:root .picker-dropdown>*,
:root .mencao-dropdown>*,
:root .cr-menu>*,
:root .dropdown2>*,
:root .ap-dtp>*,
:root .custom-calendar-tooltip>*,
:root .dropdown-status>*,
:root .dropdown-perfis>*,
:root .dropdown-criar>*,
:root .etapas-lst .etapa-pop>*,
:root .ap-img-popover>*,
:root .ap-anexo-picker>*,
:root .ap-color-picker>*,
:root .ap-inline-picker>*,
:root .ap-link-popover>*,
:root .contant-metrica-perfil-conteudo.bi-dashboard .bi-periodo-menu>*,
:root .contant-metrica-perfil-conteudo.bi-dashboard .bi-brasil-drop>*,
:root #modal-busca-global .bg-escopo-pop>*,
:root #htmlSessaoAtual .cfg-resp-dd>*,
:root .dropdown-subtarefa>*,
:root .ws-sw-lst>*,
:root .ac-niveis-pop>*,
:root .ecc-pop>*,
:root .rfx-pop>*,
:root .eia-ver-pop>*,
:root .arq-menu>*,
:root .atv-pop>*,
:root .plan-kebab-menu>*,
:root #doc-emoji-pop>*,
:root #doc-item-pop>*,
:root #doc-pdf-pop>*,
:root #doc-esp-pop>*,
:root #doc-pg-pop>*,
:root .doc-share-sug>*,
:root #doc-capa-pop>*,
:root #doc-resp-pop>*,
:root #doc-vinc-pop>*,
:root #doc-mod-pop>*,
:root .doc-pop>*,
:root .ct-bulk-pop.is-data>*,
:root .ce-pop>*,
:root .ce-opcoes-popup>*,
:root .coment-emoji-dropdown.is-reacao>*,
:root .coment-quem-reagiu>*,
:root .apcp>* {
    animation: glass-surge var(--glass-entra-dur) ease-out;
}

/* =====================================================================
   PLAYER DE VIDEO (Plyr) - tema Airpost  (.ap-plyr)
   JS: window.AirpostPlayer.montar() no footer.php. Dois modos:
     .ap-plyr--mini  - video dentro do conteudo / Atividades (player())
     .ap-plyr--cheio - video do AirpostViewer
   Desenho (10/10/2026, referencia: players de streaming):
     - play/pausa UNICO no centro, icone proprio e fino; no hover o disco
       inverte para branco com o icone preto (monocromatico);
     - rodape numa linha so (Netflix): decorrido | barra | duracao, tudo
       centrado no eixo do trilho;
     - barra encorpada: 5px parada, 8px no hover (transicao pelo @property),
       rastro claro ate o cursor, cabeca sempre a vista que cresce no hover,
       tempo da busca numa pastilha escura;
     - tocando com os controles escondidos: so um fio de 3px do progresso na
       borda de baixo.
   SEM backdrop-filter: o player se repete em lista (Atividades, carrossel) e
   blur em peca repetida faz a tela piscar ao rolar (DEVELOPMENT_RULES 14.2).
   Os ajustes antigos de .plyr (281x499, play empurrado com position
   absolute, padding 11px) continuam no arquivo; aqui sao desfeitos so dentro
   de .ap-plyr, por especificidade.
   ===================================================================== */
@property --plyr-range-track-height {
    syntax: '<length>';
    inherits: true;
    initial-value: 5px;
}

.plyr.ap-plyr {
    --ap-ease: cubic-bezier(.16, 1, .3, 1);
    --plyr-color-main: #fff;
    --plyr-font-family: inherit;
    --plyr-font-size-time: 12px;
    --plyr-font-size-menu: 13px;
    --plyr-font-size-small: 12px;
    --plyr-control-icon-size: 17px;
    --plyr-control-spacing: 8px;
    --plyr-control-radius: 9px;
    --plyr-video-control-color: #fff;
    --plyr-video-control-color-hover: #fff;
    --plyr-video-control-background-hover: rgba(255, 255, 255, .16);
    --plyr-range-fill-background: #fff;
    --plyr-video-range-track-background: rgba(255, 255, 255, .22);
    --plyr-video-progress-buffered-background: rgba(255, 255, 255, .2);
    --plyr-progress-loading-background: rgba(255, 255, 255, .2);
    --plyr-range-track-height: 5px;
    --plyr-range-thumb-height: 16px;
    --plyr-range-thumb-background: #fff;
    --plyr-range-thumb-shadow: 0 0 0 1px rgba(0, 0, 0, .06), 0 2px 8px rgba(0, 0, 0, .45);
    --plyr-range-thumb-active-shadow-width: 5px;
    --plyr-tooltip-background: rgba(14, 14, 16, .86);
    --plyr-tooltip-color: #fff;
    --plyr-tooltip-radius: 7px;
    --plyr-tooltip-shadow: 0 8px 22px -8px rgba(0, 0, 0, .55);
    --plyr-menu-background: rgba(26, 26, 29, .94);
    --plyr-menu-color: #f4f4f5;
    --plyr-menu-arrow-color: rgba(255, 255, 255, .45);
    --plyr-menu-back-border-color: rgba(255, 255, 255, .1);
    --plyr-menu-back-border-shadow-color: transparent;
    --plyr-menu-shadow: 0 0 0 1px rgba(255, 255, 255, .08), 0 18px 46px -12px rgba(0, 0, 0, .65);
    --plyr-control-toggle-checked-background: #fff;
    --plyr-badge-background: rgba(255, 255, 255, .16);
    --plyr-badge-text-color: #fff;
    --plyr-tab-focus-color: rgba(255, 255, 255, .7);
    -webkit-tap-highlight-color: transparent;
}

/* controles da barra (audio do visualizador): tamanho do kit, sem o padding
   11px / raio 50% antigos */
.plyr.ap-plyr .plyr__controls .plyr__control {
    right: auto !important;
    padding: 7px;
    border-radius: var(--plyr-control-radius);
    transition: background .16s ease, transform .16s ease;
}

.plyr.ap-plyr .plyr__controls .plyr__control:active {
    transform: scale(.92);
}

.plyr.ap-plyr .plyr__time {
    font-weight: 500;
    letter-spacing: .02em;
    font-variant-numeric: tabular-nums;
    text-shadow: 0 1px 2px rgba(0, 0, 0, .5);
}

/* ---------- PLAY/PAUSA NO CENTRO (.ap-plyr-centro) ----------
   E o botao "play" do proprio Plyr, tirado da barra por centralizarPlay()
   (footer.php), com icones proprios. Parado mostra o play; tocando, aparece
   junto com a barra (hover/toque) ja com a pausa. Disco escuro leve + aro
   claro: legivel sobre capa clara (aro e sombra) e escura (o disco).
   Especificidade 0,5,0 vence o ajuste antigo (0,4,0, bottom:250px). */
.plyr.ap-plyr .plyr__control.ap-plyr-centro[data-plyr="play"] {
    position: absolute;
    left: 50%;
    top: 50%;
    right: auto !important;
    bottom: auto;
    z-index: 2;
    /* acima da capa (1), abaixo da barra (3) e do menu de ajustes */
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 50%;
    color: #fff;
    background: rgba(12, 12, 14, .34);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28), 0 10px 30px -10px rgba(0, 0, 0, .5);
    transform: translate(-50%, -50%);
    transition: transform .36s var(--ap-ease), background-color .22s ease, color .22s ease, box-shadow .22s ease, opacity .28s ease, visibility .28s;
}

.plyr.ap-plyr .plyr__control.ap-plyr-centro[data-plyr="play"] svg {
    width: 20px;
    height: 20px;
    margin: 0;
    fill: currentColor;
    stroke: none;
    filter: drop-shadow(0 1px 2px rgba(0, 0, 0, .25));
    transition: transform .36s var(--ap-ease);
}

.plyr.ap-plyr .plyr__control.ap-plyr-centro[data-plyr="play"]:hover {
    color: #0b0b0c;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 1), 0 14px 36px -10px rgba(0, 0, 0, .55);
    transform: translate(-50%, -50%) scale(1.07);
}

.plyr.ap-plyr .plyr__control.ap-plyr-centro[data-plyr="play"]:hover svg {
    filter: none;
}

.plyr.ap-plyr .plyr__control.ap-plyr-centro[data-plyr="play"].plyr__tab-focus {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28), 0 0 0 3px rgba(255, 255, 255, .55);
}

.plyr.ap-plyr .plyr__control.ap-plyr-centro[data-plyr="play"]:active {
    transform: translate(-50%, -50%) scale(.94);
    transition-duration: .12s;
}

/* tocando: some junto com a barra (o Plyr poe .plyr--hide-controls) */
.plyr.ap-plyr.plyr--playing.plyr--hide-controls .plyr__control.ap-plyr-centro[data-plyr="play"] {
    opacity: 0;
    visibility: hidden;
    transform: translate(-50%, -50%) scale(.9);
}

/* o tooltip do botao central nao cabe em cima dele */
.plyr.ap-plyr .ap-plyr-centro .plyr__tooltip {
    display: none;
}

/* capa inteira (contain) sobre o fundo desfocado: sem tarja preta e sem o
   "pulo" da capa recortada para o video inteiro ao dar o play. No quadro do
   Instagram (.ig-enquadrado) a regra de cover dele continua valendo. */
.plyr.ap-plyr .plyr__poster {
    background-size: contain;
    background-color: transparent;
    padding: 0;
}

.plyr.ap-plyr .ap-plyr-amb {
    position: absolute;
    inset: -14%;
    z-index: 0;
    background: center / cover no-repeat;
    filter: blur(28px) saturate(150%) brightness(.6);
    transform: translateZ(0);
    pointer-events: none;
}

.plyr.ap-plyr video {
    position: relative;
    z-index: 1;
    background: transparent;
}

/* carregando (buffer): anel fino em volta do play central, so enquanto o
   video espera dados (o Plyr poe .plyr--loading em waiting/stalled). A barra
   listrada do Plyr sai: o anel ja diz que esta carregando. */
.plyr.ap-plyr.plyr--loading .plyr__video-wrapper::after {
    content: '';
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 2;
    width: 66px;
    height: 66px;
    margin: -33px 0 0 -33px;
    border: 2px solid rgba(255, 255, 255, .16);
    border-top-color: #fff;
    border-radius: 50%;
    animation: ap-plyr-gira .9s linear infinite;
    pointer-events: none;
}

.plyr.ap-plyr.plyr--loading .plyr__progress__buffer {
    background-image: none;
    animation: none;
}

@keyframes ap-plyr-gira {
    to {
        transform: rotate(360deg);
    }
}

/* ---------- RODAPE (estilo Netflix) ----------
   UMA linha, tudo no mesmo eixo: tempo decorrido | barra | duracao. A barra
   ocupa o que sobra (flex 1) e os dois tempos ficam centrados na altura do
   trilho, com o mesmo respiro (gap) dos dois lados. Antes a barra ia em cima
   e os tempos numa segunda linha, soltos nas pontas: o olho tinha de descer
   para ler o tempo e a barra flutuava sem ancora.
   O DOM do Plyr e: progresso, decorrido, duracao (o play saiu para o centro)
   - a ordem visual vem do `order`.
   So no video: o audio do visualizador tem a barra dele em linha (viewer.css). */
.plyr.ap-plyr.plyr--video .plyr__controls {
    flex-wrap: nowrap;
    justify-content: flex-start;
    align-items: center;
    gap: 12px;
    padding: 64px 14px 12px;
    background: linear-gradient(180deg, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, .1) 30%, rgba(0, 0, 0, .38) 64%, rgba(0, 0, 0, .66) 100%);
    transition: opacity .3s ease, transform .42s var(--ap-ease);
}

.plyr.ap-plyr.plyr--video.plyr--hide-controls .plyr__controls {
    transform: translateY(8px);
}

.plyr.ap-plyr.plyr--video .plyr__controls .plyr__time {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    height: 16px;
    padding: 0;
    margin: 0;
    font-size: var(--plyr-font-size-time);
    font-weight: 600;
    line-height: 16px;
    letter-spacing: .01em;
}

/* o Plyr esconde a duracao abaixo de 768px; aqui ela faz parte do desenho */
.plyr.ap-plyr.plyr--video .plyr__controls .plyr__time+.plyr__time {
    display: flex;
}

/* sem a barra "/" do Plyr: um tempo de cada lado da barra */
.plyr.ap-plyr .plyr__controls .plyr__time+.plyr__time::before {
    display: none;
}

.plyr.ap-plyr.plyr--video .plyr__controls .plyr__time--current {
    order: 1;
}

.plyr.ap-plyr.plyr--video .plyr__controls .plyr__progress__container {
    order: 2;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    padding: 0;
}

.plyr.ap-plyr.plyr--video .plyr__controls .plyr__time--duration {
    order: 3;
    opacity: .7;
}

/* o Plyr recua o trilho meia bolinha de cada lado; aqui ele vai de ponta a
   ponta do espaco dele (a bolinha pode passar meio raio da ponta) */
.plyr.ap-plyr .plyr__controls .plyr__progress {
    left: 0;
    margin-right: 0;
    transition: --plyr-range-track-height .24s var(--ap-ease);
}

.plyr.ap-plyr .plyr__controls .plyr__progress input[type=range],
.plyr.ap-plyr .plyr__controls .plyr__progress__buffer {
    margin-left: 0;
    margin-right: 0;
    width: 100%;
}

.plyr.ap-plyr .plyr__progress input[type=range] {
    cursor: pointer;
}

/* BARRA ENCORPADA: 5px parada, 8px sob o mouse (transicao pelo @property) */
.plyr.ap-plyr .plyr__progress:hover,
.plyr.ap-plyr .plyr__progress:focus-within {
    --plyr-range-track-height: 8px;
}

/* rastro ate o cursor (--ap-hover vem do mousemove em refinarBarra()). Fica
   entre o carregado (sem z-index) e o input (z-index 2): o trecho ja tocado
   continua branco por cima dele. */
.plyr.ap-plyr .plyr__progress::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    z-index: 1;
    width: var(--ap-hover, 0%);
    height: var(--plyr-range-track-height);
    margin-top: calc(var(--plyr-range-track-height) / -2);
    border-radius: 99px;
    background: rgba(255, 255, 255, .26);
    opacity: 0;
    transition: opacity .18s ease;
    pointer-events: none;
}

.plyr.ap-plyr .plyr__progress:hover::before {
    opacity: 1;
}

/* a ponta branca termina no CENTRO da cabeca. O range nativo leva o centro
   da cabeca de meio raio ate largura - meio raio; o --value do Plyr e um
   percentual da largura toda, entao cabeca e ponta so coincidiam no meio.
   --ap-v (0..1) vem do refinarBarra(). */
.plyr.ap-plyr .plyr__progress input[type=range] {
    --ap-fim: calc(var(--plyr-range-thumb-height) / 2 + (100% - var(--plyr-range-thumb-height)) * var(--ap-v, 0));
}

.plyr.ap-plyr .plyr__progress input[type=range]::-webkit-slider-runnable-track {
    background-image: linear-gradient(to right, currentColor var(--ap-fim), transparent var(--ap-fim));
}

/* a cabeca da barra: sempre a vista com os controles (como na Netflix), um
   pouco menor parada e no tamanho cheio no hover / arrastando */
.plyr.ap-plyr .plyr__progress input[type=range]::-webkit-slider-thumb {
    transform: scale(.72);
    transition: transform .24s var(--ap-ease), box-shadow .2s ease;
}

.plyr.ap-plyr .plyr__progress input[type=range]::-moz-range-thumb {
    transform: scale(.72);
    transition: transform .24s var(--ap-ease), box-shadow .2s ease;
}

.plyr.ap-plyr .plyr__progress:hover input[type=range]::-webkit-slider-thumb,
.plyr.ap-plyr .plyr__progress input[type=range]:active::-webkit-slider-thumb,
.plyr.ap-plyr .plyr__progress input[type=range].plyr__tab-focus::-webkit-slider-thumb {
    transform: scale(1);
}

.plyr.ap-plyr .plyr__progress:hover input[type=range]::-moz-range-thumb,
.plyr.ap-plyr .plyr__progress input[type=range]:active::-moz-range-thumb,
.plyr.ap-plyr .plyr__progress input[type=range].plyr__tab-focus::-moz-range-thumb {
    transform: scale(1);
}

/* arrastando: a cabeca ganha um halo branco suave */
.plyr.ap-plyr .plyr__progress input[type=range]:active::-webkit-slider-thumb {
    box-shadow: var(--plyr-range-thumb-shadow), 0 0 0 6px rgba(255, 255, 255, .22);
}

.plyr.ap-plyr .plyr__progress input[type=range]:active::-moz-range-thumb {
    box-shadow: var(--plyr-range-thumb-shadow), 0 0 0 6px rgba(255, 255, 255, .22);
}

/* sem o halo do foco no trilho inteiro: o foco aparece na cabeca */
.plyr.ap-plyr .plyr__progress input[type=range].plyr__tab-focus {
    box-shadow: none;
    outline: 0;
}

/* tempo da busca: pastilha escura, sem a setinha do Plyr, com folga acima
   da barra ja engrossada */
.plyr.ap-plyr .plyr__progress .plyr__tooltip {
    padding: 5px 9px;
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .01em;
    font-variant-numeric: tabular-nums;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08), var(--plyr-tooltip-shadow);
}

.plyr.ap-plyr .plyr__progress .plyr__tooltip::before {
    display: none;
}

/* tocando com os controles escondidos: so o fio do progresso na borda de
   baixo (--ap-prog vem do timeupdate em refinarBarra()) */
.plyr.ap-plyr.plyr--video::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 3;
    width: var(--ap-prog, 0%);
    height: 3px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 0 6px rgba(0, 0, 0, .35);
    opacity: 0;
    transition: opacity .3s ease;
    pointer-events: none;
}

.plyr.ap-plyr.plyr--video.plyr--playing.plyr--hide-controls::after {
    opacity: 1;
}

/* menu de ajustes (velocidade): sem a seta branca fixa do Plyr */
.plyr.ap-plyr .plyr__menu__container {
    border-radius: 14px;
    animation: ap-plyr-menu .22s var(--ap-ease);
}

.plyr.ap-plyr .plyr__menu__container::after {
    display: none;
}

.plyr.ap-plyr .plyr__menu__container .plyr__control {
    border-radius: 9px;
}

.plyr.ap-plyr .plyr__menu__container .plyr__control[role=menuitemradio]::before {
    background: rgba(255, 255, 255, .16);
}

.plyr.ap-plyr .plyr__menu__container .plyr__control[role=menuitemradio]::after {
    background: #111;
}

@keyframes ap-plyr-menu {
    from {
        transform: translateY(6px) scale(.98);
    }

    to {
        transform: none;
    }
}

.plyr.ap-plyr .plyr__tooltip {
    font-weight: 500;
    padding: 5px 9px;
}

.plyr.ap-plyr--cheio {
    --plyr-font-size-time: 13px;
    --plyr-range-track-height: 6px;
    --plyr-range-thumb-height: 18px;
}

.plyr.ap-plyr--cheio.plyr--video .plyr__controls {
    gap: 16px;
    padding: 84px 22px 18px;
}

.plyr.ap-plyr--cheio .plyr__progress:hover,
.plyr.ap-plyr--cheio .plyr__progress:focus-within {
    --plyr-range-track-height: 10px;
}

/* =====================================================================
   BOTOES SOBRE A MIDIA DO CONTEUDO (.mi-acoes)  - midiaItem() no footer.php
   ---------------------------------------------------------------------
   Dois grupos no topo da midia, que aparecem juntos no hover:
     .mi-acoes-dir  ver em tela cheia / baixar / remover - uma pastilha
                    escura com icones do mesmo traco e tooltip;
     .mi-acoes-esq  ferramentas de edicao - chips de icone que abrem o
                    rotulo no hover e invertem para branco.
   Os botoes guardam as classes antigas (.btn-download, .btn-alterar-capa,
   .expand...) porque sao os ganchos dos handlers e do gate de permissao;
   as regras de posicao antigas delas (right 35/65/95px, top 34/63px...)
   sao desfeitas aqui por especificidade (0,4,0 depois delas no arquivo).
   Sem permissao o botao SOME (PERM_OCULTAR no footer.php).
   Fundo escuro alfa .66 SEM blur: peca repetida em lista (14.2).
   ===================================================================== */
.midia-item .mi-acoes {
    position: absolute;
    top: 8px;
    z-index: 10;
    display: flex;
    gap: 5px;
    opacity: 0;
    transform: translateY(-4px);
    transition: opacity .22s ease, transform .34s cubic-bezier(.16, 1, .3, 1);
    pointer-events: none;
}

.midia-item .mi-acoes-dir {
    right: 8px;
    gap: 1px;
    padding: 3px;
    border-radius: 12px;
    background: rgba(16, 16, 18, .66);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 8px 20px -10px rgba(0, 0, 0, .5);
}

.midia-item .mi-acoes-esq {
    left: 8px;
    flex-direction: column;
    align-items: flex-start;
}

.midia-item:hover .mi-acoes,
.midia-item:focus-within .mi-acoes {
    opacity: 1;
    transform: none;
    pointer-events: auto;
}

/* video tocando e o mouse parado: o Plyr esconde os controles e os botoes
   saem junto - fica so o video */
.midia-item:has(.plyr--playing.plyr--hide-controls) .mi-acoes {
    opacity: 0;
    transform: translateY(-4px);
    pointer-events: none;
}

.midia-item .mi-acoes .bt.mi-bt {
    position: relative;
    inset: auto;
    display: inline-flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin: 0;
    padding: 0 !important;
    border: 0;
    border-radius: 9px;
    color: #fff;
    fill: none;
    background: transparent;
    opacity: 1;
    cursor: pointer;
    transition: background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .24s cubic-bezier(.16, 1, .3, 1);
}

/* o alvo de toque ampliado (::after inset -10px) das regras antigas cobriria
   o vizinho de 1px ao lado: aqui o botao inteiro ja e o alvo */
.midia-item .mi-acoes .bt.mi-bt::after {
    content: none;
}

.midia-item .mi-acoes .bt.mi-bt svg {
    display: block;
    width: 16px;
    height: 16px;
    margin: 0;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .24s cubic-bezier(.16, 1, .3, 1);
}

.midia-item .mi-acoes-dir .bt.mi-bt:hover {
    background: rgba(255, 255, 255, .16);
}

.midia-item .mi-acoes-dir .bt.mi-bt:hover svg {
    transform: scale(1.1);
}

.midia-item .mi-acoes .bt.mi-bt:active {
    transform: scale(.9);
    transition-duration: .1s;
}

.midia-item .mi-acoes .bt.mi-bt:focus-visible {
    outline: 0;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, .7);
}

/* remover: filete antes dele e vermelho so no hover (acao destrutiva) */
.midia-item .mi-acoes-dir .bt.mi-bt.btn-remover {
    margin-left: 5px;
}

.midia-item .mi-acoes-dir .bt.mi-bt.btn-remover::before {
    content: '';
    position: absolute;
    left: -3.5px;
    top: 7px;
    bottom: 7px;
    width: 1px;
    background: rgba(255, 255, 255, .18);
}

.midia-item .mi-acoes-dir .bt.mi-bt.btn-remover:hover {
    background: #e83a3a;
}

/* chips de edicao: icone sozinho; no hover o rotulo abre para a direita e
   o chip inverte (branco, icone e texto pretos). 34px = a altura da pastilha
   da direita (28 + 3 + 3): os dois grupos alinham pela linha de cima. */
.midia-item .mi-acoes-esq .bt.mi-bt.mi-chip {
    width: auto;
    min-width: 34px;
    height: 34px;
    gap: 0;
    padding: 0 9px !important;
    justify-content: flex-start;
    border-radius: 12px;
    background: rgba(16, 16, 18, .66);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1), 0 8px 20px -10px rgba(0, 0, 0, .5);
}

.midia-item .mi-acoes-esq .bt.mi-bt.mi-chip .bt-label {
    display: block;
    max-width: 0;
    margin: 0;
    overflow: hidden;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1;
    letter-spacing: -.005em;
    white-space: nowrap;
    opacity: 0;
    transition: max-width .36s cubic-bezier(.16, 1, .3, 1), margin .36s cubic-bezier(.16, 1, .3, 1), opacity .2s ease;
}

.midia-item .mi-acoes-esq .bt.mi-bt.mi-chip:hover,
.midia-item .mi-acoes-esq .bt.mi-bt.mi-chip:focus-visible {
    color: #0b0b0c;
    background: #fff;
    box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .55);
}

.midia-item .mi-acoes-esq .bt.mi-bt.mi-chip:hover .bt-label,
.midia-item .mi-acoes-esq .bt.mi-bt.mi-chip:focus-visible .bt-label {
    max-width: 160px;
    margin: 0 3px 0 7px;
    opacity: 1;
}

/* =============================================================================
   EDITAR VIDEO v5 (#vp-modal.vp-v5) - vidro, acoes no topo, palco do tamanho
   do video, capa em destaque (10/10/2026)
   -----------------------------------------------------------------------------
   JS: window.VideoPreview (footer.php, montar / painelConferir / ajustarColuna).
   O que mudou e por que:
   - A ALTURA e o recurso escasso (num notebook a janela tem ~640px). O rodape
     de acoes saiu: desfazer/refazer, "Escolher outro" e "Enviar video" subiram
     para o cabecalho, ao lado do veredito.
   - A coluna do palco tinha 1fr: um 9:16 de 300px no meio de uma mesa escura de
     1.200px, e o painel espremido em 336px. Agora a coluna tem a largura do
     video (--vp-col, medida em ajustarColuna) e vira um CARTAO escuro dentro da
     janela de vidro; a sobra vai para o painel.
   - A linha do tempo so aparece nas ferramentas que trabalham com tempo (Cortar,
     Texto, Velocidade). No resto, a barra fina embaixo do video faz a busca.
   - Conferir = redes -> CAPA (recortes grandes, logo de cara) -> arquivo
     (duracao, proporcao, resolucao, peso, som). A ferramenta Capa saiu do
     trilho: ela e pergunta de todo envio.
   - O vidro (DEVELOPMENT_RULES 14) entra so no desktop, no media.css. Aqui
     ficam o layout e as pecas, que valem com e sem vidro.
   `.vp-v5.vp-v4` (1,3,0) vence as regras do v4 do media.css (1,2,0).
   ============================================================================= */
#vp-modal.vp-v5 {
    --vp-pad: 20px;
    --vp-campo: var(--vp-trilho);
    --vp-linha: var(--color-border);
    --vp-ease: cubic-bezier(.16, 1, .3, 1);
}

#vp-modal.vp-v5.vp-v4 .vp-box {
    max-width: 1280px;
    height: min(94vh, 900px);
    max-height: 94vh;
    border-radius: 22px;
}

/* ---- Cabecalho: titulo + ficha | veredito | acoes | X -------------------- */
#vp-modal.vp-v5.vp-v4 .vp-hdr {
    align-items: center;
    gap: 10px;
    min-height: 66px;
    padding: 12px 14px 12px 24px;
    border-bottom: 0;
}

#vp-modal.vp-v5 .vp-hdr-tit {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -.02em;
}

#vp-modal.vp-v5 .vp-hdr-sub {
    gap: 0;
    margin-top: 5px;
    font-size: 12px;
    color: var(--vp-mudo);
}

#vp-modal.vp-v5 .vp-destino {
    height: 20px;
    margin-right: 9px;
    border-radius: 6px;
    background: var(--vp-campo);
    border-color: var(--vp-linha);
    font-size: 10px;
    letter-spacing: .04em;
}

#vp-modal.vp-v5 .vp-hdr-arq {
    max-width: 220px;
    font-size: 12px;
}

/* ficha curta: peso, duracao e resolucao separados por ponto */
.vp-hdr-dado,
#vp-modal.vp-v5 .vp-resumo {
    flex: 0 0 auto;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.vp-hdr-dado::before,
#vp-modal.vp-v5 .vp-resumo::before {
    content: '\00b7';
    margin: 0 7px;
    opacity: .6;
}

#vp-modal.vp-v5 .vp-resumo {
    display: inline;
    flex: 0 0 auto;
    overflow: visible;
}

#vp-modal.vp-v5 .vp-resumo[hidden] {
    display: none;
}

#vp-modal.vp-v5 #vp-zerar-tudo {
    margin-left: 10px;
    font-size: 12px;
}

#vp-modal.vp-v5 .vp-hdr-vd {
    margin-left: auto;
    height: 34px;
    padding: 0 14px 0 12px;
    border-color: var(--vp-linha);
    background: var(--vp-campo);
    font-size: 12.5px;
}

.vp-hdr-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
    padding-left: 10px;
    margin-left: 2px;
    border-left: 1px solid var(--vp-linha, var(--color-border));
}

#vp-modal.vp-v5 .vp-hist {
    margin-right: 4px;
}

#vp-modal.vp-v5 .vp-bt-ico {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    transition: background-color .16s ease, transform .2s var(--vp-ease);
}

#vp-modal.vp-v5 .vp-bt-ico svg {
    width: 17px;
    height: 17px;
}

#vp-modal.vp-v5 .vp-btn {
    height: 38px;
    padding: 0 18px;
    border-radius: 12px;
    font-size: 13.5px;
    letter-spacing: -.01em;
    transition: background-color .16s ease, box-shadow .2s ease, transform .2s var(--vp-ease), color .16s ease;
}

#vp-modal.vp-v5 .vp-btn-sec {
    color: var(--color-text-01);
    border-color: var(--vp-linha);
    background: transparent;
}

#vp-modal.vp-v5 .vp-btn-ok {
    padding: 0 20px;
}

#vp-modal.vp-v5 .vp-btn-ok:hover {
    box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .5);
    transform: translateY(-1px);
}

#vp-modal.vp-v5 .vp-fechar-x {
    width: 36px;
    height: 36px;
    margin-left: 2px;
    border-radius: 11px;
}

/* ---- Corpo: [palco (cartao escuro) | trilho | painel] -------------------- */
#vp-modal.vp-v5.vp-v4 .vp-body {
    grid-template-columns: var(--vp-col, minmax(392px, 44%)) 78px minmax(0, 1fr);
    grid-template-areas: "palco rail painel";
    padding: 0 0 14px 14px;
}

#vp-modal.vp-v5.vp-v4 .vp-col-palco {
    gap: 12px;
    padding: 14px;
    border-radius: 18px;
    background: radial-gradient(120% 80% at 50% -10%, #1d1f25 0%, var(--vp-mesa) 62%);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .05);
    overflow: hidden;
}

#vp-modal.vp-v5 .vp-palco {
    border-radius: 14px;
}

/* a linha do tempo so nas ferramentas de tempo */
#vp-modal.vp-v5:not([data-ferr="cortar"]):not([data-ferr="texto"]):not([data-ferr="velocidade"]) .vp-tl {
    display: none;
}

/* barra do palco enxuta: play + tempo | antes, som, modos */
#vp-modal.vp-v5.vp-v4 .vp-barra {
    gap: 6px;
    flex-wrap: nowrap;
}

#vp-modal.vp-v5.vp-v4 .vp-tag {
    display: none;
}

#vp-modal.vp-v5.vp-v4 .vp-tempo {
    min-width: 0;
    margin-right: auto;
    padding-left: 4px;
    font-size: 12.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, .88);
}

#vp-modal.vp-v5 .vp-bt-redondo {
    width: 34px;
    height: 34px;
    border-radius: 11px;
    background: rgba(255, 255, 255, .07);
    transition: background-color .16s ease, transform .2s var(--vp-ease);
}

#vp-modal.vp-v5 .vp-bt-redondo:hover {
    background: rgba(255, 255, 255, .15);
}

#vp-modal.vp-v5 .vp-bt-redondo:active,
#vp-modal.vp-v5 .vp-bt-ico:active:not(:disabled) {
    transform: scale(.92);
}

#vp-modal.vp-v5 .vp-bt-comp {
    padding: 0;
}

#vp-modal.vp-v5 #vp-bt-play {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: #fff;
    color: #111;
}

#vp-modal.vp-v5 #vp-bt-play:hover {
    background: #e9eaec;
}

#vp-modal.vp-v5 .vp-seg {
    padding: 3px;
    border-radius: 12px;
}

#vp-modal.vp-v5 .vp-tool {
    min-width: 0;
    height: 28px;
    padding: 0 9px;
    border-radius: 9px;
    font-size: 12px;
}

/* play do centro: o mesmo desenho do player do sistema (.ap-plyr-centro) -
   disco escuro leve com aro claro; no hover inverte para branco */
#vp-modal.vp-v5 .vp-play {
    width: 56px;
    height: 56px;
    background: rgba(12, 12, 14, .34);
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28), 0 10px 30px -10px rgba(0, 0, 0, .5);
    transition: transform .36s var(--vp-ease), background-color .22s ease, color .22s ease, opacity .25s ease;
}

#vp-modal.vp-v5 .vp-play svg {
    width: 21px;
    height: 21px;
    margin-left: 2px;
}

#vp-modal.vp-v5 .vp-play:hover {
    color: #0b0b0c;
    background: #fff;
    transform: translate(-50%, -50%) scale(1.07);
}

/* barra fina de progresso na borda de baixo do video: sempre a vista e
   clicavel (busca no trecho); engrossa no hover */
#vp-modal.vp-v5 .vp-prog {
    height: 4px;
    opacity: 1;
    pointer-events: auto;
    cursor: pointer;
    background: rgba(255, 255, 255, .2);
    transition: height .2s var(--vp-ease);
}

#vp-modal.vp-v5 .vp-prog::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 18px;
}

#vp-modal.vp-v5 .vp-prog:hover {
    height: 7px;
}

#vp-modal.vp-v5 .vp-prog i {
    position: relative;
    border-radius: 0 99px 99px 0;
}

/* ---- Trilho: sobre o vidro, sem fundo nem borda ---------------------------- */
#vp-modal.vp-v5 .vp-rail {
    gap: 2px;
    padding: 6px 7px 14px;
    background: transparent;
    border-right: 0;
}

#vp-modal.vp-v5 .vp-rail-bt {
    border-radius: 14px;
}

#vp-modal.vp-v5 .vp-rail-bt svg {
    width: 36px;
    height: 36px;
    padding: 8px;
    border-radius: 12px;
    transition: background-color .16s ease, color .16s ease, transform .24s var(--vp-ease);
}

#vp-modal.vp-v5 .vp-rail-bt:hover:not(:disabled) svg {
    transform: translateY(-1px);
}

/* ferramenta ativa: pastilha elevada clara (a tinta preta fica so no
   "Enviar video", o unico destaque escuro da janela) */
#vp-modal.vp-v5 .vp-rail-bt.atv svg,
#vp-modal.vp-v5 .vp-rail-bt.atv:hover:not(:disabled) svg {
    background: var(--pd2-controle, var(--color-bg));
    color: var(--color-text-01);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 4px 12px -4px rgba(0, 0, 0, .18), inset 0 0 0 .5px rgba(0, 0, 0, .05);
}

#vp-modal.vp-v5 .vp-rail-bt span {
    font-size: 11px;
}

#vp-modal.vp-v5 .vp-rail-sep {
    display: block;
    height: 1px;
    margin: 6px 12px;
    background: var(--vp-linha);
}

/* ---- Painel ---------------------------------------------------------------- */
#vp-modal.vp-v5 .vp-col-info {
    padding: 0 24px 8px 10px;
    background: transparent;
}

#vp-modal.vp-v5 .vp-fim {
    display: none;
}

#vp-modal.vp-v5 .vp-sec {
    gap: 12px;
    padding: 16px 0 18px;
}

#vp-modal.vp-v5 .vp-sec:first-child {
    padding-top: 6px;
}

#vp-modal.vp-v5 .vp-sec+.vp-sec {
    border-top: 1px solid var(--vp-linha);
}

.vp-sec-cab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 32px;
}

#vp-modal.vp-v5 .vp-sec-tit {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.vp-sec-sub {
    margin-left: 8px;
    font-size: 12px;
    font-weight: 400;
    letter-spacing: 0;
    color: var(--vp-mudo);
}

/* Redes = SEGMENTED CONTROL (trilho + pastilha elevada), nao chip preto:
   o unico destaque escuro da janela e o "Enviar video". */
#vp-modal.vp-v5 .vp-redes {
    gap: 2px;
    padding: 3px;
    border-radius: 13px;
    background: var(--vp-campo);
    box-shadow: inset 0 0 0 1px var(--vp-linha);
}

/* "Como fica no [Instagram] [Facebook] [TikTok]" numa linha so */
.vp-sec-cab-redes {
    justify-content: flex-start;
    flex-wrap: wrap;
    gap: 8px 14px;
}

#vp-modal.vp-v5 #vp-capa-acao:empty,
#vp-modal.vp-v5 #vp-obs-wrap:empty {
    display: none;
}

#vp-modal.vp-v5 .vp-rede {
    height: 32px;
    padding: 0 14px 0 12px;
    gap: 7px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    font-size: 12.5px;
    transition: background-color .16s ease, color .16s ease, box-shadow .16s ease, transform .2s var(--vp-ease);
}

#vp-modal.vp-v5 .vp-rede:hover:not(.atv) {
    background: var(--color-hover-01);
}

#vp-modal.vp-v5 .vp-rede.atv {
    background: var(--pd2-controle, var(--color-bg));
    color: var(--color-text-01);
    font-weight: 600;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 2px 8px -2px rgba(0, 0, 0, .12), inset 0 0 0 .5px rgba(0, 0, 0, .04);
}

#vp-modal.vp-v5 .vp-rede:active {
    transform: scale(.96);
}

#vp-modal.vp-v5 .vp-rede-ico {
    width: 15px;
    height: 15px;
}

/* ---- Capa: os recortes grandes, lado a lado -------------------------------- */
/* "Alterar capa": a acao da secao. Botao cheio em tom elevado (nao preto -
   o preto e do "Enviar video"), largura da coluna, icone num quadradinho. */
#vp-modal.vp-v5 #vp-capa-bt {
    align-self: stretch;
}

#vp-modal.vp-v5 .vp-capa-btn {
    width: 100%;
    height: 44px;
    margin: 0;
    padding: 0 14px 0 6px;
    gap: 10px;
    border: 1px solid color-mix(in srgb, var(--color-text-01) 14%, transparent);
    border-radius: 13px;
    background: var(--pd2-controle, var(--color-bg));
    color: var(--color-text-01);
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -.01em;
    cursor: pointer;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 10px 24px -16px rgba(0, 0, 0, .35);
    transition: background-color .16s ease, transform .2s var(--vp-ease), box-shadow .2s ease, border-color .16s ease;
}

#vp-modal.vp-v5 .vp-capa-btn svg {
    width: 32px;
    height: 32px;
    padding: 8px;
    border-radius: 9px;
    background: var(--vp-campo);
    box-shadow: inset 0 0 0 1px var(--vp-linha);
}

#vp-modal.vp-v5 .vp-capa-btn::after {
    content: '';
    width: 7px;
    height: 7px;
    margin-left: auto;
    border-top: 1.6px solid currentColor;
    border-right: 1.6px solid currentColor;
    opacity: .45;
    transform: rotate(45deg);
    transition: transform .24s var(--vp-ease), opacity .16s ease;
}

#vp-modal.vp-v5 .vp-capa-btn:hover {
    border-color: color-mix(in srgb, var(--color-text-01) 24%, transparent);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .08), 0 16px 30px -16px rgba(0, 0, 0, .45);
    transform: translateY(-1px);
}

#vp-modal.vp-v5 .vp-capa-btn:hover::after {
    opacity: .8;
    transform: translateX(2px) rotate(45deg);
}

#vp-modal.vp-v5 .vp-capa-btn:active {
    transform: scale(.96);
}

/* Conferir em duas colunas: o card do FEED (destaque) | capa + arquivo.
   Painel estreito (video deitado): o lado desce para baixo do card. */
#vp-modal.vp-v5 .vp-sec-capa {
    padding-top: 18px;
    padding-bottom: 4px;
}

.vp-conf {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 22px 28px;
}

#vp-modal.vp-v5 #vp-capa-ctx {
    flex: 0 0 auto;
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 16px;
    max-width: 100%;
}

.vp-conf-lado {
    flex: 1 1 190px;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 22px;
    padding-top: 26px;
}

.vp-conf-bloco {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
}

.vp-conf-bloco #vp-checagem,
.vp-conf-bloco #vp-capa-acao {
    align-self: stretch;
}

#vp-modal.vp-v5 #vp-capa-acao {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

/* a nota de corte do feed: filete na margem, como as outras notas */
.vp-capa-obs {
    padding-left: 10px;
    border-left: 2px solid var(--vp-linha, var(--color-border));
}

#vp-modal.vp-v5 .vpc-bloco {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
}

#vp-modal.vp-v5 .vpc-rot {
    margin-bottom: 8px;
    font-size: 11.5px;
    font-weight: 500;
    color: var(--vp-mudo);
}

#vp-modal.vp-v5 .vpc-obs {
    margin-top: 8px;
    font-size: 11.5px;
    line-height: 1.4;
}

/* o quadro cru: dois tetos (o 9:16 fica estreito, o 16:9 fica baixo) */
#vp-modal.vp-v5 .vpc-quadro {
    max-width: 200px;
    max-height: 196px;
    border-radius: 12px;
    border-color: var(--vp-linha);
    box-shadow: 0 10px 26px -14px rgba(0, 0, 0, .45);
}

#vp-modal.vp-v5 .vpc-quadro.vpc-sem {
    width: 110px;
    height: 196px;
}

#vp-modal.vp-v5 .vpc-b-quadro .vpc-quadro,
#vp-modal.vp-v5 .vpc-b-grade .vpc-grade,
#vp-modal.vp-v5 .vpc-b-rolagem .vpc-rolagem {
    transition: transform .3s var(--vp-ease), box-shadow .3s var(--vp-ease);
}

#vp-modal.vp-v5 .vpc-bloco:hover .vpc-quadro,
#vp-modal.vp-v5 .vpc-bloco:hover .vpc-grade,
#vp-modal.vp-v5 .vpc-bloco:hover .vpc-rolagem {
    transform: translateY(-2px);
}

/* O CARD DO FEED - a capa como ela aparece rolando o celular. Largura
   vinda do JS (--vpc-w: altura da midia ~50% da tela x proporcao do feed). */
#vp-modal.vp-v5 .vpc-b-rolagem {
    width: var(--vpc-w, 200px);
    max-width: 100%;
}

#vp-modal.vp-v5 .vpc-b-rolagem .vpc-rot {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-01);
}

#vp-modal.vp-v5 .vpc-b-rolagem .vpc-rolagem {
    border-radius: 16px;
    border: 1px solid var(--vp-linha);
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .06), 0 22px 44px -26px rgba(0, 0, 0, .45);
}

#vp-modal.vp-v5 .vpc-b-rolagem .vpc-rol-top {
    gap: 8px;
    padding: 9px 10px 9px 11px;
}

#vp-modal.vp-v5 .vpc-b-rolagem .vpc-av {
    width: 24px;
    height: 24px;
    font-size: 9px;
}

#vp-modal.vp-v5 .vpc-b-rolagem .vpc-rol-top b {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12.5px;
}

.vpc-rol-mais {
    flex: 0 0 auto;
    display: grid;
    color: var(--color-text-01);
    opacity: .7;
}

#vp-modal.vp-v5 .vpc-b-rolagem .vpc-play {
    width: 44px;
    height: 44px;
    background: rgba(12, 12, 14, .38);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3);
}

#vp-modal.vp-v5 .vpc-b-rolagem .vpc-play svg {
    margin-left: 2px;
}

#vp-modal.vp-v5 .vpc-b-rolagem .vpc-rol-pe {
    gap: 14px;
    padding: 10px 12px 6px;
    color: var(--color-text-01);
}

.vpc-rol-leg {
    padding: 0 12px 11px;
    font-size: 12px;
    line-height: 1.4;
    color: var(--color-text-01);
}

/* o corte em 2 linhas mora no <p> (sem padding): no proprio bloco o padding
   entrava na conta e a terceira linha aparecia pela metade */
.vpc-rol-leg p {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    max-height: 2.8em;
    margin: 0;
    overflow: hidden;
}

.vpc-rol-leg b {
    font-weight: 600;
}

#vp-modal.vp-v5 .vpc-b-quadro .vpc-obs,
#vp-modal.vp-v5 .vpc-b-grade .vpc-obs,
#vp-modal.vp-v5 .vpc-b-rolagem .vpc-obs {
    max-width: 100%;
}

#vp-modal.vp-v5 .vpc-b-anel {
    grid-column: auto;
    width: 220px;
}

#vp-modal.vp-v5 .vpc-grade {
    gap: 2px;
    border-radius: 12px;
}

#vp-modal.vp-v5 .vpc-rolagem {
    border-color: var(--vp-linha);
    border-radius: 12px;
    background: var(--vp-campo);
}

#vp-modal.vp-v5 .vpc-rol-top {
    padding: 6px 8px;
}

#vp-modal.vp-v5 .vpc-rol-pe {
    padding: 6px 8px;
}

#vp-modal.vp-v5 .vpc-play {
    width: 28px;
    height: 28px;
}

#vp-modal.vp-v5 .vpc-anel-lst {
    gap: 12px;
}

#vp-modal.vp-v5 .vpc-anel-it {
    width: 62px;
}

#vp-modal.vp-v5 .vpc-anel {
    width: 62px;
    height: 62px;
}

#vp-modal.vp-v5 .vp-capa-txt {
    font-size: 12.5px;
    line-height: 1.5;
}

#vp-modal.vp-v5 .vp-capa-escolhida {
    gap: 12px;
}

.vp-capa-tag {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    font-size: 12.5px;
    font-weight: 600;
    color: var(--color-text-01);
}

.vp-capa-tag::before {
    content: '';
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
}

#vp-modal.vp-v5 .vp-capa-gravar {
    margin-top: 0;
}

/* ---- Arquivo: os fatos em cartoes iguais ----------------------------------- */
#vp-modal.vp-v5 .vp-fatos {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    background: none;
    border: 0;
    border-radius: 0;
    overflow: visible;
}

#vp-modal.vp-v5 .vp-fato {
    padding: 10px 11px 11px;
    container-type: inline-size;
    border: 1px solid var(--vp-linha);
    border-radius: 12px;
    background: var(--vp-campo);
}

#vp-modal.vp-v5 .vp-fato span {
    font-size: 11.5px;
    margin-bottom: 3px;
}

#vp-modal.vp-v5 .vp-fato b {
    font-size: 14px;
    letter-spacing: -.01em;
    font-variant-numeric: tabular-nums;
}

/* cartao estreito (painel do video deitado): o numero encolhe um degrau
   em vez de quebrar "1920x1080" em duas linhas */
@container (max-width: 96px) {
    #vp-modal.vp-v5 .vp-fato b {
        font-size: 12.5px;
        letter-spacing: -.02em;
    }
}

#vp-modal.vp-v5 #vp-checagem {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

#vp-modal.vp-v5 .vp-nota,
#vp-modal.vp-v5 .vp-obs {
    font-size: 12.5px;
    color: var(--vp-mudo);
}

/* ==========================================================================
   INICIO 2.0 - tela montada por BLOCOS (.ini2, browse/index.php)
   --------------------------------------------------------------------------
   Grade de 2 colunas; cada bloco e um cartao (.ini-bloco) de meia ou
   largura inteira (data-w). O botao "Personalizar" liga .ini-editando:
   a barra de controle aparece sobre cada bloco, o miolo fica inerte e a
   galeria "Adicionar blocos" abre embaixo. Monocromatico: a unica cor
   e dado (etapa, prioridade, marca) ou o vermelho de atraso.
   Responsivo e @container no media.css.
   ========================================================================== */
.ini2 {
    --ini-ease: cubic-bezier(.16, 1, .3, 1);
    --ini-linha: var(--color-border);
    --ini-tracejado: rgba(125, 135, 160, .5);
    --ini-alerta: #d23838;
    --ini-sombra: 0 18px 36px -22px rgba(16, 24, 40, .3);
}

.container-inicio.ini2 {
    /* max-width: 1320px; */
    margin: 0 auto;
    padding: 26px 28px 72px;
    color: var(--color-text-01);
}

.ini2 .ini-ico {
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ini2:not(.ini-editando) .ini-so-edit,
.ini2.ini-editando .ini-so-normal {
    display: none !important;
}

/* ---- Saudacao ---- */
.ini2 .ini-hero {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 24px;
    margin: 0 0 26px;
}

.ini2 .ini-hero-tx {
    min-width: 0;
}

.ini2 .ini-hero-data {
    display: block;
    font-size: 13px;
    font-weight: 500;
    opacity: .5;
}

.ini2 .ini-hero-data::first-letter {
    text-transform: uppercase;
}

.ini2 .ini-hero-ola {
    margin: 6px 0 8px;
    padding: 0;
    font-size: 34px;
    font-weight: 550;
    letter-spacing: -.03em;
    line-height: 1.12;
}

.ini2 .ini-hero-sub {
    min-height: 22px;
    margin: 0;
    font-size: 15px;
    line-height: 1.45;
    opacity: .6;
}

.ini2 .ini-hero-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}

/* ---- Botoes (kit do site) ---- */
.ini2 .ini-bt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 38px;
    margin: 0;
    padding: 0 16px;
    border: 0;
    border-radius: 13px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 13.5px;
    font-weight: 550;
    letter-spacing: -.01em;
    white-space: nowrap;
    cursor: pointer;
    transition: transform .24s var(--ini-ease), box-shadow .24s var(--ini-ease), background .2s, opacity .2s;
}

.ini2 .ini-bt .ini-ico {
    width: 16px;
    height: 16px;
}

.ini2 .ini-bt-pri {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.ini2 .ini-bt-pri:hover {
    transform: translateY(-1px);
    box-shadow: 0 20px 42px -16px rgba(37, 99, 235, .7);
}

.ini2 .ini-bt-sec {
    box-shadow: inset 0 0 0 1px var(--ini-linha);
}

.ini2 .ini-bt-sec:hover {
    background: var(--color-hover-01);
}

.ini2 .ini-bt-txt {
    opacity: .65;
}

.ini2 .ini-bt-txt:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.ini2 .ini-bt:active {
    transform: scale(.98);
}

/* ---- Grade e bloco ---- */
.ini2 .ini-grade {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    align-items: stretch;
}

.ini2 .ini-bloco {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 18px 20px 16px;
    border: 1px solid var(--ini-linha);
    border-radius: 18px;
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .03);
    container-type: inline-size;
    transition: border-color .24s var(--ini-ease), box-shadow .24s var(--ini-ease), opacity .2s, transform .24s var(--ini-ease);
}

.ini2 .ini-bloco[data-w="2"] {
    grid-column: 1 / -1;
}

.ini2 .ini-bloco-corpo {
    flex: 1 1 auto;
    min-width: 0;
}

.ini2 .ini-bloco-corpo.ini-revela {
    animation: ini-revela .38s ease;
}

/* O resumo e uma fileira de cartoes: o bloco nao desenha casca propria. */
.ini2 .ini-bloco[data-bloco="resumo"] {
    padding: 0;
    border-color: transparent;
    background: transparent;
    box-shadow: none;
}

/* ---- Cabecalho dos blocos ---- */
.ini2 .ini-hd {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 30px;
    margin: 0 0 14px;
}

.ini2 .ini-hd-ico {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 10px;
    background: var(--color-bg-01);
}

.ini2 .ini-hd-ico .ini-ico {
    width: 16px;
    height: 16px;
    opacity: .8;
}

.ini2 .ini-tt {
    margin: 0;
    padding: 0;
    overflow: hidden;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -.01em;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ini2 .ini-n {
    flex: 0 0 auto;
    padding: 2px 8px;
    border-radius: 100px;
    background: var(--color-hover-01);
    font-size: 12px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.ini2 .ini-link {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
    margin: 0 -6px 0 auto;
    padding: 6px 8px;
    border: 0;
    border-radius: 9px;
    background: none;
    color: inherit;
    font: inherit;
    font-size: 12.5px;
    font-weight: 550;
    opacity: .55;
    cursor: pointer;
    transition: opacity .2s, background .2s;
}

.ini2 .ini-link .ini-ico {
    width: 14px;
    height: 14px;
    transition: transform .24s var(--ini-ease);
}

.ini2 .ini-link:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.ini2 .ini-link:hover .ini-ico {
    transform: translateX(2px);
}

.ini2 .ini-muted {
    margin: 0;
    font-size: 13px;
    line-height: 1.5;
    opacity: .5;
}

.ini2 .ini-nada {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    padding: 22px 0 14px;
    text-align: center;
}

.ini2 .ini-nada>.ini-ico {
    width: 26px;
    height: 26px;
    opacity: .28;
}

.ini2 .ini-nada p {
    margin: 0;
    font-size: 13px;
    opacity: .5;
}

/* ---- Cartao de tarefas / conteudos ----
   ALTURA FIXA: os dois cartoes lado a lado ficam sempre do mesmo tamanho,
   abrir um grupo nao empurra a pagina e quem rola e a area dos grupos.
   Grupos nascem recolhidos (cabecalho com seta + nome + numero). */
.ini2 .ini-bloco[data-bloco="tarefas"],
.ini2 .ini-bloco[data-bloco="conteudos"] {
    height: 420px;
    padding-bottom: 6px;
}

/* min-height 0 em cada elo da coluna: sem ele o item flex cresce com o
   conteudo e a lista vaza do cartao em vez de rolar dentro dele. */
.ini2 .ini-bloco[data-bloco="tarefas"]>.ini-bloco-corpo,
.ini2 .ini-bloco[data-bloco="conteudos"]>.ini-bloco-corpo {
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.ini2 .ini-card {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-height: 0;
}

.ini2 .ini-dist {
    display: flex;
    flex: 0 0 auto;
    gap: 2px;
    height: 4px;
    margin: -4px 0 10px;
}

.ini2 .ini-dist i {
    display: block;
    min-width: 3px;
    height: 100%;
    border-radius: 2px;
}

.ini2 .ini-listas {
    position: relative;
    flex: 1 1 auto;
    min-height: 0;
    margin: 0 -12px;
    padding: 0 12px 8px;
    overflow-x: hidden;
    overflow-y: auto;
    /* Barra classica (Windows) nao rouba largura quando um grupo abre e a
       area passa a rolar: os titulos nao quebram de lugar. */
    scrollbar-gutter: stable;
    /* Foco por teclado / scrollIntoView param ABAIXO do cabecalho grudado. */
    scroll-padding-top: 52px;
    scroll-padding-bottom: 16px;
    /* Esmaecido na borda de baixo: avisa que a lista continua. */
    --ini-fade: 22px;
    -webkit-mask-image: linear-gradient(to bottom, #000 calc(100% - var(--ini-fade)), transparent);
    mask-image: linear-gradient(to bottom, #000 calc(100% - var(--ini-fade)), transparent);
}

/* Onde da (Chrome/Safari): o esmaecido acompanha a rolagem e SOME no fim
   da lista - antes o ultimo item ficava apagado mesmo sem nada embaixo.
   Area que nao rola = timeline inativa = valor 0 (sem esmaecer). */
@property --ini-fade {
    syntax: "<length>";
    inherits: false;
    initial-value: 0px;
}

@supports (animation-timeline: scroll()) {
    .ini2 .ini-listas {
        --ini-fade: 0px;
        animation: ini-fade-fim linear both;
        animation-timeline: scroll(self);
    }
}

@keyframes ini-fade-fim {

    0%,
    88% {
        --ini-fade: 22px;
    }

    100% {
        --ini-fade: 0px;
    }
}

.ini2 .ini-grupo:first-child {
    border-top: 0;
}

/* Cabecalho do grupo gruda no topo da area enquanto a lista dele rola.
   Fundo solido (sem blur): item repetido com backdrop-filter pisca ao rolar. */
.ini2 .ini-grupo-hd {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 8px;
    /* Passa por cima do respiro lateral da area (12px de cada lado): o fundo
       cobre a linha inteira que rola por baixo, avatar e realce incluidos. */
    width: calc(100% + 24px);
    height: 46px;
    margin: 0 -12px;
    padding: 0 14px;
    border: 0;
    background: var(--color-bg);
    color: var(--color-text-01);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.ini2 .ini-grupo-hd::after {
    content: "";
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    height: 7px;
    background: linear-gradient(var(--color-bg), transparent);
    opacity: 0;
    pointer-events: none;
    transition: opacity .2s;
}

/* Grupo aberto: a linha que passa por baixo do cabecalho grudado se desfaz
   num degrade curto em vez de ser cortada a seco. 7px = cabe no respiro
   de cima da primeira linha, nao encosta no texto. */
.ini2 .ini-grupo.aberto>.ini-grupo-hd::after {
    opacity: 1;
}

.ini2 .ini-grupo-hd .ini-ico {
    width: 15px;
    height: 15px;
    stroke-width: 2;
    opacity: .45;
    transition: transform .3s var(--ini-ease), opacity .2s;
}

.ini2 .ini-grupo-tt {
    font-size: 13.5px;
    font-weight: 550;
    letter-spacing: -.005em;
}

.ini2 .ini-grupo-n {
    min-width: 22px;
    padding: 2px 7px;
    border-radius: 100px;
    background: var(--color-hover-01);
    font-size: 11.5px;
    font-style: normal;
    font-weight: 600;
    text-align: center;
    font-variant-numeric: tabular-nums;
    transition: background .2s, color .2s;
}

.ini2 .ini-grupo-hd:hover .ini-ico {
    opacity: .9;
}

.ini2 .ini-grupo-hd:hover .ini-grupo-n {
    background: var(--color-bg-01);
}

/* Sem contorno de botao no clique (o button:focus do Bootstrap desenhava
   o anel). Teclado continua com sinal: realce de fundo, sem borda. */
.ini2 button,
.ini2 button:focus,
.ini2 button:active,
.ini2 .ini-row:focus {
    outline: 0;
    -webkit-tap-highlight-color: transparent;
}

.ini2 .ini-grupo-hd:focus-visible .ini-grupo-tt {
    text-decoration: underline;
    text-underline-offset: 4px;
    text-decoration-thickness: 1.5px;
}

.ini2 .ini-grupo-hd:focus-visible .ini-ico {
    opacity: .9;
}

.ini2 .ini-grupo.aberto>.ini-grupo-hd .ini-ico {
    transform: rotate(90deg);
    opacity: .9;
}

.ini2 .ini-grupo.alerta .ini-grupo-n {
    background: rgba(210, 56, 56, .1);
    color: var(--ini-alerta);
}

/* Vazio: apagado e sem clique (o numero 0 ja diz tudo). */
.ini2 .ini-grupo.vazio>.ini-grupo-hd {
    cursor: default;
    opacity: .38;
}

.ini2 .ini-grupo.vazio>.ini-grupo-hd .ini-ico {
    opacity: .3;
}

.ini2 .ini-grupo-corpo {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .32s var(--ini-ease);
    padding: 0px 0px 0px 23px;
}

.ini2 .ini-grupo.aberto>.ini-grupo-corpo {
    grid-template-rows: 1fr;
}

.ini2 .ini-lista {
    min-height: 0;
    /* A linha tem margem negativa de 10px (realce passa da borda do texto):
       o padding devolve esse espaco, senao o overflow cortava os avatares. */
    margin: 0 -10px;
    padding: 0 10px;
    overflow: hidden;
    opacity: 0;
    transition: opacity .2s ease;
}

.ini2 .ini-grupo.aberto .ini-lista {
    padding-bottom: 8px;
    opacity: 1;
    transition: opacity .28s ease .06s;
}

/* Nada em aberto: os quatro grupos zerados viram uma mensagem so. */
.ini2 .ini-vazio {
    display: none;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 100%;
    text-align: center;
}

.ini2 .ini-card.zerado .ini-grupo {
    display: none;
}

.ini2 .ini-card.zerado .ini-vazio {
    display: flex;
}

.ini2 .ini-vazio .ini-ico {
    width: 30px;
    height: 30px;
    padding: 7px;
    border-radius: 50%;
    background: var(--color-bg-01);
    stroke-width: 2;
    opacity: .6;
}

.ini2 .ini-vazio p {
    margin: 0;
    font-size: 13px;
    opacity: .5;
}

/* ---- Linha ---- */
.ini2 .ini-row {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 35px;
    margin: 0 -10px;
    padding: 7px 10px;
    border-radius: 11px;
    cursor: pointer;
    transition: background .18s;
}

.ini2 .ini-row:hover {
    background: var(--color-hover-01);
}

.ini2 .ini-row:focus-visible {
    background: var(--color-hover-01);
}

.ini2 .ini-row .st-icon {
    display: flex;
    flex: 0 0 auto;
}

.ini2 .ini-row-av.avatar-perfil {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 20px;
    height: 20px;
    margin: 0;
    border-radius: 6px;
    background-color: var(--color-bg-01);
    background-size: cover;
    background-position: center;
    box-shadow: inset 0 0 0 1px rgba(125, 135, 160, .2);
    font-size: 8px;
    font-weight: 600;
    line-height: 1;
}

.ini2 .ini-row-tt {
    flex: 1 1 auto;
    min-width: 40px;
    overflow: hidden;
    font-size: 13.5px;
    font-weight: 500;
    letter-spacing: -.005em;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ini2 .ini-row-meta {
    display: flex;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
    margin-left: auto;
}

.ini2 .ini-chip {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11.5px;
    line-height: 1;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
    opacity: .55;
    transition: opacity .2s;
}

.ini2 .ini-row:hover .ini-chip {
    opacity: .85;
}

.ini2 .ini-chip svg {
    flex: 0 0 auto;
    width: 11px;
    height: 11px;
}

.ini2 .ini-prio {
    opacity: .85;
}

.ini2 .ini-prio svg {
    fill: var(--ini-prio, currentColor);
}

.ini2 .ini-prazo.hoje,
.ini2 .ini-prazo.amanha {
    font-weight: 600;
    opacity: .9;
}

.ini2 .ini-prazo.vencido,
.ini2 .ini-row:hover .ini-prazo.vencido {
    color: var(--ini-alerta);
    font-weight: 600;
    opacity: 1;
}

.ini2 .ini-row-pess {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex: 0 0 auto;
}

.ini2 .ini-row-pess:empty {
    display: none;
}

/* Cartao com alguem alem de voce: os avatares viram uma COLUNA (2 avatares
   de largura, alinhados a direita) e a data fica no mesmo X em toda linha. */
.ini2 .ini-card.com-pess .ini-row-pess {
    display: flex;
    min-width: 34px;
}

.ini2 .ini-row-pess .lst-membros-all {
    display: flex;
    align-items: center;
    float: none;
    clear: none;
    padding: 0;
}

.ini2 .ini-row-pess .lst-membros-all .item {
    float: none;
    margin: 0;
}

/* Sobreposicao para a esquerda: o ultimo avatar termina rente a borda da
   linha (com margin-right negativa ele vazava 6px para fora). */
.ini2 .ini-row-pess .lst-membros-all .item+.item {
    margin-left: -6px;
}

.ini2 .ini-row-pess .thumb-user {
    width: 20px;
    height: 20px;
    margin: 0;
    border: 1.5px solid var(--color-bg);
    box-shadow: none;
    font-size: 8px;
}

.ini2 .ini-row-pess .item-mais {
    float: none;
    width: 20px;
    height: 20px;
    margin-left: 3px;
    border-radius: 50%;
    background: var(--color-hover-01);
    font-size: 9px;
    line-height: 20px;
    text-align: center;
    opacity: .7;
}

/* Polling item a item (mesmos keyframes da lista antiga) */
.ini2 .ini-row.ii-novo {
    animation: ii-entrada .32s ease;
}

.ini2 .ini-row.ii-flash {
    animation: ii-destaque 1.4s ease;
}

.ini2 .ini-row.ii-saindo {
    opacity: 0;
    transform: translateX(4px);
    pointer-events: none;
    transition: opacity .25s ease, transform .25s ease;
}

/* ---- Resumo do dia ---- */
.ini2 .ini-res {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
}

.ini2 .ini-res-it {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
    margin: 0;
    padding: 16px 18px 15px;
    border: 1px solid var(--ini-linha);
    border-radius: 16px;
    background: var(--color-bg);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .24s var(--ini-ease), box-shadow .24s var(--ini-ease), background .24s var(--ini-ease);
}

.ini2 .ini-res-it:hover {
    transform: translateY(-2px);
    background: var(--color-bg-01);
    box-shadow: var(--ini-sombra);
}

.ini2 .ini-res-rot {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    font-weight: 550;
    opacity: .6;
}

.ini2 .ini-res-it.alerta .ini-res-rot {
    opacity: .9;
}

.ini2 .ini-res-it.alerta .ini-res-rot::before {
    content: "";
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ini-alerta);
}

.ini2 .ini-res-n {
    margin: 4px 0 2px;
    font-size: 30px;
    font-weight: 550;
    letter-spacing: -.03em;
    line-height: 1.15;
    font-variant-numeric: tabular-nums;
}

.ini2 .ini-res-it.alerta .ini-res-n {
    color: var(--ini-alerta);
}

.ini2 .ini-res-it.zero .ini-res-n {
    opacity: .28;
}

.ini2 .ini-res-sub {
    max-width: 100%;
    overflow: hidden;
    font-size: 12px;
    white-space: nowrap;
    text-overflow: ellipsis;
    opacity: .45;
}

/* ---- Publicacoes da semana ---- */
.ini2 .ini-sem {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 8px;
}

.ini2 .ini-dia {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
    padding: 10px 8px 8px;
    border-radius: 14px;
    background: var(--color-bg-01);
}

.ini2 .ini-dia-hd {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 2px 0 4px;
}

.ini2 .ini-dia-hd span {
    font-size: 11.5px;
    font-weight: 600;
    text-transform: capitalize;
    opacity: .55;
}

.ini2 .ini-dia-hd b {
    display: inline-grid;
    place-items: center;
    min-width: 26px;
    height: 26px;
    border-radius: 50%;
    font-size: 13.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.ini2 .ini-dia.hoje .ini-dia-hd span {
    opacity: .9;
}

.ini2 .ini-dia.hoje .ini-dia-hd b {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.ini2 .ini-dia-lst {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.ini2 .ini-pub {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
    margin: 0;
    padding: 9px 10px;
    border: 1px solid var(--ini-linha);
    border-radius: 11px;
    background: var(--color-bg);
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .2s var(--ini-ease), box-shadow .2s var(--ini-ease);
}

.ini2 .ini-pub:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 24px -16px rgba(16, 24, 40, .35);
}

.ini2 .ini-pub-top {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.ini2 .ini-pub-av.avatar-perfil {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
    margin: 0;
    border-radius: 5px;
    background-color: var(--color-bg-01);
    background-size: cover;
    background-position: center;
    box-shadow: inset 0 0 0 1px rgba(125, 135, 160, .2);
    font-size: 7px;
    font-weight: 600;
    line-height: 1;
}

.ini2 .ini-pub-hora {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 11.5px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
    opacity: .75;
}

.ini2 .ini-pub-hora i {
    flex: 0 0 auto;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.ini2 .ini-pub-redes {
    display: flex;
    gap: 3px;
    margin-left: auto;
}

.ini2 .ini-pub-redes i {
    display: flex;
}

.ini2 .ini-pub-redes svg {
    width: 11px;
    height: 11px;
    fill: currentColor;
    opacity: .5;
}

.ini2 .ini-pub-tt {
    display: -webkit-box;
    overflow: hidden;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.3;
    word-break: break-word;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
}

.ini2 .ini-dia-mais {
    margin: 0;
    padding: 5px 4px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 11.5px;
    font-weight: 550;
    opacity: .55;
    cursor: pointer;
    transition: opacity .2s, background .2s;
}

.ini2 .ini-dia-mais:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.ini2 .ini-dia-vz {
    padding: 4px;
    font-size: 11.5px;
    opacity: .3;
}

/* ---- Marcas ---- */
.ini2 .ini-marcas {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 4px;
    margin: 0 -8px;
}

.ini2 .ini-marca {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
    margin: 0;
    padding: 8px;
    border: 0;
    border-radius: 13px;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .2s;
}

.ini2 .ini-marca:hover {
    background: var(--color-hover-01);
}

.ini2 .ini-marca .ini-marca-av {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    margin: 0;
    border-radius: 11px;
    background-color: var(--color-bg-01);
    background-size: cover;
    background-position: center;
    box-shadow: inset 0 0 0 1px rgba(125, 135, 160, .22);
    font-size: 12px;
    font-weight: 600;
    transition: transform .24s var(--ini-ease);
}

.ini2 .ini-marca:hover .ini-marca-av {
    transform: scale(1.05);
}

.ini2 .ini-marca-tx {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.ini2 .ini-marca-tx b,
.ini2 .ini-marca-tx small {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ini2 .ini-marca-tx b {
    font-size: 13.5px;
    font-weight: 550;
}

.ini2 .ini-marca-tx small {
    font-size: 11.5px;
    opacity: .5;
}

/* ---- Documentos (v12): abertos por ultimo + favoritos ---- */
.ini2 .ini-docs {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 4px;
    margin: 0 -8px;
}

.ini2 .ini-doc {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
    padding: 8px;
    border: 0;
    border-radius: 13px;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .2s;
}

.ini2 .ini-doc:hover {
    background: var(--color-hover-01);
}

.ini2 .ini-doc-ico {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 11px;
    background: var(--color-bg-01);
    box-shadow: inset 0 0 0 1px rgba(125, 135, 160, .22);
    font-size: 18px;
}

.ini2 .ini-doc-ico svg {
    width: 18px;
    height: 18px;
}

.ini2 .ini-doc-tx {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
    flex: 1;
}

.ini2 .ini-doc-tx b,
.ini2 .ini-doc-tx small {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ini2 .ini-doc-tx b {
    font-size: 13.5px;
    font-weight: 550;
}

.ini2 .ini-doc-tx small {
    font-size: 11.5px;
    opacity: .5;
}

.ini2 .ini-doc-fav svg {
    width: 14px;
    height: 14px;
    opacity: .45;
}

/* ---- Plano ---- */
.ini2 .ini-plano-nome {
    margin: 0 0 16px;
    font-size: 22px;
    font-weight: 550;
    letter-spacing: -.02em;
}

.ini2 .ini-uso {
    margin: 0 0 14px;
}

.ini2 .ini-uso-tx {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    margin: 0 0 7px;
    font-size: 12.5px;
}

.ini2 .ini-uso-tx span {
    opacity: .6;
}

.ini2 .ini-uso-tx b {
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.ini2 .ini-uso-tx small {
    font-weight: 500;
    opacity: .5;
}

.ini2 .ini-uso-bar {
    height: 6px;
    overflow: hidden;
    border-radius: 6px;
    background: var(--color-bg-01);
}

.ini2 .ini-uso-bar i {
    display: block;
    height: 100%;
    border-radius: 6px;
    background: var(--color-btn-bg-01);
    transform-origin: left center;
    animation: ini-barra .9s var(--ini-ease);
}

.ini2 .ini-uso-bar.cheio i {
    background: var(--ini-alerta);
}

.ini2 .ini-acoes {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 18px;
}

/* ---- Atalhos (espelho do menu lateral) ---- */
.ini2 .ini-atalhos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
    gap: 8px;
}

.ini2 .ini-atalho {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    min-width: 0;
    margin: 0;
    padding: 13px 12px 12px;
    border: 1px solid var(--ini-linha);
    border-radius: 13px;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: transform .24s var(--ini-ease), background .2s;
}

.ini2 .ini-atalho:hover {
    transform: translateY(-1px);
    background: var(--color-bg-01);
}

.ini2 .ini-atalho-ico svg {
    display: block;
    width: 18px;
    height: 18px;
    fill: currentColor;
    opacity: .8;
}

.ini2 .ini-atalho-tx {
    max-width: 100%;
    overflow: hidden;
    font-size: 13px;
    font-weight: 550;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* ---- Bloco de notas ---- */
.ini2 .ini-notas-st {
    margin-left: auto;
    font-size: 11.5px;
    opacity: .45;
}

.ini2 .ini-notas-tx {
    display: block;
    width: 100%;
    min-height: 148px;
    max-height: 420px;
    margin: 0;
    padding: 12px 14px;
    border: 0;
    border-radius: 12px;
    outline: 0;
    background: var(--color-bg-01);
    color: var(--color-text-01);
    font: inherit;
    font-size: 13.5px;
    line-height: 1.55;
    resize: vertical;
    field-sizing: content;
    transition: box-shadow .2s, background .2s;
}

.ini2 .ini-notas-tx:focus {
    background: var(--color-bg);
    box-shadow: inset 0 0 0 1px var(--ini-linha), 0 0 0 4px var(--color-hover-01);
}

/* ---- Modo Personalizar ---- */
.ini2 .ini-ctl {
    position: absolute;
    top: 10px;
    left: 10px;
    right: 10px;
    z-index: 3;
    display: none;
    align-items: center;
    gap: 2px;
    padding: 4px;
    border-radius: 12px;
    background: var(--glass-opaco, var(--color-bg));
    box-shadow: var(--glass-sombra, var(--ini-sombra));
}

.ini2.ini-editando .ini-ctl {
    display: flex;
    animation: ini-ctl-entra .26s var(--ini-ease);
}

.ini2 .ini-ctl-nome {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
    margin-right: auto;
    padding: 0 8px 0 4px;
    overflow: hidden;
    font-size: 12.5px;
    font-weight: 600;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.ini2 .ini-ctl-nome .ini-ico {
    width: 15px;
    height: 15px;
    opacity: .45;
}

.ini2 .ini-ctl-bt {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    margin: 0;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: inherit;
    cursor: pointer;
    transition: background .2s, color .2s;
}

.ini2 .ini-ctl-bt .ini-ico {
    width: 16px;
    height: 16px;
}

.ini2 .ini-ctl-bt:hover {
    background: var(--color-hover-01);
}

.ini2 .ini-ctl-remover:hover {
    color: #e83a3a;
    background: rgba(232, 58, 58, .1);
}

.ini2.ini-editando .ini-bloco {
    border: 1px dashed var(--ini-tracejado);
    box-shadow: none;
    cursor: grab;
    user-select: none;
}

.ini2.ini-editando .ini-bloco[data-bloco="resumo"] {
    padding: 52px 12px 12px;
}

.ini2.ini-editando .ini-bloco-corpo {
    opacity: .38;
    pointer-events: none;
    transition: opacity .24s var(--ini-ease);
}

.ini2.ini-editando .ini-bloco:hover {
    border-color: var(--color-text-01);
}

.ini2 .ini-bloco.ini-fantasma {
    border: 1.5px dashed var(--ini-tracejado);
    background: var(--color-bg-01);
}

.ini2 .ini-bloco.ini-fantasma>* {
    visibility: hidden;
}

.ini-bloco.ini-arrastando {
    border-style: solid !important;
    box-shadow: 0 30px 60px -24px rgba(16, 24, 40, .45) !important;
    opacity: .97 !important;
    cursor: grabbing;
}

.ini2 .ini-bloco.ini-saindo {
    opacity: 0;
    transform: scale(.97);
    transition: opacity .2s ease, transform .22s var(--ini-ease);
}

.ini2 .ini-bloco.ini-chega {
    animation: ini-chega .45s var(--ini-ease);
}

.ini2 .ini-bloco.ini-pulsa {
    animation: ini-pulsa .36s var(--ini-ease);
}

.ini2 .ini-grade-vazia {
    display: none;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 56px 20px;
    border: 1px dashed var(--ini-tracejado);
    border-radius: 18px;
    text-align: center;
}

.ini2.ini-sem-blocos .ini-grade-vazia {
    display: flex;
}

.ini2 .ini-grade-vazia p {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
}

.ini2 .ini-grade-vazia span {
    font-size: 13px;
    opacity: .55;
}

.ini2 .ini-galeria {
    display: none;
    margin-top: 30px;
}

.ini2.ini-editando .ini-galeria {
    display: block;
    animation: ini-chega .4s var(--ini-ease);
}

.ini2 .ini-galeria-tt {
    margin: 0 0 12px;
    font-size: 13px;
    font-weight: 600;
    opacity: .55;
}

.ini2 .ini-gal-lst {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 10px;
}

.ini2 .ini-gal-it {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
    margin: 0;
    padding: 14px;
    border: 1px dashed var(--ini-tracejado);
    border-radius: 16px;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .2s, border-color .2s, transform .24s var(--ini-ease);
}

.ini2 .ini-gal-it:hover {
    transform: translateY(-1px);
    border-style: solid;
    border-color: var(--ini-linha);
    background: var(--color-bg-01);
}

.ini2 .ini-gal-ico {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    background: var(--color-bg-01);
}

.ini2 .ini-gal-tx {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    gap: 2px;
    min-width: 0;
}

.ini2 .ini-gal-tx b {
    font-size: 13.5px;
    font-weight: 600;
}

.ini2 .ini-gal-tx small {
    font-size: 12px;
    line-height: 1.4;
    opacity: .55;
}

.ini2 .ini-gal-add {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    transition: transform .24s var(--ini-ease);
}

.ini2 .ini-gal-add .ini-ico {
    width: 14px;
    height: 14px;
    stroke-width: 2.2;
}

.ini2 .ini-gal-it:hover .ini-gal-add {
    transform: scale(1.08);
}

.ini2 .ini-gal-cheia {
    margin: 0;
    font-size: 13px;
    opacity: .5;
}

@keyframes ini-revela {
    from {
        opacity: 0;
    }
}

@keyframes ini-troca {
    from {
        opacity: 0;
        transform: translateY(4px);
    }
}

@keyframes ini-barra {
    from {
        transform: scaleX(0);
    }
}

@keyframes ini-ctl-entra {
    from {
        opacity: 0;
        transform: translateY(-4px);
    }
}

@keyframes ini-chega {
    from {
        opacity: 0;
        transform: translateY(10px) scale(.985);
    }
}

@keyframes ini-pulsa {
    from {
        transform: scale(.985);
    }
}

/* ============================================================================
   ASSISTENTE DE IA (.as-*) - JS: window.AirpostAssistente (footer.php)
   ----------------------------------------------------------------------------
   No computador o Jasper mora na borda direita (#jasper-borda, .jb-*); o botao
   #btn-assistente do topo so aparece na barra do celular (media.css). O painel
   fica ACIMA de telas e modais (2147482000; abaixo so do AirpostDialogo, Swal,
   salvando e tooltip). Quando ele abre um conteudo/tarefa/formulario, o JS
   recolhe o painel (saiDaFrente) - a conversa continua la. Mesma arquitetura das cascas de vidro: o vidro mora no
   ::before e o painel nunca anima opacidade (DEVELOPMENT_RULES 14.3b).
   Interface monocromatica: a mensagem da pessoa e o botao de enviar usam a
   tinta do botao principal; nada de cor de acento.
   ========================================================================== */
#btn-assistente {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    margin-left: 2px;
    border-radius: 6px;
    cursor: pointer;
    opacity: 0.55;
    color: var(--color-text-01);
    transition: opacity 0.15s, background 0.15s;
    vertical-align: middle;
}

#btn-assistente:hover,
#btn-assistente.atv {
    opacity: 1;
    background: var(--color-hover-01);
}

#btn-assistente svg {
    width: 15px;
    height: 15px;
}

.as {
    position: fixed;
    top: 12px;
    right: 12px;
    bottom: 12px;
    z-index: 2147482000;
    width: min(400px, calc(100vw - 24px));
    display: flex;
    flex-direction: column;
    border-radius: 22px;
    color: var(--color-text-01);
    --color-bg: var(--pd2-campo);
    animation: glass-folha var(--glass-folha-dur) var(--glass-ease);
}

.as[hidden] {
    display: none;
}

.as::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: -1;
    border-radius: inherit;
    pointer-events: none;
    background: var(--glass-fundo-forte);
    -webkit-backdrop-filter: var(--glass-filtro-forte);
    backdrop-filter: var(--glass-filtro-forte);
    border: 1px solid var(--glass-borda);
    box-shadow: var(--glass-brilho), var(--glass-sombra);
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.as>* {
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.as-hdr {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 12px 8px 18px;
}

.as-hdr-ico svg {
    display: block;
    width: 18px;
    height: 18px;
}

.as-hdr-tit {
    flex: 1;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.as-ic {
    width: 30px;
    height: 30px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: inherit;
    opacity: .6;
    cursor: pointer;
    transition: opacity .15s, background .15s;
}

.as-ic:hover {
    opacity: 1;
    background: var(--glass-realce);
}

.as-ic svg {
    width: 17px;
    height: 17px;
}

.as-msgs {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    overscroll-behavior: contain;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 8px 18px 14px;
}

.as-msg {
    max-width: 92%;
    font-size: 14px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.as-user {
    align-self: flex-end;
    padding: 8px 13px;
    border-radius: 17px 17px 5px 17px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.as-assistant {
    align-self: flex-start;
}

.as-passo {
    align-self: flex-start;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12.5px;
    opacity: .55;
}

.as-passo::before {
    content: "";
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: currentColor;
}

.as-erro {
    align-self: flex-start;
    font-size: 13px;
    color: #d92d20;
}

.as-pensando {
    align-self: flex-start;
    display: flex;
    gap: 4px;
    padding: 6px 0;
}

.as-pensando span {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    opacity: .3;
    animation: as-pulsa 1s ease-in-out infinite;
}

.as-pensando span:nth-child(2) {
    animation-delay: .15s;
}

.as-pensando span:nth-child(3) {
    animation-delay: .3s;
}

@keyframes as-pulsa {
    50% {
        opacity: .8;
        transform: translateY(-2px);
    }
}

.as-vazio {
    margin: auto 0;
    padding: 12px 4px 24px;
    text-align: center;
}

.as-vazio-ico svg {
    width: 30px;
    height: 30px;
    opacity: .8;
}

.as-vazio-tit {
    margin: 10px 0 4px;
    font-size: 17px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.as-vazio-txt {
    margin: 0 auto 18px;
    max-width: 290px;
    font-size: 13px;
    line-height: 1.45;
    opacity: .6;
}

.as-sugs {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 6px;
}

.as-sug {
    padding: 7px 12px;
    border: 1px solid var(--glass-borda);
    border-radius: 999px;
    background: var(--pd2-campo);
    color: inherit;
    font: inherit;
    font-size: 13px;
    cursor: pointer;
    transition: background .15s;
}

.as-sug:hover {
    background: var(--glass-realce);
}

.as-form {
    display: flex;
    align-items: flex-end;
    gap: 8px;
    margin: 0 12px 12px;
    padding: 6px 6px 6px 14px;
    border: 1px solid var(--glass-borda);
    border-radius: 19px;
    background: var(--pd2-campo);
}

.as-ipt {
    flex: 1;
    min-width: 0;
    max-height: 160px;
    padding: 7px 0;
    border: 0;
    outline: 0;
    resize: none;
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 14px;
    line-height: 1.45;
}

.as-env {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    cursor: pointer;
    transition: scale .15s;
}

.as-env:active {
    scale: .92;
}

/* Arte gerada pelo Jasper (AirStudio): a imagem no balao, cantos do kit */
.as-arte-msg .as-arte {
    display: block;
    width: 100%;
    max-width: 320px;
    margin-top: 8px;
    border-radius: 14px;
    background: rgba(127, 127, 127, .12);
}

/* Ir para o fim da conversa: aparece quando a resposta longa ficou ancorada pelo
   inicio (o Jasper nao pula mais para o fim) e ha conteudo abaixo. O bottom vem do
   JS (altura do campo de texto). Monocromatico, mesmo botao do enviar. */
.as-descer {
    position: absolute;
    left: 50%;
    bottom: 84px;
    z-index: 3;
    width: 34px;
    height: 34px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .18);
    cursor: pointer;
    translate: -50% 0;
    animation: as-descer-entra .28s cubic-bezier(.16, 1, .3, 1) both;
    transition: scale .15s;
}

.as-descer[hidden] {
    display: none;
}

.as-descer:active {
    scale: .92;
}

.as-descer svg {
    width: 16px;
    height: 16px;
}

@keyframes as-descer-entra {
    from {
        opacity: 0;
        translate: -50% 8px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .as-descer {
        animation: none;
    }
}

.as-env svg {
    width: 16px;
    height: 16px;
}

/* --- Airpost IA: estado do modelo, cartoes, escolhas e listas -------------
   .as-ia = selo do motor no cabecalho (data-estado = off | baixando |
   carregando | preparando | pronto | regras | erro | pausado). Barra de
   download so na primeira vez. Cartao .as-card = confirmacao antes de gravar;
   .as-ops = escolha entre opcoes; .as-itens = resultados clicaveis. Tudo na
   tinta do texto/botao principal (interface monocromatica). */
.as-ia {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    font-size: 11.5px;
    font-weight: 500;
    opacity: .55;
    display: inline-flex;
    align-items: center;
    gap: 5px;
}

.as-ia:empty {
    display: none;
}

.as-ia::before {
    content: "";
    flex: 0 0 6px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
    opacity: .35;
}

.as-ia[data-estado="pronto"]::before {
    opacity: 1;
}

.as-ia[data-estado="baixando"]::before,
.as-ia[data-estado="carregando"]::before,
.as-ia[data-estado="preparando"]::before {
    animation: as-pulsa 1s ease-in-out infinite;
}

.as-ia-bt {
    opacity: 1;
    padding: 4px 9px;
    border-radius: 999px;
    border: 1px solid var(--glass-borda);
    background: var(--pd2-campo);
    cursor: pointer;
}

.as-ia-bt::before {
    display: none;
}

.as-ia-bt:hover {
    background: var(--glass-realce);
}

.as-carga {
    margin: 0 18px 6px;
}

.as-carga[hidden] {
    display: none;
}

.as-carga-barra {
    height: 4px;
    border-radius: 99px;
    background: var(--glass-realce);
    overflow: hidden;
}

.as-carga-barra i {
    display: block;
    height: 100%;
    width: 2%;
    border-radius: inherit;
    background: var(--color-btn-bg-01);
    transition: width .4s ease;
}

.as-carga-txt {
    margin-top: 6px;
    font-size: 11.5px;
    line-height: 1.4;
    opacity: .55;
}

.as-bt {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 32px;
    padding: 0 13px;
    border: 1px solid var(--glass-borda);
    border-radius: 10px;
    background: var(--pd2-campo);
    color: inherit;
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s, opacity .15s;
}

.as-bt:hover {
    background: var(--glass-realce);
}

.as-bt:focus-visible {
    outline: 2px solid var(--color-btn-bg-01);
    outline-offset: 2px;
}

.as-bt svg {
    width: 14px;
    height: 14px;
}

.as-bt-pri {
    border-color: transparent;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.as-bt-pri:hover {
    background: var(--color-btn-bg-01);
    opacity: .88;
}

.as-bt-txt {
    border-color: transparent;
    background: transparent;
    opacity: .65;
}

.as-bt-mini {
    display: flex;
    width: max-content;
    min-height: 28px;
    margin-top: 8px;
    padding: 0 10px;
    font-size: 12.5px;
}

.as-card {
    width: 100%;
    max-width: 100%;
    padding: 12px 14px;
    border: 1px solid var(--glass-borda);
    border-radius: 16px;
    background: var(--pd2-campo);
}

.as-card-tit {
    margin-bottom: 8px;
    font-size: 13.5px;
    font-weight: 600;
}

.as-card-lin {
    display: flex;
    gap: 10px;
    padding: 4px 0;
    font-size: 13px;
    line-height: 1.4;
}

.as-card-lin span {
    flex: 0 0 92px;
    opacity: .55;
}

.as-card-lin b {
    flex: 1;
    min-width: 0;
    font-weight: 500;
    overflow-wrap: anywhere;
}

.as-card-aviso {
    margin-top: 6px;
    font-size: 12px;
    opacity: .6;
}

.as-card-bts {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
}

.as-feito .as-card-bts,
.as-feito .as-ops {
    opacity: .45;
    pointer-events: none;
}

/* Jasper: cartao trocado por um ajuste ("muda para video") - o novo vem logo abaixo */
.as-trocado .as-card-tit::after {
    content: ' · trocado pelo cartão abaixo';
    font-weight: 400;
    font-size: 12px;
    opacity: .55;
}
.as-trocado .as-card-lin b {
    text-decoration: line-through;
    text-decoration-thickness: 1px;
}

.as-ops-tit,
.as-itens-tit {
    margin-bottom: 8px;
}

.as-ops {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.as-op {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    max-width: 100%;
    padding: 7px 12px;
    border: 1px solid var(--glass-borda);
    border-radius: 12px;
    background: var(--pd2-campo);
    color: inherit;
    font: inherit;
    font-size: 13px;
    text-align: left;
    cursor: pointer;
    transition: background .15s;
}

.as-op:hover {
    background: var(--glass-realce);
}

.as-op small {
    font-size: 11.5px;
    opacity: .55;
}

.as-lista {
    width: 100%;
}

.as-itens {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--glass-borda);
    border-radius: 14px;
    background: var(--pd2-campo);
    overflow: hidden;
}

.as-item {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 8px;
    align-items: baseline;
    width: 100%;
    padding: 9px 12px;
    border: 0;
    border-top: 1px solid var(--glass-borda);
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .15s;
}

.as-item:first-child {
    border-top: 0;
}

.as-item:hover {
    background: var(--glass-realce);
}

.as-item-tag {
    grid-row: span 2;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .02em;
    text-transform: uppercase;
    opacity: .45;
}

.as-item-tit {
    min-width: 0;
    font-size: 13px;
    font-weight: 500;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.as-item-sub {
    grid-column: 2;
    font-size: 11.5px;
    opacity: .55;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.as-sugs-esq {
    justify-content: flex-start;
    margin-top: 8px;
}

/* Fonte da resposta de ajuda (guia/tela de onde o trecho saiu) + atalhos */
.as-fontes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 8px;
    font-size: 11.5px;
}

.as-fontes>span {
    flex: 1 1 100%;
    opacity: .5;
}

.as-fontes .as-bt-mini {
    margin-top: 0;
}

/* Escolha do modelo da Airpost IA (clique no selo .as-ia-menu do cabecalho) */
.as-ia-menu {
    cursor: pointer;
    border-radius: 999px;
    padding: 3px 8px;
    margin: -3px -2px;
    transition: background .15s, opacity .15s;
}

.as-ia-menu:hover,
.as-ia-menu:focus-visible {
    opacity: 1;
    background: var(--glass-realce);
    outline: none;
}

.as-modelos {
    margin: 0 12px 8px;
    padding: 10px;
    border: 1px solid var(--glass-borda);
    border-radius: 16px;
    background: var(--pd2-campo);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.as-modelos-tit {
    padding: 0 4px 2px;
    font-size: 11.5px;
    font-weight: 600;
    opacity: .55;
}

.as-modelo {
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
    padding: 9px 11px;
    border: 1px solid var(--glass-borda);
    border-radius: 12px;
    background: transparent;
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.as-modelo:hover {
    background: var(--glass-realce);
}

.as-modelo.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

.as-modelo-lin {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 8px;
    font-size: 13px;
}

.as-modelo-lin span {
    font-size: 11.5px;
    opacity: .55;
}

.as-modelo small {
    font-size: 11.5px;
    line-height: 1.35;
    opacity: .6;
}

.as-modelos-nota {
    padding: 2px 4px 0;
    font-size: 11px;
    opacity: .5;
}

/* ============================================================================
   JASPER (a IA da Airpost) - personagem em SVG + acabamento premium do painel
   ----------------------------------------------------------------------------
   O "logo" do Jasper: robozinho de cabeca quadrada bem arredondada, grafite
   com reflexo azul Airpost, visor escuro com olhos e sorriso de luz e antena
   azul (sem roxo, nada infantil). E a unica cor do painel; o resto continua
   na tinta do sistema.
   Estrutura: .jp-olhar (cursor, vars --jp-x/--jp-y) > .jp-pupila (olha em
   volta / pensa) > .jp-olho (pisca, cada um).
   Tudo anima por transform/opacity em FILHOS do vidro (nunca o .as nem o
   ::before dele). prefers-reduced-motion desliga as animacoes.
   ========================================================================== */
@property --as-ang {
    syntax: "<angle>";
    initial-value: 0deg;
    inherits: false;
}

.jp {
    display: block;
    overflow: visible;
}

.jp .jp-corpo,
.jp .jp-orbita,
.jp .jp-halo {
    transform-box: view-box;
    transform-origin: 32px 32px;
}

.jp .jp-corpo {
    animation: jp-flutua 4.5s ease-in-out infinite;
}

.jp .jp-halo {
    animation: jp-respira 4s ease-in-out infinite;
}

.jp .jp-orbita {
    animation: jp-gira 14s linear infinite;
}

.jp .jp-olho {
    transform-box: fill-box;
    transform-origin: center;
    animation: jp-pisca 5.5s infinite;
}

.jp .jp-pupila {
    animation: jp-olha 9s ease-in-out infinite;
}

.jp .jp-olhar {
    transition: transform .25s cubic-bezier(.16, 1, .3, 1);
}

.jp .jp-boca {
    opacity: .85;
    transition: opacity .3s;
}

.jp .jp-antena {
    animation: jb-respira 3.2s ease-in-out infinite;
}

.jp.pensando .jp-antena {
    animation-duration: .9s;
}

/* olhos acompanham o cursor (vars postas pelo JS) */
.jp.segue .jp-olhar {
    transform: translate(var(--jp-x, 0px), var(--jp-y, 0px));
}

/* pensando: orbita rapida, olhar para cima, sem boca, halo mais forte */
.jp.pensando .jp-orbita {
    animation-duration: 1.4s;
}

.jp.pensando .jp-pupila {
    animation: jp-pensa 1.6s ease-in-out infinite;
}

.jp.pensando .jp-boca {
    opacity: 0;
}

.jp.pensando .jp-halo {
    animation-duration: 1.2s;
}

/* feliz: olhos fecham sorrindo */
.jp.feliz .jp-olho {
    animation: none;
    transform: translateY(-1.5px) scaleY(.32);
}

@keyframes jp-flutua {
    50% {
        transform: translateY(-1.5px);
    }
}

@keyframes jp-respira {
    50% {
        transform: scale(.88);
        opacity: .65;
    }
}

@keyframes jp-gira {
    to {
        transform: rotate(360deg);
    }
}

@keyframes jp-pisca {

    0%,
    92%,
    100% {
        transform: scaleY(1);
    }

    95% {
        transform: scaleY(.12);
    }
}

@keyframes jp-olha {

    0%,
    40%,
    100% {
        transform: translateX(0);
    }

    50%,
    62% {
        transform: translateX(-1.6px);
    }

    72%,
    85% {
        transform: translateX(1.6px);
    }
}

@keyframes jp-pensa {

    0%,
    100% {
        transform: translate(1.2px, -1.6px);
    }

    50% {
        transform: translate(-.7px, -1.7px);
    }
}

/* --- aurora no topo do painel (atras do conteudo, acima do vidro) --- */
.as-aurora {
    position: absolute;
    inset: 0 0 auto 0;
    height: 240px;
    z-index: -1;
    pointer-events: none;
    overflow: hidden;
    border-radius: inherit;
    -webkit-mask: linear-gradient(#000 25%, transparent);
    mask: linear-gradient(#000 25%, transparent);
}

.as-aurora i {
    position: absolute;
    top: -130px;
    left: -70px;
    width: 300px;
    height: 300px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(37, 99, 235, .2), transparent 65%);
    animation: as-aurora 16s ease-in-out infinite alternate;
}

.as-aurora i+i {
    left: auto;
    right: -90px;
    top: -120px;
    background: radial-gradient(circle, rgba(56, 189, 248, .16), transparent 65%);
    animation-duration: 21s;
    animation-direction: alternate-reverse;
}

.as.as-ocupado .as-aurora i {
    animation-duration: 5s;
}

@keyframes as-aurora {
    0% {
        transform: translate(0, 0) scale(1);
    }

    50% {
        transform: translate(60px, 20px) scale(1.15);
    }

    100% {
        transform: translate(20px, 50px) scale(.95);
    }
}

/* --- cabecalho: avatar + nome + estado --- */
.as-hdr {
    padding: 14px 12px 10px 14px;
    gap: 10px;
}

.as-jp-hdr {
    flex: 0 0 34px;
    width: 34px;
    height: 34px;
}

.as-hdr-txt {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.as-hdr-txt .as-hdr-tit {
    flex: none;
    font-size: 15.5px;
    font-weight: 600;
    letter-spacing: -.02em;
}

.as-hdr-sub {
    display: flex;
    min-width: 0;
    margin-top: 2px;
}

.as-hdr-sub .as-ia {
    margin: 0 0 0 -2px;
    padding-left: 2px;
    font-size: 11px;
}

/* --- estado vazio: o Jasper se apresenta --- */
.as-vazio {
    padding-top: 6px;
}

.as-jp-heroi {
    display: inline-block;
    width: 96px;
    height: 96px;
    filter: drop-shadow(0 16px 26px rgba(37, 99, 235, .28));
    animation: as-heroi .9s cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes as-heroi {
    from {
        transform: translateY(10px) scale(.86);
        opacity: 0;
    }
}

.as-vazio-oi {
    margin: 12px 0 0;
    font-size: 13px;
    opacity: .55;
}

.as-vazio .as-vazio-tit {
    margin: 0 0 6px;
    font-size: 30px;
    font-weight: 600;
    letter-spacing: -.035em;
    line-height: 1.05;
    background: linear-gradient(100deg, var(--color-text-01) 0 35%, #2563eb 50%, var(--color-text-01) 65% 100%);
    background-size: 260% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: as-reflexo 5s ease-in-out 1s infinite;
}

.as-vazio .as-sugs {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
    margin-top: 4px;
}

.as-vazio .as-sug {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 46px;
    padding: 9px 11px;
    border-radius: 14px;
    text-align: left;
    font-size: 12.5px;
    line-height: 1.3;
    transition: background .15s, transform .2s cubic-bezier(.16, 1, .3, 1), box-shadow .2s;
}

.as-vazio .as-sug svg {
    flex: 0 0 16px;
    width: 16px;
    height: 16px;
    opacity: .6;
}

.as-vazio .as-sug:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 24px -18px rgba(16, 24, 40, .45);
}

/* --- "Jasper esta pensando..." --- */
.as-msg.as-pensando {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 2px 0;
}

.as-pensando .jp {
    width: 22px;
    height: 22px;
}

.as-msg.as-pensando .as-pensando-txt {
    width: auto;
    height: auto;
    border-radius: 0;
    font-size: 13px;
    font-weight: 500;
    background: linear-gradient(90deg, var(--color-text-01) 0 38%, #38bdf8 50%, var(--color-text-01) 62% 100%);
    background-size: 260% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    opacity: .75;
    animation: as-reflexo 1.6s linear infinite;
}

@keyframes as-reflexo {
    from {
        background-position: 100% 0;
    }

    to {
        background-position: 0 0;
    }
}

/* --- mensagens surgem com leve desfoque --- */
.as-msgs>.as-msg {
    animation: as-msg-entra .42s cubic-bezier(.16, 1, .3, 1) both;
}

@keyframes as-msg-entra {
    from {
        opacity: 0;
        transform: translateY(6px);
        filter: blur(4px);
    }
}

/* --- campo: brilho no foco e borda viva enquanto o Jasper pensa --- */
.as-form {
    position: relative;
    transition: box-shadow .25s, border-color .25s;
}

.as-form:focus-within {
    border-color: transparent;
    box-shadow: 0 0 0 1px var(--color-btn-bg-01), 0 14px 34px -18px rgba(37, 99, 235, .55);
}

.as-form::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    padding: 1.5px;
    pointer-events: none;
    background: conic-gradient(from var(--as-ang), transparent 0 55%, #38bdf8 70%, #2563eb 80%, transparent 92%);
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    opacity: 0;
    transition: opacity .3s;
}

.as.as-ocupado .as-form::before {
    opacity: 1;
    animation: as-gira-borda 1.6s linear infinite;
}

@keyframes as-gira-borda {
    to {
        --as-ang: 360deg;
    }
}

/* --- cartao de confirmacao com fio de luz no topo --- */
.as-card {
    position: relative;
    overflow: hidden;
}

.as-card::after {
    content: "";
    position: absolute;
    inset: 0 0 auto 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(56, 189, 248, .8), rgba(37, 99, 235, .8), transparent);
    pointer-events: none;
}

/* --- botao do topo: o orbe do Jasper --- */
#btn-assistente.btn-jasper {
    display: none;
    opacity: 1;
    width: 30px;
    height: 30px;
    border-radius: 50%;
}

#btn-assistente.btn-jasper svg {
    width: 24px;
    height: 24px;
    transition: transform .25s cubic-bezier(.16, 1, .3, 1), filter .25s;
}

#btn-assistente.btn-jasper:hover svg,
#btn-assistente.btn-jasper.atv svg {
    transform: scale(1.08);
    filter: drop-shadow(0 4px 10px rgba(37, 99, 235, .45));
}

#btn-assistente.btn-jasper:hover,
#btn-assistente.btn-jasper.atv {
    background: transparent;
}

@media (prefers-reduced-motion: reduce) {

    .jp *,
    .as-aurora i,
    .as-pensando-txt,
    .as-vazio .as-vazio-tit,
    .as-msgs>.as-msg,
    .as-jp-heroi,
    .as.as-ocupado .as-form::before {
        animation: none !important;
    }
}

/* ============================================================================
   JASPER NA BORDA DIREITA (#jasper-borda .jb-*) - JS: Borda em footer.php
   ----------------------------------------------------------------------------
   Escondido no meio da lateral direita, acima de telas e modais. Escondido = so
   um fio azul vertical (.jb-trilho). Classes no #jasper-borda:
     .aberto    mouse/foco no canto: o orbe sai + balao
     .apresenta entrada ao carregar o sistema (sai, cumprimenta, volta)
     .espia     de vez em quando: meio orbe espia e volta
     .oculto    painel aberto
   Nada aqui e vidro: pode animar opacity. So transform/opacity.
   ========================================================================== */
#jasper-borda {
    position: fixed;
    top: 50%;
    right: 0;
    z-index: 2147482100;
    width: 0;
    height: 0;
    pointer-events: none;
}

#jasper-borda.oculto {
    display: none;
}

.jb-zona {
    position: absolute;
    right: 0;
    top: -90px;
    width: 12px;
    height: 180px;
    pointer-events: auto;
}

.jb-bt {
    position: absolute;
    top: -42px;
    right: 8px;
    width: 84px;
    height: 84px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    pointer-events: none;
    outline: none;
    -webkit-tap-highlight-color: transparent;
}

.jb-bt:focus-visible .jb-orbe {
    box-shadow: 0 0 0 3px var(--color-bg, #fff), 0 0 0 5px #2563eb;
}

/* fio azul: a "alca" que mostra onde ele mora */
.jb-trilho {
    position: absolute;
    top: 50%;
    right: -10px;
    width: 5px;
    height: 58px;
    margin-top: -29px;
    border-radius: 6px 0 0 6px;
    background: linear-gradient(180deg, #93c5fd, #2563eb 55%, #1d4ed8);
    box-shadow: 0 0 10px rgba(37, 99, 235, .55), 0 0 2px rgba(37, 99, 235, .8);
    opacity: .78;
    transition: transform .35s cubic-bezier(.16, 1, .3, 1), opacity .3s;
    animation: jb-respira 6s ease-in-out infinite;
}

.jb-orbe {
    position: absolute;
    inset: 9px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transform: translateX(calc(100% + 26px)) rotate(40deg);
    transition: transform .55s cubic-bezier(.34, 1.4, .64, 1);
    filter: drop-shadow(0 8px 18px rgba(37, 99, 235, .35));
}

.jb-orbe .jp {
    width: 66px;
    height: 66px;
}

#jasper-borda.aberto .jb-orbe,
#jasper-borda.apresenta .jb-orbe {
    transform: translateX(0) rotate(0deg);
}

/* escondido o botao nao pega clique (a zona de 12px e que chama) */
#jasper-borda.aberto .jb-bt,
#jasper-borda.apresenta .jb-bt,
#jasper-borda.espia .jb-bt {
    pointer-events: auto;
}

#jasper-borda.espia .jb-orbe {
    transform: translateX(62%) rotate(-8deg);
    transition-duration: .8s;
}

#jasper-borda.aberto .jb-trilho,
#jasper-borda.apresenta .jb-trilho,
#jasper-borda.espia .jb-trilho {
    opacity: 0;
    transform: translateX(6px);
}

.jb-bt:hover .jb-orbe {
    filter: drop-shadow(0 10px 24px rgba(37, 99, 235, .5));
}

.jb-bt:active .jb-orbe {
    transform: scale(.94);
    transition-duration: .12s;
}

/* balao a esquerda do orbe (fundo solido, nao vidro) */
.jb-balao {
    position: absolute;
    top: 0;
    right: 100px;
    width: max-content;
    max-width: 230px;
    padding: 10px 14px 11px;
    border-radius: 16px 16px 4px 16px;
    /* fundo SOLIDO: --color-bg-01 e um veu de 5% de alpha (vazava o que esta
       atras); fica so como tinta por cima do --color-bg */
    background: linear-gradient(var(--color-bg-01), var(--color-bg-01)), var(--color-bg, #fff);
    color: var(--color-text-01, #111);
    border: 1px solid rgba(37, 99, 235, .22);
    box-shadow: 0 12px 32px rgba(15, 23, 42, .16), 0 2px 6px rgba(15, 23, 42, .08);
    transform: translate(14px, -50%) scale(.92);
    transform-origin: right center;
    opacity: 0;
    pointer-events: none;
    transition: transform .4s cubic-bezier(.16, 1, .3, 1), opacity .25s;
}

.jb-balao b {
    display: block;
    font-weight: 600;
    font-size: 13.5px;
    line-height: 1.3;
}

.jb-balao small {
    display: block;
    margin-top: 2px;
    font-size: 12px;
    line-height: 1.35;
    opacity: .62;
}

.jb-balao small:empty {
    display: none;
}

/* Acoes da tela aberta no balao (Borda.balao com lista): o mouse no Jasper mostra
   o que ele faz ALI (popup de conteudo, criacao, tarefa, marca, telas) */
#jasper-borda.com-acoes .jb-balao {
    max-width: 260px;
    padding-bottom: 10px;
}

.jb-acoes {
    display: flex;
    flex-direction: column;
    gap: 5px;
    margin-top: 8px;
}

.jb-acoes:empty {
    display: none;
}

.jb-acao {
    display: block;
    width: 100%;
    padding: 7px 11px;
    border: 1px solid var(--glass-borda, rgba(0, 0, 0, .1));
    border-radius: 10px;
    background: var(--pd2-campo, transparent);
    color: inherit;
    font: inherit;
    font-size: 12.5px;
    line-height: 1.3;
    text-align: left;
    cursor: pointer;
    transition: background .15s, border-color .15s;
}

.jb-acao:hover,
.jb-acao:focus-visible {
    background: var(--glass-realce, rgba(0, 0, 0, .05));
    border-color: var(--color-btn-bg-01, #111);
    outline: none;
}

#jasper-borda.aberto .jb-balao,
#jasper-borda.apresenta .jb-balao {
    opacity: 1;
    transform: translate(0, -50%) scale(1);
    transition-delay: .12s;
    pointer-events: auto;
}

/* --- Jasper BAIXANDO o modelo (.jp.baixando; .carga-ind = sem %) ---
   ondas de sinal chegam na antena, bits caem nela, olhos olham pra cima e o
   sorriso vira uma barra de progresso no visor (--jp-p 0..1, posto pelo JS) */
.jp .jp-sinal,
.jp .jp-bits,
.jp .jp-carga {
    opacity: 0;
    transition: opacity .35s;
}

.jp .jp-sinal path,
.jp .jp-bits circle {
    transform-box: view-box;
    transform-origin: 32px 6px;
}

.jp .jp-carga-fill {
    transform-box: fill-box;
    transform-origin: left center;
    transform: scaleX(var(--jp-p, 0));
    transition: transform .6s cubic-bezier(.16, 1, .3, 1);
}

.jp.baixando .jp-sinal,
.jp.baixando .jp-bits,
.jp.baixando .jp-carga {
    opacity: 1;
}

.jp.baixando .jp-boca {
    opacity: 0;
}

.jp.baixando .jp-onda1 {
    animation: jp-onda 1.6s ease-in infinite;
}

.jp.baixando .jp-onda2 {
    animation: jp-onda 1.6s ease-in infinite .4s;
}

.jp.baixando .jp-bits circle {
    animation: jp-bit 1.2s cubic-bezier(.5, 0, .9, .6) infinite;
}

.jp.baixando .jp-bits circle:nth-child(2) {
    animation-delay: .4s;
}

.jp.baixando .jp-bits circle:nth-child(3) {
    animation-delay: .8s;
}

.jp.baixando .jp-antena {
    fill: #7dd3fc;
    animation: jp-antena-rx 1.2s ease-in-out infinite;
    transform-box: fill-box;
    transform-origin: center;
}

.jp.baixando .jp-pupila {
    animation: jp-recebe 3.2s ease-in-out infinite;
}

.jp.baixando .jp-orbita {
    animation-duration: 3s;
}

.jp.baixando .jp-halo {
    animation-duration: 1.6s;
}

/* sem porcentagem (cache / preparando): um pedaco de luz corre na barra */
.jp.baixando.carga-ind .jp-carga-fill {
    animation: jp-carga-ind 1.3s ease-in-out infinite;
    transition: none;
}

@keyframes jp-onda {
    0% {
        opacity: 0;
        transform: scale(1.35);
    }

    40% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: scale(.7);
    }
}

@keyframes jp-bit {
    0% {
        opacity: 0;
        transform: translateY(0);
    }

    25% {
        opacity: 1;
    }

    100% {
        opacity: 0;
        transform: translateY(11px);
    }
}

@keyframes jp-antena-rx {

    0%,
    100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.35);
        opacity: .65;
    }
}

@keyframes jp-recebe {

    0%,
    100% {
        transform: translate(0, -1.7px);
    }

    50% {
        transform: translate(.6px, -1.3px);
    }
}

@keyframes jp-carga-ind {

    0%,
    100% {
        transform: translateX(0) scaleX(.3);
    }

    50% {
        transform: translateX(11px) scaleX(.45);
    }
}

/* borda: o fio enche de baixo pra cima com o download (--jb-p 0..1) */
.jb-trilho::before {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(0deg, #e0f2fe, #7dd3fc);
    transform-origin: bottom;
    transform: scaleY(0);
    transition: transform .6s cubic-bezier(.16, 1, .3, 1);
}

#jasper-borda.baixando .jb-trilho::before {
    transform: scaleY(var(--jb-p, 0));
}

#jasper-borda.baixando .jb-trilho {
    opacity: 1;
    animation: none;
    box-shadow: 0 0 14px rgba(56, 189, 248, .7), 0 0 3px rgba(37, 99, 235, .9);
}

#jasper-borda.baixando.carga-ind .jb-trilho::before {
    animation: jb-ind 1.4s ease-in-out infinite;
}

@keyframes jb-ind {

    0%,
    100% {
        transform: scaleY(.2);
    }

    50% {
        transform: scaleY(1);
    }
}

/* --- efeitos: luz correndo no fio, onda ao surgir, aceno, olhar, brilho --- */
.jb-trilho {
    overflow: hidden;
}

.jb-trilho::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    height: 18px;
    background: linear-gradient(180deg, transparent, rgba(255, 255, 255, .95), transparent);
    transform: translateY(-20px);
    animation: jb-corre 4.8s cubic-bezier(.65, 0, .35, 1) infinite 1.2s;
}

.jb-orbe::before,
.jb-orbe::after {
    content: "";
    position: absolute;
    inset: 4px;
    border-radius: 34%;
    border: 1.5px solid rgba(96, 165, 250, .7);
    opacity: 0;
    pointer-events: none;
}

#jasper-borda.aberto .jb-orbe::before,
#jasper-borda.apresenta .jb-orbe::before {
    animation: jb-onda 1.1s cubic-bezier(.16, 1, .3, 1) .25s;
}

#jasper-borda.apresenta .jb-orbe::after {
    animation: jb-onda 1.1s cubic-bezier(.16, 1, .3, 1) .55s;
}

.jb-orbe .jp {
    transition: transform .35s cubic-bezier(.34, 1.56, .64, 1);
}

#jasper-borda.apresenta .jb-orbe .jp {
    animation: jb-aceno 1.4s ease-in-out .5s 2;
}

.jb-bt:hover .jb-orbe .jp {
    transform: scale(1.07) rotate(-4deg);
}

.jb-bt:hover .jp .jp-halo {
    animation-duration: 1.6s;
}

/* espiando: os olhos procuram a tela */
#jasper-borda.espia .jp .jp-olhar {
    transform: translate(-2.4px, -.4px);
}

.jp .jp-brilho {
    transform-box: fill-box;
    transform-origin: center;
    animation: jb-cintila 3.6s ease-in-out infinite;
}

/* balao: titulo e subtitulo entram em sequencia */
.jb-balao b,
.jb-balao small {
    transform: translateY(5px);
    opacity: 0;
    transition: transform .45s cubic-bezier(.16, 1, .3, 1), opacity .3s;
}

#jasper-borda.aberto .jb-balao b,
#jasper-borda.apresenta .jb-balao b {
    transform: none;
    opacity: 1;
    transition-delay: .22s;
}

#jasper-borda.aberto .jb-balao small,
#jasper-borda.apresenta .jb-balao small {
    transform: none;
    opacity: .62;
    transition-delay: .34s;
}

/* fio de luz azul na borda do balao */
.jb-balao::before {
    content: "";
    position: absolute;
    left: 14px;
    right: 14px;
    top: -1px;
    height: 1px;
    background: linear-gradient(90deg, transparent, #60a5fa, transparent);
}

@keyframes jb-corre {
    0% {
        transform: translateY(-20px);
    }

    45%,
    100% {
        transform: translateY(64px);
    }
}

@keyframes jb-onda {
    0% {
        opacity: .9;
        transform: scale(.85);
    }

    100% {
        opacity: 0;
        transform: scale(1.55);
    }
}

@keyframes jb-aceno {

    0%,
    100% {
        transform: rotate(0deg);
    }

    20% {
        transform: rotate(-11deg);
    }

    45% {
        transform: rotate(8deg);
    }

    70% {
        transform: rotate(-4deg);
    }
}

@keyframes jb-cintila {

    0%,
    70%,
    100% {
        transform: scale(.6) rotate(0deg);
        opacity: .35;
    }

    82% {
        transform: scale(1.25) rotate(45deg);
        opacity: 1;
    }
}

@keyframes jb-respira {

    0%,
    100% {
        opacity: .78;
    }

    50% {
        opacity: .5;
    }
}

@media (prefers-reduced-motion: reduce) {

    .jb-orbe,
    .jb-orbe .jp,
    .jb-orbe::before,
    .jb-orbe::after,
    .jb-balao,
    .jb-balao b,
    .jb-balao small,
    .jb-trilho,
    .jb-trilho::after,
    .jp .jp-brilho,
    .jp .jp-antena,
    .jp .jp-sinal path,
    .jp .jp-bits circle,
    .jp .jp-pupila,
    .jp .jp-carga-fill,
    .jb-trilho::before {
        transition: none !important;
        animation: none !important;
    }
}

/* --- Jasper: cartao do link lido (.as-pag) - site, titulo e descricao da pagina --- */
.as-msg.as-pag-msg {
    padding: 0;
    background: transparent;
    border: 0;
}

.as-pag {
    display: grid;
    gap: 3px;
    padding: 10px 13px 11px;
    border: 1px solid var(--glass-borda);
    border-radius: 14px;
    background: var(--glass-realce);
    color: inherit;
    text-decoration: none;
    transition: background .15s, border-color .15s;
}

.as-pag:hover {
    border-color: rgba(37, 99, 235, .35);
    color: inherit;
    text-decoration: none;
}

.as-pag-site {
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .03em;
    text-transform: uppercase;
    opacity: .5;
}

.as-pag-tit {
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.3;
}

.as-pag-desc {
    font-size: 12px;
    line-height: 1.4;
    opacity: .65;
}

.as-fontes a.as-bt {
    text-decoration: none;
}

/* --- Jasper do cabecalho x Jasper da tela inicial ---
   Na tela inicial (#ap-assistente.as-inicio) o grande e o destaque e o do
   cabecalho se recolhe (vaga fecha, nome desliza). Ao sair dela o JS
   (sairDoInicio) faz o grande voar ate a vaga; ao chegar, um anel de luz. */
.as-jp-hdr {
    position: relative;
    transform-origin: left center;
    transition: flex-basis .5s cubic-bezier(.2, .8, .2, 1), width .5s cubic-bezier(.2, .8, .2, 1), margin .5s cubic-bezier(.2, .8, .2, 1), opacity .25s, transform .5s cubic-bezier(.2, .8, .2, 1);
}

#ap-assistente.as-inicio .as-jp-hdr {
    flex-basis: 0;
    width: 0;
    margin-right: -10px;
    opacity: 0;
    transform: scale(.4);
    pointer-events: none;
}

.as-jp-hdr .jp {
    position: relative;
    z-index: 2;
    will-change: transform;
}

.as-jp-hdr.chegou::after {
    content: "";
    position: absolute;
    inset: -3px;
    border-radius: 12px;
    border: 1.5px solid rgba(96, 165, 250, .8);
    opacity: 0;
    pointer-events: none;
    animation: jb-onda .9s cubic-bezier(.16, 1, .3, 1) .55s;
}

@media (prefers-reduced-motion: reduce) {
    .as-jp-hdr {
        transition: none;
    }

    .as-jp-hdr.chegou::after {
        animation: none;
    }
}

.as-jp-hdr.voa {
    transition: flex-basis .5s cubic-bezier(.2, .8, .2, 1), width .5s cubic-bezier(.2, .8, .2, 1), margin .5s cubic-bezier(.2, .8, .2, 1);
}

/* ###########################################################################
   DASHBOARD DE CONTEUDOS 2 (.dsh) - ritmo, atencao, dia a dia, fluxo,
   pessoas e marcas. Montado por graficoProgressoTotal() (browse/index.php).
   ---------------------------------------------------------------------------
   Kit proprio, escopado em .dsh: as classes antigas da tela (.item-box,
   .dash-kpi, .etapa-card, .totais-perfis...) ficaram sem uso e NAO sao
   reaproveitadas - eram compartilhadas com overrides do dark.css e do
   media.css que brigariam com este desenho.
   Monocromatico: a tinta (preto/branco) e o unico "acento". Cor so como DADO:
   etapa/status (cor do usuario), atraso (vermelho), prazo (ambar), ritmo (verde).
   Responsivo no fim do media.css (bloco DASHBOARD 2).
   ########################################################################### */
.contant-dashboard-home .totais-group-box>.dsh {
    grid-column: 1 / -1;
}

.dsh {
    --dsh-ink: var(--color-text-01);
    --dsh-ink-2: color-mix(in srgb, var(--color-text-01) 60%, transparent);
    --dsh-ink-3: color-mix(in srgb, var(--color-text-01) 38%, transparent);
    --dsh-line: var(--color-border);
    --dsh-surface: var(--color-bg);
    --dsh-trk: color-mix(in srgb, var(--color-text-01) 7%, transparent);
    --dsh-hover: color-mix(in srgb, var(--color-text-01) 4%, transparent);
    --dsh-fill: var(--color-btn-bg-01);
    --dsh-fill-txt: var(--color-btn-text-01);
    --dsh-aberto: color-mix(in srgb, var(--color-text-01) 20%, transparent);
    --dsh-red: #e5484d;
    --dsh-amber: #e09b13;
    --dsh-green: #2fa36b;
    --dsh-ease: cubic-bezier(.16, 1, .3, 1);
    display: flex;
    flex-direction: column;
    gap: 14px;
    color: var(--dsh-ink);
    font-variant-numeric: tabular-nums;
}

.dsh-l1 {
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr);
    gap: 14px;
}

.dsh-l2 {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 14px;
}

.dsh-card {
    min-width: 0;
    padding: 20px 22px;
    background: var(--dsh-surface);
    border: 1px solid var(--dsh-line);
    border-radius: 18px;
}

/* Clicavel sem "pulo": o hover antigo de .dash-drill (translateY + sombra)
   foi pensado para cartoes soltos; aqui as linhas so ganham fundo. */
.contant-dashboard-home .dsh .dash-drill {
    cursor: pointer;
}

.contant-dashboard-home .dsh .dash-drill:hover {
    transform: none;
    box-shadow: none;
}

.dsh-hdr {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 12px;
    min-height: 30px;
    margin: 0 0 14px;
}

.dsh-hdr h3 {
    margin: 0;
    font-size: 15px;
    font-weight: 550;
    letter-spacing: -.01em;
    color: var(--dsh-ink);
}

.dsh-hdr-sub {
    font-size: 12.5px;
    color: var(--dsh-ink-2);
}

.dsh-hdr-sub i {
    margin: 0 7px;
    font-style: normal;
    opacity: .6;
}

.dsh-hdr-sub b {
    font-weight: 600;
    color: var(--dsh-ink);
}

.dsh-hdr-num {
    margin-left: auto;
    font-size: 12.5px;
    color: var(--dsh-ink-2);
}

.dsh-hdr-num.on {
    font-weight: 550;
    color: var(--dsh-ink);
}

.dsh-vazio {
    padding: 14px 0 6px;
    font-size: 13px;
    color: var(--dsh-ink-2);
}

/* --- Situacao: pilula com ponto ------------------------------------------ */
.dsh-sit {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 26px;
    padding: 0 11px;
    border: 1px solid var(--dsh-line);
    border-radius: 100px;
    font-size: 12.5px;
    font-weight: 550;
    color: var(--dsh-ink);
    white-space: nowrap;
}

.dsh-sit>i,
.dsh-sit-dot {
    display: inline-block;
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--dsh-ink-3);
}

.dsh-sit.s-ritmo>i,
.dsh-sit-dot.s-ritmo {
    background: var(--dsh-green);
}

.dsh-sit.s-ok>i,
.dsh-sit-dot.s-ok {
    background: var(--dsh-ink);
}

.dsh-sit.s-atrasos>i,
.dsh-sit-dot.s-atrasos {
    background: var(--dsh-amber);
}

.dsh-sit.s-atras>i,
.dsh-sit-dot.s-atras {
    background: var(--dsh-red);
}

/* --- 1. Ritmo ------------------------------------------------------------ */
.dsh-ritmo {
    display: flex;
    flex-direction: column;
}

.dsh-ritmo-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 18px;
}

.dsh-eyebrow {
    font-size: 12.5px;
    font-weight: 500;
    color: var(--dsh-ink-2);
}

.dsh-eyebrow i {
    margin: 0 7px;
    font-style: normal;
    opacity: .6;
}

.dsh-ritmo-mid {
    display: flex;
    align-items: flex-end;
    gap: 22px;
    margin: 0 0 20px;
}

.dsh-big {
    flex: 0 0 auto;
    font-size: 64px;
    font-weight: 500;
    line-height: .9;
    letter-spacing: -.045em;
    color: var(--dsh-ink);
}

.dsh-big i {
    margin-left: 3px;
    font-size: 26px;
    font-style: normal;
    letter-spacing: 0;
    color: var(--dsh-ink-3);
}

.dsh-frase {
    max-width: 440px;
    margin: 0 0 4px;
    font-size: 14px;
    line-height: 1.45;
    color: var(--dsh-ink-2);
}

.dsh-meter {
    position: relative;
    height: 8px;
    margin: 0 0 34px;
    border-radius: 100px;
    background: var(--dsh-trk);
}

.dsh-meter-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    border-radius: 100px;
    background: var(--dsh-fill);
    transition: width .6s var(--dsh-ease);
}

/* O marcador "hoje": onde o avanco deveria estar. O anel da cor da
   superficie o separa da barra quando o preenchimento passa por cima. */
.dsh-meter-tick {
    position: absolute;
    top: -5px;
    bottom: -5px;
    width: 2px;
    margin-left: -1px;
    border-radius: 2px;
    background: var(--dsh-ink);
    box-shadow: 0 0 0 2px var(--dsh-surface);
}

.dsh-meter-tick b {
    position: absolute;
    top: 22px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--dsh-ink-2);
    white-space: nowrap;
}

.dsh-stats {
    display: flex;
    margin-top: auto;
    padding-top: 16px;
    border-top: 1px solid var(--dsh-line);
}

.dsh-stat {
    display: flex;
    flex: 1 1 0;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
    padding: 2px 16px;
    border-left: 1px solid var(--dsh-line);
}

.dsh-stat:first-child {
    padding-left: 0;
    border-left: 0;
}

.dsh-stat b {
    font-size: 22px;
    font-weight: 550;
    line-height: 1.1;
    letter-spacing: -.03em;
    color: var(--dsh-ink);
}

.dsh-stat b i {
    font-size: 15px;
    font-style: normal;
    color: var(--dsh-ink-3);
}

.dsh-stat>span {
    font-size: 12.5px;
    color: var(--dsh-ink-2);
}

.dsh-stat.dash-drill:hover b {
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: 4px;
}

.dsh-delta {
    font-size: 11.5px;
    font-weight: 550;
    color: var(--dsh-ink-3);
}

.dsh-nota {
    margin: 14px 0 0;
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--dsh-ink-2);
}

.dsh-nota b {
    font-weight: 600;
    color: var(--dsh-ink);
}

/* --- 2. Atencao ---------------------------------------------------------- */
.dsh-at-lst {
    display: flex;
    flex-direction: column;
    margin: 0 -10px;
}

.dsh-at {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 10px;
    border-radius: 11px;
    font-size: 13.5px;
    color: var(--dsh-ink);
    transition: background-color .18s ease;
}

.dsh-at.dash-drill:hover,
.dsh-at.dash-drill:focus-visible {
    background: var(--dsh-hover);
    outline: none;
}

.dsh-at-dot {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--dsh-ink-2);
}

.dsh-at.b-atrasado .dsh-at-dot {
    background: var(--dsh-red);
}

.dsh-at.b-sla .dsh-at-dot {
    background: var(--dsh-amber);
}

.dsh-at-nome {
    flex: 1 1 auto;
    min-width: 0;
}

.dsh-at-n {
    font-size: 15px;
    font-weight: 600;
}

.dsh-chev {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .35;
    transition: transform .2s var(--dsh-ease), opacity .2s;
}

.dsh-at.dash-drill:hover .dsh-chev {
    opacity: .8;
    transform: translateX(2px);
}

.dsh-at.zero {
    color: var(--dsh-ink-3);
}

.dsh-at.zero .dsh-at-dot {
    background: var(--dsh-trk);
}

.dsh-at.zero .dsh-at-n {
    font-weight: 500;
}

.dsh-at.zero .dsh-chev {
    visibility: hidden;
}

/* --- 3. Dia a dia -------------------------------------------------------- */
.dsh-leg {
    display: flex;
    gap: 14px;
    margin-left: auto;
    font-size: 12px;
    color: var(--dsh-ink-2);
}

.dsh-leg i {
    display: inline-block;
    width: 8px;
    height: 8px;
    margin-right: 6px;
    border-radius: 2px;
}

.dsh-leg .l-feito,
.dsh .c-feito {
    background: var(--dsh-fill);
}

.dsh-leg .l-aberto,
.dsh .c-aberto {
    background: var(--dsh-aberto);
}

.dsh-leg .l-atraso,
.dsh .c-atraso {
    background: var(--dsh-red);
}

.dsh-cols {
    display: grid;
    grid-template-columns: repeat(var(--dsh-n, 31), minmax(0, 1fr));
    align-items: end;
    gap: 4px;
    height: 150px;
}

.dsh-col {
    position: relative;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
    padding-bottom: 22px;
}

/* Fim de semana: faixa quase invisivel, so para o olho achar as semanas. */
.dsh-col.fds::before {
    content: "";
    position: absolute;
    top: 0;
    right: -2px;
    bottom: 22px;
    left: -2px;
    border-radius: 6px;
    background: color-mix(in srgb, var(--color-text-01) 3%, transparent);
}

.dsh-col.hoje::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 22px;
    left: 50%;
    border-left: 1px dashed var(--dsh-ink-3);
}

.dsh-col-bar {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    width: 100%;
    max-width: 18px;
    min-height: 3px;
    margin: 0 auto;
    overflow: hidden;
    border-radius: 4px;
    transition: height .5s var(--dsh-ease), opacity .15s ease;
}

.dsh-col-bar i {
    display: block;
    flex-basis: 0;
    min-height: 3px;
}

.dsh-col.vazio .dsh-col-bar {
    background: var(--dsh-trk);
}

.dsh-cols:hover .dsh-col.dash-drill .dsh-col-bar {
    opacity: .45;
}

.dsh-cols .dsh-col.dash-drill:hover .dsh-col-bar {
    opacity: 1;
}

.dsh-col-rot {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    font-size: 10.5px;
    line-height: 17px;
    text-align: center;
    color: var(--dsh-ink-3);
}

.dsh-col.hoje .dsh-col-rot {
    left: 50%;
    right: auto;
    min-width: 20px;
    padding: 0 4px;
    transform: translateX(-50%);
    border-radius: 6px;
    background: var(--dsh-fill);
    color: var(--dsh-fill-txt);
    font-weight: 600;
}

/* --- 4. Fluxo (abas) ----------------------------------------------------- */
.dsh-tabs,
.dsh-segs {
    display: flex;
    flex-wrap: wrap;
    gap: 2px;
    margin-left: auto;
    padding: 3px;
    border-radius: 11px;
    background: var(--color-bg-01);
}

.dsh-tab,
.dsh-seg {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    height: 28px;
    padding: 0 11px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    font: inherit;
    font-size: 12.5px;
    font-weight: 550;
    color: var(--dsh-ink-2);
    cursor: pointer;
    transition: background-color .18s ease, color .18s ease;
}

.dsh-tab i,
.dsh-seg i {
    font-size: 11.5px;
    font-style: normal;
    font-weight: 500;
    color: var(--dsh-ink-3);
}

.dsh-tab:hover,
.dsh-seg:hover {
    color: var(--dsh-ink);
}

.dsh-tab.on,
.dsh-seg.on {
    background: var(--dsh-surface);
    color: var(--dsh-ink);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 0 0 1px var(--dsh-line);
}

.dsh-pane {
    display: none;
}

.dsh-pane.on {
    display: block;
}

.dsh-fase-lin,
.dsh-row {
    display: grid;
    align-items: center;
    gap: 12px;
    margin: 0 -8px;
    padding: 9px 8px;
    border-radius: 10px;
    font-size: 13.5px;
    transition: background-color .18s ease;
}

.dsh-fase-lin {
    grid-template-columns: 14px minmax(0, 170px) minmax(0, 1fr) 30px 36px;
    cursor: pointer;
}

.dsh-row {
    grid-template-columns: minmax(0, 190px) minmax(0, 1fr) 30px;
}

.dsh-fase-lin:hover,
.dsh-fase-lin:focus-visible,
.dsh-row.dash-drill:hover {
    background: var(--dsh-hover);
    outline: none;
}

.dsh-fase-seta {
    width: 14px;
    height: 14px;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .4;
    transition: transform .2s var(--dsh-ease);
}

.dsh-fase.aberta .dsh-fase-seta {
    transform: rotate(90deg);
}

.dsh-fase-nome,
.dsh-row-nome {
    display: flex;
    align-items: center;
    gap: 8px;
    min-width: 0;
    overflow: hidden;
    font-weight: 500;
    white-space: nowrap;
    text-overflow: ellipsis;
    color: var(--dsh-ink);
}

.dsh-fase-nome>i {
    flex: 0 0 auto;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.dsh-gargalo {
    flex: 0 0 auto;
    padding: 2px 7px;
    border-radius: 100px;
    background: color-mix(in srgb, var(--dsh-red) 12%, transparent);
    font-size: 10.5px;
    font-style: normal;
    font-weight: 600;
    letter-spacing: .02em;
    color: var(--dsh-red);
}

.dsh-trk {
    display: block;
    height: 6px;
    overflow: hidden;
    border-radius: 100px;
    background: var(--dsh-trk);
}

.dsh-trk>span {
    display: block;
    height: 100%;
    border-radius: 100px;
    background: var(--dsh-fill);
    transition: width .5s var(--dsh-ease);
}

.dsh-fase-n,
.dsh-row>b {
    font-weight: 600;
    text-align: right;
}

.dsh-fase-pct {
    font-size: 12px;
    text-align: right;
    color: var(--dsh-ink-3);
}

.dsh-fase.zero .dsh-fase-nome,
.dsh-fase.zero .dsh-fase-n {
    color: var(--dsh-ink-3);
}

.dsh-fase-sts {
    display: none;
    padding: 0 0 8px 26px;
}

.dsh-fase.aberta .dsh-fase-sts {
    display: block;
}

.dsh-st {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 0 -8px;
    padding: 6px 8px;
    border-radius: 8px;
    font-size: 12.5px;
    color: var(--dsh-ink-2);
}

.dsh-st>i {
    flex: 0 0 auto;
    width: 6px;
    height: 6px;
    border-radius: 50%;
}

.dsh-st>span {
    flex: 1 1 auto;
    min-width: 0;
}

.dsh-st>b {
    font-weight: 600;
    color: var(--dsh-ink);
}

.dsh-st.zero {
    opacity: .5;
}

.dsh-st.dash-drill:hover {
    background: var(--dsh-hover);
}

/* --- 4b. Pessoas --------------------------------------------------------- */
.dsh-pes-lst {
    display: flex;
    flex-direction: column;
}

.dsh-pes {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) minmax(60px, 34%) 26px;
    align-items: center;
    gap: 12px;
    margin: 0 -8px;
    padding: 7px 8px;
    border-radius: 11px;
    transition: background-color .18s ease;
}

.dsh-pes.dash-drill:hover {
    background: var(--dsh-hover);
}

.dsh-av {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: var(--color-bg-01);
    background-position: center;
    background-size: cover;
}

.dsh-av-ini {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    font-weight: 600;
    color: var(--dsh-ink-2);
}

.dsh-pes-id {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.dsh-pes-nome {
    overflow: hidden;
    font-size: 13.5px;
    font-weight: 500;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.dsh-pes-sub {
    font-size: 12px;
    color: var(--dsh-ink-2);
}

.dsh-pes-sub em {
    font-style: normal;
    color: var(--dsh-red);
}

.dsh-pes-bar {
    display: block;
    height: 6px;
    overflow: hidden;
    border-radius: 100px;
    background: var(--dsh-trk);
}

.dsh-pes-bar>span {
    display: flex;
    gap: 2px;
    height: 100%;
}

.dsh-pes-bar>span>i {
    display: block;
    flex-basis: 0;
    height: 100%;
}

.dsh-pes>b {
    font-weight: 600;
    text-align: right;
}

.dsh-mais {
    margin: 8px 0 0;
    padding: 6px 0;
    border: 0;
    background: transparent;
    font: inherit;
    font-size: 12.5px;
    font-weight: 550;
    color: var(--dsh-ink-2);
    cursor: pointer;
}

.dsh-mais:hover {
    color: var(--dsh-ink);
}

/* --- 5. Marcas (tabela) -------------------------------------------------- */
.dsh-mk {
    display: grid;
    grid-template-columns: minmax(170px, 1.25fr) minmax(220px, 2fr) 104px 84px 136px;
    align-items: center;
    gap: 20px;
    margin: 0 -22px;
    padding: 12px 22px;
    border-top: 1px solid var(--dsh-line);
    transition: background-color .18s ease;
}

.dsh-mk.dash-drill:hover {
    background: var(--dsh-hover);
}

.dsh-mk.oculto {
    display: none;
}

.dsh-mk-cab {
    padding-top: 0;
    padding-bottom: 9px;
    border-top: 0;
    font-size: 11.5px;
    font-weight: 550;
    color: var(--dsh-ink-3);
}

.dsh-mk-marca {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}

.dsh .dsh-mk-av {
    display: flex;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 10px;
    background-color: var(--color-bg-01);
    background-position: center;
    background-size: cover;
    font-size: 11px;
    font-weight: 600;
    color: var(--dsh-ink-2);
}

.dsh-mk-nome {
    overflow: hidden;
    font-size: 14px;
    font-weight: 550;
    letter-spacing: -.01em;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.dsh-mk-avanco {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 44px;
    align-items: center;
    gap: 6px 12px;
}

.dsh-mk-trk {
    position: relative;
    height: 6px;
    border-radius: 100px;
    background: var(--dsh-trk);
}

.dsh-mk-fill {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    border-radius: 100px;
    background: var(--dsh-fill);
    transition: width .5s var(--dsh-ease);
}

.dsh-mk-tick {
    position: absolute;
    top: -4px;
    bottom: -4px;
    width: 2px;
    margin-left: -1px;
    border-radius: 2px;
    background: var(--dsh-ink);
    box-shadow: 0 0 0 2px var(--dsh-surface);
}

.dsh-mk.dash-drill:hover .dsh-mk-tick {
    box-shadow: 0 0 0 2px color-mix(in srgb, var(--dsh-surface) 96%, var(--dsh-ink));
}

.dsh-mk-avanco>b {
    font-size: 14px;
    font-weight: 600;
    text-align: right;
}

.dsh-mk-avanco>b i {
    font-size: 11px;
    font-style: normal;
    font-weight: 500;
    color: var(--dsh-ink-3);
}

.dsh-mk-faixa {
    display: flex;
    gap: 2px;
    height: 3px;
}

.dsh-mk-faixa>i {
    display: block;
    flex-basis: 0;
    min-width: 3px;
    height: 100%;
    border-radius: 100px;
    opacity: .8;
}

.dsh-mk-faixa>i.falta {
    background: var(--dsh-trk);
    opacity: 1;
}

.dsh-mk-qtd {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.dsh-mk-qtd b {
    font-size: 14px;
    font-weight: 600;
}

.dsh-mk-qtd b i {
    font-style: normal;
    font-weight: 500;
    color: var(--dsh-ink-3);
}

.dsh-mk-qtd span {
    font-size: 12px;
    color: var(--dsh-ink-2);
}

.dsh-mk-atr-n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 28px;
    height: 24px;
    padding: 0 9px;
    border-radius: 100px;
    background: color-mix(in srgb, var(--dsh-red) 12%, transparent);
    font-size: 12.5px;
    font-weight: 600;
    color: var(--dsh-red);
    transition: background-color .18s ease;
}

.dsh-mk-atr-n:hover {
    background: color-mix(in srgb, var(--dsh-red) 22%, transparent);
}

.dsh-mk-atr-zero {
    color: var(--dsh-ink-3);
}

/* Cor de etapa/status e escolhida pelo usuario: uma quase branca some no
   tema claro, uma quase preta some no escuro. O contorno de 1px na tinta
   do tema garante que toda fatia/ponto apareca, seja qual for a cor. */
.dsh-fase-lin .dsh-trk>span,
.dsh-fase-nome>i,
.dsh-st>i,
.dsh-mk-faixa>i:not(.falta) {
    box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--color-text-01) 12%, transparent);
}

/* ============================================================================
   VARIACAO POR REDE (.vr-*) - window.VariacoesRede no footer.php
   ----------------------------------------------------------------------------
   Dois controles INDEPENDENTES: o da midia no topo da Midia de publicacao, o
   da legenda no rotulo da Legenda (a rede pode ter a midia igual e a legenda
   diferente). Cada um e um GATILHO compacto que nunca quebra a linha:
     - recolhido (nenhuma rede com versao propria): chip "Por rede" com os
       icones empilhados, invisivel ate o hover do bloco;
     - na Principal com versao propria em alguma rede: icones de quem usa a
       principal + seta;
     - numa rede: o icone dela, destacado, + seta.
   Clicar abre o menu .vr-menu (Principal e cada rede, por extenso). Na versao
   de uma rede: heranca esmaecida e "Usar a principal". Monocromatico.
   ========================================================================== */
.item-post .vr-sel:empty {
    display: none;
}

.item-post .vr-sel {
    display: inline-flex;
    vertical-align: middle;
}

/* Topo da midia: o gatilho fica SOBRE o canto direito da linha das abas -
   nao ocupa linha, nao empurra a midia, em qualquer largura. */
.item-post .tabs-tipos-arquivos:has(> .vr-sel) {
    position: relative;
}

.item-post .tabs-tipos-arquivos>.vr-sel {
    position: absolute;
    top: 50%;
    right: 0;
    margin: 0;
    transform: translateY(-50%);
}

.item-post .tabs-tipos-arquivos .bt-it {
    white-space: nowrap;
}

/* Rotulo da legenda: o gatilho logo depois do nome do campo. */
.item-post .lbel .vr-sel {
    margin: -5px 0 -5px 8px;
}

/* --- gatilho ------------------------------------------------------------- */
.item-post .vr-gatilho {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 3px;
    height: 24px;
    margin: 0;
    padding: 0 5px 0 4px;
    border: 0;
    border-radius: 999px;
    background: var(--color-hover-01);
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12px;
    font-weight: 550;
    letter-spacing: -.01em;
    line-height: 1;
    cursor: pointer;
    transition: opacity .2s cubic-bezier(.16, 1, .3, 1), transform .2s cubic-bezier(.16, 1, .3, 1), background-color .15s ease, box-shadow .15s ease;
}

.item-post .vr-gatilho:hover,
.item-post .vr-gatilho.vr-aberto {
    box-shadow: 0 0 0 1px var(--color-border);
}

.item-post .vr-gatilho:focus-visible {
    outline: none;
    box-shadow: 0 0 0 1.5px var(--color-btn-bg-01);
}

/* Numa rede: o icone dela "aceso" (fundo e contorno), como item ativo. */
.item-post .vr-gatilho-rede {
    padding-left: 6px;
    background: var(--color-bg);
    box-shadow: 0 0 0 1px var(--color-border), 0 1px 2px rgba(16, 24, 40, .1);
}

.item-post .vr-gatilho .vr-ico {
    display: inline-flex;
}

.item-post .vr-gatilho .vr-ico svg {
    width: 13px;
    height: 13px;
    fill: currentColor;
}

.item-post .vr-gatilho-txt {
    padding: 0 2px 0 4px;
}

.item-post .vr-seta {
    width: 12px;
    height: 12px;
    opacity: .55;
}

/* Principal com versao propria em alguma rede: ponto no canto do gatilho. */
.item-post .vr-gatilho .vr-pt {
    position: absolute;
    top: -1px;
    right: -1px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--color-text-01);
    box-shadow: 0 0 0 1.5px var(--color-bg);
}

/* Recolhido: invisivel ate o hover/foco do bloco - nao polui quem publica
   igual em todas. No topo da midia so os icones; o texto abre no hover dele. */
.item-post .vr-abrir {
    gap: 6px;
    padding-right: 9px;
    opacity: 0;
    pointer-events: none;
    transform: translateX(4px);
}

.item-post .midias-group-h:hover .vr-abrir,
.item-post .campo-style-02:hover .vr-abrir,
.item-post .campo-style-02:focus-within .vr-abrir,
.item-post .vr-abrir:focus-visible,
.item-post .vr-abrir.vr-aberto {
    opacity: .62;
    pointer-events: auto;
    transform: none;
}

.item-post .vr-abrir:hover,
.item-post .vr-abrir:focus-visible,
.item-post .vr-abrir.vr-aberto {
    opacity: 1 !important;
}

/* No topo da midia so os icones: o "Por rede" fica na dica (o texto abrindo
   no hover cobria a aba Anexos). A linha reserva a largura do gatilho
   (reservarNasAbas no footer.php). */
.item-post .tabs-tipos-arquivos .vr-abrir {
    padding-right: 4px;
}

.item-post .tabs-tipos-arquivos .vr-abrir-txt {
    display: none;
}

.item-post .vr-pilha {
    display: inline-flex;
    align-items: center;
}

.item-post .vr-pilha-it {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    margin-left: -5px;
    border-radius: 50%;
    background: var(--color-bg);
    box-shadow: 0 0 0 1.5px var(--color-hover-01);
}

.item-post .vr-pilha-it:first-child {
    margin-left: 0;
}

.item-post .vr-pilha-mais {
    font-size: 9.5px;
    font-weight: 650;
    letter-spacing: -.02em;
}

.item-post .vr-pilha-it svg {
    width: 10px;
    height: 10px;
    fill: currentColor;
}

/* --- menu do gatilho (vidro pelo bloco 1 da lista de flutuantes) --------- */
.vr-menu {
    position: fixed;
    z-index: 100001;
    width: 296px;
    padding: 6px;
    border-radius: 16px;
    color: var(--color-text-01);
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    font-size: 13px;
    line-height: 1.35;
    text-align: left;
    opacity: 0;
    transform: translateY(-5px) scale(.985);
    transform-origin: top center;
    transition: opacity .16s cubic-bezier(.16, 1, .3, 1), transform .16s cubic-bezier(.16, 1, .3, 1);
}

.vr-menu.vr-aberto {
    opacity: 1;
    transform: none;
}

.vr-menu.vr-acima {
    transform-origin: bottom center;
}

.vr-menu-hd {
    padding: 8px 10px 6px;
    font-size: 12px;
    font-weight: 500;
    opacity: .55;
}

.vr-menu-sep {
    height: 1px;
    margin: 4px 8px;
    background: var(--color-border);
}

.vr-menu-it {
    display: flex;
    align-items: center;
    gap: 11px;
    width: 100%;
    margin: 0;
    padding: 7px 10px;
    border: 0;
    border-radius: 11px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    text-align: left;
    cursor: pointer;
    transition: background-color .15s ease;
}

.vr-menu-it:hover,
.vr-menu-it:focus-visible {
    outline: none;
    background: var(--color-hover-01);
}

.vr-menu-it.vr-off {
    opacity: .55;
}

.vr-menu-ico {
    position: relative;
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background: var(--color-hover-01);
}

.vr-menu-ico svg {
    width: 14px;
    height: 14px;
}

.vr-menu-it:not(.vr-menu-restaurar) .vr-menu-ico svg {
    fill: currentColor;
}

.vr-menu-it:first-of-type .vr-menu-ico svg,
.vr-menu-restaurar .vr-menu-ico svg {
    fill: none;
}

.vr-menu-it.atv .vr-menu-ico {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.vr-menu-ico .vr-pt {
    position: absolute;
    top: 0;
    right: 0;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-text-01);
    box-shadow: 0 0 0 2px var(--color-bg);
}

.vr-menu-tx {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.vr-menu-tx b {
    font-size: 13px;
    font-weight: 600;
}

.vr-menu-tx small {
    font-size: 11.5px;
    opacity: .6;
}

.vr-menu .vr-ok {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    opacity: 0;
}

.vr-menu-it.atv .vr-ok {
    opacity: 1;
}

/* Icone da rede antes do rotulo da versao ("Midia do LinkedIn"). */
.item-post .vr-rot-ico {
    display: inline-flex;
    vertical-align: -2px;
    margin-right: 6px;
}

.item-post .vr-rot-ico svg {
    width: 14px;
    height: 14px;
    fill: currentColor;
}

/* "Usar a midia/legenda principal" - acao secundaria, discreta. */
.item-post .vr-restaurar {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 0;
    padding: 4px 7px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    font-family: inherit;
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.3;
    opacity: .6;
    cursor: pointer;
    transition: opacity .15s ease, background-color .15s ease;
}

.item-post .vr-restaurar svg {
    width: 13px;
    height: 13px;
}

.item-post .vr-restaurar:hover,
.item-post .vr-restaurar:focus-visible {
    outline: none;
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .arquivos-it.midia>.vr-restaurar {
    display: flex;
    clear: both;
    margin: 10px 0 0 -7px;
}

/* A coluna da rede tambem e .col-legenda (herda o desenho do campo, com as
   regras de 900/750px); a principal some na versao de uma rede. */
.item-post .col-legenda.vr-oculta {
    display: none !important;
}

/* Legenda herdada: o texto da principal, esmaecido - editar ja personaliza. */
.item-post .col-legenda-rede.vr-herdada .cmp {
    opacity: .5;
    transition: opacity .15s ease;
}

.item-post .col-legenda-rede.vr-herdada .cmp:focus {
    opacity: .75;
}

/* --- PDF (documento) na area da midia: so a peca + selo ------------------ */
.item-post .vr-doc-midia {
    position: relative;
}

.item-post .vr-doc-pag {
    position: absolute;
    z-index: 2;
    left: 10px;
    top: 10px;
    padding: 3px 7px;
    border-radius: 7px;
    background: rgba(0, 0, 0, .58);
    color: #fff;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: .01em;
    pointer-events: none;
}

.item-post .vr-doc-pag.vr-over {
    background: #e83a3a;
}

/* Rede sem midia propria: a peca principal esmaecida + selo no canto - mostra
   o que a rede publica hoje. Clicar = usar outra midia so nela. */
.item-post .vr-heranca {
    position: relative;
    overflow: hidden;
    margin-bottom: 10px;
    border-radius: 14px;
    background: var(--color-hover-01);
    cursor: pointer;
}

.item-post .vr-heranca img {
    display: block;
    width: 100%;
    max-height: 420px;
    object-fit: cover;
    opacity: .42;
    transition: opacity .2s ease;
}

.item-post .vr-heranca:hover img,
.item-post .vr-heranca:focus-visible img {
    opacity: .62;
}

.item-post .vr-heranca:focus-visible {
    outline: none;
    box-shadow: 0 0 0 1.5px var(--color-btn-bg-01);
}

.item-post .vr-heranca-off img {
    filter: grayscale(1);
    opacity: .3;
}

.item-post .vr-heranca-selo {
    position: absolute;
    left: 10px;
    top: 10px;
    padding: 4px 9px;
    border-radius: 8px;
    background: var(--color-bg);
    box-shadow: 0 0 0 1px var(--color-border), 0 4px 14px -6px rgba(16, 24, 40, .3);
    color: var(--color-text-01);
    font-size: 12px;
    font-weight: 550;
    line-height: 1.3;
    white-space: nowrap;
    pointer-events: none;
}

/* Aviso do PDF na principal: so o LinkedIn publica documento. Monocromatico. */
.item-post .vr-aviso {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 10px;
    padding: 8px 11px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: var(--color-hover-01);
    color: var(--color-text-01);
    font-size: 12.5px;
    line-height: 1.45;
}

.item-post .vr-aviso svg {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin-top: 1px;
}

.item-post .vr-aviso b {
    font-weight: 600;
}

.item-post .vr-aviso em {
    font-style: normal;
    opacity: .65;
}

/* Recado de uma acao automatica (o PDF que foi para o LinkedIn). Some sozinho. */
.item-post .vr-nota {
    margin-bottom: 10px;
    padding: 8px 11px;
    border-radius: 10px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 12.5px;
    font-weight: 500;
    line-height: 1.4;
    max-height: 120px;
    overflow: hidden;
    animation: vr-nota 9s cubic-bezier(.16, 1, .3, 1) forwards;
}

@keyframes vr-nota {
    0% {
        opacity: 0;
        transform: translateY(-4px);
    }

    4% {
        opacity: 1;
        transform: none;
    }

    88% {
        opacity: 1;
        max-height: 120px;
    }

    100% {
        opacity: 0;
        max-height: 0;
        padding-top: 0;
        padding-bottom: 0;
        margin-bottom: 0;
    }
}

/* Chip "Gerar PDF do carrossel": mesmo desenho do "Gerar com IA". */
.item-post .vr-chip {
    float: left;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 6px 3px 0 0;
    padding: 4px 9px 4px 7px;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 12.5px;
    cursor: pointer;
    opacity: .82;
    transition: background-color .15s ease, opacity .15s ease;
}

.item-post .vr-chip svg {
    width: 14px;
    height: 14px;
}

.item-post .vr-chip:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .vr-chip.vr-gerando {
    cursor: progress;
    opacity: .6;
}

/* DATAS DO TRILHO (publicacao e entrega): o campo tem a largura do TEXTO, e
   a etiqueta ("em 4 dias", "atrasada 2 dias") fica colada nele. Havia uma
   largura fixa herdada do tema e a etiqueta flutuava a meia linha da data.
   A largura em px vem de ppAjustarLarguraData (footer.php), que mede o
   texto com a fonte do campo. */
.item-post .pp-row-data .pp-val .campo-style-02 input.form-control,
.item-post .pp-row-entrega .pp-val .campo-style-02 input.form-control {
    min-width: 0 !important;
}

.item-post .pp-row-data .pp-val .ipt2-col,
.item-post .pp-row-entrega .pp-val .ipt2-col {
    flex: 0 0 auto;
}


/* =========================================================================
   SELETOR DE STATUS v2 (.dropdown-status)
   -------------------------------------------------------------------------
   Menu DENSO: status sempre em CAIXA ALTA (regra do produto), linhas de
   26px para caber o fluxo inteiro, o atual realcado com peso e fundo, e o
   segmento como rotulo pequeno e apagado.

   SEM ROLAGEM NO DESKTOP: a lista mostra o fluxo inteiro (pedido do
   usuario - rolar para achar uma etapa esconde o fluxo). So no celular
   (media.css, <= 900px) a lista ganha teto e rola, e ai entram os VEUS:
   `.ds-corpo` (relativo) segura a `.ds-lista` e dois veus, degrade +
   desfoque em cima (::before) e embaixo (::after), ligados por `.ds-cima`
   / `.ds-baixo` (window.dsFadeSync, footer.php). Sem rolagem as classes
   nunca ligam, entao a regra dos veus pode morar aqui.

   RODAPE FLUTUANTE. "Gerenciar status" (so dono/administrador) nao ocupa
   uma faixa propria: flutua sobre o fim da lista, no proprio veu de baixo,
   e a lista ganha folga (padding-bottom) para o ultimo item subir acima
   dele. Com rodape o ::after sai - o rodape E o veu de baixo.

   ! Os veus usam backdrop-filter e por isso NAO animam opacity (regra do
   vidro, ver DEVELOPMENT_RULES 14): ligam e desligam por display.
   ! Dentro do popup o seletor e filho de `.item-post .status`, que pinta
   cor, caixa alta e fill:#000 em todo svg (0,2,1) - cor e fill sao
   redeclarados aqui com especificidade acima disso.
   ========================================================================= */
:root {
    --ds-veu: rgba(250, 250, 251, .78);
}

.dropdown-status {
    padding: 4px;
    border-radius: 13px;
    min-width: 210px;
    max-width: 290px;
    text-transform: none;
    font-size: 12px;
    color: var(--color-text-01);
}

.item-post .status .dropdown-status {
    top: calc(100% + 6px);
    left: 0;
    z-index: 30;
}

.dropdown-status .ds-corpo {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
}

.dropdown-status .ds-lista {
    max-height: none;
    overflow: visible;
    overscroll-behavior: contain;
    scrollbar-width: none;
}

.dropdown-status .ds-lista::-webkit-scrollbar {
    display: none;
}

.dropdown-status.ds-com-gerir .ds-lista {
    padding-bottom: 32px;
}

/* --- os veus --- */
.dropdown-status .ds-corpo::before,
.dropdown-status .ds-corpo::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    height: 26px;
    z-index: 2;
    display: none;
    pointer-events: none;
    -webkit-backdrop-filter: blur(5px);
    backdrop-filter: blur(5px);
}

.dropdown-status .ds-corpo::before {
    top: 0;
    background: linear-gradient(to bottom, var(--ds-veu) 20%, transparent);
    -webkit-mask-image: linear-gradient(to bottom, #000 35%, transparent);
    mask-image: linear-gradient(to bottom, #000 35%, transparent);
}

.dropdown-status .ds-corpo::after {
    bottom: 0;
    background: linear-gradient(to top, var(--ds-veu) 20%, transparent);
    -webkit-mask-image: linear-gradient(to top, #000 35%, transparent);
    mask-image: linear-gradient(to top, #000 35%, transparent);
}

.dropdown-status.ds-cima .ds-corpo::before,
.dropdown-status.ds-baixo:not(.ds-com-gerir) .ds-corpo::after {
    display: block;
}

/* --- segmento --- */
.dropdown-status .ds-lista .ds-seg {
    padding: 6px 8px 2px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .08em;
    color: var(--color-text-01);
    opacity: .38;
}

.dropdown-status .ds-lista .ds-seg:first-child {
    padding-top: 3px;
}

.dropdown-status .ds-lista .ds-seg:not(:first-child) {
    margin-top: 2px;
}

/* --- item --- */
.dropdown-status .ds-lista .item-status {
    display: flex;
    align-items: center;
    gap: 8px;
    width: auto;
    min-width: 0;
    min-height: 26px;
    margin: 0;
    padding: 3px 8px;
    border-radius: 7px;
    color: var(--color-text-01);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .01em;
    cursor: pointer;
    transition: background-color .12s ease;
}

.dropdown-status .ds-lista .item-status:hover {
    background: var(--glass-realce, var(--color-hover-01));
}

.dropdown-status .ds-lista .item-status:has(.ck) {
    font-weight: 700;
    background: var(--glass-realce, var(--color-hover-01));
}

.dropdown-status .ds-lista .item-status .st-icon {
    float: none;
    flex: 0 0 auto;
    display: flex;
}

.dropdown-status .ds-lista .item-status .st-txt {
    float: none;
    flex: 1 1 auto;
    min-width: 0;
    width: auto;
    max-width: none;
    height: auto;
    padding: 0;
    font-size: 11.5px;
    line-height: 15px;
    text-transform: uppercase;
}

.dropdown-status .ds-lista .item-status .ck {
    float: none !important;
    flex: 0 0 auto;
    width: 13px !important;
    height: 13px !important;
    margin-left: auto;
    fill: var(--color-text-01);
}

/* --- rodape flutuante --- */
.dropdown-status .ds-rodape {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 3;
    padding: 10px 0 0;
    background: linear-gradient(to top, var(--ds-veu) 62%, transparent);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    -webkit-mask-image: linear-gradient(to top, #000 calc(100% - 10px), transparent);
    mask-image: linear-gradient(to top, #000 calc(100% - 10px), transparent);
}

.dropdown-status .ds-rodape .ds-gerir {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    height: 24px;
    padding: 0 8px;
    border: 0;
    border-radius: 7px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 11.5px;
    font-weight: 500;
    text-align: left;
    text-transform: none;
    cursor: pointer;
    opacity: .6;
    transition: background-color .12s ease, opacity .12s ease;
}

.dropdown-status .ds-rodape .ds-gerir svg {
    float: none;
    flex: 0 0 auto;
    width: 13px;
    height: 13px;
    fill: none;
    stroke: currentColor;
}

.dropdown-status .ds-rodape .ds-gerir span {
    flex: 1 1 auto;
}

.dropdown-status .ds-rodape .ds-gerir .ds-gerir-seta {
    width: 11px;
    height: 11px;
    opacity: .5;
    transition: transform .2s cubic-bezier(.16, 1, .3, 1), opacity .12s ease;
}

.dropdown-status .ds-rodape .ds-gerir:hover {
    opacity: 1;
    background: var(--glass-realce, var(--color-hover-01));
}

.dropdown-status .ds-rodape .ds-gerir:hover .ds-gerir-seta {
    opacity: .9;
    transform: translate(1px, -1px);
}

.dropdown-status .ds-rodape .ds-gerir:focus {
    outline: none;
}

.dropdown-status .ds-rodape .ds-gerir:focus-visible {
    opacity: 1;
    box-shadow: inset 0 0 0 1.5px var(--color-btn-bg-01);
}

/* A acao em lote rolava a CAIXA inteira (max-height 340); sem rolagem, como
   os outros seletores. */
.ct-bulk-pop.is-status .dropdown-status {
    max-height: none;
    overflow: visible;
}

/* A PASTILHA DE STATUS NO TRILHO DO POPUP: caixa alta (como em todo o
   produto), sem o brilho em gradiente (.selecionado:after) e com a seta que
   gira quando o seletor esta aberto. */
.item-post .pp-row-status .status {
    border-radius: 10px;
    text-transform: uppercase;
    transition: box-shadow .15s ease;
}

.item-post .pp-row-status .status:hover {
    box-shadow: inset 0 0 0 1px color-mix(in srgb, currentColor 24%, transparent);
}

.item-post .pp-row-status .status .selecionado {
    height: 30px;
    padding: 0 7px 0 9px;
    gap: 7px;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .01em;
}

.item-post .pp-row-status .status .selecionado::after {
    display: none;
}

.item-post .pp-row-status .status .selecionado .st-icon {
    margin: 0;
}

.item-post .pp-row-status .status .selecionado>svg {
    width: 14px;
    height: 14px;
    margin: 0;
    opacity: .75;
    transition: transform .2s cubic-bezier(.16, 1, .3, 1);
}

/* Alvo do :has() e sempre CLASSE: com "> svg" (tag) cada no inserido em qualquer
   lugar da pagina custava ~2,5 ms de recalculo de estilo (medido no editor de video). */
.item-post .pp-row-status .status:has(.dropdown-status) .selecionado>.st-seta {
    transform: rotate(180deg);
}

/* =========================================================================
   BOTOES DO FLUXO (.fx-*) - Avancar / Aprovar / Agendar / Pedir ajuste
   -------------------------------------------------------------------------
   Primario = SUPERFICIE ELEVADA, nao tinta cheia: fundo com um degrade
   quase imperceptivel (superficie -> 4% de tinta), fio de borda, brilho de
   1px no topo (--fx-brilho) e sombra curta. Le como uma tecla fisica sem
   gritar mais que a pastilha de status - o status e a informacao, o botao
   e o atalho. A tinta aparece em UM ponto so: o disco de 18px com a seta
   do Avancar, que anda no hover. Os outros primarios (Aprovar, Agendar,
   Finalizar) levam o icone a esquerda, sem disco.
   Secundario = so contorno. Nada de verde/amarelo: a cor no trilho e do
   STATUS, nao da acao.

   ! Especificidade: `.item-post .pp-row-status .group-actions-status
   .btn:hover` e (0,5,0) e pinta o fundo de cinza - os hovers daqui sao
   (0,6,0).
   ========================================================================= */
:root {
    --fx-brilho: rgba(255, 255, 255, .9);
    --fx-sombra: rgba(16, 24, 40, .07);
}

.item-post .group-actions-status .btn.fx-btn {
    float: none;
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 30px;
    margin: 0;
    padding: 0 12px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-family: inherit;
    font-size: 13px;
    font-weight: 550;
    letter-spacing: -.01em;
    line-height: 1;
    white-space: nowrap;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, box-shadow .24s cubic-bezier(.16, 1, .3, 1), transform .24s cubic-bezier(.16, 1, .3, 1);
}

.item-post .group-actions-status .btn.fx-btn.fx-prim {
    background: linear-gradient(180deg, var(--color-bg) 0%, color-mix(in srgb, var(--color-text-01) 4%, var(--color-bg)) 100%);
    color: var(--color-text-01);
    border-color: color-mix(in srgb, var(--color-text-01) 12%, transparent);
    box-shadow: inset 0 1px 0 var(--fx-brilho), 0 1px 2px var(--fx-sombra);
}

.item-post .group-actions-status .btn.fx-btn.fx-prim:hover {
    background: linear-gradient(180deg, var(--color-bg) 0%, color-mix(in srgb, var(--color-text-01) 6%, var(--color-bg)) 100%);
    color: var(--color-text-01);
    border-color: color-mix(in srgb, var(--color-text-01) 20%, transparent);
    box-shadow: inset 0 1px 0 var(--fx-brilho), 0 6px 14px -8px rgba(16, 24, 40, .28), 0 1px 2px var(--fx-sombra);
}

/* O Avancar termina no disco: menos respiro a direita, senao o disco boia. */
.item-post .group-actions-status .btn.fx-btn.btn-fluxo-avancar {
    padding: 0 5px 0 12px;
    gap: 8px;
}

.item-post .group-actions-status .btn.fx-btn.fx-sec {
    background: transparent;
    color: var(--color-text-01);
    border-color: var(--color-border);
    box-shadow: none;
}

.item-post .group-actions-status .btn.fx-btn.fx-sec:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

.item-post .group-actions-status .btn.fx-btn:active {
    transform: scale(.98);
}

.item-post .group-actions-status .btn.fx-btn:focus {
    outline: none;
}

.item-post .group-actions-status .btn.fx-btn:focus-visible {
    box-shadow: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-btn-bg-01);
}

.item-post .group-actions-status .btn.fx-btn .fx-ico {
    float: none;
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
    margin: 0;
    fill: none;
    stroke: currentColor;
}

.item-post .group-actions-status .btn.fx-btn .fx-dest {
    max-width: 160px;
    overflow: hidden;
    text-overflow: ellipsis;
    padding-left: 8px;
    border-left: 1px solid color-mix(in srgb, currentColor 18%, transparent);
    font-weight: 500;
    opacity: .62;
}

/* O disco da seta: o unico ponto de tinta do botao. */
.item-post .group-actions-status .btn.fx-btn .fx-seta {
    box-sizing: border-box;
    width: 20px;
    height: 20px;
    padding: 4.5px;
    margin: 0;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    stroke: var(--color-btn-text-01);
    stroke-width: 2.4;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16);
    transition: transform .24s cubic-bezier(.16, 1, .3, 1);
}

.item-post .group-actions-status .btn.fx-btn:hover .fx-seta {
    transform: translateX(2px);
}

@media (prefers-reduced-motion: reduce) {

    .item-post .group-actions-status .btn.fx-btn,
    .item-post .group-actions-status .btn.fx-btn .fx-seta {
        transition: none;
    }

    .item-post .group-actions-status .btn.fx-btn:hover .fx-seta {
        transform: none;
    }
}

/* =========================================================================
   PREVIA NAS REDES v2 (#pr-modal)
   -------------------------------------------------------------------------
   Mesma janela, outra hierarquia:
   - cabecalho com o avatar da marca: a pergunta e "como ESTA marca aparece",
     e o rosto dela responde antes do texto;
   - redes num segmented control (trilho + item elevado), o padrao do kit
     para alternar vistas - as pilulas pretas soltas pesavam mais que a peca;
   - a mesa escura vira uma tela EMBUTIDA (margem + raio), nao uma faixa de
     ponta a ponta que cortava a janela em tres;
   - o aviso ganha icone e deixa de ser uma caixa cinza de texto solto.
   O JS e o mesmo (PreviewRedes.montar); so o cabecalho e as abas mudaram
   de marcacao.
   ========================================================================= */
:root {
    --pr-aba-atv: #fff;
}

#pr-modal .pr-box {
    width: min(560px, 100%);
    border-radius: 24px;
    box-shadow:
        0 50px 100px -32px rgba(0, 0, 0, .5),
        0 18px 40px -22px rgba(0, 0, 0, .3),
        0 0 0 1px var(--color-border);
}

#pr-modal .pr-hdr {
    align-items: center;
    gap: 12px;
    padding: 18px 18px 14px 20px;
}

#pr-modal .pr-hdr-av {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    min-width: 40px;
    border-radius: 12px;
    background-size: cover;
    background-position: center;
    background-color: var(--vp-trilho);
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, .06);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-01);
}

#pr-modal .pr-hdr-tit {
    font-size: 16px;
    font-weight: 600;
    letter-spacing: -.02em;
    line-height: 1.25;
}

#pr-modal .pr-hdr-sub {
    gap: 8px;
    margin-top: 3px;
    font-size: 12.5px;
}

#pr-modal .pr-hdr-marca {
    min-width: 0;
}

#pr-modal .pr-destino {
    padding: 1px 8px;
    border-radius: 999px;
    background: transparent;
    box-shadow: inset 0 0 0 1px var(--color-border);
    color: var(--color-text-01);
    font-size: 11.5px;
    font-weight: 550;
    line-height: 18px;
}

#pr-modal .pr-fechar {
    align-self: flex-start;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    opacity: .55;
}

#pr-modal .pr-fechar:hover {
    opacity: 1;
    background: var(--vp-trilho);
}

/* --- abas: segmented control --- */
#pr-modal .pr-abas-wrap {
    flex: 0 0 auto;
    padding: 0 20px 14px;
}

#pr-modal .pr-abas {
    display: inline-flex;
    max-width: 100%;
    gap: 2px;
    padding: 3px;
    border-radius: 12px;
    background: var(--vp-trilho);
    overflow-x: auto;
}

#pr-modal .pr-aba {
    position: relative;
    height: 32px;
    padding: 0 13px 0 11px;
    gap: 7px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 550;
    letter-spacing: -.005em;
    opacity: .58;
    transition: opacity .14s ease, background-color .18s ease, box-shadow .18s ease;
}

#pr-modal .pr-aba:hover {
    opacity: .9;
    background: transparent;
}

#pr-modal .pr-aba.atv {
    opacity: 1;
    background: var(--pr-aba-atv);
    color: var(--color-text-01);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 0 0 .5px rgba(16, 24, 40, .06);
}

#pr-modal .pr-aba-ico svg {
    width: 14px;
    height: 14px;
}

/* Rede marcada que nao publica o formato: o tracejado nao cabe dentro de um
   segmented control. O sinal agora e o icone de "proibido" depois do nome,
   com o motivo no tooltip e no aviso embaixo. */
#pr-modal .pr-aba-off {
    border-style: none;
}

#pr-modal .pr-aba-off-ico {
    width: 12px;
    height: 12px;
    margin-left: -1px;
    opacity: .55;
}

/* --- a mesa: tela embutida --- */
#pr-modal .pr-mesa {
    margin: 0 14px;
    padding: 18px 16px 12px;
    gap: 12px;
    border-radius: 18px;
    background: radial-gradient(120% 80% at 50% -12%, #20232a 0%, var(--vp-mesa) 62%);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .05);
}

#pr-modal .pr-barra {
    min-height: 30px;
    padding: 0 2px;
}

#pr-modal .pr-tag {
    font-size: 11.5px;
    font-weight: 550;
    letter-spacing: 0;
    color: rgba(255, 255, 255, .55);
}

#pr-modal .pr-nav {
    padding: 2px;
    border-radius: 9px;
    background: rgba(255, 255, 255, .07);
}

#pr-modal .pr-nav-b {
    width: 24px;
    height: 24px;
    border-radius: 7px;
}

#pr-modal .pr-nav-n {
    font-size: 11px;
    color: rgba(255, 255, 255, .8);
}

#pr-modal .pr-seg {
    padding: 2px;
    border-radius: 10px;
    background: rgba(255, 255, 255, .07);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .05);
}

#pr-modal .pr-tool {
    padding: 5px 11px;
    border-radius: 8px;
    font-size: 11.5px;
    font-weight: 550;
    color: rgba(255, 255, 255, .6);
}

#pr-modal .pr-tool.atv {
    background: rgba(255, 255, 255, .16);
    color: #fff;
    box-shadow: 0 1px 2px rgba(0, 0, 0, .3);
}

/* --- o pe: avisos com icone --- */
#pr-modal .pr-pe {
    padding: 0 20px 14px;
}

#pr-modal .pr-pe>div:not(:empty) {
    padding: 12px 0 4px;
    gap: 8px;
}

#pr-modal .pr-aviso {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 13px;
    border-radius: 12px;
    background: var(--vp-trilho);
    color: var(--color-text-01);
    font-size: 13px;
    line-height: 1.5;
    box-shadow: none;
}

#pr-modal .pr-aviso>span {
    flex: 1 1 auto;
    min-width: 0;
}

#pr-modal .pr-aviso-ico {
    flex: 0 0 auto;
    width: 16px;
    height: 16px;
    margin-top: 2px;
    opacity: .6;
}

#pr-modal .pr-aviso-neutro>span {
    opacity: .72;
}

/* O alerta e o unico com cor: a publicacao NAO vai acontecer nesta rede. */
#pr-modal .pr-aviso-alerta {
    background: #e83a3a0f;
    box-shadow: inset 0 0 0 1px #e83a3a26;
}

#pr-modal .pr-aviso-alerta .pr-aviso-ico {
    color: #e83a3a;
    opacity: 1;
}


/* =========================================================================
   TRILHO DE PROPRIEDADES v2 - polimento (.pp-rail do popup do conteudo)
   -------------------------------------------------------------------------
   Cada linha falava uma gramatica: etiqueta cinza chapada (publicacao),
   pilula contornada em vermelho (prazo), link sublinhado ("ver todas"),
   quadradinhos com borda preta grossa (redes), pilula cheia (vincular).
   Agora sao TRES pecas so, repetidas:

   1. ROTULO com icone de traco fino - a coluna le como propriedades e o
      olho acha a linha pelo icone antes de ler (icones em PP_ICO, footer).
   2. CHIP DE LEITURA (22px, raio 7, fundo de 5% de tinta, sem borda) para
      tudo que e informacao derivada: "em 11 dias", prazo da etapa. A cor
      entra so no atraso, como fundo suave - nunca como contorno.
   3. TECLA (28px, raio 9) para tudo que se aciona: redes, (i), Mencoes,
      Colaboracao - a mesma superficie elevada do botao Avancar (--fx-*).
      Acoes de "adicionar" e "ver mais" sao fantasmas: so texto/icone ate o
      hover, no tom do placeholder "Sem data de entrega".
   ========================================================================= */

/* O trilho MEDE A SI MESMO (container query, regras no media.css): a
   largura dele depende do popup e da coluna da midia, nao da tela - em
   1024px de tela ele tem 330px, em 1440px tem 620px. Media query de tela
   nao enxerga isso. */
.item-post .pp-rail {
    container: pprail / inline-size;
}

/* Canal e tipo numa linha so tambem no desktop: "Feed / Arte" quebrava no
   meio quando a coluna apertava. */
.item-post .pp-row-canal .campo-style-02 .selecionado {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}

/* Pastilha de status nunca vaza a coluna: o nome corta com reticencias. */
.item-post .pp-row-status .status {
    max-width: 100%;
    min-width: 0;
}

.item-post .pp-row-status .status .selecionado .txt {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.item-post .pp-row-redes .redes-ativas {
    flex-wrap: wrap;
    row-gap: 8px;
}

/* RESPIRO ENTRE GRUPOS (ordem e motivo no footer.php, junto do ppLinha).
   Dentro do grupo o passo e o de sempre (32px + 2px); a primeira linha de
   cada grupo ganha +10px. E a proximidade que agrupa - "Publicacao, Entrega,
   Prazo" leem como um bloco so - sem filete, que com oito linhas curtas
   viraria grade. 10px e ~1/3 da linha: nota-se o corte sem abrir buraco. */
.item-post .pp-rail .pp-row-canal,
.item-post .pp-rail .pp-row-data,
.item-post .pp-rail .pp-row-direcionamentos,
.item-post .pp-rail .pp-row-redes {
    margin-top: 10px;
}

/* --- 1. rotulo com icone --- */
.item-post .pp-lbl {
    gap: 8px;
}

.item-post .pp-lbl-ico {
    flex: 0 0 auto;
    width: 15px;
    height: 15px;
}

.item-post .pp-lbl-txt {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* --- 2. chips de leitura --- */
.item-post .pp-flag {
    display: inline-flex;
    align-items: center;
    height: 22px;
    padding: 0 8px;
    border-radius: 7px;
    background: color-mix(in srgb, var(--color-text-01) 5%, transparent);
    color: color-mix(in srgb, var(--color-text-01) 62%, transparent);
    font-size: 11.5px;
    font-weight: 550;
    opacity: 1;
}

.item-post .pp-flag.is-vencido {
    background: rgba(214, 45, 45, .09);
}

.item-post .pp-sla {
    gap: 4px;
}

.item-post .pp-sla-chip {
    align-items: center;
    gap: 6px;
    height: 22px;
    padding: 0 8px;
    border: 0;
    border-radius: 7px;
    background: color-mix(in srgb, var(--color-text-01) 5%, transparent);
    color: var(--color-text-01);
    font-size: 11.5px;
    font-weight: 600;
}

.item-post .pp-sla-chip i {
    font-size: 11.5px;
    font-weight: 500;
    color: color-mix(in srgb, var(--color-text-01) 55%, transparent);
}

.item-post .pp-sla-chip.atrasado {
    background: color-mix(in srgb, var(--wf-alerta, #d92d20) 9%, transparent);
    color: var(--wf-alerta, #d92d20);
}

.item-post .pp-sla-chip.atrasado i {
    color: var(--wf-alerta, #d92d20);
    opacity: .8;
}

/* "ver todas": acao fantasma com chevron, nao link sublinhado. */
.item-post .pp-sla-abrir {
    display: inline-flex;
    align-items: center;
    gap: 1px;
    height: 22px;
    padding: 0 4px 0 7px;
    border-radius: 7px;
    font-size: 11.5px;
    font-weight: 500;
    text-decoration: none;
    color: color-mix(in srgb, var(--color-text-01) 50%, transparent);
    transition: background-color .15s ease, color .15s ease;
}

.item-post .pp-sla-abrir::after {
    content: "";
    width: 12px;
    height: 12px;
    background: currentColor;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m9 6 6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}

.item-post .pp-sla-abrir:hover {
    background: var(--color-hover-01);
    color: var(--color-text-01);
}

/* --- 3. teclas: redes, (i), Mencoes, Colaboracao --- */
.item-post .pp-row-redes .redes-ativas {
    gap: 6px;
}

.item-post .pp-row-redes .redes-ativas .redes-item {
    width: 28px;
    height: 28px;
    border-radius: 9px;
    border-color: color-mix(in srgb, var(--color-text-01) 55%, transparent);
}

.item-post .pp-row-redes .redes-ativas .redes-item svg {
    width: 15px;
    height: 15px;
}

/* ! `:not(.rd-alerta)` deixa a borda ambar da rede com problema intacta, e a
   especificidade (0,6,0) passa a borda #fff do dark.css (0,4,0). */
.item-post .pp-row-redes .redes-ativas .redes-item.atv:not(.rd-alerta) {
    border: 1px solid color-mix(in srgb, var(--color-text-01) 14%, transparent);
    background: linear-gradient(180deg, var(--color-bg) 0%, color-mix(in srgb, var(--color-text-01) 3%, var(--color-bg)) 100%);
    box-shadow: inset 0 1px 0 var(--fx-brilho), 0 1px 2px var(--fx-sombra);
}

.item-post .pp-row-redes .redes-ativas .redes-item.atv:not(.rd-alerta):hover {
    border-color: color-mix(in srgb, var(--color-text-01) 24%, transparent);
}

.item-post .pp-row-redes .redes-ativas .redes-item.atv.rd-alerta {
    border-radius: 9px;
}

/* Selo um pouco maior e mais para fora: em 11px o check virava um ponto. */
.item-post .pp-row-redes .redes-ativas .rd-sinal {
    top: -4px;
    right: -4px;
    width: 13px;
    height: 13px;
    box-shadow: 0 0 0 2px var(--color-bg, #fff);
}

.item-post .pp-row-redes .redes-ativas .rd-sinal svg {
    width: 10px;
    height: 10px;
}

.item-post .pp-row-redes .redes-ativas .rdi-btn {
    width: 28px;
    height: 28px;
    border-radius: 9px;
}

.item-post .pp-row-redes .redes-ativas .rfx-pill {
    height: 28px;
    padding: 0 11px 0 9px;
    border-color: color-mix(in srgb, var(--color-text-01) 12%, transparent);
    border-radius: 9px;
    opacity: .78;
}

.item-post .pp-row-redes .redes-ativas .rfx-pill.rfx-tem {
    opacity: 1;
    border-color: color-mix(in srgb, var(--color-text-01) 28%, transparent);
    background: linear-gradient(180deg, var(--color-bg) 0%, color-mix(in srgb, var(--color-text-01) 3%, var(--color-bg)) 100%);
    box-shadow: inset 0 1px 0 var(--fx-brilho), 0 1px 2px var(--fx-sombra);
}

/* --- responsaveis --- */
.item-post .pp-row-membros .lst-membros-all .item .thumb-user {
    width: 26px;
    height: 26px;
    font-size: 10px;
    font-weight: 600;
    box-shadow: 0 0 0 2px var(--color-bg);
}

.item-post .pp-row-membros .lst-membros-all .item {
    margin-right: -6px;
    transition: transform .2s cubic-bezier(.16, 1, .3, 1);
}

.item-post .pp-row-membros .lst-membros-all .item:hover {
    z-index: 2;
    transform: translateY(-1px);
}

/* "+" de responsavel e de direcionamento: o mesmo disco, agora fantasma -
   contorno tracejado no tom do placeholder, que diz "vaga aberta". */
.item-post .pp-row-membros .btn-add-membro,
.item-post .pp-dir-add:not(.vazio) {
    width: 26px;
    height: 26px;
    background: transparent;
    border: 1px dashed color-mix(in srgb, var(--color-text-01) 28%, transparent);
    opacity: .7;
}

.item-post .pp-row-membros .btn-add-membro:hover,
.item-post .pp-dir-add:not(.vazio):hover {
    opacity: 1;
    border-style: solid;
    background: var(--color-hover-01);
}

.item-post .pp-row-membros .btn-add-membro svg {
    width: 14px;
    height: 14px;
}

/* --- vincular direcionamento (vazio): fantasma no tom do placeholder --- */
.item-post .pp-dir-add.vazio {
    height: 28px;
    margin-left: calc(var(--pp-inset, 9px) * -1);
    padding: 0 10px 0 var(--pp-inset, 9px);
    border: 0;
    border-radius: 8px;
    background: transparent;
    font-size: 14px;
    font-weight: 500;
    opacity: .42;
}

.item-post .pp-dir-add.vazio svg {
    width: 15px;
    height: 15px;
}

.item-post .pp-dir-add.vazio:hover {
    opacity: .9;
    background: var(--color-hover-01);
}

/* =============================================================================
   ABERTURA DO AIRSTUDIO PRO (.as-abre) - pre-loading na hora do clique: esqueleto do
   proprio editor (topo, trilho, palco no formato do projeto e, no video, a linha do
   tempo) + cartao com a marca, a etapa e a barra do download. Mostrado pelo
   window.AirpostDesign (footer.php); some no evento airstudio:pronto do editor.
   Cores = as do editor (editor.css --dsg-*), porque o editor.css ainda nao chegou.
   ============================================================================= */
.as-abre {
    --aa-bg: #eceef2;
    --aa-chrome: #ffffff;
    --aa-linha: rgba(16, 24, 40, .07);
    --aa-sk: #e3e5ea;
    --aa-brilho: rgba(255, 255, 255, .75);
    --aa-tx: #0d0f12;
    --aa-tx2: rgba(13, 15, 18, .56);
    --aa-folha: #ffffff;
    position: fixed;
    inset: 0;
    z-index: 2147483100;
    display: flex;
    flex-direction: column;
    background: var(--aa-bg);
    color: var(--aa-tx);
    font-family: "Golos Text", Inter, system-ui, sans-serif;
    /* opaco desde o 1o quadro: a tela de tras nao pode aparecer por baixo */
    opacity: 1;
    pointer-events: auto;
}

.as-abre.escuro {
    --aa-bg: #0a0a0c;
    --aa-chrome: #151517;
    --aa-linha: rgba(255, 255, 255, .07);
    --aa-sk: #222226;
    --aa-brilho: rgba(255, 255, 255, .07);
    --aa-tx: #f4f4f5;
    --aa-tx2: rgba(244, 244, 245, .55);
    --aa-folha: #1a1a1d;
}

.as-abre.on {
    opacity: 1;
}

.as-abre.sai {
    opacity: 0;
    transition: opacity .32s ease;
    pointer-events: none;
}

.as-abre i {
    display: block;
    border-radius: 8px;
    background: var(--aa-sk);
    background-image: linear-gradient(90deg, transparent 0, var(--aa-brilho) 50%, transparent 100%);
    background-size: 220% 100%;
    background-repeat: no-repeat;
    animation: as-abre-brilho 1.3s ease-in-out infinite;
}

@keyframes as-abre-brilho {
    0% {
        background-position: 160% 0;
    }

    100% {
        background-position: -60% 0;
    }
}

.as-abre-topo {
    flex: none;
    height: 58px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 0 16px;
    background: var(--aa-chrome);
    border-bottom: 1px solid var(--aa-linha);
}

.as-abre-topo i {
    width: 30px;
    height: 30px;
}

.as-abre-topo i.m {
    width: 96px;
    height: 16px;
}

.as-abre-topo span {
    flex: 1;
}

.as-abre-topo i.d {
    width: 92px;
    height: 36px;
    border-radius: 12px;
}

.as-abre-topo i.p {
    width: 140px;
}

.as-abre-corpo {
    flex: 1;
    min-height: 0;
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr);
    grid-template-rows: minmax(0, 1fr) auto;
}

.as-abre-trilho {
    grid-row: 1 / -1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 14px;
    padding-top: 14px;
    background: var(--aa-chrome);
    border-right: 1px solid var(--aa-linha);
}

.as-abre-trilho i {
    width: 44px;
    height: 44px;
    border-radius: 12px;
}

.as-abre-palco {
    position: relative;
    min-height: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 28px;
}

.as-abre-folha {
    max-width: 100%;
    max-height: 100%;
    height: 100%;
    border-radius: 6px;
    background: var(--aa-folha);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 18px 40px -24px rgba(16, 24, 40, .35);
}

.as-abre-card {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 264px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    padding: 22px 22px 20px;
    border-radius: 18px;
    background: var(--aa-chrome);
    box-shadow: 0 1px 2px rgba(16, 24, 40, .06), 0 24px 60px -28px rgba(16, 24, 40, .45);
    text-align: center;
    animation: as-abre-entra .45s cubic-bezier(.2, .8, .2, 1) both;
}

@keyframes as-abre-entra {
    from {
        transform: translate(-50%, calc(-50% + 10px)) scale(.97);
        opacity: 0;
    }

    to {
        transform: translate(-50%, -50%);
        opacity: 1;
    }
}

.as-abre-logo {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    margin-bottom: 4px;
    border-radius: 12px;
    background: var(--aa-tx);
    color: var(--aa-chrome);
}

.as-abre-logo svg {
    width: 26px;
    height: 26px;
    fill: currentColor;
}

.as-abre-card b {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.as-abre-etapa {
    min-height: 18px;
    font-size: 12.5px;
    color: var(--aa-tx2);
}

.as-abre-barra {
    position: relative;
    width: 100%;
    height: 4px;
    margin-top: 10px;
    overflow: hidden;
    border-radius: 4px;
    background: var(--aa-sk);
}

.as-abre-barra i {
    position: absolute;
    inset: 0;
    border-radius: 4px;
    background: var(--aa-tx);
    background-image: none;
    animation: none;
    transform: scaleX(.04);
    transform-origin: left center;
    transition: transform .35s ease;
}

.as-abre-tl {
    grid-column: 2;
    height: 34vh;
    max-height: 320px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 46px 18px 18px 190px;
    background: var(--aa-chrome);
    border-top: 1px solid var(--aa-linha);
}

.as-abre-tl i {
    height: 38px;
    border-radius: 7px;
}

.as-abre-tl i:nth-child(2) {
    height: 64px;
}

/* celular: abas embaixo, como o editor */
@media (max-width: 820px) {
    .as-abre-topo {
        height: 54px;
    }

    .as-abre-topo i.m,
    .as-abre-topo i.d:not(.p) {
        display: none;
    }

    .as-abre-corpo {
        grid-template-columns: minmax(0, 1fr);
        grid-template-rows: minmax(0, 1fr) auto auto;
    }

    .as-abre-trilho {
        grid-row: 3;
        flex-direction: row;
        justify-content: space-around;
        padding: 10px 6px;
        border-right: 0;
        border-top: 1px solid var(--aa-linha);
    }

    .as-abre-trilho i {
        width: 36px;
        height: 36px;
    }

    .as-abre-tl {
        grid-column: 1;
        grid-row: 2;
        height: 30vh;
        padding: 36px 10px 10px 74px;
    }

    .as-abre-palco {
        padding: 14px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .as-abre i {
        animation: none;
    }

    .as-abre-card {
        animation: none;
    }
}

/* ==========================================================================
   ACOES DA MIDIA E EDICOES DO CONTEUDO (.mda-*, .edc-*)
   --------------------------------------------------------------------------
   Coluna da midia no popup do conteudo (midia() no footer.php):
     1a linha (.linha-acoes-midia) - enviar/substituir + previa + (i);
     2a linha (.mda-ferr) - as ferramentas: Editar (AirStudio PRO, com o
       contador de edicoes .mda-n) e Gerar com IA, em metades iguais.
   Tudo na mesma altura (36px), mesmo raio e mesmo traco: antes eram pilulas
   de 24px flutuando (float) com sombra, cada uma de um tamanho.
   Aba Anexos: a lista de edicoes (.edc) no topo e o "Adicionar anexo" com
   o mesmo desenho do envio de midia.
   Monocromatico: o contador e a tinta do sistema, nunca cor de acento.
   Os seletores levam .arquivos-it / .mda-ferr para vencer as regras antigas
   (.item-post .btn-*) do painel3.css e do dark.css.
   ========================================================================== */
.item-post .arquivos-it .linha-acoes-midia {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    margin-top: 10px;
    padding-right: 0;
}

.item-post .arquivos-it .btn-upload,
.item-post .mda-ferr>.btn-open-editor,
.item-post .mda-ferr>.btn-gerar-ia,
.item-post .mda-ferr>.vr-chip {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 36px;
    min-width: 0;
    margin: 0;
    padding: 0 12px;
    float: none;
    border: 1px solid var(--color-border);
    border-radius: 10px;
    background: transparent;
    box-shadow: none;
    color: var(--color-text-01);
    font-size: 12.5px;
    font-weight: 550;
    white-space: nowrap;
    cursor: pointer;
    opacity: 1;
    outline: none;
    transition: background-color .15s ease, border-color .15s ease;
}

.item-post .arquivos-it .btn-upload {
    flex: 1 1 auto;
    width: auto;
}

.item-post .arquivos-it .btn-upload:hover,
.item-post .mda-ferr>.btn-open-editor:hover,
.item-post .mda-ferr>.btn-gerar-ia:hover,
.item-post .mda-ferr>.vr-chip:hover {
    background: var(--color-hover-01);
    opacity: 1;
}

.item-post .arquivos-it .btn-upload:focus-visible,
.item-post .mda-ferr>.btn-open-editor:focus-visible,
.item-post .mda-ferr>.btn-gerar-ia:focus-visible {
    outline: 2px solid var(--color-text-01);
    outline-offset: 2px;
}

.item-post .arquivos-it .btn-upload svg,
.item-post .mda-ferr>.btn-open-editor svg,
.item-post .mda-ferr>.btn-gerar-ia svg {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    opacity: .75;
}

.item-post .arquivos-it .btn-upload span,
.item-post .mda-ferr>.btn-open-editor span,
.item-post .mda-ferr>.btn-gerar-ia span {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* O icone de IA agora vem no HTML; a mascara antiga (::before) duplicaria. */
.item-post .mda-ferr>.btn-gerar-ia::before {
    content: none;
}

/* Previa e (i) na altura da linha */
.item-post .arquivos-it .linha-acoes-midia .btn-preview-redes {
    width: 36px;
    height: 36px;
}

.item-post .arquivos-it .linha-acoes-midia .btn-info-midia {
    margin: 0 0 0 2px;
}

.item-post .mda-ferr {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    width: 100%;
    margin-top: 6px;
}

.item-post .mda-ferr>.btn-open-editor,
.item-post .mda-ferr>.btn-gerar-ia,
.item-post .mda-ferr>.vr-chip {
    flex: 1 1 0;
}

/* Contador de edicoes no "Editar" */
.item-post .mda-n {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    margin-left: 1px;
    border-radius: 9px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 11px;
    font-weight: 600;
    line-height: 1;
    font-variant-numeric: tabular-nums;
}

/* Aba Anexos: o "Adicionar anexo" ocupa a largura, como o envio da midia */
.item-post .arquivos-it.anexos>.btn-upload {
    width: 100%;
    margin-top: 10px;
}

/* --- Lista de edicoes (topo da aba Anexos) --- */
.item-post .edc {
    margin: 2px 0 6px;
}

.item-post .edc-cab {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 28px;
    margin-bottom: 4px;
}

.item-post .edc-cab-arq {
    margin: 14px 0 0;
}

.item-post .edc-tit {
    font-size: 12px;
    font-weight: 600;
    color: var(--color-text-01);
    opacity: .62;
}

.item-post .edc-n {
    font-size: 11.5px;
    font-weight: 550;
    color: var(--color-text-01);
    opacity: .4;
    font-variant-numeric: tabular-nums;
}

.item-post .edc-nova {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    height: 28px;
    margin-left: auto;
    padding: 0 10px 0 8px;
    border-radius: 8px;
    color: var(--color-text-01);
    font-size: 12px;
    font-weight: 550;
    cursor: pointer;
    opacity: .7;
    outline: none;
    transition: background-color .15s ease, opacity .15s ease;
}

.item-post .edc-nova:hover,
.item-post .edc-nova:focus-visible {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .edc-nova svg,
.item-post .edc-abrir svg,
.item-post .edc-bt svg {
    width: 14px;
    height: 14px;
    flex: 0 0 auto;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.item-post .edc-lst {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.item-post .edc-it {
    display: flex;
    align-items: center;
    gap: 11px;
    padding: 6px 6px 6px 6px;
    margin: 0 -6px;
    border-radius: 11px;
    cursor: pointer;
    outline: none;
    transition: background-color .15s ease, opacity .2s ease;
}

.item-post .edc-it:hover,
.item-post .edc-it:focus-visible {
    background: var(--color-hover-01);
}

.item-post .edc-it.edc-saindo {
    opacity: .4;
    pointer-events: none;
}

.item-post .edc-thumb {
    position: relative;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    overflow: hidden;
    border-radius: 9px;
    background: var(--color-hover-01);
    box-shadow: inset 0 0 0 1px var(--color-border);
}

/* O lapis fica por baixo: so aparece quando a miniatura nao carrega */
.item-post .edc-thumb>svg {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
    color: var(--color-text-01);
    opacity: .35;
}

.item-post .edc-thumb img {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.item-post .edc-txt {
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.item-post .edc-nome {
    overflow: hidden;
    color: var(--color-text-01);
    font-size: 13px;
    font-weight: 550;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.item-post .edc-meta {
    display: flex;
    gap: 6px;
    overflow: hidden;
    color: var(--color-text-01);
    font-size: 11.5px;
    white-space: nowrap;
    opacity: .5;
}

.item-post .edc-meta>span+span::before {
    content: "\00B7";
    margin-right: 6px;
}

.item-post .edc-abrir {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    color: var(--color-text-01);
    opacity: 0;
    transition: opacity .15s ease;
}

.item-post .edc-bt {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    color: var(--color-text-01);
    cursor: pointer;
    opacity: 0;
    outline: none;
    transition: opacity .15s ease, background-color .15s ease, color .15s ease;
}

.item-post .edc-it:hover .edc-abrir,
.item-post .edc-it:focus-visible .edc-abrir {
    opacity: .7;
}

.item-post .edc-it:hover .edc-bt,
.item-post .edc-it:focus-within .edc-bt {
    opacity: .6;
}

.item-post .edc-it .edc-bt:hover,
.item-post .edc-it .edc-bt:focus-visible {
    opacity: 1;
    background: var(--color-hover-01);
}

.item-post .edc-it .edc-lixo:hover {
    color: #e83a3a;
}

/* ===== Capa com IA v2 (21/10/2026): zonas seguras das redes sobre o quadro e as opcoes do
   AirStudio Auto recolhidas ===== */
.cvi-zonas {
    position: absolute;
    inset: 0;
    z-index: 2;
    pointer-events: none;
    transition: opacity .2s;
}

.cvi-zonas.cvi-zonas-off {
    opacity: 0;
}

.cvi-zona {
    position: absolute;
    left: 0;
    right: 0;
    background: repeating-linear-gradient(135deg, rgba(0, 0, 0, .42) 0 6px, rgba(0, 0, 0, .28) 6px 12px);
    display: flex;
    align-items: center;
    justify-content: center;
}

.cvi-zona span,
.cvi-corte span,
.cvi-seguro span {
    padding: 2px 7px;
    border-radius: 6px;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: .02em;
    white-space: nowrap;
}

.cvi-corte {
    position: absolute;
    left: 0;
    right: 0;
    border-top: 1.5px dashed rgba(255, 255, 255, .75);
    border-bottom: 1.5px dashed rgba(255, 255, 255, .75);
}

.cvi-corte span {
    position: absolute;
    top: 4px;
    left: 6px;
}

.cvi-seguro {
    position: absolute;
    border: 1.5px dashed #6ee7a8;
    border-radius: 8px;
}

.cvi-seguro span {
    position: absolute;
    right: 6px;
    bottom: 6px;
    background: rgba(22, 101, 52, .8);
}

.cvi-ver-zonas {
    margin-top: 10px;
    font-size: 12.5px;
}

.cvi-mais {
    margin: 12px 0 4px;
    border: 1px solid var(--color-border-01, rgba(0, 0, 0, .1));
    border-radius: 12px;
    padding: 0 12px;
}

.cvi-mais>summary {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 0;
    cursor: pointer;
    list-style: none;
    font-size: 13px;
    font-weight: 600;
}

.cvi-mais>summary::-webkit-details-marker {
    display: none;
}

.cvi-mais>summary svg {
    width: 16px;
    height: 16px;
}

.cvi-mais>summary em {
    margin-left: auto;
    font-style: normal;
    font-weight: 500;
    font-size: 11.5px;
    opacity: .55;
}

.cvi-mais[open] {
    padding-bottom: 12px;
}

.cvi-mais .sc-est-grid,
.cvi-mais .sc-lays {
    max-height: 260px;
    overflow: auto;
}

.cvi-logo-pos {
    margin: 8px 0 4px;
}

/* a coluna do formulario cresceu (opcoes do Auto): nada encolhe, ela rola */
.cvi-form>* {
    flex-shrink: 0;
}

.cvi-form .cvi-campo {
    min-height: 58px;
}

/* ===== Capa com IA v3 (21/10/2026): base escolhida (quadro, imagem, do zero), referencias
   com papel, direcao em chips, 1-3 opcoes, comparar com a base, editar no PRO. Vidro no
   kit .cvi-box (acima). Monocromatico: ativo = tinta. ===== */
.cvi-ia .cvi-box {
    max-width: 980px;
}

.cvi-ia .cvi-corpo {
    grid-template-columns: minmax(0, 1fr) 360px;
}

.cvi-ia .cvi-form {
    gap: 0;
    padding: 6px 18px 16px;
}

.cvi-sec {
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 14px 0;
    border-bottom: 1px solid var(--glass-borda);
}

.cvi-sec .cvi-rot {
    display: flex;
    align-items: baseline;
    gap: 4px;
    margin: 0;
    font-size: 11px;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.cvi-sec .cvi-rot em {
    text-transform: none;
    letter-spacing: 0;
}

.cvi-conta {
    margin-left: auto;
    font-variant-numeric: tabular-nums;
    text-transform: none;
    letter-spacing: 0;
    font-weight: 500;
}

.cvi-conta.cvi-conta-alto {
    opacity: 1;
    color: #e83a3a;
}

.cvi-nota {
    margin: 0;
    font-size: 11.5px;
    line-height: 1.45;
    opacity: .55;
}

.cvi-nota:empty {
    display: none;
}

.cvi-ia .cvi-form .cvi-campo {
    min-height: 0;
}

/* Base da capa: tres cartoes */
.cvi-bases {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
}

.cvi-base {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 2px;
    min-width: 0;
    padding: 10px 10px 9px;
    border: 1px solid var(--glass-borda);
    border-radius: 13px;
    background: var(--pd2-campo, rgba(255, 255, 255, .5));
    color: inherit;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .15s, border-color .15s, box-shadow .15s;
}

.cvi-base:hover:not(:disabled) {
    background: var(--glass-realce);
}

.cvi-base:disabled {
    opacity: .4;
    cursor: default;
}

.cvi-base-ico {
    display: grid;
    place-items: center;
    width: 26px;
    height: 26px;
    margin-bottom: 4px;
    border-radius: 8px;
    background: var(--glass-realce);
}

.cvi-base-ico svg {
    width: 15px;
    height: 15px;
}

.cvi-base b {
    font-size: 12.5px;
    font-weight: 600;
    line-height: 1.2;
}

.cvi-base small {
    font-size: 11px;
    opacity: .55;
    line-height: 1.3;
}

.cvi-base.atv {
    border-color: var(--color-btn-bg-01);
    box-shadow: inset 0 0 0 1px var(--color-btn-bg-01);
}

.cvi-base.atv .cvi-base-ico {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.cvi-base-arq {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 34px;
}

.cvi-base-arq[hidden] {
    display: none;
}

.cvi-arq-mini {
    flex: 0 0 34px;
    height: 34px;
    border-radius: 8px;
    overflow: hidden;
    background: #000;
}

.cvi-arq-mini img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cvi-arq-nome {
    flex: 1 1 auto;
    min-width: 0;
    font-size: 12px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.cvi-arq-vazio {
    white-space: normal;
    opacity: .55;
}

.cvi-mini-bt {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    flex: 0 0 auto;
    height: 28px;
    padding: 0 10px;
    border: 0;
    border-radius: 999px;
    background: var(--glass-realce);
    color: inherit;
    font: 500 12px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
}

.cvi-mini-bt:hover {
    background: var(--sc-line-forte);
}

.cvi-mini-bt svg {
    width: 13px;
    height: 13px;
}

/* Direcao visual: chips que somam ao contexto */
.cvi-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.cvi-chip {
    height: 27px;
    padding: 0 10px;
    border: 1px solid var(--glass-borda);
    border-radius: 999px;
    background: transparent;
    color: inherit;
    font: 500 12px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}

.cvi-chip:hover {
    background: var(--glass-realce);
}

.cvi-chip.atv {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

/* Referencias */
.cvi-refs {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 6px;
}

.cvi-ref,
.cvi-ref-add {
    position: relative;
    aspect-ratio: 1;
    border-radius: 12px;
    overflow: hidden;
}

.cvi-ref {
    background: #000;
}

.cvi-ref img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cvi-ref-papel {
    position: absolute;
    left: 4px;
    right: 4px;
    bottom: 4px;
    height: 20px;
    border: 0;
    border-radius: 999px;
    background: rgba(0, 0, 0, .62);
    color: #fff;
    font: 600 10.5px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
}

.cvi-ref-rm {
    position: absolute;
    top: 4px;
    right: 4px;
    display: grid;
    place-items: center;
    width: 20px;
    height: 20px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(0, 0, 0, .62);
    color: #fff;
    cursor: pointer;
    opacity: 0;
    transition: opacity .15s;
}

.cvi-ref:hover .cvi-ref-rm,
.cvi-ref-rm:focus-visible {
    opacity: 1;
}

.cvi-ref-rm svg {
    width: 10px;
    height: 10px;
}

.cvi-ref-add {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 4px;
    border: 1px dashed var(--sc-line-forte);
    background: transparent;
    color: inherit;
    font: 500 11px/1 "Golos Text", Inter, system-ui, sans-serif;
    opacity: .75;
    cursor: pointer;
}

.cvi-ref-add:hover {
    opacity: 1;
    background: var(--glass-realce);
}

.cvi-ref-add svg {
    width: 16px;
    height: 16px;
}

.cvi-modal.cvi-arrasto-ref .cvi-refs {
    outline: 2px dashed var(--color-btn-bg-01);
    outline-offset: 4px;
    border-radius: 12px;
}

/* menu de origem da referencia (vidro, dentro da caixa) */
.cvi-pop {
    position: absolute;
    z-index: 5;
    display: flex;
    flex-direction: column;
    min-width: 190px;
    padding: 5px;
    border-radius: 14px;
    background: var(--glass-fundo-forte);
    -webkit-backdrop-filter: var(--glass-filtro-forte);
    backdrop-filter: var(--glass-filtro-forte);
    border: 1px solid var(--glass-borda);
    box-shadow: var(--glass-brilho), var(--glass-sombra);
    animation: glass-folha var(--glass-entra-dur) var(--glass-ease);
}

.cvi-pop button {
    display: flex;
    align-items: center;
    gap: 9px;
    height: 34px;
    padding: 0 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: inherit;
    font: 500 13px/1 "Golos Text", Inter, system-ui, sans-serif;
    text-align: left;
    cursor: pointer;
    animation: glass-surge var(--glass-surge-dur) ease-out;
}

.cvi-pop button:hover {
    background: var(--glass-realce);
}

.cvi-pop svg {
    width: 15px;
    height: 15px;
}

/* o palco e uma janela escura recuada dentro do vidro: a midia e o unico colorido */
.cvi-ia .cvi-palco {
    margin: 12px 0 12px 12px;
    border-radius: 18px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
}

/* ---- Palco: as camadas por base ---- */
.cvi-ia .cvi-tela.cvi-deitado {
    height: auto;
    width: 100%;
    max-height: min(58vh, 540px);
}

.cvi-ia .cvi-camada,
.cvi-ia .cvi-tela video,
.cvi-ia .cvi-vazio,
.cvi-ia .cvi-carregando,
.cvi-ia .cvi-solta {
    position: absolute;
    inset: 0;
}

.cvi-ia .cvi-tela video,
.cvi-ia .cvi-camada,
.cvi-ia .cvi-vazio,
.cvi-ia .cvi-carregando,
.cvi-ia .cvi-solta,
.cvi-ia .cvi-comparar {
    display: none;
}

.cvi-ia[data-base="quadro"]:not(.cvi-sem-video) .cvi-tela video,
.cvi-ia[data-base="quadro"].cvi-sem-video #cvi-thumb,
.cvi-ia[data-base="imagem"].cvi-tem-img #cvi-base-img {
    display: block;
}

.cvi-ia[data-base="imagem"]:not(.cvi-tem-img) .cvi-vazio-img,
.cvi-ia[data-base="zero"] .cvi-vazio-zero {
    display: flex;
}

.cvi-ia.cvi-mostra-res #cvi-result,
.cvi-ia.cvi-mostra-res .cvi-comparar {
    display: block;
}

.cvi-ia.cvi-mostra-res .cvi-comparar {
    display: inline-flex;
}

.cvi-ia.cvi-mostra-res .cvi-vazio {
    display: none;
}

.cvi-ia.cvi-comparando #cvi-result {
    display: none;
}

.cvi-ia.cvi-comparando[data-base="zero"] .cvi-vazio-zero,
.cvi-ia.cvi-comparando[data-base="imagem"]:not(.cvi-tem-img) .cvi-vazio-img {
    display: flex;
}

.cvi-ia.cvi-gerando .cvi-carregando,
.cvi-ia.cvi-baixando .cvi-carregando {
    display: flex;
}

.cvi-ia.cvi-arrasto .cvi-solta {
    display: flex;
}

.cvi-vazio {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 20px;
    text-align: center;
    color: #fff;
    background: radial-gradient(120% 80% at 50% 0%, rgba(255, 255, 255, .1), rgba(255, 255, 255, 0) 60%), #121214;
}

.cvi-vazio b {
    font-size: 14px;
    font-weight: 600;
}

.cvi-vazio small {
    font-size: 12px;
    opacity: .6;
    line-height: 1.4;
}

.cvi-vazio-ico {
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    margin-bottom: 6px;
    border-radius: 14px;
    background: rgba(255, 255, 255, .1);
}

.cvi-vazio-ico svg {
    width: 20px;
    height: 20px;
}

.cvi-vazio-bts {
    display: flex;
    flex-direction: column;
    gap: 6px;
    width: min(100%, 210px);
    margin-top: 10px;
}

.cvi-vazio-bts .sc-btn {
    justify-content: center;
    color: #fff;
    background: rgba(255, 255, 255, .12);
    border-color: transparent;
}

.cvi-vazio-bts .sc-btn:hover {
    background: rgba(255, 255, 255, .2);
}

.cvi-solta {
    z-index: 4;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .55);
    border: 2px dashed rgba(255, 255, 255, .8);
    border-radius: 14px;
    color: #fff;
    font-size: 13px;
    font-weight: 600;
}

/* botoes sobre o palco: zonas (canto de cima) e "Antes" (canto de baixo) */
.cvi-olho,
.cvi-comparar {
    position: absolute;
    z-index: 3;
    left: 8px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 26px;
    padding: 0 9px;
    border: 0;
    border-radius: 999px;
    background: rgba(0, 0, 0, .55);
    color: #fff;
    font: 600 11px/1 "Golos Text", Inter, system-ui, sans-serif;
    cursor: pointer;
    user-select: none;
    -webkit-user-select: none;
    touch-action: none;
}

.cvi-olho {
    top: 8px;
    left: auto;
    right: 8px;
}

.cvi-olho[aria-pressed="false"] {
    opacity: .6;
}

.cvi-comparar {
    bottom: 8px;
}

.cvi-olho svg,
.cvi-comparar svg {
    width: 13px;
    height: 13px;
}

.cvi-ia.cvi-comparando .cvi-comparar {
    background: #fff;
    color: #111;
}

.cvi-ia .cvi-zonas {
    z-index: 2;
}

.cvi-corte.cvi-corte-v {
    top: 0;
    bottom: 0;
    border-top: 0;
    border-bottom: 0;
    border-left: 1.5px dashed rgba(255, 255, 255, .75);
    border-right: 1.5px dashed rgba(255, 255, 255, .75);
}

/* tira de quadros: setas de quadro a quadro */
.cvi-ia .cvi-quadro {
    width: min(100%, 400px);
}

.cvi-passo {
    display: grid;
    place-items: center;
    flex: 0 0 28px;
    height: 28px;
    padding: 0;
    border: 0;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    color: #fff;
    cursor: pointer;
}

.cvi-passo:hover {
    background: rgba(255, 255, 255, .2);
}

.cvi-passo svg {
    width: 14px;
    height: 14px;
}

.cvi-ia .cvi-quadro.cvi-oculto {
    display: none;
}

/* resultados: Base + 1..N, escolhe qual vai */
.cvi-res {
    display: none;
    gap: 6px;
    max-width: 100%;
    overflow-x: auto;
    padding: 2px;
}

.cvi-res.cvi-res-on {
    display: flex;
}

.cvi-res-it {
    position: relative;
    flex: 0 0 46px;
    height: 62px;
    padding: 0;
    border: 0;
    border-radius: 10px;
    overflow: hidden;
    background: #1d1d20;
    color: #fff;
    cursor: pointer;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1);
    opacity: .7;
    transition: opacity .15s, box-shadow .15s;
}

.cvi-res-it:hover {
    opacity: 1;
}

.cvi-res-it.atv {
    opacity: 1;
    box-shadow: 0 0 0 2px #fff;
}

.cvi-res-it img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cvi-res-it>span:last-child {
    position: absolute;
    left: 3px;
    bottom: 3px;
    padding: 1px 5px;
    border-radius: 6px;
    background: rgba(0, 0, 0, .6);
    font-size: 9.5px;
    font-weight: 600;
}

.cvi-res-ico {
    display: grid;
    place-items: center;
    height: 100%;
}

.cvi-res-ico svg {
    width: 16px;
    height: 16px;
    opacity: .7;
}

.cvi-res-spin {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 16px;
    height: 16px;
    margin: -8px 0 0 -8px;
    border: 2px solid rgba(255, 255, 255, .25);
    border-top-color: #fff;
    border-radius: 50%;
    animation: cviGira .8s linear infinite;
}

@keyframes cviGira {
    to {
        transform: rotate(360deg);
    }
}

.cvi-ia .cvi-mais {
    margin: 14px 0 0;
    border-color: var(--glass-borda);
}

.cvi-ia .cvi-dica {
    margin-top: 12px;
}

.cvi-ia .cvi-msg:not(:empty) {
    margin-top: 10px;
}

.cvi-rod-acoes .sc-btn svg {
    width: 15px;
    height: 15px;
}

/* ---- Popup de origem (#cvc-modal): capa atual, dupla computador/Drive, soltar aqui ---- */
.cvc-atual {
    flex: 0 0 40px;
    height: 54px;
    border-radius: 9px;
    overflow: hidden;
    background: #000;
    box-shadow: inset 0 0 0 1px var(--glass-borda);
}

.cvc-atual img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.cvc-dupla {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.cvc-dupla .cvc-opc {
    min-width: 0;
}

.cvc-solta {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    padding: 9px;
    border: 1px dashed var(--sc-line-forte);
    border-radius: 12px;
    font-size: 12px;
    opacity: .6;
    transition: opacity .15s, background .15s;
}

.cvc-solta svg {
    width: 14px;
    height: 14px;
}

.cvc-modal.cvc-arrasto .cvc-solta {
    opacity: 1;
    border-color: var(--color-btn-bg-01);
    background: var(--glass-realce);
}

.cvc-modal .cvc-opc {
    background: var(--pd2-campo, rgba(255, 255, 255, .5));
    border-color: var(--glass-borda);
}

.cvc-modal .cvc-opc:hover {
    background: var(--glass-realce);
    border-color: var(--sc-line-forte);
}

.cvc-modal .cvc-ico {
    background: var(--glass-realce);
}

.cvc-modal .cvc-destaque {
    border-color: var(--color-btn-bg-01);
}

.cvc-modal .cvc-destaque .cvc-ico {
    background: var(--color-btn-bg-01);
}

/* o contador de creditos tambem no "Gerar mais" (fantasma) */
.cvi-rod-acoes .sc-btn-ghost em {
    font-style: normal;
    font-size: 10.5px;
    font-weight: 700;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--glass-realce);
}

/* "Margens do feed" (capa vertical): as duas faixas de 20% sem texto/logo, sobre o palco */
.cvi-margem {
    position: absolute;
    left: 0;
    right: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .38);
    box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .55);
}

.cvi-margem span {
    padding: 2px 7px;
    border-radius: 6px;
    background: rgba(0, 0, 0, .6);
    color: #fff;
    font-size: 10.5px;
    font-weight: 600;
    white-space: nowrap;
}

.cvi-margem-sw[hidden] {
    display: none;
}

.cvi-margem-sw .sc-switch-txt {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.cvi-margem-sw .sc-switch-txt b {
    font-size: 12.5px;
    font-weight: 600;
}

.cvi-margem-sw .sc-switch-txt small {
    font-size: 11.5px;
    line-height: 1.4;
    opacity: .6;
}

/* =========================================================================
   REUNIOES - tela do menu "Reunioes" (window.Reunioes, footer.php)
   A chamada roda em aba propria (browse/reuniao/app.css); aqui so a lista
   de salas e o formulario. Monocromatico: ao vivo = tinta, nunca acento.
   ========================================================================= */
.reu-header.header-pagina {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.reu-header-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
}

.reu-pbtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 36px;
    padding: 0 16px;
    border: 0;
    border-radius: 11px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font: inherit;
    font-size: 13.5px;
    font-weight: 600;
    letter-spacing: -.005em;
    white-space: nowrap;
    cursor: pointer;
    transition: transform .2s cubic-bezier(.16, 1, .3, 1), box-shadow .2s, background .2s, opacity .2s;
}

.reu-pbtn:hover {
    transform: translateY(-1px);
    box-shadow: 0 14px 34px -16px rgba(37, 99, 235, .55);
}

.reu-pbtn svg {
    width: 16px;
    height: 16px;
    flex: none;
}

.reu-pbtn-sec {
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-text-01);
}

.reu-pbtn-sec:hover {
    background: var(--color-hover-01);
    box-shadow: none;
}

.reu-pbtn-sm {
    height: 32px;
    padding: 0 13px;
    font-size: 13px;
    border-radius: 10px;
}

#htmlSessaoAtual>.centraliza.reu-centraliza {
    padding: 0;
}

.reu-tela {
    padding: 18px 18px 90px;
    color: var(--color-text-01);
}

.reu-intro {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 16px 18px;
    margin-bottom: 26px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
}

.reu-intro-ic {
    width: 42px;
    height: 42px;
    border-radius: 13px;
    flex: none;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.reu-intro-ic svg {
    width: 22px;
    height: 22px;
}

.reu-intro-tx {
    display: flex;
    flex-direction: column;
    gap: 3px;
    font-size: 13px;
    line-height: 1.45;
}

.reu-intro-tx b {
    font-size: 14.5px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.reu-intro-tx span {
    opacity: .62;
}

.reu-vazio {
    text-align: center;
    padding: 48px 16px;
}

.reu-vazio b {
    display: block;
    font-size: 17px;
    font-weight: 550;
    letter-spacing: -.02em;
    margin-bottom: 6px;
}

.reu-vazio p {
    margin: 0;
    opacity: .6;
    font-size: 13.5px;
}

.reu-vazio-acoes {
    display: flex;
    justify-content: center;
    gap: 8px;
    margin-top: 18px;
}

.reu-secao {
    margin-bottom: 30px;
}

.reu-secao-ttl {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -.005em;
    opacity: .55;
    margin: 0 0 12px;
}

.reu-grade {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(272px, 1fr));
    gap: 14px;
}

.reu-card {
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 16px;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg);
    transition: transform .24s cubic-bezier(.16, 1, .3, 1), box-shadow .24s cubic-bezier(.16, 1, .3, 1);
}

.reu-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 18px 36px -22px rgba(16, 24, 40, .3);
}

.reu-card.reu-ao-vivo {
    border-color: color-mix(in srgb, var(--color-text-01) 40%, transparent);
}

.reu-card-topo {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}

.reu-card-ic {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-hover-01);
}

.reu-card-ic svg {
    width: 17px;
    height: 17px;
}

.reu-vivo {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 26px;
    padding: 0 10px;
    border-radius: 13px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 12px;
    font-weight: 600;
}

.reu-vivo i {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    animation: reu-vivo-pulsa 1.6s ease-in-out infinite;
}

@keyframes reu-vivo-pulsa {
    50% {
        opacity: .3;
    }
}

.reu-card-menu {
    width: 30px;
    height: 30px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    opacity: .55;
}

.reu-card-menu:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.reu-card-menu svg {
    width: 16px;
    height: 16px;
}

.reu-card-ttl {
    margin: 0;
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -.015em;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reu-card-meta {
    font-size: 12.5px;
    opacity: .6;
}

.reu-card-desc {
    margin: 2px 0 0;
    font-size: 12.5px;
    line-height: 1.45;
    opacity: .75;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.reu-card-pe {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-top: 8px;
    min-height: 28px;
}

.reu-card-acesso {
    display: inline-flex;
    opacity: .45;
}

.reu-card-acesso svg {
    width: 16px;
    height: 16px;
}

.reu-card-acoes {
    display: flex;
    gap: 6px;
    margin-top: 10px;
}

.reu-card-acoes .reu-entrar-sala {
    flex: 1;
}

.reu-avs {
    display: inline-flex;
    align-items: center;
}

.reu-avs .reu-av {
    box-shadow: 0 0 0 2px var(--color-bg);
}

.reu-avs .reu-av+.reu-av {
    margin-left: -5px;
}

/* A foto de antes fica POR CIMA da seguinte: as iniciais nao ficam cortadas
   ("AF BR" em vez de "AR BR"). */
.reu-avs .reu-av {
    position: relative;
}

.reu-avs .reu-av:nth-child(1) { z-index: 6; }
.reu-avs .reu-av:nth-child(2) { z-index: 5; }
.reu-avs .reu-av:nth-child(3) { z-index: 4; }
.reu-avs .reu-av:nth-child(4) { z-index: 3; }
.reu-avs .reu-av:nth-child(5) { z-index: 2; }

.reu-av {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-hover-01) center / cover no-repeat;
    font-size: 10.5px;
    font-weight: 600;
    color: var(--color-text-01);
}

.reu-av-sm {
    width: 26px;
    height: 26px;
}

.reu-av-letra,
.reu-av-mais {
    background-color: color-mix(in srgb, var(--color-text-01) 9%, var(--color-bg));
}

.reu-pop.dropdown-default {
    position: fixed;
    top: auto;
    right: auto;
    width: 190px;
    z-index: 1000;
    padding: 5px;
    font-size: 13.5px;
}

.reu-pop.dropdown-default::after {
    display: none;
}

.reu-pop-it {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 36px;
    padding: 0 10px;
    border-radius: 9px;
    cursor: pointer;
    color: var(--color-text-01);
}

.reu-pop-it:hover {
    background: var(--glass-realce, var(--color-hover-01));
}

.reu-pop-it svg {
    width: 16px;
    height: 16px;
    opacity: .7;
}

.reu-pop-it.reu-pop-perigo:hover {
    color: #e83a3a;
}

/* formulario (popup mini, kit .wsf-*) */
.reu-seg {
    display: flex;
    gap: 3px;
    padding: 3px;
    border-radius: 12px;
    background: var(--color-bg-01);
}

.reu-seg-op {
    flex: 1;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    height: 34px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    opacity: .65;
    transition: background .18s, opacity .18s, box-shadow .18s;
}

.reu-seg-op svg {
    width: 15px;
    height: 15px;
}

.reu-seg-op.atv {
    background: var(--color-bg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, .1), 0 0 0 1px var(--color-border);
    opacity: 1;
    font-weight: 600;
}

.reu-f-pessoas {
    display: flex;
    flex-direction: column;
    gap: 2px;
    max-height: 188px;
    overflow-y: auto;
    margin-top: 2px;
}

.reu-f-pessoa {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 6px 8px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 13px;
    text-align: left;
    cursor: pointer;
}

.reu-f-pessoa:hover {
    background: var(--color-hover-01);
}

.reu-f-pessoa>span:not(.reu-av) {
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reu-f-check {
    width: 18px;
    height: 18px;
    border-radius: 5px;
    border: 1.5px solid var(--color-border);
    flex: none;
    position: relative;
}

.reu-f-pessoa.atv .reu-f-check {
    background: var(--color-btn-bg-01);
    border-color: var(--color-btn-bg-01);
}

.reu-f-pessoa.atv .reu-f-check::after {
    content: '';
    position: absolute;
    left: 5px;
    top: 1.5px;
    width: 4px;
    height: 9px;
    border: solid var(--color-btn-text-01);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

/* REUNIOES v2 - menu "Nova reuniao", chamada recebida e atas */
.reu-pop.reu-pop-nova.dropdown-default {
    width: 300px;
}

.reu-pop-it.reu-pop-rico {
    height: auto;
    align-items: flex-start;
    padding: 10px 10px;
}

.reu-pop-rico svg {
    margin-top: 2px;
    flex: none;
}

.reu-pop-rico span {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.reu-pop-rico b {
    font-weight: 600;
    font-size: 13.5px;
}

.reu-pop-rico small {
    font-size: 12px;
    line-height: 1.35;
    opacity: .6;
}

.reu-nova-menu svg:last-child {
    width: 14px;
    height: 14px;
    margin-left: -2px;
    opacity: .7;
}

.reu-tocando {
    position: fixed;
    right: 20px;
    bottom: 20px;
    z-index: 2147482500;
    width: 340px;
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px 12px;
    padding: 16px;
    border-radius: 20px;
    color: var(--color-text-01);
    background: var(--glass-fundo-forte, var(--glass-fundo));
    -webkit-backdrop-filter: var(--glass-filtro-forte, var(--glass-filtro));
    backdrop-filter: var(--glass-filtro-forte, var(--glass-filtro));
    border: 1px solid var(--glass-borda);
    box-shadow: var(--glass-brilho), var(--glass-sombra);
    animation: glass-folha var(--glass-folha-dur, .34s) cubic-bezier(.16, 1, .3, 1);
}

.reu-tocando>* {
    animation: glass-surge var(--glass-surge-dur, .22s) ease both;
}

.reu-tocando.reu-saindo {
    transform: translateY(10px) scale(.96);
    transition: transform .2s ease;
}

.reu-tocando.reu-saindo>* {
    opacity: 0;
    transition: opacity .2s ease;
}

.reu-tocando-av .reu-av {
    width: 44px;
    height: 44px;
    font-size: 15px;
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-text-01) 40%, transparent);
    animation: reu-toca 1.4s ease-out infinite;
}

@keyframes reu-toca {
    0% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-text-01) 35%, transparent);
    }

    100% {
        box-shadow: 0 0 0 14px color-mix(in srgb, var(--color-text-01) 0%, transparent);
    }
}

.reu-tocando-tx {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    font-size: 13px;
}

.reu-tocando-tx b {
    font-size: 14.5px;
    font-weight: 600;
}

.reu-tocando-tx span {
    opacity: .65;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reu-tocando-acoes {
    grid-column: 1 / -1;
    display: flex;
    gap: 8px;
}

.reu-tocando-acoes .reu-pbtn {
    flex: 1;
}

.reu-card-ata .reu-card-desc {
    -webkit-line-clamp: 3;
}

.reu-ata {
    text-align: left;
    max-height: 56vh;
    overflow-y: auto;
    font-size: 13.5px;
    line-height: 1.5;
}

.reu-ata h4 {
    margin: 14px 0 4px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    opacity: .55;
}

.reu-ata h4:first-child {
    margin-top: 0;
}

.reu-ata p {
    margin: 0 0 6px;
}

.reu-ata ul {
    margin: 0;
    padding-left: 18px;
}

.reu-ata-tr {
    margin-top: 14px;
    border-top: 1px solid var(--color-border);
    padding-top: 10px;
}

.reu-ata-tr summary {
    cursor: pointer;
    font-weight: 600;
    font-size: 13px;
}

.reu-ata-tr-txt p {
    margin: 6px 0;
    opacity: .85;
}

/* =========================================================================
   CHAT INTERNO - window.Chat (footer.php). Monocromatico; cor so em avatar,
   capa de marca e cor do espaco/workspace (dado).
   ========================================================================= */
#htmlSessaoAtual>.centraliza.chat-centraliza {
    padding: 0;
    height: 100%;
    overflow: hidden;
}

.chat {
    --chat-linha: color-mix(in srgb, var(--color-text-01) 9%, transparent);
    --chat-fraco: color-mix(in srgb, var(--color-text-01) 55%, transparent);
    display: grid;
    grid-template-columns: 320px 1fr;
    height: 100%;
    color: var(--color-text-01);
}

.chat-lado {
    display: flex;
    flex-direction: column;
    min-height: 0;
    border-right: 1px solid var(--chat-linha);
}

.chat-header.header-pagina {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}

.chat-header-acoes {
    display: flex;
    align-items: center;
    gap: 8px;
}

.chat-btn-ic {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 10px;
    background: transparent;
    color: var(--color-text-01);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    flex: none;
}

.chat-btn-ic:hover {
    background: var(--color-hover-01);
}

.chat-btn-ic svg {
    width: 18px;
    height: 18px;
}

.chat-busca {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 12px 12px 8px;
    padding: 0 12px;
    height: 36px;
    border-radius: 11px;
    background: var(--color-bg-01);
}

.chat-busca svg {
    width: 16px;
    height: 16px;
    opacity: .5;
    flex: none;
}

.chat-busca input {
    flex: 1;
    min-width: 0;
    border: 0;
    outline: none;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 13.5px;
}

.chat-lista {
    flex: 1;
    overflow-y: auto;
    padding: 0 8px 16px;
}

.chat-sec {
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--chat-fraco);
    padding: 16px 10px 6px;
}

.chat-nota {
    font-size: 12.5px;
    line-height: 1.45;
    color: var(--chat-fraco);
    padding: 8px 10px;
    margin: 0;
}

.chat-it {
    display: flex;
    align-items: center;
    gap: 10px;
    width: 100%;
    padding: 8px 10px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.chat-it:hover {
    background: var(--color-hover-01);
}

.chat-it.atv {
    background: var(--color-bg-01);
}

.chat-it-tx {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.chat-it-l1,
.chat-it-l2 {
    display: flex;
    align-items: center;
    gap: 6px;
    min-width: 0;
}

.chat-it-l1 b {
    flex: 1;
    min-width: 0;
    font-size: 13.5px;
    font-weight: 550;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-it-l1 small {
    font-size: 11.5px;
    color: var(--chat-fraco);
    flex: none;
}

.chat-it-l2 span {
    flex: 1;
    min-width: 0;
    font-size: 12.5px;
    color: var(--chat-fraco);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-it.chat-nl .chat-it-l1 b,
.chat-it.chat-nl .chat-it-l2 span {
    font-weight: 650;
    color: var(--color-text-01);
}

.chat-it-l2 em {
    flex: none;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    border-radius: 10px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 11px;
    font-weight: 700;
    font-style: normal;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.chat-it-mudo svg {
    width: 13px;
    height: 13px;
    opacity: .5;
}

.chat-canal {
    opacity: .78;
}

.chat-canal:hover {
    opacity: 1;
}

.chat-av {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-hover-01) center / cover no-repeat;
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text-01);
}

.chat-av-q {
    border-radius: 11px;
}

.chat-av-letra {
    background-color: color-mix(in srgb, var(--color-text-01) 9%, var(--color-bg));
}

.chat-av-cor {
    background: var(--chat-cor);
    color: #fff;
}

.chat-av-cor svg,
.chat-av-ic svg {
    width: 18px;
    height: 18px;
}

.chat-av-ic {
    background: var(--color-bg-01);
}

.chat-av-sm {
    width: 24px;
    height: 24px;
    font-size: 10px;
}

.chat-av-md {
    width: 36px;
    height: 36px;
}

.chat-av-lg {
    width: 64px;
    height: 64px;
    font-size: 22px;
}

.chat-badge {
    margin-left: auto;
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font-size: 10.5px;
    font-weight: 700;
    font-style: normal;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.chat-conv {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 0;
}

.chat-vazio,
.chat-inicio {
    margin: auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    text-align: center;
    padding: 24px;
    max-width: 360px;
}

.chat-vazio svg {
    width: 34px;
    height: 34px;
    opacity: .5;
}

.chat-vazio b,
.chat-inicio b {
    font-size: 16px;
    font-weight: 550;
    letter-spacing: -.02em;
}

.chat-vazio span,
.chat-inicio span {
    font-size: 13px;
    color: var(--chat-fraco);
}

.chat-cab {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 18px;
    border-bottom: 1px solid var(--chat-linha);
}

.chat-voltar {
    display: none;
}

.chat-cab-tx {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.chat-cab-tx b {
    font-size: 15px;
    font-weight: 600;
    letter-spacing: -.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.chat-cab-tx span {
    font-size: 12px;
    color: var(--chat-fraco);
    cursor: pointer;
}

.chat-cab-tx span:hover {
    text-decoration: underline;
}

.chat-cab-acoes {
    display: flex;
    align-items: center;
    gap: 6px;
}

.chat-pbtn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    height: 34px;
    padding: 0 14px;
    border: 0;
    border-radius: 11px;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    white-space: nowrap;
}

.chat-pbtn svg {
    width: 16px;
    height: 16px;
}

.chat-pbtn-sec {
    background: transparent;
    color: var(--color-text-01);
    border: 1px solid var(--color-border);
}

.chat-pbtn-sec:hover {
    background: var(--color-hover-01);
}

.chat-ao-vivo i,
.chat-call-viva .chat-call-ic::after {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    animation: reu-vivo-pulsa 1.6s ease-in-out infinite;
}

.chat-msgs {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 12px 0 16px;
}

.chat-antigas {
    display: block;
    margin: 4px auto 10px;
    border: 0;
    background: transparent;
    color: var(--chat-fraco);
    font: inherit;
    font-size: 12.5px;
    cursor: pointer;
}

.chat-dia,
.chat-novas {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 14px 18px 6px;
    font-size: 11.5px;
    font-weight: 600;
    color: var(--chat-fraco);
}

.chat-dia::before,
.chat-dia::after,
.chat-novas::before,
.chat-novas::after {
    content: '';
    flex: 1;
    height: 1px;
    background: var(--chat-linha);
}

.chat-novas {
    color: var(--color-text-01);
}

.chat-novas::before,
.chat-novas::after {
    background: color-mix(in srgb, var(--color-text-01) 35%, transparent);
}

.chat-m {
    position: relative;
    display: flex;
    gap: 10px;
    padding: 6px 18px 2px;
}

.chat-m:hover {
    background: color-mix(in srgb, var(--color-text-01) 3%, transparent);
}

.chat-m-seq {
    padding-top: 1px;
}

.chat-m-av {
    width: 34px;
    height: 34px;
    margin-top: 2px;
}

.chat-m-hora {
    width: 34px;
    flex: none;
    font-size: 10.5px;
    color: var(--chat-fraco);
    text-align: center;
    padding-top: 3px;
    visibility: hidden;
}

.chat-m:hover .chat-m-hora {
    visibility: visible;
}

.chat-m-corpo {
    flex: 1;
    min-width: 0;
}

.chat-m-cab {
    display: flex;
    align-items: baseline;
    gap: 8px;
}

.chat-m-cab b {
    font-size: 13.5px;
    font-weight: 600;
}

.chat-m-cab span {
    font-size: 11.5px;
    color: var(--chat-fraco);
}

.chat-txt {
    font-size: 14px;
    line-height: 1.5;
    word-wrap: break-word;
    overflow-wrap: anywhere;
}

.chat-txt a {
    color: inherit;
    text-decoration: underline;
}

.chat-apagada {
    font-style: italic;
    color: var(--chat-fraco);
}

.chat-ed {
    font-size: 11px;
    color: var(--chat-fraco);
}

.chat-men {
    font-weight: 600;
    padding: 0 3px;
    border-radius: 5px;
    background: var(--color-hover-01);
}

.chat-men-eu {
    background: color-mix(in srgb, var(--color-text-01) 14%, transparent);
}

.chat-m-acoes {
    position: absolute;
    top: -12px;
    right: 18px;
    display: none;
    gap: 2px;
    padding: 2px;
    border-radius: 10px;
    background: var(--color-bg);
    border: 1px solid var(--color-border);
    box-shadow: 0 6px 16px -8px rgba(0, 0, 0, .25);
}

.chat-m:hover .chat-m-acoes {
    display: flex;
}

.chat-m-acoes button {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.chat-m-acoes button:hover {
    background: var(--color-hover-01);
}

.chat-m-acoes svg {
    width: 16px;
    height: 16px;
}

.chat-m-acoes .chat-apagar:hover {
    color: #e83a3a;
}

.chat-reacs {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin-top: 4px;
}

.chat-reac {
    height: 24px;
    padding: 0 8px;
    border-radius: 12px;
    border: 1px solid var(--color-border);
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 12.5px;
    cursor: pointer;
}

.chat-reac b {
    font-weight: 600;
    font-size: 11.5px;
}

.chat-reac.atv {
    background: var(--color-hover-01);
    border-color: color-mix(in srgb, var(--color-text-01) 40%, transparent);
}

.chat-reac-pop.dropdown-default {
    position: fixed;
    width: auto;
    right: auto;
    display: flex;
    gap: 2px;
    padding: 4px;
    z-index: 1000;
}

.chat-reac-pop.dropdown-default::after {
    display: none;
}

.chat-reac-pop button {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    font-size: 19px;
    cursor: pointer;
}

.chat-reac-pop button:hover {
    background: var(--glass-realce, var(--color-hover-01));
    transform: scale(1.12);
}

.chat-sis {
    text-align: center;
    padding: 6px 18px;
    font-size: 12px;
    color: var(--chat-fraco);
}

.chat-sis b {
    font-weight: 600;
}

.chat-call {
    display: flex;
    align-items: center;
    gap: 12px;
    max-width: 460px;
    margin-top: 4px;
    padding: 10px 12px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
}

.chat-call-viva {
    border-color: color-mix(in srgb, var(--color-text-01) 45%, transparent);
}

.chat-call-ic {
    position: relative;
    width: 36px;
    height: 36px;
    border-radius: 11px;
    flex: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-hover-01);
}

.chat-call-viva .chat-call-ic {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.chat-call-viva .chat-call-ic::after {
    content: '';
    position: absolute;
    top: -2px;
    right: -2px;
    box-shadow: 0 0 0 2px var(--color-bg);
    background: var(--color-text-01);
}

.chat-call-ic svg {
    width: 18px;
    height: 18px;
}

.chat-call-tx {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    font-size: 12.5px;
}

.chat-call-tx b {
    font-size: 13.5px;
    font-weight: 600;
}

.chat-call-tx span {
    color: var(--chat-fraco);
}

.chat-avs {
    display: inline-flex;
}

.chat-avs .chat-av+.chat-av {
    margin-left: -6px;
    box-shadow: 0 0 0 2px var(--color-bg);
}

.chat-ata {
    max-width: 560px;
    margin-top: 4px;
    padding: 12px 14px;
    border: 1px solid var(--color-border);
    border-radius: 14px;
    font-size: 13px;
    line-height: 1.5;
}

.chat-ata-cab {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.chat-ata-cab svg {
    width: 17px;
    height: 17px;
}

.chat-ata-cab b {
    font-weight: 600;
}

.chat-ata-corpo {
    max-height: 132px;
    overflow: hidden;
    -webkit-mask-image: linear-gradient(180deg, #000 70%, transparent);
    mask-image: linear-gradient(180deg, #000 70%, transparent);
}

.chat-ata.aberta .chat-ata-corpo {
    max-height: none;
    -webkit-mask-image: none;
    mask-image: none;
}

.chat-ata h5 {
    margin: 8px 0 2px;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--chat-fraco);
}

.chat-ata p {
    margin: 0 0 4px;
}

.chat-ata ul {
    margin: 0;
    padding-left: 18px;
}

.chat-ata-mais {
    margin-top: 6px;
    border: 0;
    background: transparent;
    padding: 0;
    color: var(--color-text-01);
    font: inherit;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
}

.chat-comp {
    position: relative;
    padding: 8px 18px 14px;
}

/* Compositor = ComentEditor (kit do coment-editor.css). Aqui so o encaixe
   no rodape da conversa: a caixa cresce ate um teto e rola por dentro. */
.chat-comp .coment-editor-box {
    margin: 0;
    border: 1px solid var(--color-border);
    border-radius: 16px;
    background: var(--color-bg);
    transition: border-color .2s, box-shadow .2s;
}

.chat-comp .coment-editor-box:focus-within {
    border-color: color-mix(in srgb, var(--color-text-01) 32%, transparent);
    box-shadow: 0 0 0 3px var(--color-hover-01);
}

.chat-comp .coment-editor-box>.textarea {
    max-height: 200px;
    overflow-y: auto;
}

.chat-edit-wrap {
    margin-top: 4px;
}

/* Conteudo rico da mensagem (mesmo HTML dos comentarios). */
.chat-txt>div:empty {
    display: none;
}

.chat-txt .mencao-chip.chat-men-eu {
    background: color-mix(in srgb, var(--color-text-01) 16%, transparent);
}

.chat-txt .coment-anexos-bloco {
    margin-top: 6px;
}

.chat-txt .coment-og-card {
    max-width: 420px;
    margin-top: 6px;
}

.chat-txt .ref-cards {
    margin-top: 8px;
}

.chat-ed {
    margin-left: 6px;
}

.chat-m.chat-editando .chat-m-acoes {
    display: none !important;
}

.chat-pop.dropdown-default {
    position: fixed;
    top: auto;
    right: auto;
    width: 230px;
    z-index: 1000;
    padding: 5px;
    font-size: 13.5px;
}

.chat-pop.dropdown-default::after {
    display: none;
}

.chat-pop-it {
    display: flex;
    align-items: center;
    gap: 10px;
    height: 36px;
    padding: 0 10px;
    border-radius: 9px;
    cursor: pointer;
}

.chat-pop-it:hover {
    background: var(--glass-realce, var(--color-hover-01));
}

.chat-pop-it svg {
    width: 16px;
    height: 16px;
    opacity: .7;
}

.chat-pop-it.chat-pop-perigo:hover {
    color: #e83a3a;
}

.chat-membros {
    text-align: left;
    max-height: 50vh;
    overflow-y: auto;
}

.chat-membro {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 5px 0;
    font-size: 13.5px;
}

.chat-carregando {
    padding: 18px;
}

.chat-form-direta .reu-f-pessoa.atv~.reu-f-pessoa.atv {
    opacity: 1;
}

/* REUNIOES v4 - tela como agenda, acabamento do site (kit premium).
   Coluna principal (abertura, agora, agenda por dia, anteriores) e
   lateral (mes, salas fixas, atas). Largura inteira, sem max-width. */
.reu-lay {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 28px;
    align-items: start;
}

.reu-principal {
    min-width: 0;
}

.reu-lado {
    position: sticky;
    top: 18px;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

/* Abertura: data e hora grandes, proxima reuniao, entradas rapidas. Aura e
   grade mascarada como no site, so com a tinta (monocromatico). */
.reu-hero {
    position: relative;
    overflow: hidden;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 28px;
    flex-wrap: wrap;
    padding: 26px 28px;
    margin-bottom: 30px;
    border: 1px solid var(--color-border);
    border-radius: 22px;
    background:
        radial-gradient(520px 220px at 100% 0%, color-mix(in srgb, var(--color-text-01) 7%, transparent), transparent 70%),
        radial-gradient(420px 200px at 0% 100%, color-mix(in srgb, var(--color-text-01) 4%, transparent), transparent 70%),
        var(--color-bg);
    isolation: isolate;
}

.reu-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background-image:
        linear-gradient(color-mix(in srgb, var(--color-text-01) 6%, transparent) 1px, transparent 1px),
        linear-gradient(90deg, color-mix(in srgb, var(--color-text-01) 6%, transparent) 1px, transparent 1px);
    background-size: 28px 28px;
    -webkit-mask-image: radial-gradient(70% 120% at 100% 0%, #000, transparent 70%);
    mask-image: radial-gradient(70% 120% at 100% 0%, #000, transparent 70%);
    pointer-events: none;
}

.reu-hero-tx {
    flex: 1 1 260px;
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.reu-hero-data {
    font-size: 13px;
    font-weight: 500;
    opacity: .6;
}

.reu-hero-hora {
    font-size: 52px;
    line-height: 1.05;
    font-weight: 500;
    letter-spacing: -.045em;
    font-variant-numeric: tabular-nums;
    margin: 2px 0 12px;
}

.reu-hero-prox {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 4px 8px;
    font-size: 13.5px;
    min-height: 20px;
}

.reu-hero-prox span {
    opacity: .62;
}

.reu-hero-prox b {
    font-weight: 600;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reu-hero-prox .reu-hero-prox-rot {
    opacity: 1;
    padding: 2px 8px;
    border-radius: 999px;
    background: var(--color-hover-01);
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .01em;
}

.reu-hero-acoes {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
    flex: 0 1 300px;
    min-width: 240px;
}

.reu-pbtn-lg {
    height: 46px;
    font-size: 14.5px;
    border-radius: 13px;
}

.reu-pbtn-lg svg {
    width: 19px;
    height: 19px;
}

.reu-pbtn-xs {
    height: 28px;
    padding: 0 11px;
    font-size: 12.5px;
    border-radius: 9px;
}

.reu-cod-form {
    display: flex;
    align-items: center;
    gap: 8px;
    height: 42px;
    padding: 0 5px 0 13px;
    border: 1px solid var(--color-border);
    border-radius: 13px;
    background: var(--color-bg);
    transition: border-color .2s, box-shadow .2s;
}

.reu-cod-form:focus-within {
    border-color: color-mix(in srgb, var(--color-text-01) 40%, transparent);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--color-text-01) 7%, transparent);
}

.reu-cod-form svg {
    width: 17px;
    height: 17px;
    flex: none;
    opacity: .5;
}

.reu-cod-in {
    flex: 1;
    min-width: 0;
    height: 100%;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 13.5px;
    outline: none;
}

.reu-cod-ir {
    height: 32px;
    padding: 0 12px;
    border: 0;
    border-radius: 9px;
    background: var(--color-hover-01);
    color: var(--color-text-01);
    font: inherit;
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
}

.reu-cod-ir:hover {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.reu-hero-nota {
    font-size: 11.5px;
    opacity: .5;
    text-align: center;
}

/* Secoes */
.reu-secao-cab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 12px;
}

.reu-secao-cab .reu-secao-ttl {
    margin: 0;
}

.reu-secao-ttl {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    font-weight: 550;
    letter-spacing: -.02em;
    opacity: 1;
}

.reu-pulso {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--color-btn-bg-01);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-text-01) 40%, transparent);
    animation: reuPulso 1.8s cubic-bezier(.16, 1, .3, 1) infinite;
}

@keyframes reuPulso {
    0% {
        box-shadow: 0 0 0 0 color-mix(in srgb, var(--color-text-01) 35%, transparent);
    }

    100% {
        box-shadow: 0 0 0 9px transparent;
    }
}

.reu-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border: 0;
    background: transparent;
    padding: 4px 6px;
    margin-right: -6px;
    border-radius: 8px;
    color: var(--color-text-01);
    font: inherit;
    font-size: 12.5px;
    font-weight: 600;
    cursor: pointer;
    opacity: .7;
    transition: opacity .2s, background .2s;
}

.reu-link:hover {
    opacity: 1;
    background: var(--color-hover-01);
}

.reu-link svg {
    width: 15px;
    height: 15px;
}

/* Agenda: um grupo por dia, com a "folhinha" do dia a esquerda */
.reu-dia {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 16px;
    padding: 14px 0;
    border-top: 1px solid var(--color-border);
}

.reu-agenda .reu-secao-cab+.reu-dia {
    border-top: 0;
    padding-top: 2px;
}

.reu-dia-chip {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-top: 6px;
    line-height: 1.1;
}

.reu-dia-chip small {
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    opacity: .55;
}

.reu-dia-chip b {
    width: 40px;
    height: 40px;
    margin: 4px 0 3px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    font-weight: 500;
    letter-spacing: -.03em;
    font-variant-numeric: tabular-nums;
}

.reu-dia-hoje .reu-dia-chip b {
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.reu-dia-chip span {
    font-size: 11.5px;
    opacity: .55;
}

.reu-dia.reu-realce,
.reu-ag.reu-realce {
    animation: reuRealce 1.4s cubic-bezier(.16, 1, .3, 1);
}

@keyframes reuRealce {

    0%,
    30% {
        background: var(--color-hover-01);
    }

    100% {
        background: transparent;
    }
}

.reu-ag-vazio {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 18px;
    border: 1px dashed var(--color-border);
    border-radius: 16px;
}

.reu-ag-vazio>div {
    flex: 1;
    min-width: 0;
}

.reu-ag-vazio b {
    font-size: 14px;
    font-weight: 600;
}

.reu-ag-vazio p {
    margin: 2px 0 0;
    font-size: 13px;
    opacity: .6;
}

.reu-ag-vazio-ic {
    width: 40px;
    height: 40px;
    flex: none;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-hover-01);
}

.reu-ag-vazio-ic svg {
    width: 19px;
    height: 19px;
}

.reu-ag-lista {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.reu-card.reu-ag {
    flex-direction: row;
    align-items: center;
    gap: 14px;
    padding: 11px 12px 11px 14px;
    margin: 0;
    border-radius: 14px;
    border-color: transparent;
    background: color-mix(in srgb, var(--color-text-01) 3%, var(--color-bg));
    transition: background .2s, border-color .2s, box-shadow .24s cubic-bezier(.16, 1, .3, 1);
}

.reu-card.reu-ag:hover {
    transform: none;
    border-color: var(--color-border);
    background: var(--color-bg);
    box-shadow: 0 18px 36px -24px rgba(16, 24, 40, .35);
}

.reu-ag-perto.reu-card.reu-ag {
    border-color: color-mix(in srgb, var(--color-text-01) 30%, transparent);
    background: var(--color-bg);
}

.reu-ag-hora {
    width: 50px;
    flex: none;
    display: flex;
    flex-direction: column;
    font-variant-numeric: tabular-nums;
}

.reu-ag-hora b {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.01em;
}

.reu-ag-hora span {
    font-size: 12px;
    opacity: .5;
}

.reu-ag-hora.reu-ag-fixa svg {
    width: 18px;
    height: 18px;
    opacity: .6;
}

.reu-ag-tx {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding-left: 14px;
    border-left: 2px solid var(--color-border);
}

.reu-ag-perto .reu-ag-tx {
    border-left-color: var(--color-btn-bg-01);
}

.reu-ag-tx b {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: -.01em;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reu-ag-tx span {
    font-size: 12.5px;
    opacity: .6;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reu-ag-tx em {
    font-style: normal;
    font-weight: 600;
    opacity: 1;
}

.reu-ag-foi {
    opacity: .62;
}

.reu-ag-acoes {
    display: flex;
    align-items: center;
    gap: 4px;
    flex: none;
}

/* Copiar e opcoes so aparecem no hover (ficam no teclado tambem). */
.reu-ag .reu-card-menu {
    opacity: 0;
    transition: opacity .15s;
}

.reu-ag:hover .reu-card-menu,
.reu-ag:focus-within .reu-card-menu {
    opacity: 1;
}

.reu-ag-acoes .reu-card-menu svg {
    width: 16px;
    height: 16px;
}

.reu-passadas {
    margin-top: 8px;
}

.reu-passadas summary {
    cursor: pointer;
    list-style: none;
    margin-bottom: 10px;
    opacity: .75;
    transition: opacity .2s;
}

.reu-passadas summary:hover,
.reu-passadas[open] summary {
    opacity: 1;
}

.reu-passadas summary span {
    font-size: 12px;
    font-weight: 600;
    padding: 1px 7px;
    border-radius: 999px;
    background: var(--color-hover-01);
}

.reu-passadas summary::-webkit-details-marker {
    display: none;
}

.reu-passadas summary::before {
    content: '\25B8';
    display: inline-block;
    font-size: 11px;
    transition: transform .2s;
}

.reu-passadas[open] summary::before {
    transform: rotate(90deg);
}

/* Lateral: mes, salas fixas, atas */
.reu-mes,
.reu-bloco {
    padding: 16px;
    border: 1px solid var(--color-border);
    border-radius: 18px;
    background: var(--color-bg);
}

.reu-mes-cab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 10px;
}

.reu-mes-cab b {
    font-size: 14px;
    font-weight: 550;
    letter-spacing: -.015em;
}

.reu-mes-cab b span {
    opacity: .45;
    font-weight: 500;
}

.reu-mes-nav {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.reu-mes-nav:hover {
    background: var(--color-hover-01);
}

.reu-mes-nav svg {
    width: 16px;
    height: 16px;
    transform: rotate(90deg);
}

.reu-mes-nav[data-d="1"] svg {
    transform: rotate(-90deg);
}

.reu-mes-grade {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    text-align: center;
}

.reu-mes-grade i {
    font-style: normal;
    font-size: 11px;
    font-weight: 600;
    opacity: .4;
    padding: 4px 0;
}

.reu-mes-dia {
    position: relative;
    aspect-ratio: 1;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    font-size: 12.5px;
    font-variant-numeric: tabular-nums;
    opacity: .7;
    cursor: default;
}

.reu-mes-dia.reu-tem {
    opacity: 1;
    font-weight: 600;
    cursor: pointer;
}

.reu-mes-dia.reu-tem::after {
    content: '';
    position: absolute;
    left: 50%;
    bottom: 3px;
    width: 4px;
    height: 4px;
    margin-left: -2px;
    border-radius: 50%;
    background: currentColor;
}

.reu-mes-dia.reu-tem:hover {
    background: var(--color-hover-01);
}

.reu-mes-dia.reu-hoje {
    opacity: 1;
    font-weight: 600;
    background: var(--color-btn-bg-01);
    color: var(--color-btn-text-01);
}

.reu-bloco-cab {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 8px;
}

.reu-bloco-cab h3 {
    margin: 0;
    font-size: 14px;
    font-weight: 550;
    letter-spacing: -.015em;
}

.reu-bloco-add {
    width: 28px;
    height: 28px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--color-text-01);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
}

.reu-bloco-add:hover {
    background: var(--color-hover-01);
}

.reu-bloco-add svg {
    width: 16px;
    height: 16px;
}

.reu-bloco-vazio {
    margin: 0;
    font-size: 12.5px;
    line-height: 1.5;
    opacity: .55;
}

.reu-card.reu-fixa,
.reu-ata-it .reu-abrir-ata {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 10px;
    padding: 8px;
    margin: 0 -8px;
    width: calc(100% + 16px);
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--color-text-01);
    font: inherit;
    text-align: left;
    cursor: pointer;
}

.reu-card.reu-fixa:hover,
.reu-ata-it .reu-abrir-ata:hover {
    transform: none;
    box-shadow: none;
    background: var(--color-hover-01);
}

.reu-fixa-ic {
    width: 32px;
    height: 32px;
    flex: none;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-hover-01);
}

.reu-fixa:hover .reu-fixa-ic,
.reu-abrir-ata:hover .reu-fixa-ic {
    background: var(--color-bg);
}

.reu-fixa-ic svg {
    width: 16px;
    height: 16px;
}

.reu-fixa-tx {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

.reu-fixa-tx b {
    font-size: 13px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reu-fixa-tx span {
    font-size: 12px;
    opacity: .55;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.reu-fixa .reu-card-menu {
    opacity: 0;
}

.reu-fixa:hover .reu-card-menu,
.reu-fixa:focus-within .reu-card-menu {
    opacity: 1;
}

.reu-fixa .reu-card-menu svg {
    width: 15px;
    height: 15px;
}

.reu-det {
    text-align: left;
    font-size: 13.5px;
    line-height: 1.5;
}

.reu-det p {
    margin: 0 0 4px;
}

.reu-det-link {
    opacity: .6;
    font-size: 12.5px;
    word-break: break-all;
}

/* "+" do dia nos calendarios: menu rapido (conteudo, tarefa, reuniao) */
.reu-pop.cal-add-pop.dropdown-default {
    width: 290px;
    z-index: 100001;
}

.cal-add-cab {
    padding: 7px 10px 5px;
    font-size: 11.5px;
    font-weight: 600;
    opacity: .55;
}

.reu-pop-it:focus-visible {
    outline: none;
    background: var(--glass-realce, var(--color-hover-01));
}

/* =========================================================================
   CHAT v2 - acabamento: pilha de pessoas no topo, presenca (ponto verde e
   convencao de "online", como o vermelho de gravar), mensagens e lista.
   ========================================================================= */
.chat-av {
    position: relative;
}

.chat-av-on::after {
    content: '';
    position: absolute;
    right: -1px;
    bottom: -1px;
    width: 26%;
    height: 26%;
    min-width: 8px;
    min-height: 8px;
    border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 2px var(--color-bg);
}

.chat-cab {
    min-height: 64px;
    padding: 10px 18px;
    gap: 12px;
}

.chat-cab-av {
    display: inline-flex;
    flex: none;
}

.chat-cab-tx .chat-cab-sub {
    display: block;
    text-overflow: ellipsis;
    font-size: 12px;
    color: var(--chat-fraco);
    cursor: default;
    white-space: nowrap;
    overflow: hidden;
}

.chat-cab-tx .chat-cab-sub:hover {
    text-decoration: none;
}

.chat-cab-sub .chat-membros-ver {
    cursor: pointer;
}

.chat-cab-sub .chat-membros-ver:hover {
    text-decoration: underline;
    text-underline-offset: 2px;
}

.chat-on-dot {
    display: inline-block;
    vertical-align: 1px;
    width: 7px;
    height: 7px;
    margin: 0 5px 0 1px;
    border-radius: 50%;
    background: #22c55e;
}

.chat-cab-sub>.chat-on-dot:first-child {
    margin-left: 0;
}

.chat-cab-pilha {
    display: inline-flex;
    flex: none;
}

.chat-pilha {
    display: inline-flex;
    align-items: center;
    padding: 4px 8px 4px 4px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--color-text-01);
    cursor: pointer;
    transition: background .2s;
}

.chat-pilha:hover {
    background: var(--color-hover-01);
}

.chat-pilha-av,
.chat-pilha-av.chat-av-letra {
    width: 30px;
    height: 30px;
    font-size: 10px;
    letter-spacing: -.02em;
    box-shadow: 0 0 0 2px var(--color-bg);
    transition: transform .24s cubic-bezier(.16, 1, .3, 1);
}

.chat-pilha-av+.chat-pilha-av {
    margin-left: -6px;
}

/* A de antes fica POR CIMA da seguinte: as iniciais e o ponto de online
   (canto de baixo, a direita) nao ficam cobertos. */
.chat-pilha-av:nth-child(1) { z-index: 9; }
.chat-pilha-av:nth-child(2) { z-index: 8; }
.chat-pilha-av:nth-child(3) { z-index: 7; }
.chat-pilha-av:nth-child(4) { z-index: 6; }
.chat-pilha-av:nth-child(5) { z-index: 5; }
.chat-pilha-av:nth-child(6) { z-index: 4; }
.chat-pilha-av:nth-child(7) { z-index: 3; }
.chat-pilha-av:nth-child(8) { z-index: 2; }

.chat-pilha:hover .chat-pilha-av {
    transform: translateX(var(--chat-abre, 0));
}

.chat-pilha:hover .chat-pilha-av+.chat-pilha-av {
    --chat-abre: 3px;
}

.chat-pilha-av.chat-av-on::after {
    min-width: 7px;
    min-height: 7px;
    right: 3px;
    bottom: -1px;
}

.chat-pilha-mais {
    background: var(--color-bg-01);
    font-size: 10.5px;
    font-weight: 650;
    letter-spacing: -.02em;
}

/* Comeco da conversa */
.chat-inicio .chat-av-lg {
    width: 72px;
    height: 72px;
    margin-bottom: 6px;
    font-size: 24px;
}

.chat-inicio b {
    font-size: 18px;
}

.chat-inicio span {
    line-height: 1.5;
}

.chat-inicio-pessoas {
    display: flex;
    justify-content: center;
    margin-top: 12px;
}

/* Lista */
.chat-it {
    padding: 9px 10px;
    border-radius: 14px;
    transition: background .15s;
}

.chat-it.atv {
    background: var(--color-bg-01);
    box-shadow: inset 0 0 0 1px var(--chat-linha);
}

.chat-membro small {
    margin-left: auto;
    font-size: 11.5px;
    color: #22c55e;
    font-weight: 600;
}

/* Mensagens: realce arredondado, dia em pilula, acoes em vidro */
.chat-m {
    margin: 0 10px;
    padding: 6px 12px 3px;
    border-radius: 14px;
    transition: background .15s;
}

.chat-m:hover {
    background: color-mix(in srgb, var(--color-text-01) 3.5%, transparent);
}

.chat-m-seq {
    padding-top: 2px;
}

.chat-m-cab b {
    letter-spacing: -.01em;
}

.chat-dia,
.chat-novas {
    margin: 18px 22px 8px;
}

.chat-dia>span,
.chat-novas>span {
    padding: 3px 11px;
    border-radius: 999px;
    border: 1px solid var(--chat-linha);
    background: var(--color-bg);
}

.chat-novas>span {
    border-color: color-mix(in srgb, var(--color-text-01) 35%, transparent);
}

.chat-m-acoes {
    right: 14px;
    border-color: var(--glass-borda, var(--color-border));
    background: var(--glass-fundo-forte, var(--color-bg));
    -webkit-backdrop-filter: var(--glass-filtro-forte, none);
    backdrop-filter: var(--glass-filtro-forte, none);
    box-shadow: var(--glass-brilho, 0 0 0 transparent), var(--glass-sombra, 0 6px 16px -8px rgba(0, 0, 0, .25));
}

.chat-reac {
    transition: background .15s, border-color .15s;
}

.chat-reac:hover {
    background: var(--color-hover-01);
}

.chat-reac.atv {
    border-color: color-mix(in srgb, var(--color-text-01) 45%, transparent);
    background: var(--color-hover-01);
}
/* Lembrete da agenda no cartao do canto: icone de calendario no lugar da
   foto, sem o pulso de "tocando" (nao e alguem chamando) */
.reu-tocando-ic {
    width: 44px;
    height: 44px;
    flex: none;
    border-radius: 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--color-hover-01);
}

.reu-tocando-ic svg {
    width: 21px;
    height: 21px;
}
