/* ===== DSA UI — polish global sóbrio (2026-07-18) =====
   Micro-interações e consistência. Sem efeito de vidro, sem mudança de identidade. */

/* Foco visível e elegante em qualquer campo */
input:not([type=checkbox]):not([type=radio]):focus,
select:focus,
textarea:focus {
    outline: none !important;
    border-color: #3D3D91 !important;
    box-shadow: 0 0 0 3px rgba(61,61,145, .13) !important;
}

input:not([type=checkbox]):not([type=radio]),
select,
textarea {
    transition: border-color .15s ease, box-shadow .15s ease;
}

/* Botões com resposta ao toque */
button, a.corp-btn, .dc-btn-add, a[style*="linear-gradient"] {
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
button:hover:not(:disabled), a.corp-btn:hover {
    filter: brightness(1.06);
}
/* Botões e links com gradiente (primários) ganham elevação no hover */
button[style*="linear-gradient"]:hover:not(:disabled),
a[style*="linear-gradient"]:hover,
a.corp-btn:hover,
.dc-btn-add:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 20px rgba(74,74,174, .28);
    filter: brightness(1.05);
}
button:active:not(:disabled),
a[style*="linear-gradient"]:active {
    transform: translateY(0) scale(.96);
    box-shadow: 0 3px 8px rgba(74,74,174, .18);
}

/* Botões planos (Voltar/Fechar) também respondem ao hover */
.dsa-btn-flat {
    display: inline-block;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.dsa-btn-flat:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 16px rgba(15, 23, 42, .18);
}
.dsa-btn-flat:active {
    transform: translateY(0) scale(.96);
}

/* Cards respiram no hover (sombra apenas, sem mexer na posição) */
.card-premium, .dp-atendente-card, .dc-projeto-card, .dp-projeto-card,
.card-total-prestador, .box-historico {
    transition: box-shadow .2s ease;
}
.card-premium:hover, .dp-atendente-card:hover, .dc-projeto-card:hover, .dp-projeto-card:hover {
    box-shadow: 0 10px 32px rgba(15, 23, 42, .10);
}

/* Entrada suave do conteúdo */
@keyframes dsaEntrar {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}
.card-premium, .dp-atendente-card, .dc-projeto-card, .card-total-prestador {
    animation: dsaEntrar .35s ease both;
}

@media (prefers-reduced-motion: reduce) {
    * { animation-duration: .01ms !important; transition-duration: .01ms !important; }
}

/* Checkboxes maiores e na cor do sistema */
input[type=checkbox] {
    width: 16px;
    height: 16px;
    accent-color: #3D3D91;
    cursor: pointer;
}

/* Rolagem suave em âncoras */
html { scroll-behavior: smooth; }

/* Barras de rolagem discretas (Chrome/Edge) */
::-webkit-scrollbar { height: 8px; width: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 999px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Tabelas dentro de containers roláveis nunca estouram a página */
.tabela-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* Botão "Voltar" global — ardósia escuro, destacado e sóbrio (diferente das ações azuis) */
.btn-voltar {
    display: inline-flex; align-items: center; gap: 7px;
    background: linear-gradient(135deg, #334155, #475569);
    color: #fff !important;
    padding: 9px 16px; border-radius: 10px;
    font-weight: 900; font-size: 13px; line-height: 1.2;
    text-decoration: none; white-space: nowrap; border: none; cursor: pointer;
    box-shadow: 0 3px 12px rgba(15, 23, 42, .22);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.btn-voltar:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(15, 23, 42, .32); filter: brightness(1.1); }
.btn-voltar:active { transform: scale(.97); box-shadow: 0 2px 8px rgba(15, 23, 42, .25); }
.btn-voltar svg { width: 15px; height: 15px; flex: 0 0 auto; }

/* ===== Renderização 2026-08-13 — texto nítido e uniforme em todo aparelho.
   O antialiased do Tailwind (classe no <body>) depende do build velho; aqui
   vale para TODA página (inclui login/guest) e todo navegador. ===== */
html {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* ===== Rebrand DSA 2026-07-22 — paleta da logo (#3D3D91 / #ED3237 / #14145A) + polimento ===== */

/* Seleção de texto com a cor da marca */
::selection { background: #3D3D91; color: #fff; }

/* Scrollbar discreta e elegante (WebKit + Firefox) */
* { scrollbar-width: thin; scrollbar-color: #c7c9e2 transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #c7c9e2; border-radius: 8px; border: 2px solid #f8fafc; }
::-webkit-scrollbar-thumb:hover { background: #3D3D91; }

/* Navbar com leve profundidade */
nav.bg-white { box-shadow: 0 1px 10px rgba(20, 20, 90, .06); }

/* Linhas de tabela respondem suave ao hover */
table tbody tr { transition: background-color .12s ease; }

/* Foco acessível em botões/links (teclado) na cor da marca */
button:focus-visible, a:focus-visible {
    outline: 2px solid rgba(61, 61, 145, .55);
    outline-offset: 2px;
    border-radius: 6px;
}

/* ===== Upgrade visual 2026-07-24 — micro-polimentos ===== */

/* Placeholders consistentes em todo o painel */
::placeholder { color: #94a3b8; opacity: 1; }

/* Botão desabilitado comunica o estado */
button:disabled { cursor: not-allowed; }

/* Números alinhados em tabelas (valores, contadores, datas) */
table { font-variant-numeric: tabular-nums; }

/* Toque no celular sem flash azulado */
a, button { -webkit-tap-highlight-color: transparent; }

/* Autofill do Chrome sem fundo amarelo */
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus {
    -webkit-box-shadow: 0 0 0 60px #fff inset;
    -webkit-text-fill-color: #111827;
}

/* Título de páginas: leve aperto tipográfico (mais "marca") */
h1, h2 { letter-spacing: -.3px; }

/* ===== Entrada estável 2026-07-27 =====
   Nada dentro do <main> anima transição até as fontes assentarem de verdade
   (classe dsa-fontes-ok posta pelo layout). Sem isso, estilo/fonte chegando
   após o reveal disparava transições — botões "piscavam" e contadores
   oscilavam na entrada. Animações (dsaEntrar etc.) não são afetadas. */
html:not(.dsa-fontes-ok) main * { transition: none !important; }

/* O Chrome aplica :hover na posição parada do mouse assim que a página pinta:
   o botão que calhava de estar sob o cursor "acordava destacado". A classe
   dsa-hover-espera entra no <html> pelo layout logado e sai no primeiro gesto
   real (mover/clicar/tecla/rolar) — até lá, nada calcula hover. Opt-in por
   classe: páginas sem o script (ex.: login) ficam fora. */
html.dsa-hover-espera body * { pointer-events: none !important; }

/* ===== Botões de Fechar/Voltar do cabeçalho — 01/08/2026 ==============
   Vários eram estilo inline de cor chapada (ou rgba, sobre o header escuro) e
   ficavam "mortos" ao toque: as regras de hover deste arquivo só alcançam
   `a[style*="linear-gradient"]`. Esta classe adiciona SÓ o movimento — não
   mexe em cor, tamanho ou raio — então serve tanto para o botão vermelho
   quanto para o translúcido sobre o gradiente.
   Classe explícita de propósito: um seletor global do tipo
   `a[style*="border-radius"]` pegaria cards e chips clicáveis pelo caminho
   (é o mesmo tipo de armadilha que `[class*="projeto"]` na gestão de dias). */
.dsa-btn-fechar{ transition:transform .16s ease, box-shadow .18s ease, filter .16s ease; }
.dsa-btn-fechar:hover{ transform:translateY(-2px); box-shadow:0 8px 20px rgba(15,23,42,.22); filter:brightness(1.07); }
.dsa-btn-fechar:active{ transform:translateY(0) scale(.96); }
.dsa-btn-fechar svg{ transition:transform .18s ease; }
.dsa-btn-fechar:hover svg{ transform:translateX(-3px); }
@media (prefers-reduced-motion:reduce){
    .dsa-btn-fechar, .dsa-btn-fechar svg{ transition:none; }
    .dsa-btn-fechar:hover, .dsa-btn-fechar:hover svg{ transform:none; }
}

/* ===== Desempenho da grade da gestão de dias — 01/08/2026 =============
   Abrir um atendente insere ~1.200 elementos de uma vez (medido: bloqueio de
   129ms na thread principal, com quadro de 133ms — a "travadinha" que se via
   no anel/na rolagem).

   `content-visibility:auto` faz o navegador PULAR layout e pintura dos cards
   de projeto que estão fora da tela; `contain-intrinsic-size` reserva a
   altura aproximada para a barra de rolagem não pular quando eles entram.
   O conteúdo continua no DOM (busca do navegador e scripts seguem achando).

   `contain:layout style` isola cada card: mudar um input dentro dele não
   força recálculo do documento inteiro. */
.atendente-body .projeto-card{
    content-visibility:auto;
    contain-intrinsic-size:auto 320px;
    contain:layout style;
}
@media print{ .atendente-body .projeto-card{ content-visibility:visible; } }
/* Testado nos cards de /gestao-dias/relatorios (`.rc-projeto-card`) e NÃO
   aplicado: no A/B (2 medições de cada) o resultado foi igual — 54,5/55,2 fps
   com, 54,0/55,6 sem. O custo daquela página está no JS que monta contadores
   e sino, não em layout, então content-visibility só somaria risco em
   rolagem/impressão sem ganho. */

/* ===== Avisos do sistema (toasts) — 01/08/2026 =========================
   Antes existia um <div id="dsa-toast"> e a função dsaToast(), mas NENHUMA
   regra .dsa-toast em lugar algum: o aviso saía como texto solto, sem forma.
   Agora é uma pilha no canto, com ícone, barra de tempo e fechar.
   Sem blur/backdrop-filter (regra do projeto) e sem overlay de tela cheia,
   então não há o problema de "camada invisível engolindo cliques". */
#dsa-avisos{position:fixed;top:18px;right:18px;z-index:100000;display:flex;flex-direction:column;gap:10px;width:min(400px,calc(100vw - 36px));pointer-events:none;}
.dsa-aviso{position:relative;display:flex;align-items:flex-start;gap:12px;background:#fff;border:1px solid #e2e8f0;border-left:5px solid #4A4AAE;border-radius:14px;padding:13px 15px 15px;box-shadow:0 14px 34px rgba(15,23,42,.16);pointer-events:auto;overflow:hidden;opacity:0;transform:translateX(18px) scale(.98);transition:opacity .22s ease,transform .22s ease;}
.dsa-aviso.entrou{opacity:1;transform:none;}
.dsa-aviso.saindo{opacity:0;transform:translateX(18px) scale(.98);}
.dsa-aviso-ico{flex:0 0 auto;width:26px;height:26px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:900;color:#fff;margin-top:1px;}
.dsa-aviso-txt{flex:1;min-width:0;}
.dsa-aviso-titulo{font-size:12.5px;font-weight:900;color:#0f172a;letter-spacing:-.1px;margin-bottom:2px;}
.dsa-aviso-msg{font-size:12.5px;font-weight:600;color:#475569;line-height:1.5;word-break:break-word;}
.dsa-aviso-x{flex:0 0 auto;background:none;border:none;color:#94a3b8;font-size:15px;font-weight:900;cursor:pointer;line-height:1;padding:2px 0 0 4px;}
.dsa-aviso-x:hover{color:#475569;}
/* Barra de tempo: mostra quanto falta para sumir; para quando o mouse entra */
.dsa-aviso-tempo{position:absolute;left:0;bottom:0;height:3px;width:100%;transform-origin:left center;background:#4A4AAE;opacity:.5;}
.dsa-aviso:hover .dsa-aviso-tempo{animation-play-state:paused!important;}
@keyframes dsaAvisoTempo{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.dsa-aviso-sucesso{border-left-color:#16a34a;}
.dsa-aviso-sucesso .dsa-aviso-ico{background:linear-gradient(135deg,#4A4AAE,#3D3D91);}
.dsa-aviso-sucesso .dsa-aviso-tempo{background:#16a34a;}
.dsa-aviso-erro{border-left-color:#dc2626;}
.dsa-aviso-erro .dsa-aviso-ico{background:linear-gradient(135deg,#b42318,#912018);}
.dsa-aviso-erro .dsa-aviso-tempo{background:#dc2626;}
.dsa-aviso-atencao{border-left-color:#d97706;}
.dsa-aviso-atencao .dsa-aviso-ico{background:linear-gradient(135deg,#b45309,#92400e);}
.dsa-aviso-atencao .dsa-aviso-tempo{background:#d97706;}
.dsa-aviso-info{border-left-color:#4A4AAE;}
.dsa-aviso-info .dsa-aviso-ico{background:linear-gradient(135deg,#4A4AAE,#3D3D91);}
@media (max-width:520px){#dsa-avisos{top:12px;right:12px;left:12px;width:auto;}}
@media (prefers-reduced-motion:reduce){.dsa-aviso{transition:none;}.dsa-aviso-tempo{animation:none!important;}}

/* ===== Skeleton de carregamento (2026-08-01) =====
   Placeholder que "varre" enquanto conteúdo assíncrono chega (grade da gestão
   de dias etc.). Animação só por transform (barata p/ GPU; nada de blur). */
.dsa-skel{position:relative;overflow:hidden;background:#eef1f6;border-radius:10px;}
.dsa-skel::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),transparent);animation:dsaSkelVarre 1.2s ease-in-out infinite;}
@keyframes dsaSkelVarre{to{transform:translateX(100%)}}
.dsa-skel-linha{height:14px;margin-bottom:10px;}
.dsa-skel-bloco{height:72px;margin-bottom:12px;border-radius:14px;}
@media (prefers-reduced-motion:reduce){.dsa-skel::after{animation:none;}}

/* ===== Estado vazio padrão (2026-08-01) =====
   Uso: <div class="dsa-vazio"><span class="dsa-vazio-ico"><svg class="ic"><use href="#ic-file"/></svg></span>
        <strong>Título curto</strong><span>frase de apoio ou ação</span></div> */
.dsa-vazio{display:flex;flex-direction:column;align-items:center;gap:6px;padding:34px 20px;text-align:center;}
.dsa-vazio-ico .ic{width:26px;height:26px;color:#64748b;}
.dsa-vazio-ico{width:52px;height:52px;border-radius:16px;background:#f8faff;border:1.5px solid #e0e7ff;display:flex;align-items:center;justify-content:center;font-size:24px;margin-bottom:4px;}
.dsa-vazio strong{font-size:14px;font-weight:800;color:#334155;}
/* #64748b e não #94a3b8: em 12,5px o cinza claro ficava ~2,7:1 sobre o card
   branco (AA pede 4,5:1) e a frase de apoio praticamente sumia. */
.dsa-vazio span:not(.dsa-vazio-ico){font-size:12.5px;font-weight:600;color:#64748b;max-width:420px;line-height:1.5;}

/* ===== Tabela longa: cabeçalho fixo + hover (2026-08-01) =====
   Aplicar .dsa-tabela-fixa na PRÓPRIA <table>. O th precisa de fundo sólido
   (sticky deixa as linhas passarem por trás) e o top é 0 dentro do wrapper
   com rolagem própria — fora dele, compensa o menu fixo via var. */
.dsa-tabela-fixa thead th{position:sticky;top:var(--dsa-sticky-top,0);background:#f8fafc;z-index:5;box-shadow:0 1px 0 #e2e8f0;}
.dsa-tabela-fixa tbody tr{transition:background .12s;}
.dsa-tabela-fixa tbody tr:hover{background:#f8faff;}

/* ===== Barras de rolagem VISÍVEIS (07/08/2026, pedido do Felipe) =====
   As barras finas/apagadas do navegador eram difíceis de ver e de arrastar.
   Regra universal: trilho claro + polegar índigo com folga (área de clique
   maior). Elementos com barra própria mais fina (colunas do CRM, dropdowns)
   continuam valendo — seletor por elemento vence o universal. */
::-webkit-scrollbar{width:13px;height:13px;}
::-webkit-scrollbar-track{background:#eef1f7;border-radius:999px;}
::-webkit-scrollbar-thumb{background:#aab4d9;border-radius:999px;border:3px solid #eef1f7;}
::-webkit-scrollbar-thumb:hover{background:#7d8bc6;}
::-webkit-scrollbar-thumb:active{background:#5f6fb5;}
/* Firefox */
html{scrollbar-width:auto;scrollbar-color:#aab4d9 #eef1f7;}

/* ===== Componentes consolidados (item 6 do polimento — 14/08/2026) =====
   Padrões que se repetiam em CSS inline por dezenas de views, agora com
   nome único. NOVA tela usa estas classes; tela antiga migra aos poucos.
   Card branco + selo pill + botão + título de seção do padrão 2026-07. */
.dsa-card{background:#fff;border:1px solid #e2e8f0;border-radius:18px;box-shadow:0 4px 20px rgba(15,23,42,.05);}
.dsa-card-pad{padding:18px 22px;}
.dsa-titulo-secao{font-size:13px;font-weight:900;text-transform:uppercase;letter-spacing:.4px;color:#64748b;}
.dsa-header-pagina{background:linear-gradient(135deg,#14145A,#4A4AAE);border-radius:20px;color:#fff;padding:24px 30px;box-shadow:0 16px 44px rgba(20,20,90,.22);}

/* Selo pill: estado curto em MAIÚSCULAS junto de um nome (ENCERRADO, TROCA…).
   Cores = as mesmas já usadas nos selos do CRM/gestão — não inventar tom novo. */
.dsa-selo{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:1px 8px;font-size:10px;font-weight:900;letter-spacing:.3px;white-space:nowrap;border:1px solid transparent;vertical-align:1px;}
.dsa-selo-vermelho{background:#fee2e2;color:#b91c1c;border-color:#fecaca;}
.dsa-selo-laranja{background:#ffedd5;color:#c2410c;border-color:#fed7aa;}
.dsa-selo-verde{background:#dcfce7;color:#15803d;border-color:#bbf7d0;}
.dsa-selo-azul{background:#e0f2fe;color:#0369a1;border-color:#bae6fd;}
.dsa-selo-roxo{background:#f3e8ff;color:#7e22ce;border-color:#e9d5ff;}
.dsa-selo-magenta{background:#fdf2f8;color:#be185d;border-color:#fbcfe8;}
.dsa-selo-ciano{background:#ecfeff;color:#0e7490;border-color:#a5f3fc;}
.dsa-selo-ambar{background:#fef3c7;color:#b45309;border-color:#fde68a;}
.dsa-selo-cinza{background:#f1f5f9;color:#475569;border-color:#e2e8f0;}

/* Botões canônicos (os gradientes repetidos em todo canto) */
.dsa-btn{display:inline-flex;align-items:center;gap:7px;border:none;cursor:pointer;text-decoration:none;border-radius:11px;padding:10px 16px;font-weight:900;font-size:13px;line-height:1.2;}
.dsa-btn svg{width:14px;height:14px;flex:0 0 auto;}
.dsa-btn-primario{background:linear-gradient(135deg,#4A4AAE,#3D3D91);color:#fff;box-shadow:0 4px 14px rgba(74,74,174,.25);}
.dsa-btn-escuro{background:linear-gradient(135deg,#14145A,#3D3D91);color:#fff;box-shadow:0 4px 14px rgba(20,20,90,.25);}
.dsa-btn-verde{background:linear-gradient(135deg,#4A4AAE,#3D3D91);color:#fff;box-shadow:0 4px 14px rgba(74,74,174,.25);}
.dsa-btn-vermelho,.dsa-btn-perigo{background:#fff;color:#b42318;border:1px solid #f1c2bd;box-shadow:none;}
.dsa-btn-vermelho:hover,.dsa-btn-perigo:hover{background:#fef2f2;border-color:#e4a39b;}
.dsa-btn-secundario{background:#fff;color:#334155;border:1px solid #e2e8f0;box-shadow:0 1px 2px rgba(15,23,42,.04);}
.dsa-btn-secundario:hover{background:#f8fafc;border-color:#cbd5e1;}
.dsa-btn-claro{background:#fff;color:#3D3D91;border:1px solid #c7d2fe;}

/* Estado vazio: acabamento do ícone (14/08) — anel suave em gradiente no
   lugar da caixinha chapada; nada muda no HTML das telas que já usam. */
.dsa-vazio-ico{background:linear-gradient(160deg,#f8faff,#eef2ff);border:1.5px solid #dfe6ff;box-shadow:inset 0 1px 0 #fff,0 3px 10px rgba(74,74,174,.08);border-radius:18px;}

/* ===== Alternador do modo escuro na barra do topo (17/08/2026) =====
   O tema deixou de ser só do CRM e passou a valer no painel inteiro, então o
   botão saiu do cabeçalho do quadro e veio para o nav — onde existe em toda
   página. Os DOIS ícones ficam no HTML e o CSS escolhe: assim o botão nasce
   correto na primeira pintura, sem esperar JS. */
#dsa-tema-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;
    width:32px;height:32px;margin-right:10px;padding:0;border-radius:9999px;cursor:pointer;
    background:#f6f8ff;border:1px solid #e2e8f0;color:#64748b;
    transition:background .15s ease,border-color .15s ease,color .15s ease;}
#dsa-tema-btn:hover{background:#eef2ff;border-color:#c7d2fe;color:#3D3D91;}
#dsa-tema-btn svg{width:15px;height:15px;display:block;}
#dsa-tema-btn .dsa-tema-sol{display:none;}
html.crm-escuro #dsa-tema-btn{background:#1a2440;border-color:#2c3a5c;color:#c7d2fe;}
html.crm-escuro #dsa-tema-btn:hover{background:#26334f;border-color:#3b4a6e;}
html.crm-escuro #dsa-tema-btn .dsa-tema-lua{display:none;}
html.crm-escuro #dsa-tema-btn .dsa-tema-sol{display:block;}


/* ===== ÍCONE POR MÁSCARA (19/08/2026) — só no card do CRM =============
   O padrão do painel é <svg class="ic"><use href="#ic-x"/></svg>: dois
   elementos, e o <use> ainda instancia o símbolo numa shadow tree. Num quadro
   com dezenas de cards isso vira milhares de nós, e o recálculo de estilo é o
   maior custo da tela (medido).
   Aqui o ícone é UM elemento: a forma entra como máscara e a cor é o
   `background:currentColor` — continua herdando a cor de quem o contém, igual
   ao stroke:currentColor de antes, então o modo escuro não precisa saber de
   nada. O traço vai DENTRO do SVG da máscara, porque máscara não herda CSS da
   página. Tamanho e traço idênticos aos do .ic (stroke-width 2.1 sobre viewBox
   24) — conferido por comparação de pixel.
   ⚠ CODIFICAÇÃO: em data URI o `#` inicia FRAGMENTO e o `"` fecha a string do
   CSS. Deixá-los crus faz a máscara não carregar e o ícone vira um QUADRADO
   SÓLIDO (foi o que aconteceu na primeira tentativa). Codificar < > # " e
   espaço, sempre.
   Usar só onde a repetição justifica; para ícone avulso o <use> é mais legível
   e não duplica dado. */
.icm{display:inline-block;width:15px;height:15px;flex-shrink:0;vertical-align:-2px;
     background:currentColor;
     -webkit-mask-image:var(--icm);mask-image:var(--icm);
     -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
     -webkit-mask-position:center;mask-position:center;
     -webkit-mask-size:contain;mask-size:contain;}
.icm-copiar{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Crect%20x=%229%22%20y=%229%22%20width=%2213%22%20height=%2213%22%20rx=%222%22%20ry=%222%22/%3E%3Cpath%20d=%22M5%2015H4a2%202%200%200%201-2-2V4a2%202%200%200%201%202-2h9a2%202%200%200%201%202%202v1%22/%3E%3C/svg%3E");}
.icm-fixar{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M12%2017v5%22/%3E%3Cpath%20d=%22M9%2010.76a2%202%200%200%201-1.11%201.79l-1.78.9A2%202%200%200%200%205%2015.24V17h14v-1.76a2%202%200%200%200-1.11-1.79l-1.78-.9A2%202%200%200%201%2015%2010.76V6h1a2%202%200%200%200%200-4H8a2%202%200%200%200%200%204h1z%22/%3E%3C/svg%3E");}
.icm-lista{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cline%20x1=%228%22%20y1=%226%22%20x2=%2221%22%20y2=%226%22/%3E%3Cline%20x1=%228%22%20y1=%2212%22%20x2=%2221%22%20y2=%2212%22/%3E%3Cline%20x1=%228%22%20y1=%2218%22%20x2=%2221%22%20y2=%2218%22/%3E%3Cline%20x1=%223%22%20y1=%226%22%20x2=%223.01%22%20y2=%226%22/%3E%3Cline%20x1=%223%22%20y1=%2212%22%20x2=%223.01%22%20y2=%2212%22/%3E%3Cline%20x1=%223%22%20y1=%2218%22%20x2=%223.01%22%20y2=%2218%22/%3E%3C/svg%3E");}
.icm-parado{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Ccircle%20cx=%2212%22%20cy=%2212%22%20r=%2210%22/%3E%3Cpolyline%20points=%2212%206%2012%2012%2016%2014%22/%3E%3C/svg%3E");}
.icm-usuario{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M20%2021v-2a4%204%200%200%200-4-4H8a4%204%200%200%200-4%204v2%22/%3E%3Ccircle%20cx=%2212%22%20cy=%227%22%20r=%224%22/%3E%3C/svg%3E");}
.icm-retorno{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M1%204v6h6%22/%3E%3Cpath%20d=%22M3.51%2015a9%209%200%201%200%202.13-9.36L1%2010%22/%3E%3C/svg%3E");}
.icm-sino{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M18%208A6%206%200%200%200%206%208c0%207-3%209-3%209h18s-3-2-3-9%22/%3E%3Cpath%20d=%22M13.73%2021a2%202%200%200%201-3.46%200%22/%3E%3C/svg%3E");}
.icm-conversa{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M21%2011.5a8.38%208.38%200%200%201-.9%203.8%208.5%208.5%200%200%201-7.6%204.7%208.38%208.38%200%200%201-3.8-.9L3%2021l1.9-5.7a8.38%208.38%200%200%201-.9-3.8%208.5%208.5%200%200%201%204.7-7.6%208.38%208.38%200%200%201%203.8-.9h.5a8.48%208.48%200%200%201%208%208v.5z%22/%3E%3C/svg%3E");}
.icm-editar{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M12%2020h9%22/%3E%3Cpath%20d=%22M16.5%203.5a2.121%202.121%200%200%201%203%203L7%2019l-4%201%201-4L16.5%203.5z%22/%3E%3C/svg%3E");}
.icm-lixeira{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpolyline%20points=%223%206%205%206%2021%206%22/%3E%3Cpath%20d=%22M19%206v14a2%202%200%200%201-2%202H7a2%202%200%200%201-2-2V6m3%200V4a2%202%200%200%201%202-2h4a2%202%200%200%201%202%202v2%22/%3E%3C/svg%3E");}
.icm-mais{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M12%205v14%22/%3E%3Cpath%20d=%22M5%2012h14%22/%3E%3C/svg%3E");}
.icm-tarefas{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M9%2011l3%203L22%204%22/%3E%3Cpath%20d=%22M21%2012v7a2%202%200%200%201-2%202H5a2%202%200%200%201-2-2V5a2%202%200%200%201%202-2h11%22/%3E%3C/svg%3E");}
.icm-telefone{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M22%2016.92v3a2%202%200%200%201-2.18%202%2019.79%2019.79%200%200%201-8.63-3.07%2019.5%2019.5%200%200%201-6-6%2019.79%2019.79%200%200%201-3.07-8.67A2%202%200%200%201%204.11%202h3a2%202%200%200%201%202%201.72%2012.84%2012.84%200%200%200%20.7%202.81%202%202%200%200%201-.45%202.11L8.09%209.91a16%2016%200%200%200%206%206l1.27-1.27a2%202%200%200%201%202.11-.45%2012.84%2012.84%200%200%200%202.81.7A2%202%200%200%201%2022%2016.92z%22/%3E%3C/svg%3E");}
.icm-alerta{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Cpath%20d=%22M10.29%203.86%201.82%2018a2%202%200%200%200%201.71%203h16.94a2%202%200%200%200%201.71-3L13.71%203.86a2%202%200%200%200-3.42%200z%22/%3E%3Cline%20x1=%2212%22%20y1=%229%22%20x2=%2212%22%20y2=%2213%22/%3E%3Cline%20x1=%2212%22%20y1=%2217%22%20x2=%2212.01%22%20y2=%2217%22/%3E%3C/svg%3E");}
.icm-email{--icm:url("data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2024%2024%22%20fill=%22none%22%20stroke=%22%23000%22%20stroke-width=%222.1%22%20stroke-linecap=%22round%22%20stroke-linejoin=%22round%22%3E%3Crect%20x=%222%22%20y=%224%22%20width=%2220%22%20height=%2216%22%20rx=%222%22/%3E%3Cpolyline%20points=%2222,6%2012,13%202,6%22/%3E%3C/svg%3E");}
