@charset "UTF-8";
/* ============================================================
   Portal Vanitelli - sistema de design compartilhado.
   Cabecalho em ASCII puro DE PROPOSITO: em producao o parser do
   navegador chegou a descartar a primeira regra do arquivo (o
   reset de box-sizing), deixando inputs transbordando sobre os
   vizinhos. Nada de acento/travessao antes da primeira regra.
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; }
html { box-sizing: border-box; }

/* hidden tem que vencer qualquer display: das classes (.form-grid-3 etc.);
   sem isso, bloco escondido com display:grid continuava aparecendo */
[hidden]{ display:none !important; }

:root {
  color-scheme: light;
  --navy-900:#0E1220; --navy-800:#141A2C; --navy-700:#1C2338; --navy-600:#2A3248;
  --green:#76B82A; --green-dark:#5C951C; --green-soft:#EFF8E3;

  --surface-0:#F3F5F8; --surface-1:#F7F8FB; --surface-2:#FFFFFF;
  --text-primary:#131829; --text-secondary:#59607A; --text-muted:#8B92A8;
  --border:#E7E9EF; --border-strong:#D6DAE4;
  --border-accent:var(--green); --text-accent:var(--green-dark);

  --radius:10px; --radius-sm:7px; --radius-lg:14px; --radius-xl:18px;
  --shadow-xs:0 1px 2px rgba(17,24,39,.05);
  --shadow-sm:0 1px 3px rgba(17,24,39,.07), 0 1px 2px rgba(17,24,39,.04);
  --shadow-md:0 6px 18px rgba(17,24,39,.08);
  --shadow-lg:0 24px 60px rgba(15,20,35,.22);
  --font-sans:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif;

  /* --- superfície de vidro (usada nos formulários e painéis) ---
     O efeito depende de existir algo colorido atrás: ver o gradiente
     ambiente aplicado no body logo abaixo. */
  --vidro-fundo: linear-gradient(158deg, rgba(255,255,255,.88) 0%, rgba(247,252,241,.78) 55%, rgba(238,248,227,.72) 100%);
  --vidro-borda: rgba(255,255,255,.75);
  --vidro-borda-verde: rgba(118,184,42,.22);
  --vidro-sombra: 0 12px 32px rgba(24,52,16,.09), 0 2px 8px rgba(24,52,16,.05);
  --vidro-brilho: inset 0 1px 0 rgba(255,255,255,.85);
  --campo-fundo: rgba(255,255,255,.72);
  --campo-fundo-foco: rgba(255,255,255,.96);
}

html, body {
  background:var(--surface-0); color:var(--text-primary);
  font-family:var(--font-sans); margin:0;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}

/* Ambiente: manchas suaves de verde da marca por trás de tudo. É o que dá
   profundidade ao vidro fosco — sem isso o efeito não aparece. */
body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(760px 520px at 12% -6%, rgba(118,184,42,.16), transparent 62%),
    radial-gradient(680px 460px at 96% 8%, rgba(118,184,42,.11), transparent 60%),
    radial-gradient(900px 620px at 50% 108%, rgba(24,95,165,.08), transparent 62%),
    linear-gradient(180deg, #F4F7F1 0%, #F2F5F8 48%, #F4F6F2 100%);
}
body{ font-size:14px; line-height:1.5; }
a{ color:var(--text-accent); }

/* ---------- shell ---------- */
.shell{ display:flex; align-items:flex-start; min-height:100vh; }
#sidebar{
  width:244px; flex-shrink:0; align-self:stretch;
  position:sticky; top:0; height:100vh; overflow-y:auto;
  display:flex; flex-direction:column;
  background:linear-gradient(175deg,#141A2C 0%,#1A2137 55%,#151B2E 100%);
  padding:22px 14px 20px; color:#fff;
}
#sidebar::-webkit-scrollbar{ width:6px; }
#sidebar::-webkit-scrollbar-thumb{ background:rgba(255,255,255,.14); border-radius:3px; }
.main{ flex:1; min-width:0; padding:26px 30px 64px; }
.main-inner{ max-width:1200px; margin:0 auto; }
/* tela que precisa da página toda (projeto aberto em página inteira) */
.main-inner.largura-total{ max-width:none; }

.brandmark{ display:flex; align-items:center; padding:4px 10px 0; margin-bottom:22px; }
.brandmark img{ width:100%; max-width:178px; height:auto; display:block; }
.side-label{
  font-size:10.5px; font-weight:600; letter-spacing:.09em; text-transform:uppercase;
  color:rgba(255,255,255,.38); padding:0 10px; margin:0 0 8px;
}
.side-gap{ height:18px; }

/* botão "Configurações" no pé da barra (referência: painel do Claude) */
.side-config{
  margin-top:auto; display:flex; align-items:center; gap:10px; width:100%;
  padding:9px 10px; border-radius:var(--radius); cursor:pointer;
  background:transparent; border:1px solid transparent; font-family:inherit;
  font-size:13.5px; font-weight:500; color:rgba(255,255,255,.72); text-align:left;
  box-shadow:none;
}
.side-config:hover{ background:rgba(255,255,255,.08); color:#fff; border-color:rgba(255,255,255,.1); }
.side-config-ico{
  width:26px; height:26px; border-radius:7px; flex-shrink:0; display:block;
  background:rgba(255,255,255,.08); padding:3px;
}
.side-config > span{ flex:1; min-width:0; }
.side-config-eng{ flex-shrink:0; opacity:.55; }
.side-config:hover .side-config-eng{ opacity:1; }

/* ---------- painel de Configurações (popup central) ---------- */
.cfg-overlay{
  position:fixed; inset:0; z-index:400; display:flex; align-items:center; justify-content:center;
  background:rgba(12,16,28,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
  padding:24px; animation:cfg-fade .13s ease;
}
.cfg-overlay[hidden]{ display:none; }
@keyframes cfg-fade{ from{ opacity:0 } to{ opacity:1 } }
.cfg-dialog{
  position:relative; display:flex; width:100%; max-width:960px; height:min(620px, 88vh);
  background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-xl);
  box-shadow:0 30px 80px rgba(12,16,28,.4); overflow:hidden;
  animation:cfg-sobe .16s ease;
}
@keyframes cfg-sobe{ from{ opacity:0; transform:translateY(8px) scale(.99) } to{ opacity:1; transform:none } }
.cfg-fechar{
  position:absolute; top:12px; right:14px; z-index:2; width:30px; height:30px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; padding:0;
  background:transparent; border:0; box-shadow:none; color:var(--text-muted); font-size:15px; cursor:pointer;
}
.cfg-fechar:hover{ background:rgba(19,24,41,.07); color:var(--text-primary); }

.cfg-nav{
  width:246px; flex-shrink:0; background:var(--surface-1); border-right:1px solid var(--border);
  padding:16px 10px 12px; overflow-y:auto; display:flex; flex-direction:column;
}
.cfg-nav-titulo{
  font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-muted); padding:0 10px; margin-bottom:10px;
}
.cfg-nav-item{
  display:flex; align-items:center; gap:9px; width:100%; text-align:left;
  padding:8px 10px; margin-bottom:2px; border-radius:9px; cursor:pointer;
  background:transparent; border:1px solid transparent; box-shadow:none;
  font-family:inherit; font-size:13px; font-weight:500; color:var(--text-secondary);
}
.cfg-nav-item:hover{ background:var(--surface-2); color:var(--text-primary); }
.cfg-nav-item.active{
  background:var(--surface-2); border-color:var(--border); color:var(--text-primary);
  font-weight:650; box-shadow:var(--shadow-xs);
}
.cfg-ico{ flex-shrink:0; width:18px; display:inline-flex; align-items:center; justify-content:center; color:#8A93A8; }
.cfg-nav-item:hover .cfg-ico{ color:var(--text-secondary); }
.cfg-nav-item.active .cfg-ico{ color:var(--text-primary); }
.cfg-nav-rodape{ margin-top:auto; padding:10px 10px 0; border-top:1px solid var(--border); }
.cfg-sair{ font-size:12.5px; color:#B4322F; text-decoration:none; font-weight:600; }
.cfg-sair:hover{ text-decoration:underline; }

.cfg-conteudo{ flex:1; min-width:0; overflow-y:auto; padding:26px 30px 30px; }
.cfg-secao{ display:none; }
.cfg-secao.active{ display:block; animation:cfg-fade .12s ease; }
.cfg-secao h2{ font-size:19px; font-weight:700; letter-spacing:-.02em; margin:0 0 6px; }
.cfg-sub{ font-size:12.5px; color:var(--text-secondary); line-height:1.55; margin:0 0 18px; max-width:62ch; }
.cfg-h3{ font-size:13px; font-weight:700; letter-spacing:.02em; margin:24px 0 12px; padding-top:18px; border-top:1px solid var(--border); }

.cfg-atalho{
  display:flex; align-items:center; gap:12px; text-decoration:none; color:inherit;
  background:var(--surface-1); border:1px solid var(--border); border-radius:var(--radius);
  padding:12px 14px; margin-bottom:8px;
}
.cfg-atalho:hover{ border-color:var(--border-strong); box-shadow:var(--shadow-sm); background:var(--surface-2); }
.cfg-atalho-txt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.cfg-atalho-txt b{ font-size:13.5px; font-weight:650; }
.cfg-atalho-txt small{ font-size:11.5px; color:var(--text-muted); line-height:1.45; }
.cfg-atalho-seta{ color:var(--text-muted); font-size:18px; flex-shrink:0; }

.cfg-dados{ display:flex; flex-direction:column; gap:1px; border:1px solid var(--border); border-radius:var(--radius); overflow:hidden; }
.cfg-dados > div{ display:flex; gap:14px; padding:10px 14px; background:var(--surface-1); font-size:13px; }
.cfg-dados > div:nth-child(even){ background:var(--surface-2); }
.cfg-dados span{ width:150px; flex-shrink:0; color:var(--text-muted); }
.cfg-dados b{ font-weight:600; word-break:break-word; }

.cfg-form-senha{ display:flex; flex-direction:column; gap:12px; max-width:340px; }
.cfg-campo{ display:flex; flex-direction:column; gap:5px; }
.cfg-campo label{ font-size:12px; font-weight:600; color:var(--text-secondary); }
.cfg-campo label small{ font-weight:500; color:var(--text-muted); }
.cfg-campo input{ box-sizing:border-box; width:100%; height:38px; }
.cfg-nota{
  margin-top:14px; font-size:12px; color:var(--text-secondary); line-height:1.5;
  background:var(--surface-1); border:1px dashed var(--border); border-radius:var(--radius); padding:11px 13px;
}

@media (max-width:820px){
  .cfg-dialog{ flex-direction:column; height:92vh; }
  .cfg-nav{ width:100%; flex-direction:row; overflow-x:auto; border-right:0; border-bottom:1px solid var(--border); padding:10px; }
  .cfg-nav-titulo, .cfg-nav-rodape{ display:none; }
  .cfg-nav-item{ white-space:nowrap; width:auto; margin-bottom:0; }
  .cfg-conteudo{ padding:20px; }
  .cfg-dados span{ width:110px; }
}
.side-user{ padding:0 10px 16px; border-bottom:1px solid rgba(255,255,255,.1); margin-bottom:16px; }
.side-user .nome{ font-size:13.5px; font-weight:600; color:#fff; }
.side-user .cargo{ font-size:11.5px; color:rgba(255,255,255,.5); }
.side-user a{ font-size:11.5px; color:rgba(255,255,255,.55); text-decoration:none; }
.side-user a:hover{ color:#fff; }

.navitem{
  display:flex; align-items:center; gap:10px; width:100%; text-align:left;
  padding:9px 11px; font-size:13.5px; font-weight:500; line-height:1.2;
  border-radius:var(--radius); border:1px solid transparent; text-decoration:none;
  background:transparent; color:rgba(255,255,255,.66);
  margin-bottom:3px; cursor:pointer; font-family:inherit;
}
.navitem:hover{ background:rgba(255,255,255,.07); color:#fff; }
.navitem.active{
  background:rgba(255,255,255,.11); border-color:rgba(255,255,255,.10);
  color:#fff; font-weight:600; box-shadow:inset 3px 0 0 -1px var(--green);
}
.navitem.disabled{ opacity:.35; cursor:not-allowed; }
.navgroup > .navitem-toggle{
  display:flex; align-items:center; gap:10px; width:100%; text-align:left;
  padding:9px 11px; font-size:13.5px; font-weight:500; background:transparent;
  color:rgba(255,255,255,.66); border:1px solid transparent; border-radius:var(--radius);
  cursor:pointer; font-family:inherit;
}
.navgroup > .navitem-toggle:hover{ background:rgba(255,255,255,.07); color:#fff; }
.navgroup .chev{ margin-left:auto; transition:transform .15s ease; }
.navgroup.open .chev{ transform:rotate(90deg); }
.navgroup .subitens{ padding-left:14px; display:none; }
.navgroup.open .subitens{ display:block; }
.navgroup .subitens .navitem{ font-size:13px; padding:7px 11px; }

/* ---------- botões ---------- */
button, select, input[type=submit]{
  box-sizing:border-box;
  font-family:inherit; font-size:13.5px; font-weight:550; color:var(--text-primary);
  background:rgba(255,255,255,.82); border:1px solid rgba(19,24,41,.12);
  border-radius:var(--radius); padding:9px 14px; cursor:pointer;
  box-shadow:0 1px 2px rgba(19,24,41,.05);
  transition:background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .12s ease;
}
button:hover{ background:#fff; border-color:rgba(118,184,42,.5); box-shadow:0 3px 10px rgba(24,52,16,.10); }
button:active{ transform:translateY(1px); }
a.btn{ text-decoration:none; display:inline-flex; align-items:center; gap:7px; }
.btn-primary{
  background:linear-gradient(160deg, var(--navy-700), var(--navy-900));
  color:#fff; border-color:var(--navy-800); font-weight:600;
  box-shadow:0 4px 14px rgba(14,18,32,.22);
}
.btn-primary:hover{ background:linear-gradient(160deg, #232C46, var(--navy-800)); border-color:var(--navy-700); color:#fff; box-shadow:0 6px 18px rgba(14,18,32,.28); }
.btn-accent{
  background:linear-gradient(160deg, #8CCB36, var(--green-dark));
  color:#fff; border-color:var(--green-dark); font-weight:600;
  box-shadow:0 4px 14px rgba(92,149,28,.28);
}
.btn-accent:hover{ background:linear-gradient(160deg, var(--green), #4E8117); border-color:var(--green-dark); color:#fff; box-shadow:0 6px 18px rgba(92,149,28,.34); }
/* botão de conectar com Google: branco com borda, como a marca recomenda */
.btn-google{
  display:inline-flex; align-items:center; gap:10px;
  background:#fff; color:#3C4043; border:1px solid #DADCE0;
  border-radius:var(--radius); padding:10px 18px; font-weight:600; font-size:13.5px;
  text-decoration:none; box-shadow:0 1px 3px rgba(60,64,67,.14);
  transition:background-color .16s ease, box-shadow .16s ease, border-color .16s ease;
}
.btn-google:hover{ background:#F8F9FA; border-color:#C6C9CE; box-shadow:0 2px 8px rgba(60,64,67,.2); color:#202124; }

.btn-quiet{ background:transparent; border-color:transparent; color:var(--text-secondary); }
.btn-quiet:hover{ background:var(--surface-1); border-color:var(--border); color:var(--text-primary); }
.btn-danger{ background:transparent; border-color:transparent; color:#B4322F; }
.btn-danger:hover{ background:#FDECEC; border-color:#F6D6D5; color:#8F2523; }
.btn-sm{ padding:5px 10px; font-size:12.5px; }

/* ---------- superfícies ---------- */
.card{ background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); }
.panel{ background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-lg); box-shadow:var(--shadow-sm); padding:16px; }
.page-head{ margin-bottom:20px; }
.page-title{ font-size:22px; font-weight:700; letter-spacing:-.02em; margin:0 0 3px; }
.page-sub{ font-size:13.5px; color:var(--text-secondary); margin:0; max-width:70ch; }
.section-title{ font-size:14.5px; font-weight:600; margin-bottom:5px; }
.section-sub{ font-size:12.5px; color:var(--text-secondary); margin-bottom:12px; }

/* ---------- formulários ---------- */
input[type=text], input[type=email], input[type=password], input[type=date],
input[type=time], input[type=number], input[type=tel], input[type=url], textarea{
  /* box-sizing explicito: NAO depender do reset universal — se ele for
     descartado pelo parser (ja aconteceu em producao), o padding somava à
     largura e o campo invadia o vizinho do grid */
  box-sizing:border-box;
  font-family:inherit; font-size:13.5px; color:var(--text-primary);
  background:var(--campo-fundo);
  border:1px solid rgba(19,24,41,.10); border-radius:var(--radius);
  padding:0 13px; height:44px; width:100%;
  box-shadow:inset 0 1px 2px rgba(19,24,41,.04);
  transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease, transform .16s ease;
}
textarea{ resize:vertical; min-height:104px; height:auto; padding:12px 13px; line-height:1.6; }

/* selects precisam de width:100% e altura igual aos inputs, senão ficam
   minúsculos ao lado dos campos de texto e o formulário parece quebrado */
.field select, select.full{
  box-sizing:border-box;
  width:100%; height:44px; padding:0 38px 0 13px;
  font-family:inherit; font-size:13.5px; font-weight:400; color:var(--text-primary);
  background-color:var(--campo-fundo); border:1px solid rgba(19,24,41,.10);
  border-radius:var(--radius); cursor:pointer;
  box-shadow:inset 0 1px 2px rgba(19,24,41,.04);
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2359607A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 14px center;
  transition:border-color .16s ease, box-shadow .16s ease, background-color .16s ease;
}
.field select:hover, select.full:hover,
input:hover, textarea:hover{ border-color:rgba(118,184,42,.45); background-color:var(--campo-fundo-foco); }
input:focus, textarea:focus, select:focus{
  outline:none; border-color:var(--green);
  background-color:var(--campo-fundo-foco);
  box-shadow:0 0 0 4px rgba(118,184,42,.15), inset 0 1px 2px rgba(19,24,41,.03);
}
input::placeholder, textarea::placeholder{ color:#A3AAB8; }
input[type=checkbox], input[type=radio]{ accent-color:var(--green); width:16px; height:16px; cursor:pointer; }
input[type=color]{
  height:40px; width:56px; padding:4px; cursor:pointer;
  border:1px solid var(--border-strong); border-radius:var(--radius); background:var(--surface-2);
}
input[type=color]:hover{ border-color:#C4C9D6; }

label.field-label{
  display:block; font-size:11.5px; font-weight:650; letter-spacing:.03em;
  color:var(--text-secondary); margin-bottom:8px; text-transform:uppercase;
}
label.field-label .obrig{ color:#C1443F; margin-left:3px; }
.field{ margin-bottom:22px; }
.field-hint{ font-size:11.5px; color:var(--text-muted); margin-top:7px; line-height:1.5; }

/* barra de ações do formulário, também em vidro */
.form-actions{
  background:linear-gradient(160deg, rgba(255,255,255,.92), rgba(246,251,240,.86));
  -webkit-backdrop-filter:blur(20px) saturate(150%);
  backdrop-filter:blur(20px) saturate(150%);
  border:1px solid var(--vidro-borda);
  border-radius:var(--radius-lg);
  box-shadow:0 -4px 24px rgba(24,52,16,.08), var(--vidro-brilho);
}

/* gaps generosos: nenhum campo encosta no vizinho */
.form-grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:22px 20px; }
.form-grid-3{ display:grid; grid-template-columns:1fr 1fr 1fr; gap:22px 20px; }
.form-grid-4{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px 20px; }
.form-grid-2 > .field, .form-grid-3 > .field, .form-grid-4 > .field{ margin-bottom:0; }
.form-grid-2, .form-grid-3, .form-grid-4{ margin-bottom:22px; }

/* linha de "contato adicional" do cadastro de clientes: nome/tipo/e-mail/
   telefone/remover lado a lado no desktop, empilhados no mobile (ver
   @media abaixo) — antes isso era um grid-template-columns inline, que
   nenhuma media query conseguia sobrescrever. */
.linha-contato-adicional{
  display:grid; grid-template-columns:1.2fr .8fr 1fr 1fr auto;
  align-items:end; gap:8px; margin-bottom:8px;
}
.linha-contato-adicional > .field{ margin-bottom:0; }

/* Seções do formulário em VIDRO FOSCO com verde sutil da marca.
   O blur pega o gradiente ambiente do body::before, então o cartão parece
   um painel de vidro sobre a página em vez de um retângulo branco chapado. */
.form-section{
  position:relative;
  background:var(--vidro-fundo);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  backdrop-filter:blur(22px) saturate(150%);
  border:1px solid var(--vidro-borda);
  border-radius:var(--radius-xl);
  box-shadow:var(--vidro-sombra), var(--vidro-brilho);
  padding:28px 30px; margin-bottom:22px;
  transition:box-shadow .25s ease, transform .25s ease;
}
/* fio de luz verde no topo do vidro */
.form-section::after{
  content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
  border:1px solid transparent;
  background:linear-gradient(180deg, rgba(118,184,42,.30), rgba(118,184,42,0) 42%) border-box;
  -webkit-mask:linear-gradient(#000 0 0) padding-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
}
.form-section:hover{ box-shadow:0 16px 40px rgba(24,52,16,.11), 0 3px 10px rgba(24,52,16,.06), var(--vidro-brilho); }

.form-section > h3{
  font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--green-dark); margin:0 0 4px;
  display:flex; align-items:center; gap:9px;
}
/* marcador verde antes do título da seção */
.form-section > h3::before{
  content:""; width:4px; height:15px; border-radius:3px; flex-shrink:0;
  background:linear-gradient(180deg, var(--green), var(--green-dark));
}
.form-section > .desc{ font-size:12.5px; color:var(--text-secondary); margin:0 0 22px; }
.form-section > h3 + .form-grid-2,
.form-section > h3 + .form-grid-3,
.form-section > h3 + .form-grid-4,
.form-section > h3 + .field{ margin-top:22px; }
.form-section > .field:last-child,
.form-section > .form-grid-2:last-child,
.form-section > .form-grid-3:last-child,
.form-section > .form-grid-4:last-child{ margin-bottom:0; }

/* painéis e cartões seguem a mesma linguagem de vidro */
.panel{
  background:var(--vidro-fundo);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  backdrop-filter:blur(18px) saturate(140%);
  border:1px solid var(--vidro-borda);
  border-radius:var(--radius-lg);
  box-shadow:var(--vidro-sombra), var(--vidro-brilho);
  padding:20px;
}

/* barra de ações fixa no rodapé do formulário */
.form-actions{
  position:sticky; bottom:0; z-index:5;
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  background:var(--surface-2); border:1px solid var(--border);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-md);
  padding:14px 18px; margin-top:4px;
}
.form-actions .espaco{ flex:1; }
.form-actions .btn-primary, .form-actions button[type=submit]{ padding:9px 20px; }

.form-error{ font-size:12px; color:#B4322F; margin-top:5px; }
.campo-invalido{ border-color:#D9534F !important; box-shadow:0 0 0 3px rgba(217,83,79,.14) !important; }

/* linha de filtros acima das tabelas */
.filtros{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:16px; }
.filtros input[type=text], .filtros input[type=search]{ width:auto; min-width:240px; flex:0 1 320px; }
.filtros select{
  width:auto; min-width:170px; height:40px; padding:0 34px 0 11px;
  font-family:inherit; font-size:13.5px; color:var(--text-primary);
  background-color:var(--surface-2); border:1px solid var(--border-strong);
  border-radius:var(--radius); cursor:pointer;
  appearance:none; -webkit-appearance:none; -moz-appearance:none;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2359607A' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center;
}

/* ---------- tabelas ---------- */
.tbl-wrap{
  background:var(--vidro-fundo);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  backdrop-filter:blur(18px) saturate(140%);
  border:1px solid var(--vidro-borda); border-radius:var(--radius-lg);
  box-shadow:var(--vidro-sombra), var(--vidro-brilho); overflow:hidden;
}
.tbl thead th{ background:rgba(247,251,243,.9) !important; }
.tbl tbody tr{ transition:background-color .14s ease; }
.tbl tbody tr:hover{ background:rgba(118,184,42,.06) !important; }
.tbl-scroll{ overflow-x:auto; }
.tbl{ width:100%; border-collapse:collapse; font-size:13px; }
.tbl thead th{
  text-align:left; font-size:11px; font-weight:600; letter-spacing:.05em; text-transform:uppercase;
  color:var(--text-muted); background:var(--surface-1); padding:10px 14px; border-bottom:1px solid var(--border); white-space:nowrap;
}
.tbl tbody td{ padding:11px 14px; border-top:1px solid var(--border); vertical-align:middle; }
.tbl tbody tr:hover{ background:var(--surface-1); }
.num{ text-align:right; font-variant-numeric:tabular-nums; }

.status-chip{ display:inline-flex; align-items:center; gap:5px; font-size:11.5px; font-weight:600; padding:4px 9px; border-radius:999px; white-space:nowrap; }
.status-chip .dot{ width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.badge-ativo{ background:#EAF6DA; color:#3D6B14; } .badge-ativo .dot{ background:#76B82A; }
.badge-inativo{ background:#EEF0F4; color:#4A5169; } .badge-inativo .dot{ background:#98A0B5; }
.badge-prospect{ background:#E4EFFC; color:#1B5698; } .badge-prospect .dot{ background:#3B82D9; }
.badge-bloqueado{ background:#FDEAEA; color:#B22228; } .badge-bloqueado .dot{ background:#D9534F; }
.badge-concluido{ background:#ECEBFD; color:#453BA0; } .badge-concluido .dot{ background:#7A6FE0; }

.empty{
  border:1.5px dashed rgba(118,184,42,.35); border-radius:var(--radius-lg);
  background:linear-gradient(160deg, rgba(255,255,255,.7), rgba(244,250,236,.6));
  -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px);
  padding:36px 24px; text-align:center; font-size:13.5px; color:var(--text-muted);
}

/* cards de indicador (stat) também em vidro */
.stat{
  background:var(--vidro-fundo);
  -webkit-backdrop-filter:blur(18px) saturate(140%);
  backdrop-filter:blur(18px) saturate(140%);
  border:1px solid var(--vidro-borda); border-radius:var(--radius-lg);
  box-shadow:var(--vidro-sombra), var(--vidro-brilho);
  padding:17px 19px;
  transition:transform .2s ease, box-shadow .2s ease;
}
.stat:hover{ transform:translateY(-2px); box-shadow:0 16px 36px rgba(24,52,16,.12), var(--vidro-brilho); }

.alert{
  border-radius:var(--radius); padding:11px 14px; font-size:13px; margin-bottom:16px;
  border:1px solid transparent; display:flex; align-items:center; gap:12px; flex-wrap:wrap;
}
.alert-sucesso{ background:var(--green-soft); color:var(--green-dark); border-color:#D3E9B5; }
.alert-erro{ background:#FDECEC; color:#8F2523; border-color:#F6D6D5; }
.alert-desfazer{ margin-left:auto; }

/* ================= Projetos: lista em cartões ================= */
.stat-sub{ font-size:11px; color:var(--text-muted); margin-top:2px; }
.wfl-grid{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:14px; align-items:stretch;
}
.wfl-card{
  display:flex; flex-direction:column; gap:8px; text-decoration:none; color:inherit;
  background:var(--surface-2); border:1px solid var(--border); border-top:4px solid var(--border);
  border-radius:var(--radius-xl); padding:14px 16px 12px; box-shadow:var(--shadow-sm);
  transition:transform .12s ease, box-shadow .12s ease;
}
.wfl-card:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.wfl-chip{
  align-self:flex-start; display:inline-flex; align-items:center; gap:6px;
  font-size:10px; font-weight:700; letter-spacing:.06em;
  padding:3px 9px; border-radius:999px; border:1px solid var(--border); background:var(--surface-1);
  color:var(--text-secondary);
}
.wfl-chip i{ width:7px; height:7px; border-radius:50%; }
.wfl-nome{ font-size:15.5px; font-weight:750; letter-spacing:-.015em; line-height:1.25; }
.wfl-meta{ font-size:12px; color:var(--text-muted); }
.wfl-prog{
  position:relative; display:flex; align-items:center; gap:8px; height:8px;
  background:rgba(19,24,41,.08); border-radius:999px; margin:2px 34px 2px 0;
}
.wfl-prog i{ position:absolute; left:0; top:0; bottom:0; border-radius:999px; }
.wfl-prog b{ position:absolute; right:-34px; top:50%; transform:translateY(-50%); font-size:12px; font-variant-numeric:tabular-nums; }
.wfl-rodape{ display:flex; align-items:center; gap:8px; margin-top:2px; }
.wfl-avatares{ display:flex; gap:3px; flex:1; }
.wfl-status{
  font-size:11px; font-weight:700; padding:3px 10px; border-radius:999px;
  background:var(--green-soft); color:var(--green-dark); border:1px solid #D3E9B5;
}
.wfl-status.atraso{ background:rgba(180,50,47,.1); color:#B4322F; border-color:rgba(180,50,47,.35); }
.wfl-prox{
  font-size:12px; color:var(--text-secondary); border-top:1px dashed var(--border);
  padding-top:8px; margin-top:2px;
}
.wfl-prox.atraso{ color:#B4322F; font-weight:650; }

/* ---------- popup "Novo projeto": as 15 ferramentas ---------- */
.wfm-overlay{
  position:fixed; inset:0; z-index:900; background:rgba(11,15,26,.45);
  backdrop-filter:blur(3px); display:flex; align-items:center; justify-content:center; padding:22px;
}
.wfm-caixa{
  width:min(1060px, 100%); max-height:88vh; overflow:auto;
  background:var(--surface-1); border:1px solid var(--border); border-radius:18px;
  box-shadow:var(--shadow-lg); padding:22px 24px 26px;
}
.wfm-cabeca{ display:flex; align-items:flex-start; gap:14px; margin-bottom:16px; }
.wfm-cabeca h2{ font-size:19px; letter-spacing:-.015em; }
.wfm-cabeca p{ font-size:13px; color:var(--text-secondary); margin-top:4px; max-width:640px; }
.wfm-fechar{
  margin-left:auto; width:30px; height:30px; flex-shrink:0; border-radius:9px; cursor:pointer;
  background:transparent; border:1px solid var(--border); color:var(--text-secondary);
}
.wfm-fechar:hover{ background:rgba(19,24,41,.06); color:var(--text-primary); }
.wfm-grade{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:12px; }
.wfm-item{
  background:var(--surface-2); border:1px solid var(--border); border-radius:14px;
  padding:13px 14px; display:flex; flex-direction:column; gap:8px;
}
.wfm-item-topo{ display:flex; align-items:center; gap:8px; }
.wfm-num{ font-size:10.5px; font-weight:700; color:var(--text-muted); border:1px solid var(--border); border-radius:7px; padding:1px 6px; }
.wfm-titulo{ font-size:13.5px; font-weight:700; letter-spacing:-.01em; flex:1; }
.wfm-tag{
  font-size:9.5px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  padding:2px 8px; border-radius:999px; background:rgba(118,184,42,.12); color:var(--green-dark);
}
.wfm-mais{
  width:34px; height:34px; flex-shrink:0; border-radius:10px; cursor:pointer;
  font-size:20px; font-weight:700; line-height:1; padding:0;
  background:var(--green); border:1px solid var(--green); color:#fff;
}
.wfm-mais:hover{ filter:brightness(1.07); }
.wfm-desc{ font-size:12px; color:var(--text-secondary); line-height:1.5; }
.wfm-exemplo{
  border:1px dashed var(--border-strong); border-radius:10px; padding:10px;
  background:var(--surface-1); margin-top:auto;
}
.wfm-form{ display:flex; gap:8px; align-items:center; }
.wfm-form input[type=text]{ flex:1; height:36px; }
.wfm-form input[type=color]{ width:46px; height:36px; padding:3px; flex-shrink:0; }

/* miniaturas de exemplo do popup */
.exf-kb{ display:flex; gap:6px; }
.exf-kb > div{ flex:1; background:rgba(19,24,41,.04); border-radius:7px; padding:5px; }
.exf-kb i{ display:block; height:5px; border-radius:3px; background:rgba(19,24,41,.18); margin-bottom:5px; }
.exf-kb b{ display:block; height:9px; border-radius:4px; margin-bottom:4px; opacity:.75; }
.exf-tab{ display:grid; grid-template-columns:1fr auto; gap:3px 10px; font-size:10.5px; color:var(--text-secondary); }
.exf-tab b{ font-variant-numeric:tabular-nums; }
.exf-chips{ display:flex; flex-wrap:wrap; gap:4px; }
.exf-chips i{ font-style:normal; font-size:10px; font-weight:600; padding:3px 8px; border-radius:999px; background:rgba(24,95,165,.1); color:#185FA5; }
.exf-swot{ display:grid; grid-template-columns:1fr 1fr; gap:4px; }
.exf-swot i{ font-style:normal; display:flex; align-items:center; justify-content:center; height:26px; border-radius:6px; font-size:11px; font-weight:800; color:rgba(19,24,41,.6); }
.exf-okr{ display:flex; flex-direction:column; gap:6px; }
.exf-okr span{ display:block; height:8px; border-radius:99px; background:linear-gradient(90deg,#185FA5,#185FA5); position:relative; }
.exf-okr span::after{ content:""; position:absolute; left:0; right:-0; top:0; bottom:0; border-radius:99px; background:rgba(19,24,41,.08); z-index:-1; }
.exf-bmc{ display:grid; grid-template-columns:repeat(5,1fr); gap:4px; }
.exf-bmc i{ height:22px; border-radius:5px; background:rgba(19,24,41,.07); }
.exf-bmc i.w{ grid-column:span 2; }
.exf-bmc i.w:last-child{ grid-column:span 3; }
.exf-s5{ display:flex; flex-direction:column; gap:3px; font-size:10.5px; }
.exf-s5 i{ font-style:normal; color:var(--text-muted); }
.exf-s5 i.ok{ color:var(--green-dark); font-weight:650; }
.exf-flow{ display:flex; flex-direction:column; align-items:center; font-size:10px; color:var(--text-secondary); }
.exf-flow i{ font-style:normal; border:1px solid var(--border-strong); border-radius:5px; padding:2px 10px; background:var(--surface-2); }
.exf-flow i.r{ border-radius:999px; }
.exf-flow i.d{ border-style:dashed; }
.exf-flow s{ text-decoration:none; color:var(--text-muted); line-height:1.1; }

/* ---------- editores das ferramentas (página inteira) ---------- */
.fx-topo{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:11px 16px; border-top:1px solid var(--border); background:rgba(19,24,41,.02);
}
.fx-tag{
  font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.05em;
  padding:3px 9px; border-radius:999px; background:rgba(118,184,42,.12); color:var(--green-dark);
}
.fx-nome{ font-size:13px; font-weight:700; }
.fx-desc{ font-size:11.5px; color:var(--text-muted); flex:1; min-width:200px; }
.fx-salvo{ font-size:11.5px; color:var(--text-muted); font-variant-numeric:tabular-nums; }
.fx-salvo.ok{ color:var(--green-dark); font-weight:650; }
.fx-salvo.erro{ color:#B4322F; font-weight:650; }
.fx-salvo.pendente{ color:#8A6110; }
.fx-raiz{ padding:16px; border-top:1px solid var(--border); }
.fx-raiz input[type=text], .fx-raiz textarea{ width:100%; }
.fx-raiz textarea{ min-height:64px; resize:vertical; }
.fx-cartao{
  background:var(--surface-2); border:1px solid var(--border); border-radius:12px;
  padding:12px 13px; margin-bottom:12px;
}
.fx-cartao h4{ font-size:13px; margin-bottom:8px; display:flex; align-items:center; gap:7px; }
.fx-azul{ color:#185FA5; }
.fx-vermelho{ color:#B4322F; }
.fx-dot{ width:10px; height:10px; border-radius:3px; display:inline-block; }
.fx-sub{ display:block; font-size:11px; color:var(--text-muted); margin:-4px 0 8px; }
.fx-dica{ font-size:12px; color:var(--text-muted); margin-top:10px; }
.fx-dica.ruim{ color:#B4322F; font-weight:650; }
.fx-dica.bom{ color:var(--green-dark); font-weight:650; }
.fx-cont{
  font-size:10px; font-weight:700; padding:1px 7px; border-radius:999px;
  background:rgba(19,24,41,.07); color:var(--text-secondary);
}
.fx-chips-list{ display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.fx-chip{
  display:inline-flex; align-items:center; gap:5px; font-size:12px;
  font-variant-numeric:tabular-nums; padding:4px 9px; border-radius:999px;
  background:var(--surface-2); border:1px solid var(--border); color:var(--text-secondary);
}
.fx-chip-x{
  width:16px; height:16px; padding:0; border:0; border-radius:50%; cursor:pointer;
  background:rgba(19,24,41,.08); color:var(--text-muted); font-size:11px; line-height:1;
}
.fx-chip-x:hover{ background:rgba(180,50,47,.15); color:#B4322F; }
.fx-kb-lim-inp{ width:52px !important; height:28px; font-size:12px; text-align:center; flex-shrink:0; }
.fx-kb-pega{ cursor:grab; color:var(--text-muted); font-size:13px; flex-shrink:0; }
.fx-kb-card.arrastando{ opacity:.35; }
.fx-kb-card.sobre{ border-top:2px solid var(--green); }
.fx-kb-col.sobre{ background:rgba(118,184,42,.07); border-color:var(--green); }
.fx-eis-mover{ width:auto !important; height:28px; padding:2px 4px; font-size:11.5px; flex-shrink:0; }
.fx-historico{ margin-top:16px; border-top:1px solid var(--border); padding-top:12px; }
.fx-historico h4{ font-size:13px; margin-bottom:8px; }
.fx-hist-item{
  background:var(--surface-2); border:1px solid var(--border); border-radius:10px;
  padding:8px 12px; margin-bottom:8px; font-size:13px;
}
.fx-hist-item summary{ cursor:pointer; font-weight:650; font-size:12.5px; }
.fx-hist-item p{ margin:6px 0 0; color:var(--text-secondary); }
.fx-hist-item button{ margin-top:8px; }

/* barra de Desfazer/Refazer/Exportar do editor */
.fx-barra{ display:inline-flex; gap:6px; }
.fx-undo{
  display:inline-flex; align-items:center; gap:5px; height:28px; padding:0 11px;
  border-radius:8px; cursor:pointer; font-size:11.5px; font-weight:650;
  background:var(--surface-2); border:1px solid var(--border); color:var(--text-secondary);
}
.fx-undo:hover:not(:disabled){ background:#fff; color:var(--text-primary); border-color:var(--border-strong); }
.fx-undo:disabled{ opacity:.35; cursor:default; }

/* ---------- base comum: comentários, versões e modelos ---------- */
.wfx-painel{
  display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:16px;
}
@media(max-width:900px){ .wfx-painel{ grid-template-columns:1fr; } }
.wfx-col{
  background:var(--surface-2); border:1px solid var(--border);
  border-radius:var(--radius-xl); padding:16px 18px;
}
.wfx-col h3{ font-size:14px; letter-spacing:-.01em; margin-bottom:4px; }
.wfx-sub{ font-size:12px; color:var(--text-muted); margin-bottom:10px; line-height:1.5; }
.wfx-hint{ font-size:11px; color:var(--text-muted); margin:6px 0 10px; }
.wfx-hint code{
  background:rgba(24,95,165,.08); color:#185FA5; padding:1px 5px;
  border-radius:5px; font-size:11px; font-weight:650;
}
.wfx-form-com{ display:flex; gap:8px; align-items:flex-start; flex-wrap:wrap; }
.wfx-form-com textarea{ flex:1; min-width:180px; min-height:52px; resize:vertical; }
.wfx-form-com input[type=text]{ flex:1; min-width:150px; height:34px; }
.wfx-lista{ margin-top:12px; max-height:340px; overflow-y:auto; }
.wfx-vazio{ font-size:12px; color:var(--text-muted); font-style:italic; line-height:1.55; }
.wfx-com{
  border-top:1px solid var(--border); padding:10px 0;
}
.wfx-com.resolvido{ opacity:.5; }
.wfx-com.resolvido p{ text-decoration:line-through; }
.wfx-com-topo{ display:flex; align-items:center; gap:7px; margin-bottom:5px; }
.wfx-com-topo b{ font-size:12.5px; }
.wfx-com-topo small{ font-size:11px; color:var(--text-muted); }
.wfx-com p{ font-size:13px; line-height:1.5; white-space:pre-wrap; }
.wfx-mencao{ color:#185FA5; font-weight:650; background:rgba(24,95,165,.08); padding:0 3px; border-radius:4px; }
.wfx-mini{
  width:22px; height:22px; padding:0; border-radius:6px; cursor:pointer; font-size:12px;
  background:transparent; border:1px solid var(--border); color:var(--text-muted);
}
.wfx-mini:hover{ background:rgba(19,24,41,.06); color:var(--text-primary); }
.wfx-mini.perigo:hover{ background:rgba(180,50,47,.12); color:#B4322F; border-color:rgba(180,50,47,.4); }
.wfx-versao{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  border-top:1px solid var(--border); padding:9px 0; font-size:12.5px;
}
.wfx-versao small{ display:block; font-size:11px; color:var(--text-muted); margin-top:1px; }

/* modelos salvos no popup Novo projeto */
.wfm-modelos{
  background:rgba(118,184,42,.06); border:1px solid #D3E9B5;
  border-radius:14px; padding:14px 16px; margin-bottom:16px;
}
.wfm-modelos h3{ font-size:14px; margin-bottom:2px; }
.wfm-modelos > p{ font-size:12px; color:var(--text-secondary); margin-bottom:10px; }
.wfm-modelos-lista{ display:flex; flex-direction:column; gap:8px; }
.wfm-modelo{
  display:flex; align-items:center; gap:9px; flex-wrap:wrap;
  background:var(--surface-1); border:1px solid var(--border);
  border-radius:11px; padding:8px 11px;
}
.wfm-modelo-cor{ width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.wfm-modelo-nome{ font-size:13px; font-weight:650; }
.wfm-modelo small{ font-size:11px; color:var(--text-muted); flex:1; }
.wfm-modelo .wfm-mais{ width:28px; height:28px; font-size:16px; }
.wfm-modelo .wfm-form{ flex-basis:100%; }
.fx-lista{ display:flex; flex-direction:column; gap:6px; }
.fx-item{ display:flex; gap:6px; align-items:center; }
.fx-x{
  width:26px; height:26px; flex-shrink:0; padding:0; border-radius:8px; cursor:pointer;
  background:transparent; border:1px solid var(--border); color:var(--text-muted); font-size:13px;
}
.fx-x:hover{ background:rgba(180,50,47,.1); color:#B4322F; border-color:rgba(180,50,47,.4); }
.fx-add{ display:flex; gap:6px; align-items:center; margin-top:6px; }
.fx-add input{ flex:1; height:34px; font-size:13px; }
.fx-mais{
  width:34px; height:34px; flex-shrink:0; padding:0; border-radius:9px; cursor:pointer;
  font-size:17px; font-weight:700; background:var(--green); border:1px solid var(--green); color:#fff;
}
.fx-mais.largo{ width:auto; padding:0 14px; font-size:13px; }
.fx-mais:hover{ filter:brightness(1.07); }
.fx-btn-add{ margin-top:8px; cursor:pointer; }
.fx-grafico{ background:var(--surface-2); border:1px solid var(--border); border-radius:12px; padding:10px; margin-bottom:12px; }
.fx-wgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:10px; }
.fx-swot{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.fx-tab{ width:100%; border-collapse:collapse; font-size:13px; margin-bottom:6px; }
.fx-tab th{
  font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-muted);
  text-align:left; padding:6px 8px; border-bottom:1px solid var(--border-strong);
}
.fx-tab td{ padding:6px 8px; border-bottom:1px solid var(--border); }
.fx-tab tr.top td{ background:rgba(24,95,165,.07); }
.fx-tab .fx-rank{ font-weight:700; color:#185FA5; white-space:nowrap; }
.fx-tab .fx-score{ font-weight:750; font-variant-numeric:tabular-nums; }
.fx-tab select{ width:auto; height:32px; padding:3px 6px; }
.fx-tab input[type=number]{ width:90px; height:32px; }
/* ============ Painel de Fluxo: uma coluna por etapa ============ */
.pf-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.pf-check{
  display:inline-flex; align-items:center; gap:7px; font-size:12.5px;
  color:var(--text-secondary); cursor:pointer; white-space:nowrap;
}
.pf-check input{ width:15px; height:15px; accent-color:var(--green); }
.pf-quadro{
  display:flex; gap:14px; align-items:flex-start; overflow-x:auto;
  padding:14px; border-radius:16px; scrollbar-width:thin;
  background:linear-gradient(180deg, rgba(19,24,41,.022), rgba(19,24,41,.045));
  border:1px solid var(--border);
}
.pf-col{
  flex:0 0 296px; display:flex; flex-direction:column; gap:9px;
  background:rgba(252,252,251,.6); border:1px solid var(--border);
  border-radius:12px; padding:10px; max-height:calc(100vh - 300px); overflow-y:auto;
}
.pf-col.tem-atraso{ border-color:rgba(180,50,47,.35); }
.pf-col-topo{
  display:flex; align-items:center; gap:7px; flex-wrap:wrap;
  padding-bottom:9px; border-bottom:2px solid var(--border);
  position:sticky; top:-10px; background:rgba(252,252,251,.96); z-index:2;
  margin:-10px -10px 0; padding:10px;
}
.pf-col-num{
  font-size:10px; font-weight:800; letter-spacing:.08em;
  padding:2px 8px; border-radius:999px; background:var(--navy-800); color:#fff;
}
.pf-col-nome{ font-size:13.5px; font-weight:750; letter-spacing:-.01em; flex:1; min-width:0; }
.pf-col-cont{
  font-size:11px; font-weight:700; padding:1px 8px; border-radius:999px;
  background:rgba(19,24,41,.08); color:var(--text-secondary);
}
.pf-col-atraso{
  width:100%; font-size:10.5px; font-weight:700; color:#B4322F;
  background:rgba(180,50,47,.1); border-radius:6px; padding:3px 8px; text-align:center;
}
.pf-cli{
  background:var(--surface-1); border:1px solid var(--border); border-left:3px solid var(--border-strong);
  border-radius:10px; padding:11px 12px; box-shadow:0 1px 2px rgba(19,24,41,.05);
}
.pf-cli.atrasada{ border-left-color:#B4322F; background:linear-gradient(180deg, rgba(180,50,47,.05), var(--surface-1)); }
.pf-cli.feita{ border-left-color:var(--green); opacity:.72; }
.pf-cli-topo{ display:flex; align-items:center; gap:8px; }
.pf-cli-nome{ font-size:13.5px; font-weight:700; color:inherit; text-decoration:none; flex:1; min-width:0; }
.pf-cli-nome:hover{ text-decoration:underline; }
.ct-numero{
  font-size:10.5px; font-weight:800; letter-spacing:.03em; font-variant-numeric:tabular-nums;
  padding:2px 7px; border-radius:6px; background:rgba(24,95,165,.1); color:#185FA5;
  text-decoration:none; white-space:nowrap;
}
a.ct-numero:hover, .pf-cli-ct:hover{ background:rgba(24,95,165,.2); }
.pf-cli-ct{
  font-size:10.5px; font-weight:800; letter-spacing:.03em; font-variant-numeric:tabular-nums;
  padding:2px 7px; border-radius:6px; background:rgba(24,95,165,.1); color:#185FA5;
  text-decoration:none; white-space:nowrap; flex-shrink:0;
}
.pf-cli-meta{ font-size:11.5px; color:var(--text-muted); margin-top:3px; }
.pf-cli-prazo{ font-size:11.5px; margin-top:5px; }
.pf-prazo{ color:var(--text-secondary); }
.pf-atraso{ color:#B4322F; font-weight:700; }
.pf-ok{ color:var(--green-dark); font-weight:700; }
.pf-barra{
  position:relative; height:6px; margin:8px 34px 0 0;
  background:rgba(19,24,41,.08); border-radius:99px;
}
.pf-barra i{ position:absolute; left:0; top:0; bottom:0; background:var(--green); border-radius:99px; }
.pf-barra b{ position:absolute; right:-34px; top:-5px; font-size:11px; font-variant-numeric:tabular-nums; color:var(--text-muted); }
.pf-hist{ margin-top:9px; font-size:12px; }
.pf-hist summary{ cursor:pointer; color:var(--text-secondary); font-weight:600; font-size:11.5px; }
.pf-hist-item{ border-left:2px solid var(--border-strong); padding:5px 0 5px 9px; margin-top:6px; }
.pf-hist-item b{ font-variant-numeric:tabular-nums; }
.pf-hist-item p{ color:var(--text-secondary); margin:3px 0; line-height:1.45; }
.pf-hist-item a{ font-size:11.5px; }
.pf-btn-concluir, .pf-btn-reabrir{
  width:100%; margin-top:10px; padding:8px 10px; border-radius:8px; cursor:pointer;
  font-size:12px; font-weight:700; border:1px solid var(--green);
  background:rgba(118,184,42,.12); color:var(--green-dark);
}
.pf-btn-concluir:hover{ background:var(--green); color:#fff; }
.pf-btn-reabrir{ border-color:var(--border-strong); background:transparent; color:var(--text-secondary); }
.pf-btn-reabrir:hover{ background:rgba(19,24,41,.06); color:var(--text-primary); }
.pf-form{
  margin-top:10px; padding-top:10px; border-top:1px dashed var(--border);
  display:flex; flex-direction:column; gap:8px;
}
.pf-form label{
  display:flex; flex-direction:column; gap:3px;
  font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-muted);
}
.pf-form textarea{ resize:vertical; font-size:12.5px; }
.pf-form-acoes{ display:flex; gap:7px; }

/* fluxo de um cliente: linha do tempo das etapas */
.pf-linha-tempo{ display:flex; flex-direction:column; gap:0; }
.pf-lt-item{ display:flex; gap:14px; position:relative; padding-bottom:16px; }
.pf-lt-item::before{
  content:""; position:absolute; left:15px; top:32px; bottom:0; width:2px; background:var(--border-strong);
}
.pf-lt-item:last-child::before{ display:none; }
.pf-lt-marca{
  width:32px; height:32px; flex-shrink:0; border-radius:50%; z-index:1;
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:800; background:var(--surface-2);
  border:2px solid var(--border-strong); color:var(--text-secondary);
}
.pf-lt-item.ok .pf-lt-marca{ background:var(--green); border-color:var(--green); color:#fff; }
.pf-lt-item.ok::before{ background:var(--green); }
.pf-lt-item.atraso .pf-lt-marca{ border-color:#B4322F; color:#B4322F; }
.pf-lt-corpo{
  flex:1; min-width:0; background:var(--surface-2); border:1px solid var(--border);
  border-radius:12px; padding:12px 14px;
}
.pf-lt-item.atraso .pf-lt-corpo{ border-color:rgba(180,50,47,.35); }
.pf-lt-nome{ font-size:14px; font-weight:700; display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
.pf-lt-chip{
  font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  padding:2px 8px; border-radius:999px; background:rgba(19,24,41,.08); color:var(--text-secondary);
}
.pf-lt-item.ok .pf-lt-chip{ background:var(--green-soft); color:var(--green-dark); }
.pf-lt-item.atraso .pf-lt-chip{ background:rgba(180,50,47,.12); color:#B4322F; }
.pf-lt-prazos{ font-size:12px; color:var(--text-secondary); margin-top:5px; line-height:1.5; }
.pf-lt-reg{
  margin-top:9px; padding:8px 11px; border-radius:9px;
  background:rgba(118,184,42,.07); border-left:3px solid var(--green); font-size:12.5px;
}
.pf-lt-reg p{ color:var(--text-secondary); margin:4px 0; line-height:1.5; }

/* etapa desmarcada na criação do contrato */
.ct-etapa-usar{ width:16px; height:16px; accent-color:var(--green); flex-shrink:0; }
.ct-etapa.fora{ opacity:.4; }
.ct-etapa.fora .ct-etapa-nome{ text-decoration:line-through; }
.ct-etapa.fora input[type=number]{ pointer-events:none; opacity:.5; }

/* outros contratos do mesmo cliente */
.ct-irmaos-cont{
  font-size:11px; font-weight:700; padding:1px 8px; border-radius:999px;
  background:rgba(19,24,41,.08); color:var(--text-secondary); margin-left:6px;
}
.ct-irmaos{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:10px; }
.ct-irmao{
  display:flex; align-items:center; gap:8px; flex-wrap:wrap; text-decoration:none; color:inherit;
  background:var(--surface-2); border:1px solid var(--border); border-radius:11px; padding:11px 13px;
  transition:border-color .12s, transform .12s;
}
.ct-irmao:hover{ border-color:var(--border-strong); transform:translateY(-1px); }
.ct-irmao.arquivado{ opacity:.6; }
.ct-irmao-prod{ font-size:13px; font-weight:650; flex:1; min-width:0; }
.ct-irmao-meta{ width:100%; font-size:11.5px; color:var(--text-muted); }
.ct-irmao-status{
  font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  padding:2px 8px; border-radius:999px; background:var(--green-soft); color:var(--green-dark);
}
.ct-irmao-status.off{ background:rgba(19,24,41,.08); color:var(--text-muted); }
.ct-irmao-prog{
  position:relative; width:100%; height:5px; margin:2px 32px 0 0;
  background:rgba(19,24,41,.08); border-radius:99px;
}
.ct-irmao-prog i{ position:absolute; left:0; top:0; bottom:0; background:var(--green); border-radius:99px; }
.ct-irmao-prog b{ position:absolute; right:-32px; top:-5px; font-size:10.5px; color:var(--text-muted); }

/* ============ Kanban: colunas (fases) × raias (linhas) ============ */
.kb-quadro{
  overflow-x:auto; padding:4px; scrollbar-width:thin;
  background:
    radial-gradient(1200px 300px at 12% -10%, rgba(118,184,42,.06), transparent 60%),
    linear-gradient(180deg, rgba(19,24,41,.022), rgba(19,24,41,.045));
  border:1px solid var(--border); border-radius:16px;
}
.kb-pista{ display:flex; flex-direction:column; gap:10px; min-width:min-content; padding:8px; }

/* cabeçalho das colunas — fica colado no topo enquanto o quadro rola */
.kb-cab{ display:flex; gap:12px; align-items:flex-start; position:sticky; top:0; z-index:5; }
.kb-cab-canto{ flex:0 0 158px; }
.kb-cab-col{
  flex:0 0 288px; border-radius:12px 12px 0 0; padding:9px 4px 0;
  background:linear-gradient(180deg, var(--surface-1), rgba(252,252,251,.72));
  border:1px solid var(--border); border-bottom:0;
  box-shadow:inset 0 3px 0 0 var(--kb-cor-col, #8A93A8);
  backdrop-filter:blur(6px);
}
.kb-cab-col.recolhida{ flex-basis:56px; }
.kb-cab-col.estourou{ box-shadow:inset 0 3px 0 0 #d1453b; }
.kb-col-topo{ display:flex; align-items:center; gap:6px; padding:2px 7px 7px; }
.kb-col-seta{
  width:20px; height:20px; padding:0; border:0; background:transparent; cursor:pointer;
  color:var(--text-muted); font-size:11px; flex-shrink:0; border-radius:5px;
}
.kb-col-seta:hover{ background:rgba(19,24,41,.07); color:var(--text-primary); }
.kb-col-nome{
  flex:1; min-width:0; border:0 !important; background:transparent !important; height:26px; padding:0 3px !important;
  font-size:14px; font-weight:700; letter-spacing:-.01em; color:var(--text-primary);
}
.kb-col-nome:focus{ background:var(--surface-1) !important; border-radius:6px; }
.kb-col-cont{ font-size:12px; color:var(--text-muted); font-variant-numeric:tabular-nums; flex-shrink:0; }
.kb-col-menu{ display:flex; gap:2px; align-items:center; opacity:0; transition:opacity .12s; }
.kb-col-topo:hover .kb-col-menu{ opacity:1; }
.kb-col-wip{
  width:42px !important; height:22px; padding:0 4px !important; font-size:11px; text-align:center;
  border-radius:5px; color:var(--text-muted);
}
.kb-col-bt{
  width:22px; height:22px; padding:0; border:0; background:transparent; cursor:pointer;
  color:var(--text-muted); font-size:12px; border-radius:5px;
}
.kb-col-bt:hover{ background:rgba(19,24,41,.08); color:var(--text-primary); }
.kb-col-bt.perigo:hover{ background:rgba(209,69,59,.12); color:#d1453b; }
.kb-cab-col.recolhida .kb-col-nome,
.kb-cab-col.recolhida .kb-col-menu,
.kb-cab-col.recolhida .kb-col-barra{ display:none; }
.kb-col-barra{ height:3px; background:rgba(19,24,41,.08); margin:0 7px 7px; border-radius:99px; overflow:hidden; }
.kb-col-barra i{ display:block; height:100%; border-radius:99px; transition:width .25s; }
.kb-wip-alerta{
  font-size:10.5px; font-weight:700; color:#d1453b; background:rgba(209,69,59,.1);
  border-radius:6px; padding:4px 8px; margin:0 7px 7px; text-align:center;
}

/* ---- raias: as LINHAS do quadro ---- */
.kb-raia{
  display:flex; gap:12px; align-items:stretch; border-radius:12px;
  background:rgba(19,24,41,.02); /* reserva para navegador sem color-mix */
  background:linear-gradient(90deg, color-mix(in srgb, var(--kb-cor-raia) 9%, transparent), transparent 42%);
}
.kb-quadro:not(.com-raias) .kb-raia{ background:none; }
.kb-raia-cab{
  flex:0 0 158px; display:flex; align-items:center; gap:5px; flex-wrap:wrap;
  align-content:center; padding:12px 10px;
  border-left:4px solid var(--kb-cor-raia); border-radius:10px 0 0 10px;
  background:linear-gradient(180deg, var(--surface-1), rgba(252,252,251,.6));
}
.kb-raia-seta{
  width:20px; height:20px; padding:0; border:0; background:transparent; cursor:pointer;
  color:var(--text-muted); font-size:11px; border-radius:5px; flex-shrink:0;
}
.kb-raia-seta:hover{ background:rgba(19,24,41,.07); color:var(--text-primary); }
.kb-raia-cor{
  width:20px !important; height:20px; padding:1px !important; border-radius:6px;
  flex-shrink:0; cursor:pointer;
}
.kb-raia-nome{
  flex:1; min-width:60px; border:0 !important; background:transparent !important;
  height:24px; padding:0 3px !important; font-size:12.5px; font-weight:700; letter-spacing:-.01em;
}
.kb-raia-nome:focus{ background:var(--surface-2) !important; border-radius:5px; }
.kb-raia-cont{
  font-size:10.5px; font-weight:700; padding:1px 7px; border-radius:999px;
  background:rgba(19,24,41,.08); color:var(--text-secondary); /* reserva */
  background:color-mix(in srgb, var(--kb-cor-raia) 18%, transparent);
  color:color-mix(in srgb, var(--kb-cor-raia) 78%, #131829);
}
.kb-raia-menu{ display:flex; gap:2px; width:100%; opacity:0; transition:opacity .12s; }
.kb-raia-cab:hover .kb-raia-menu{ opacity:1; }
.kb-raia.recolhida .kb-raia-cols{ display:none; }
.kb-raia-cols{ display:flex; gap:12px; align-items:flex-start; }
.kb-celula{
  flex:0 0 288px; display:flex; flex-direction:column; gap:7px;
  min-height:62px; padding:8px; border-radius:0 0 12px 12px;
  background:rgba(252,252,251,.55); border:1px solid var(--border); border-top:0;
  transition:background .12s, box-shadow .12s;
}
.kb-quadro.com-raias .kb-celula{ border-radius:12px; border-top:1px solid var(--border); }
.kb-celula.recolhida{ flex-basis:56px; }
.kb-celula.sobre{ background:rgba(118,184,42,.12); box-shadow:inset 0 0 0 2px var(--green); }
.kb-celula-fantasma{ flex:0 0 128px; }

.kb-card{
  position:relative; display:flex; gap:9px; align-items:flex-start; cursor:pointer;
  background:var(--surface-1); border:1px solid var(--border);
  border-radius:10px; padding:11px 12px 11px 13px; overflow:hidden;
  box-shadow:0 1px 2px rgba(19,24,41,.05), 0 1px 1px rgba(19,24,41,.03);
  transition:box-shadow .14s ease, border-color .14s ease, transform .14s ease;
}
.kb-card::before{
  content:""; position:absolute; left:0; top:0; bottom:0; width:3px;
  background:var(--kb-prio, transparent); opacity:0; transition:opacity .14s;
}
.kb-card.com-prio::before{ opacity:1; }
.kb-card:hover{
  box-shadow:0 4px 14px rgba(19,24,41,.12), 0 1px 3px rgba(19,24,41,.06);
  border-color:var(--border-strong); transform:translateY(-1px);
}
.kb-card.arrastando{ opacity:.3; transform:rotate(1.5deg) scale(.98); }
.kb-card.sobre{ box-shadow:0 -3px 0 0 var(--green), 0 2px 8px rgba(19,24,41,.1); }
.kb-card.atrasado{ background:linear-gradient(180deg, rgba(209,69,59,.045), var(--surface-1)); }
.kb-card.feito{ opacity:.5; }
.kb-card.feito .kb-card-nome{ text-decoration:line-through; color:var(--text-muted); }
.kb-circ{
  width:19px; height:19px; flex-shrink:0; margin-top:1px; padding:0; cursor:pointer;
  border-radius:50%; border:1.6px solid #9aa0a6; background:transparent;
  display:flex; align-items:center; justify-content:center;
  transition:background .12s;
}
.kb-circ svg{ opacity:0; transition:opacity .12s; }
.kb-circ:hover svg{ opacity:.55; }
.kb-circ.feito{ background:currentColor !important; }
.kb-circ.feito svg{ opacity:1; color:#fff; }
.kb-card-corpo{ flex:1; min-width:0; }
.kb-card-nome{ font-size:13.5px; line-height:1.4; word-break:break-word; }
.kb-card-desc{
  font-size:11.5px; color:var(--text-muted); margin-top:3px; line-height:1.4;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.kb-card-meta{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; margin-top:7px; }
.kb-chip-data{
  display:inline-flex; align-items:center; gap:3px; font-size:11px; font-weight:600;
  color:var(--text-muted);
}
.kb-chip-data.hoje{ color:#058527; }
.kb-chip-data.amanha{ color:#ad6200; }
.kb-chip-data.atraso{ color:#d1453b; }
.kb-chip-data.futuro{ color:#692fc2; }
.kb-chip-etq{
  font-size:10.5px; font-weight:600; padding:2px 7px; border-radius:999px;
  background:rgba(24,95,165,.09); color:#185FA5;
}
.kb-chip-sub{ font-size:11px; color:var(--text-muted); font-variant-numeric:tabular-nums; }
.kb-avatar{
  width:19px; height:19px; border-radius:50%; margin-left:auto; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:9px; font-weight:700; color:#fff; letter-spacing:-.02em;
}
.kb-add, .kb-add-secao, .kb-add-raia{
  display:flex; align-items:center; gap:8px; width:100%; cursor:pointer;
  background:transparent; border:0; padding:8px 9px; border-radius:8px;
  font-size:13px; font-weight:550; color:var(--text-muted); text-align:left;
}
.kb-add:hover, .kb-add-secao:hover, .kb-add-raia:hover{ background:rgba(19,24,41,.05); color:var(--green-dark); }
.kb-add:hover .kb-add-mais,
.kb-add-secao:hover .kb-add-mais,
.kb-add-raia:hover .kb-add-mais{ background:var(--green); color:#fff; }
.kb-add-mais{
  width:18px; height:18px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:14px; line-height:1; background:transparent; color:var(--text-muted); transition:all .12s;
}
.kb-add-secao{
  flex:0 0 128px; align-self:flex-start; font-weight:650; margin-top:9px;
  border:1px dashed var(--border-strong); justify-content:center; padding:9px 6px;
}
.kb-add-raia{
  margin-top:12px; border:1px dashed var(--border-strong); padding:11px 14px;
  flex-wrap:wrap; font-weight:650; font-size:13.5px;
}
.kb-add-raia small{ width:100%; padding-left:26px; font-weight:400; font-size:11.5px; color:var(--text-muted); }
.kb-novo{
  background:var(--surface-1); border:1px solid var(--border-strong);
  border-radius:9px; padding:10px; box-shadow:0 2px 8px rgba(19,24,41,.08);
}
.kb-novo textarea{ width:100%; border:0 !important; padding:0 !important; font-size:13.5px; resize:none; min-height:38px; }
.kb-novo textarea:focus{ outline:none; box-shadow:none !important; }
.kb-novo-acoes{ display:flex; gap:6px; flex-wrap:wrap; align-items:center; margin-top:8px; }
.kb-novo-prio{ width:auto !important; height:28px; font-size:11.5px; padding:2px 6px !important; }
.kb-novo-data{ width:130px !important; height:28px; font-size:11.5px; padding:2px 6px !important; }

/* painel de detalhe da tarefa */
.kb-modal-over{
  position:fixed; inset:0; z-index:950; background:rgba(11,15,26,.42);
  backdrop-filter:blur(2px); display:flex; align-items:center; justify-content:center; padding:22px;
}
.kb-modal{
  width:min(620px,100%); max-height:88vh; overflow:auto;
  background:var(--surface-1); border-radius:14px; box-shadow:var(--shadow-lg); padding:18px 22px 20px;
}
.kb-modal-cab{ display:flex; align-items:center; margin-bottom:12px; }
.kb-modal-secao{ font-size:12px; color:var(--text-muted); font-weight:600; }
.kb-modal-x{
  margin-left:auto; width:28px; height:28px; padding:0; border-radius:7px; cursor:pointer;
  background:transparent; border:0; color:var(--text-muted); font-size:14px;
}
.kb-modal-x:hover{ background:rgba(19,24,41,.07); color:var(--text-primary); }
.kb-modal-titulo{ display:flex; gap:11px; align-items:flex-start; }
.kb-modal-nome{
  flex:1; border:0 !important; padding:0 !important; resize:none; overflow:hidden;
  font-size:17px; font-weight:700; letter-spacing:-.015em; line-height:1.35; min-height:26px;
}
.kb-modal-nome:focus{ outline:none; box-shadow:none !important; }
.kb-modal-desc{
  width:100%; margin-top:10px; font-size:13px; border-radius:8px; resize:vertical;
}
.kb-sub{ margin-top:16px; }
.kb-sub h5{ font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-muted); margin-bottom:7px; }
.kb-sub-lista{ display:flex; flex-direction:column; gap:5px; }
.kb-sub-item{ display:flex; gap:8px; align-items:center; }
.kb-sub-item input[type=checkbox]{ width:16px; height:16px; accent-color:#d1453b; flex-shrink:0; }
.kb-sub-item.ok input[type=text]{ text-decoration:line-through; color:var(--text-muted); }
.kb-props{
  display:grid; grid-template-columns:1fr 1fr; gap:12px;
  margin-top:18px; padding-top:14px; border-top:1px solid var(--border);
}
.kb-prop{ display:flex; flex-direction:column; gap:4px; }
.kb-prop-largo{ grid-column:span 2; }
.kb-prop label{ font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--text-muted); font-weight:650; }
.kb-etq-edit{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.kb-etq{
  display:inline-flex; align-items:center; gap:4px; font-size:11.5px; font-weight:600;
  padding:3px 9px; border-radius:999px; background:rgba(24,95,165,.1); color:#185FA5;
}
.kb-etq-x{
  width:15px; height:15px; padding:0; border:0; border-radius:50%; cursor:pointer;
  background:rgba(24,95,165,.18); color:#185FA5; font-size:10px; line-height:1;
}
.kb-etq-inp{ width:120px !important; height:28px; font-size:12px; }
.kb-modal-rodape{ margin-top:16px; padding-top:12px; border-top:1px solid var(--border); }
.kb-excluir{ cursor:pointer; color:#d1453b; border-color:rgba(209,69,59,.35); }
.kb-excluir:hover{ background:rgba(209,69,59,.1); }

.fx-kb{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.fx-kb-col{ background:var(--surface-2); border:1px solid var(--border); border-radius:12px; padding:10px; min-height:160px; }
.fx-kb-col.estourou{ border-color:rgba(180,50,47,.5); }
.fx-kb-topo{ display:flex; align-items:center; gap:8px; margin-bottom:9px; }
.fx-kb-topo input{ border:0; background:transparent; font-weight:700; font-size:12.5px; text-transform:uppercase; letter-spacing:.05em; padding:2px 4px; height:auto; }
.fx-kb-lim{ font-size:11px; color:var(--text-muted); font-variant-numeric:tabular-nums; flex-shrink:0; }
.fx-kb-lim.over{ color:#B4322F; font-weight:800; }
.fx-kb-card{
  display:flex; gap:4px; align-items:center; background:var(--surface-1);
  border:1px solid var(--border); border-left:4px solid #185FA5; border-radius:9px;
  padding:6px 7px; margin-bottom:7px;
}
.fx-kb-card input{ border:0; background:transparent; font-size:13px; padding:2px 4px; height:auto; }
.fx-kb-acoes{ display:flex; gap:3px; flex-shrink:0; }
.fx-kb-mv{
  width:24px; height:24px; padding:0; border-radius:7px; cursor:pointer; font-size:13px;
  background:transparent; border:1px solid var(--border); color:var(--text-secondary);
}
.fx-kb-mv:hover{ background:rgba(19,24,41,.06); color:var(--text-primary); }
.fx-pdca{ display:grid; grid-template-columns:210px 1fr; gap:16px; align-items:start; }
.fx-pdca-caixas{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
@media(max-width:820px){ .fx-pdca{ grid-template-columns:1fr; } .fx-pdca-roda{ text-align:center; } }
.fx-kr{ background:var(--surface-2); border:1px solid var(--border); border-radius:12px; padding:10px 12px; margin-bottom:10px; }
.fx-kr-linha{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.fx-kr-linha input[type=text]{ flex:2; min-width:160px; }
.fx-kr-linha input[type=number]{ width:86px; }
.fx-kr-de{ font-size:12px; color:var(--text-muted); }
.fx-kr-pct{ font-size:14px; font-variant-numeric:tabular-nums; min-width:44px; text-align:right; }
.fx-barra{ height:8px; background:rgba(19,24,41,.08); border-radius:99px; overflow:hidden; margin-top:8px; }
.fx-barra.grande{ height:11px; margin-bottom:14px; }
.fx-barra i{ display:block; height:100%; border-radius:99px; background:var(--green); transition:width .2s; }
.fx-okr-total{ display:flex; align-items:baseline; gap:10px; border-top:1px solid var(--border); padding-top:12px; margin-top:6px; }
.fx-okr-total b{ font-size:30px; font-weight:800; letter-spacing:-.02em; }
.fx-okr-total span{ font-size:12.5px; color:var(--text-secondary); }
.fx-scrum-cfg{ display:flex; gap:16px; margin-bottom:12px; flex-wrap:wrap; }
.fx-scrum-cfg label{ display:flex; align-items:center; gap:8px; font-size:12.5px; font-weight:600; color:var(--text-secondary); }
.fx-scrum-cfg input{ width:80px; }
.fx-bmc{ display:grid; grid-template-columns:repeat(10,1fr); gap:8px; }
.fx-bmc .fx-cartao{ margin-bottom:0; }
.fx-bmc .b-kp{ grid-column:span 2; grid-row:span 2; }
.fx-bmc .b-ka{ grid-column:span 2; }
.fx-bmc .b-vp{ grid-column:span 2; grid-row:span 2; }
.fx-bmc .b-cr{ grid-column:span 2; }
.fx-bmc .b-cs{ grid-column:span 2; grid-row:span 2; }
.fx-bmc .b-kr{ grid-column:span 2; }
.fx-bmc .b-ch{ grid-column:span 2; }
.fx-bmc .b-cost{ grid-column:span 5; }
.fx-bmc .b-rev{ grid-column:span 5; }
@media(max-width:900px){ .fx-bmc{ grid-template-columns:1fr 1fr; } .fx-bmc .fx-cartao{ grid-column:span 1 !important; grid-row:auto !important; } .fx-bmc .b-cost, .fx-bmc .b-rev{ grid-column:span 2 !important; } .fx-swot{ grid-template-columns:1fr; } }
.fx-s5{
  display:flex; gap:12px; align-items:flex-start; background:var(--surface-2);
  border:1px solid var(--border); border-radius:12px; padding:12px; margin-bottom:10px;
}
.fx-s5.feito{ border-color:var(--green); }
.fx-s5 input[type=checkbox]{ width:18px; height:18px; margin-top:3px; accent-color:var(--green); }
.fx-s5-corpo{ flex:1; }
.fx-s5-corpo h4{ font-size:13.5px; margin-bottom:2px; }
.fx-s5-corpo input{ margin-top:7px; }
.fx-flow{ display:flex; flex-direction:column; align-items:center; }
.fx-flow-seta{ color:var(--text-muted); font-size:15px; padding:1px 0; }
.fx-fnode{
  display:flex; gap:6px; align-items:center; width:min(520px,100%);
  border:1.5px solid var(--border-strong); background:var(--surface-2);
  border-radius:10px; padding:6px 10px;
}
.fx-fnode.inicio, .fx-fnode.fim{ border-radius:999px; }
.fx-fnode.decisao{ border-style:dashed; background:rgba(24,95,165,.05); }
.fx-fnode input{ border:0; background:transparent; font-size:13px; padding:2px 4px; height:auto; }
.fx-flow-acoes{ display:flex; gap:3px; flex-shrink:0; align-items:center; }
.fx-flow-acoes select{ width:auto; height:28px; padding:2px 4px; font-size:11px; }

/* atalho de Cobrança no Financeiro — vermelho só quando há atraso */
.btn-cobranca{
  display:inline-flex; align-items:center; gap:7px;
  background:#FDF3F2; border:1px solid #F0C9C7; color:#B4322F; font-weight:650;
}
.btn-cobranca:hover{ background:#FBE9E7; border-color:#E5A9A6; }
.btn-cobranca-badge{
  font-size:11px; font-weight:700; font-variant-numeric:tabular-nums;
  padding:2px 7px; border-radius:999px; background:rgba(180,50,47,.13);
}

/* ---------- Cobrança: só o que venceu e não entrou ---------- */
.cob-cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.cob-card{
  display:flex; flex-direction:column; gap:3px; padding:13px 15px;
  border-radius:var(--radius); border:1px solid var(--border); background:var(--surface-2);
}
.cob-card span{ font-size:11px; font-weight:600; letter-spacing:.04em; text-transform:uppercase; color:var(--text-muted); }
.cob-card b{ font-size:20px; font-weight:750; letter-spacing:-.02em; }
.cob-card-alerta{ border-color:#F0C9C7; background:#FDF3F2; }
.cob-card-alerta b{ color:#B4322F; }

/* tabela de cobrança: uma linha por cliente + produto */
.cob-tabela th.num, .cob-tabela td.num{ text-align:right; white-space:nowrap; }
.cob-linha{ border-left:4px solid transparent; }
.cob-linha.leve{ border-left-color:#E0A82E; }
.cob-linha.media{ border-left-color:#D97A2B; }
.cob-linha.grave{ border-left-color:#B4322F; }
.cob-cli{ font-weight:700; font-size:13.5px; }
.cob-cli a{ color:inherit; text-decoration:none; }
.cob-cli a:hover{ text-decoration:underline; }
.cob-cli-sub{ font-size:11px; color:var(--text-muted); margin-top:2px; }
.cob-atraso-mini{
  font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  padding:1px 6px; border-radius:999px; background:rgba(180,50,47,.11); color:#B4322F;
}
.cob-doc{ font-variant-numeric:tabular-nums; font-size:12.5px; color:var(--text-secondary); white-space:nowrap; }
.cob-contrato{ display:block; font-size:10.5px; color:var(--text-muted); margin-top:1px; }
.cob-meses{ font-size:12.5px; color:var(--text-secondary); text-transform:capitalize; }
.cob-total{ font-weight:750; color:#B4322F; }
.cob-total small{ display:block; font-size:10.5px; font-weight:500; color:var(--text-muted); }
.cob-acoes-td{ white-space:nowrap; }
.cob-acoes-td .cob-link{ margin-left:8px; }
.cob-acoes-td .cob-link:first-child{ margin-left:0; }
.cob-abrir{
  background:transparent; border:0; border-bottom:1px dotted var(--border-strong);
  cursor:pointer; padding:0; font-size:12px; color:var(--text-secondary); font-family:inherit;
}
.cob-abrir.aberto{ color:var(--text-primary); font-weight:650; }
.cob-detalhe > td{ background:rgba(19,24,41,.03); padding:8px 14px !important; }
.cob-rodape{ text-align:right; font-weight:650; font-size:12.5px; color:var(--text-secondary); }
.cob-total-geral{ font-weight:800; font-size:14px; color:#B4322F; }

.cob-cliente{
  border:1px solid var(--border); border-left:4px solid var(--border-strong);
  border-radius:var(--radius); background:var(--surface-2);
  margin-bottom:12px; overflow:hidden;
}
.cob-cliente.leve{ border-left-color:#E0A82E; }
.cob-cliente.media{ border-left-color:#D97A2B; }
.cob-cliente.grave{ border-left-color:#B4322F; }
.cob-cliente-topo{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap;
  padding:12px 16px; border-bottom:1px solid var(--border);
}
.cob-cliente-id{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; font-size:14.5px; font-weight:700; }
.cob-cliente-id a{ color:inherit; text-decoration:none; }
.cob-cliente-id a:hover{ text-decoration:underline; }
.cob-atraso{
  font-size:10.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  padding:3px 8px; border-radius:999px; background:rgba(180,50,47,.11); color:#B4322F;
}
.cob-cliente-contato{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; flex:1; }
.cob-link{ font-size:12px; color:var(--text-secondary); text-decoration:none; border-bottom:1px dotted var(--border-strong); }
.cob-link:hover{ color:var(--text-primary); }
.cob-sem-contato{ font-size:11.5px; color:var(--text-muted); font-style:italic; }
.cob-cliente-total{ display:flex; flex-direction:column; align-items:flex-end; gap:1px; margin-left:auto; }
.cob-cliente-total span{ font-size:11px; color:var(--text-muted); }
.cob-cliente-total b{ font-size:16px; font-weight:750; color:#B4322F; }

.cob-item{ border-bottom:1px solid rgba(19,24,41,.05); }
.cob-item:last-child{ border-bottom:0; }
.cob-item > summary{
  display:flex; align-items:center; gap:10px; flex-wrap:wrap;
  padding:9px 16px; cursor:pointer; font-size:13px; list-style:none;
}
.cob-item > summary::-webkit-details-marker{ display:none; }
.cob-item > summary:hover{ background:rgba(19,24,41,.03); }
.cob-item[open] > summary{ background:rgba(19,24,41,.04); }
.cob-venc{ font-variant-numeric:tabular-nums; color:var(--text-secondary); width:78px; flex-shrink:0; }
.cob-dias{
  font-size:11px; font-weight:700; font-variant-numeric:tabular-nums;
  padding:2px 6px; border-radius:6px; background:rgba(180,50,47,.1); color:#B4322F; flex-shrink:0;
}
.cob-desc{ font-weight:500; }
.cob-origem{ font-size:11.5px; color:var(--text-muted); }
.cob-chip-parcial{
  font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.03em;
  padding:2px 7px; border-radius:999px; background:rgba(224,168,46,.16); color:#8A6110;
}
.cob-valor{ margin-left:auto; font-weight:700; font-variant-numeric:tabular-nums; }

@media (max-width:800px){
  .cob-cliente-total{ margin-left:0; align-items:flex-start; }
  .cob-venc{ width:auto; }
  .cob-valor{ margin-left:0; }
}

/* ---------- contrato: como o cliente vai pagar (etapa 20) ---------- */
.ct-cobranca-opcoes{ display:flex; gap:10px; flex-wrap:wrap; }
.ct-cobranca-op{
  flex:1 1 200px; display:flex; flex-direction:column; gap:2px; cursor:pointer;
  padding:11px 13px; border-radius:var(--radius); border:1.5px solid var(--border);
  background:var(--surface-2); transition:border-color .12s, background .12s;
}
.ct-cobranca-op:hover{ border-color:var(--border-strong); }
.ct-cobranca-op.ativo{ border-color:var(--green); background:rgba(118,184,42,.07); }
.ct-cobranca-op input{ position:absolute; opacity:0; pointer-events:none; }
.ct-cobranca-op b{ font-size:13px; font-weight:650; }
.ct-cobranca-op small{ font-size:11px; color:var(--text-muted); line-height:1.35; }
.ct-parcelas-calc{
  display:flex; align-items:center; min-height:40px; padding:0 12px;
  border-radius:var(--radius); border:1px dashed var(--border-strong);
  background:rgba(118,184,42,.06); color:var(--text-secondary);
  font-size:13px; font-weight:600;
}
.ct-parcelas-calc.erro{ background:#FDECEC; border-color:#F6D6D5; color:#8F2523; }

/* "Desfazer" (Ctrl+Z): no aviso verde logo após apagar e no Histórico */
.btn-desfazer{
  display:inline-flex; align-items:center; gap:5px;
  padding:4px 10px; border-radius:999px; cursor:pointer;
  font-size:12px; font-weight:600; line-height:1;
  background:rgba(255,255,255,.75); border:1px solid currentColor;
  color:inherit; box-shadow:none;
}
.btn-desfazer:hover{ background:#fff; }
.tbl .btn-desfazer{ color:var(--text-secondary); border-color:var(--border-strong); }
.tbl .btn-desfazer:hover{ color:var(--text-primary); }

.login-shell{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:var(--navy-800); padding:20px; }
.login-card{ width:100%; max-width:380px; background:var(--surface-2); border-radius:var(--radius-xl); box-shadow:var(--shadow-lg); padding:32px 28px; }
.login-card .brandmark{ justify-content:center; margin-bottom:26px; padding:0; }
.login-card .brandmark img{ max-width:230px; }
.senha-wrap{ position:relative; }
.senha-wrap button{ position:absolute; right:6px; top:6px; bottom:6px; border:0; background:transparent; padding:0 8px; }

/* ---------- barra superior ---------- */
.topbar{ display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.topbar-busca{
  flex:1; max-width:420px; display:flex; align-items:center; gap:9px;
  background:var(--surface-2); border:1px solid var(--border-strong); border-radius:var(--radius);
  padding:0 12px; height:38px; color:var(--text-muted);
}
.topbar-busca input{ border:0; background:transparent; padding:0; height:auto; }
.topbar-busca input:focus{ box-shadow:none; }
.topbar-sino{
  position:relative; display:inline-flex; align-items:center; justify-content:center;
  width:38px; height:38px; border-radius:var(--radius); color:var(--text-secondary);
  background:var(--surface-2); border:1px solid var(--border-strong); flex-shrink:0;
}
.topbar-sino:hover{ background:var(--surface-1); color:var(--text-primary); }
.topbar-badge{
  position:absolute; top:-5px; right:-5px; background:#D9534F; color:#fff;
  font-size:10px; font-weight:700; min-width:16px; height:16px; border-radius:999px;
  display:flex; align-items:center; justify-content:center; padding:0 3px;
}

/* contador na barra lateral (hoje: contas vencidas em Cobrança) */
.nav-badge{
  margin-left:auto; background:#D9534F; color:#fff;
  font-size:10px; font-weight:700; line-height:1; min-width:17px; height:17px;
  border-radius:999px; display:inline-flex; align-items:center; justify-content:center; padding:0 5px;
}
.navitem-toggle .nav-badge{ margin-left:auto; margin-right:2px; }

/* ---------- módulo Mídia ---------- */
.check-row{
  display:flex; align-items:center; gap:9px; font-size:13px; cursor:pointer;
  padding:8px 10px; border-radius:var(--radius-sm);
}
.check-row:hover{ background:var(--surface-1); }

.conteudo-card{ padding:15px; display:flex; flex-direction:column; }
.conteudo-titulo{
  font-size:14.5px; font-weight:650; letter-spacing:-.01em; line-height:1.35;
  color:var(--text-primary); text-decoration:none; min-width:0;
}
.conteudo-titulo:hover{ text-decoration:underline; }
.conteudo-trecho{
  font-size:12px; color:var(--text-secondary); line-height:1.5; margin-top:9px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.meta-badge{
  font-size:11px; font-weight:500; color:var(--text-secondary);
  background:var(--surface-1); border:1px solid var(--border);
  border-radius:999px; padding:3px 10px;
}
.card-sep{
  display:flex; justify-content:space-between; align-items:center; gap:8px;
  margin-top:12px; padding-top:11px; border-top:1px solid var(--border);
}

/* conteúdo finalizado: card inteiro verde, tudo dentro em branco */
.conteudo-card.done{
  background:linear-gradient(158deg,#7FC22E 0%,var(--green) 45%,var(--green-dark) 100%);
  border-color:var(--green-dark); box-shadow:0 4px 16px rgba(118,184,42,.30);
}
.conteudo-card.done, .conteudo-card.done *{ color:#fff; border-color:rgba(255,255,255,.28); }
.conteudo-card.done .meta-badge{ background:rgba(255,255,255,.18); border-color:rgba(255,255,255,.30); }
.conteudo-card.done .card-sep{ border-top-color:rgba(255,255,255,.28); }
.conteudo-card.done .btn{ background:rgba(255,255,255,.17); border-color:rgba(255,255,255,.32); }
.conteudo-card.done .btn:hover{ background:rgba(255,255,255,.28); }
.conteudo-card.done input[type=checkbox]{ accent-color:#fff; }
.conteudo-card.done .dim{ color:rgba(255,255,255,.85); }

/* calendário da agenda de mídia */
.cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.cal-wd{
  font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-muted); text-align:center; padding:0 0 7px;
}
.daycell{
  background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius);
  min-height:104px; padding:7px; display:block; text-decoration:none; color:inherit;
}
.daycell:hover{ border-color:var(--border-strong); box-shadow:var(--shadow-sm); }
.daycell.fora{ background:var(--surface-1); opacity:.6; }
.daycell.hoje{ border-color:var(--green); box-shadow:0 0 0 2px rgba(118,184,42,.16); }
.daynum{ font-size:11.5px; font-weight:600; color:var(--text-secondary); }
.daycell.hoje .daynum{
  color:#fff; background:var(--green); border-radius:999px;
  min-width:20px; height:20px; display:inline-flex; align-items:center; justify-content:center; padding:0 6px;
}
.pchip{
  display:block; font-size:11px; font-weight:500; padding:3px 6px; border-radius:6px;
  margin-top:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; text-decoration:none;
}
.cal-nav{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.cal-nav .mes{ font-size:16px; font-weight:650; letter-spacing:-.015em; padding:0 4px; }

/* ============================================================
   AGENDA ESTILO GOOGLE AGENDA (reforma 2026-07, 2ª rodada)
   ============================================================ */

/* --- layout: mini-calendário à esquerda + grade à direita --- */
.agenda-shell{ display:flex; gap:18px; align-items:flex-start; }
.agenda-lateral{ width:216px; flex-shrink:0; }
.agenda-principal{ flex:1; min-width:0; }

/* --- botão Criar, como o do Google --- */
.btn-criar{
  display:inline-flex; align-items:center; gap:10px;
  background:#fff; border:1px solid var(--vidro-borda-verde);
  border-radius:24px; padding:12px 22px 12px 16px;
  font-size:14px; font-weight:600; color:var(--text-primary);
  box-shadow:0 4px 14px rgba(24,52,16,.14); text-decoration:none;
  transition:box-shadow .18s ease, transform .18s ease;
}
.btn-criar:hover{ box-shadow:0 8px 22px rgba(24,52,16,.20); transform:translateY(-1px); color:var(--text-primary); }
.btn-criar .mais{ font-size:20px; line-height:1; color:var(--green-dark); font-weight:700; }

/* --- mini-calendário --- */
.minical{
  background:var(--vidro-fundo);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid var(--vidro-borda); border-radius:var(--radius-lg);
  box-shadow:var(--vidro-sombra); padding:12px 12px 10px; margin-top:14px;
}
.minical-topo{ display:flex; justify-content:space-between; align-items:center; padding:0 4px 8px; }
.minical-titulo{ font-size:12.5px; font-weight:650; }
.minical-navs a{ text-decoration:none; color:var(--text-secondary); padding:2px 7px; border-radius:6px; font-size:14px; }
.minical-navs a:hover{ background:rgba(118,184,42,.12); color:var(--text-primary); }
.minical-grade{ display:grid; grid-template-columns:repeat(7,1fr); gap:1px; }
.minical-wd{ font-size:9.5px; font-weight:600; color:var(--text-muted); text-align:center; padding:3px 0; }
.minical-dia{
  display:flex; align-items:center; justify-content:center;
  width:24px; height:24px; margin:0 auto; border-radius:50%;
  font-size:11px; color:var(--text-primary); text-decoration:none;
}
.minical-dia:hover{ background:rgba(118,184,42,.14); }
.minical-dia.hoje{ background:var(--green); color:#fff; font-weight:700; }
.minical-dia.sel:not(.hoje){ background:rgba(118,184,42,.22); font-weight:600; }

/* --- MÊS estilo Google --- */
.gcal-mes{
  display:grid; grid-template-columns:repeat(7,1fr);
  background:var(--vidro-fundo);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid var(--vidro-borda); border-radius:var(--radius-lg);
  box-shadow:var(--vidro-sombra); overflow:hidden;
}
.gcal-wd{
  font-size:10.5px; font-weight:650; letter-spacing:.06em; color:var(--text-muted);
  text-align:center; padding:9px 0 7px; border-bottom:1px solid rgba(19,24,41,.07);
}
.gcal-celula{
  min-height:106px; padding:5px 6px; border-bottom:1px solid rgba(19,24,41,.06);
  border-right:1px solid rgba(19,24,41,.06); cursor:pointer;
}
.gcal-celula:nth-child(7n){ border-right:0; }
.gcal-celula:hover{ background:rgba(118,184,42,.05); }
.gcal-celula.vazia{ cursor:default; background:rgba(19,24,41,.015); }
.gcal-num{
  width:24px; height:24px; display:flex; align-items:center; justify-content:center;
  font-size:11.5px; font-weight:600; color:var(--text-secondary);
  border-radius:50%; margin:0 auto 3px;
}
.gcal-num.hoje{ background:var(--green); color:#fff; font-weight:700; }
.gcal-ev{
  display:flex; align-items:center; gap:5px; font-size:11px; font-weight:500;
  padding:2px 5px; border-radius:5px; margin-top:2px; cursor:pointer;
  white-space:nowrap; overflow:hidden;
}
.gcal-ev:hover{ background:rgba(19,24,41,.06); }
.gcal-ev.cheio{ color:#fff; font-weight:600; }
.gcal-ev.cheio:hover{ filter:brightness(1.08); }
.gcal-bolinha{ width:7px; height:7px; border-radius:50%; flex-shrink:0; }
.gcal-ev-hora{ color:var(--text-muted); flex-shrink:0; font-size:10.5px; }
.gcal-ev-titulo{ overflow:hidden; text-overflow:ellipsis; }
.gcal-mais{
  display:block; font-size:10.5px; font-weight:600; color:var(--text-secondary);
  padding:2px 5px; margin-top:2px; border-radius:5px; text-decoration:none;
}
.gcal-mais:hover{ background:rgba(19,24,41,.07); }

/* --- GRADE HORÁRIA (semana/dia) --- */
.tg{
  background:var(--vidro-fundo);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid var(--vidro-borda); border-radius:var(--radius-lg);
  box-shadow:var(--vidro-sombra); overflow:hidden;
}
.tg-cabecalho, .tg-alldia{ display:flex; border-bottom:1px solid rgba(19,24,41,.08); }
.tg-canto{ width:56px; flex-shrink:0; }
.tg-dia-head{
  flex:1; text-align:center; padding:9px 0 7px;
  display:flex; flex-direction:column; align-items:center; gap:1px;
  border-left:1px solid rgba(19,24,41,.05);
}
.tg-dia-sem{ font-size:10px; font-weight:650; letter-spacing:.08em; color:var(--text-muted); }
.tg-dia-num{
  font-size:20px; font-weight:500; color:var(--text-primary);
  width:34px; height:34px; display:flex; align-items:center; justify-content:center; border-radius:50%;
}
.tg-dia-head.hoje .tg-dia-sem{ color:var(--green-dark); }
.tg-dia-head.hoje .tg-dia-num{ background:var(--green); color:#fff; font-weight:700; }
.tg-alldia-rotulo{ font-size:9.5px; color:var(--text-muted); display:flex; align-items:center; justify-content:flex-end; padding-right:7px; }
.tg-alldia-col{ flex:1; padding:3px 4px; border-left:1px solid rgba(19,24,41,.05); display:flex; flex-direction:column; gap:2px; }
.tg-alldia-ev{
  font-size:11px; font-weight:600; color:#fff; padding:2px 7px; border-radius:5px;
  cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.tg-alldia-ev:hover{ filter:brightness(1.08); }
.tg-scroll{ max-height:640px; overflow-y:auto; position:relative; }
.tg-corpo{ display:flex; position:relative; }
.tg-horas{ width:56px; flex-shrink:0; position:relative; }
.tg-hora{
  position:absolute; right:8px; transform:translateY(-50%);
  font-size:10px; color:var(--text-muted);
}
.tg-col{ flex:1; position:relative; border-left:1px solid rgba(19,24,41,.05); }
.tg-col.hoje{ background:rgba(118,184,42,.035); }
.tg-slot{ position:absolute; left:0; right:0; border-top:1px solid rgba(19,24,41,.055); cursor:pointer; }
.tg-slot:hover{ background:rgba(118,184,42,.07); }
.tg-evento{
  position:absolute; border-radius:6px; color:#fff; padding:3px 7px;
  font-size:11px; overflow:hidden; cursor:pointer; z-index:2;
  box-shadow:0 1px 3px rgba(19,24,41,.22); border:1px solid rgba(255,255,255,.35);
  display:flex; flex-direction:column; gap:0;
  transition:filter .12s ease, box-shadow .12s ease;
}
.tg-evento:hover{ filter:brightness(1.07); box-shadow:0 3px 9px rgba(19,24,41,.3); z-index:3; }
.tg-ev-titulo{ font-weight:650; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.tg-ev-hora{ font-size:10px; opacity:.9; }
/* linha vermelha do "agora" (posicionada por portal.js) */
.tg-agora{
  position:absolute; left:0; right:0; height:2px; background:#EA4335; z-index:4; pointer-events:none;
}
.tg-agora::before{
  content:""; position:absolute; left:-5px; top:-4px;
  width:10px; height:10px; border-radius:50%; background:#EA4335;
}

/* --- PROGRAMAÇÃO (lista) --- */
.prg{
  background:var(--vidro-fundo);
  -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px);
  border:1px solid var(--vidro-borda); border-radius:var(--radius-lg);
  box-shadow:var(--vidro-sombra); overflow:hidden;
}
.prg-dia{ display:flex; gap:14px; padding:11px 16px; border-bottom:1px solid rgba(19,24,41,.06); }
.prg-dia:last-child{ border-bottom:0; }
.prg-data{ width:120px; flex-shrink:0; display:flex; align-items:center; gap:9px; }
.prg-num{
  font-size:17px; font-weight:600; width:32px; height:32px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; border-radius:50%;
}
.prg-data.hoje .prg-num{ background:var(--green); color:#fff; font-weight:700; }
.prg-mes{ font-size:10.5px; font-weight:600; color:var(--text-muted); text-transform:uppercase; }
.prg-eventos{ flex:1; display:flex; flex-direction:column; gap:4px; }
.prg-evento{
  display:flex; align-items:center; gap:9px; font-size:12.5px; cursor:pointer;
  padding:5px 9px; border-radius:7px;
}
.prg-evento:hover{ background:rgba(118,184,42,.08); }
.prg-horario{ color:var(--text-secondary); flex-shrink:0; min-width:92px; font-size:11.5px; }
.prg-titulo{ font-weight:550; }

/* --- POPOVER de evento (cartão flutuante ao clicar) --- */
.ev-popover{
  position:fixed; z-index:200; width:320px; max-width:calc(100vw - 24px);
  background:rgba(255,255,255,.97);
  -webkit-backdrop-filter:blur(20px); backdrop-filter:blur(20px);
  border:1px solid var(--vidro-borda); border-radius:var(--radius-lg);
  box-shadow:0 18px 48px rgba(15,20,35,.25); padding:16px 18px;
  animation:ev-pop .14s ease;
}
@keyframes ev-pop{ from{ opacity:0; transform:translateY(5px) scale(.98);} to{ opacity:1; transform:none;} }
.ev-popover-faixa{ height:5px; border-radius:4px 4px 0 0; position:absolute; top:0; left:0; right:0; }
.ev-popover h4{ margin:4px 0 8px; font-size:15.5px; font-weight:650; letter-spacing:-.01em; }
.ev-popover .linha{ display:flex; gap:8px; font-size:12.5px; color:var(--text-secondary); margin-top:5px; align-items:flex-start; }
.ev-popover .linha svg{ flex-shrink:0; margin-top:1px; }
.ev-popover .acoes{ display:flex; gap:8px; margin-top:14px; }
.ev-popover .fechar{
  position:absolute; top:9px; right:9px; width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:transparent; border:0; box-shadow:none; color:var(--text-muted);
  font-size:15px; cursor:pointer; padding:0;
}
.ev-popover .fechar:hover{ background:rgba(19,24,41,.07); }

/* editor rápido (popup de criar/editar compromisso, estilo Google) */
.ev-editor{ width:380px; padding:20px 20px 16px; }
.ev-editor .ed-titulo{
  width:100%; box-sizing:border-box; border:0; border-bottom:2px solid var(--border);
  border-radius:0; background:transparent; box-shadow:none;
  font-size:19px; font-weight:600; letter-spacing:-.01em;
  padding:8px 2px 7px; margin:6px 0 14px; height:auto;
}
.ev-editor .ed-titulo:focus{ outline:none; border-bottom-color:var(--green); box-shadow:none; }
.ev-editor .ed-linha{ display:flex; align-items:center; gap:10px; margin-bottom:11px; }
.ev-editor .ed-linha > label{ flex-shrink:0; width:86px; padding-right:8px; font-size:12px; font-weight:600; color:var(--text-muted); }
.ev-editor .ed-linha select,
.ev-editor .ed-linha input[type=date],
.ev-editor .ed-linha input[type=time]{
  box-sizing:border-box; height:36px; font-size:13px; padding:6px 10px;
  border:1px solid var(--border); border-radius:8px; background:var(--surface-2);
}
.ev-editor .ed-linha select{ flex:1; min-width:0; }
.ev-editor .ed-linha input[type=date]{ flex:1; min-width:0; }
.ev-editor .ed-horas input[type=time]{ width:104px; }
.ev-editor .ed-dur{
  box-sizing:border-box; height:36px; font-size:12.5px; padding:6px 8px;
  border:1px solid var(--border); border-radius:8px; background:var(--surface-2);
  flex:1; min-width:0; max-width:150px;
}
.ev-editor .ed-ate{ color:var(--text-muted); }
.ev-editor .ed-diainteiro{
  display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--text-secondary);
  margin:2px 0 4px 86px; cursor:pointer; user-select:none;
}
.ev-editor .ed-diainteiro input{ width:15px; height:15px; margin:0; accent-color:var(--green); }
.ev-editor .ed-erro{ color:#B4322F; font-size:12.5px; margin-top:8px; }
.ev-editor .ed-parts-linha{ align-items:flex-start; }
.ev-editor .ed-parts-linha > label{ padding-top:8px; }
.ev-editor .ed-parts{ flex:1; min-width:0; display:flex; flex-direction:column; gap:7px; }
.ev-editor .ed-chips{ display:flex; flex-wrap:wrap; gap:6px; }
.ev-editor .ed-chips:empty{ display:none; }
.ev-editor .ed-chip{
  display:inline-flex; align-items:center; gap:6px; max-width:100%;
  background:var(--surface-1); border:1px solid var(--border); border-radius:999px;
  padding:4px 6px 4px 11px; font-size:12px; font-weight:600; color:var(--text-primary);
}
.ev-editor .ed-chip > span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ev-editor .ed-chip-x{
  width:18px; height:18px; border-radius:50%; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent; border:0; box-shadow:none; padding:0;
  font-size:10px; color:var(--text-muted); cursor:pointer;
}
.ev-editor .ed-chip-x:hover{ background:rgba(19,24,41,.09); color:var(--text-primary); }
.ev-editor .ed-addpart{
  box-sizing:border-box; height:34px; font-size:12.5px; padding:5px 10px;
  border:1px solid var(--border); border-radius:8px; background:var(--surface-2);
  color:var(--text-secondary); max-width:100%;
}
/* ---------- Workflow: um cartão por projeto, contorno na cor dele ---------- */
.wf-cards{ display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; margin-bottom:16px; }
@media (max-width:900px){ .wf-cards{ grid-template-columns:repeat(2, 1fr); } }

.wfp{
  border:2.5px solid var(--border); border-radius:var(--radius-xl);
  background:var(--surface-2); box-shadow:var(--shadow-sm);
  margin-bottom:16px; overflow:hidden;
}
/* projeto aberto sozinho: ocupa o que sobra da altura da janela, e a lista
   de tarefas rola por dentro do cartão em vez de rolar a página inteira */
.wfp-cheia{ display:flex; flex-direction:column; min-height:calc(100vh - 210px); margin-bottom:0; }
.wfp-cheia .wfp-conteudo{ flex:1 1 auto; display:flex; flex-direction:column; min-height:0; }
.wfp-cheia .wfp-gantt{ flex:1 1 auto; overflow:auto; }
/* sem corte seco: a grade dos dias (e a linha de hoje) desce até o pé do
   cartão — a linha do "+ Adicionar tarefa" estica para engolir a sobra */
.wfp-cheia .wfp-inner{ display:flex; flex-direction:column; min-height:100%; }
.wfp-cheia .wfp-tarefas{ flex:0 0 auto; }
.wfp-cheia .wfp-linha-add{ flex:1 1 auto; }
.wfp-cheia .wfp-linha-add .wfp-rotulo{ align-items:flex-start; }

/* botão de voltar da página inteira: grande e óbvio */
.wfp-voltar{
  display:inline-flex; align-items:center; gap:9px; margin-bottom:14px;
  padding:11px 20px; border-radius:12px; text-decoration:none;
  font-size:14px; font-weight:700; letter-spacing:-.01em;
  background:var(--surface-2); border:1.5px solid var(--border-strong);
  color:var(--text-primary); box-shadow:var(--shadow-sm);
}
.wfp-voltar:hover{ background:var(--surface-1); border-color:var(--text-muted); transform:translateX(-2px); }

/* botões rotulados da barra do projeto (Editar / Excluir) */
.wfp-btn{
  display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px;
  border-radius:9px; cursor:pointer; font-size:12px; font-weight:650;
  background:rgba(255,255,255,.75); border:1px solid var(--border); color:var(--text-secondary);
  box-shadow:none;
}
.wfp-btn:hover{ background:#fff; color:var(--text-primary); border-color:var(--border-strong); }
.wfp-btn.perigo{ color:#B4322F; border-color:rgba(180,50,47,.35); }
.wfp-btn.perigo:hover{ background:rgba(180,50,47,.1); border-color:rgba(180,50,47,.55); color:#8F2523; }

/* barra única do projeto */
.wfp-cabeca{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:12px 16px; }
.wfp-bolinha{ width:13px; height:13px; border-radius:4px; flex-shrink:0; }
.wfp-nome{ font-size:15px; font-weight:750; letter-spacing:-.015em; }
.wfp-meta{ font-size:11.5px; color:var(--text-muted); }
.wfp-espaco{ flex:1; min-width:10px; }
.wfp-acao{
  width:26px; height:26px; padding:0; border-radius:8px; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.7); border:1px solid var(--border); box-shadow:none;
  color:var(--text-secondary); font-size:12px; cursor:pointer;
}
.wfp-acao:hover{ background:#fff; color:var(--text-primary); border-color:var(--border-strong); }
a.wfp-acao{ text-decoration:none; font-size:14px; line-height:1; }
.wfp-acao.perigo:hover{ background:rgba(180,50,47,.12); color:#B4322F; border-color:rgba(180,50,47,.4); }
.wfp-situacao{
  width:auto; height:24px; padding:1px 7px; font-size:11px; font-weight:700;
  border-radius:999px; background:rgba(255,255,255,.8); border:1px solid var(--border);
}
.wfp-prog{
  position:relative; width:150px; height:24px; flex-shrink:0;
  border-radius:999px; background:rgba(19,24,41,.09); overflow:hidden;
  border:1px solid rgba(19,24,41,.06);
}
.wfp-prog i{ position:absolute; left:0; top:0; bottom:0; display:block; border-radius:999px; }
.wfp-prog b{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:800; color:var(--text-primary);
  /* contorno claro: o número continua legível sobre qualquer cor de projeto */
  text-shadow:0 0 3px rgba(255,255,255,.95), 0 0 3px rgba(255,255,255,.95), 0 1px 1px rgba(255,255,255,.9);
}
.wfp-recolher{
  width:26px; height:26px; padding:0; border-radius:8px; flex-shrink:0;
  background:transparent; border:0; box-shadow:none; color:var(--text-secondary);
  font-size:13px; cursor:pointer;
}
.wfp.fechado .wfp-conteudo{ display:none; }
.wfp.fechado .wfp-recolher{ transform:rotate(-90deg); }

.wfp-form{ padding:12px 16px; border-top:1px solid var(--border); background:rgba(118,184,42,.05); }
.wfp-form-linha{ display:flex; gap:10px; flex-wrap:wrap; align-items:center; margin-bottom:8px; }
.wfp-form-linha:last-child{ margin-bottom:0; }
.wfp-form-linha input[type=text], .wfp-form-linha input[type=date], .wfp-form-linha select{
  box-sizing:border-box; height:36px; padding:6px 10px; font-size:12.5px; width:auto;
}
.wfp-form-linha input[type=date]{ width:150px; }
.wfp-form-linha input[type=color]{ width:52px; height:36px; padding:3px; }

/* gantt: rótulo grudado à esquerda, tempo rolando junto na mesma linha */
.wfp-gantt{ overflow-x:auto; border-top:1px solid var(--border); }
/* o min-width vem do PHP (560 + dias × largura mínima do dia):
   caber na tela = a faixa estica e não sobra branco; não caber = rola */
.wfp-inner{ width:100%; }
.wfp-linha{ min-height:52px; }
/* as linhas do Gantt também são [data-reorder-item] (arraste), mas NÃO devem
   herdar o visual de cartão daquele componente — em especial o
   align-items:center, que zerava a altura da faixa e apagava a grade */
.wfp-tarefas [data-reorder-item]{
  display:flex; align-items:stretch; gap:0;
  background:transparent; border:0; border-radius:0;
  padding:0; margin:0; cursor:default;
  border-bottom:1px solid rgba(19,24,41,.05);
}
.wfp-linha{ display:flex; align-items:stretch; border-bottom:1px solid rgba(19,24,41,.05); width:100%; }
.wfp-linha:last-child{ border-bottom:0; }
.wfp-linha:not(.wfp-cabecalho):hover{ background:rgba(118,184,42,.05); }
.wfp-rotulo{
  flex:0 0 660px; box-sizing:border-box;
  display:flex; align-items:center; gap:8px; padding:9px 12px 9px 14px;
  position:sticky; left:0; z-index:3;
  background:var(--surface-2); border-right:1px solid var(--border);
  min-height:52px;
}
.wfp-linha:not(.wfp-cabecalho):hover .wfp-rotulo{ background:#F6FAF0; }
/* cabeçalho: todos os títulos exatamente no mesmo estilo e alinhados
   com a coluna de dados que fica embaixo de cada um */
.wfp-cabecalho .wfp-rotulo{ background:var(--surface-1); align-items:flex-end; min-height:56px; padding-bottom:10px; }
.wfp-cabecalho .wfp-rotulo > span{
  font-size:9.5px; font-weight:800; letter-spacing:.07em; text-transform:uppercase;
  color:var(--text-muted); white-space:nowrap; line-height:1;
}
.wfp-linha.ok .c-nome{ opacity:.5; text-decoration:line-through; }

.wfp-rotulo .c-nome{
  flex:1; min-width:0; font-size:12.5px; font-weight:650; line-height:1.32;
  white-space:normal; overflow-wrap:break-word; word-break:break-word;
}
.wfp-rotulo .c-donos{ width:84px; flex-shrink:0; display:flex; gap:3px; flex-wrap:wrap; }
.wfp-rotulo .c-data{ width:44px; flex-shrink:0; color:var(--text-secondary); font-variant-numeric:tabular-nums; font-size:12px; }
.wfp-rotulo .c-dur{ width:38px; flex-shrink:0; text-align:center; color:var(--text-muted); font-variant-numeric:tabular-nums; font-size:12px; }
.wfp-rotulo .c-prog{ width:58px; flex-shrink:0; text-align:center; }
.wfp-rotulo .c-ok{ width:104px; flex-shrink:0; }
.wfp-rotulo .c-x{ width:22px; flex-shrink:0; display:flex; justify-content:flex-end; }

/* % de tempo decorrido (automático, não se escolhe) */
.wfp-tempo-txt{ font-size:12px; font-weight:800; color:var(--text-secondary); font-variant-numeric:tabular-nums; }
.wfp-tempo-txt.atraso{ color:#B4322F; font-size:10px; letter-spacing:.03em; text-transform:uppercase; }
.wfp-tempo-txt.feito{ color:var(--green-dark); font-size:10px; letter-spacing:.03em; text-transform:uppercase; }

/* botão Concluir / Concluída */
.wfp-check{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  background:var(--surface-1); border:1px solid var(--border); border-radius:999px;
  padding:4px 11px 4px 5px; font-family:inherit; font-size:11px; font-weight:700;
  color:var(--text-secondary); box-shadow:none; white-space:nowrap;
}
.wfp-check i{
  width:17px; height:17px; border-radius:50%; flex-shrink:0; font-style:normal;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(19,24,41,.08); color:transparent; font-size:10px; font-weight:900;
}
.wfp-check:hover{ border-color:var(--green); color:var(--text-primary); }
.wfp-check:hover i{ color:rgba(19,24,41,.25); }
.wfp-check.marcado{ background:rgba(118,184,42,.14); border-color:var(--green); color:var(--green-dark); }
.wfp-check.marcado i{ background:var(--green); color:#fff; }
.c-late{
  font-style:normal; font-size:9.5px; font-weight:800; text-transform:uppercase; letter-spacing:.04em;
  color:#B4322F; background:rgba(180,50,47,.11); padding:1px 6px; border-radius:999px; white-space:nowrap;
}

.wfp-tempo{ position:relative; flex:1 1 auto; min-width:0; }
.wfp-cabecalho .wfp-tempo{ background:var(--surface-1); }
/* grade de dias: uma linha cinza clara em cada divisa de dia, contínua de
   cima a baixo do quadro (cada linha desenha a sua parte) */
.wfp-faixa{ background-image:linear-gradient(90deg, rgba(19,24,41,.17) 1px, transparent 1px); }
.wfp-meses{ display:flex; height:24px; border-bottom:1px solid var(--border); }
.wfp-meses span{
  display:inline-flex; align-items:center; padding-left:9px; box-sizing:border-box;
  font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:var(--text-muted); border-right:1px solid var(--border); white-space:nowrap; overflow:hidden;
}
.wfp-dias{ display:flex; height:30px; }
.wfp-dias span{
  box-sizing:border-box; flex-shrink:0; display:flex; flex-direction:column;
  align-items:center; justify-content:center; line-height:1.1;
  /* mesma divisa que a grade das linhas: o traço do dia desce contínuo */
  border-left:1px solid rgba(19,24,41,.17); overflow:hidden;
}
.wfp-dias span:first-child{ border-left-color:transparent; }
/* escala semana/mês: célula maior, rótulo alinhado à esquerda */
.wfp-dias.largo{ height:34px; }
.wfp-dias.largo span{ align-items:flex-start; padding-left:9px; border-left:1px solid var(--border-strong); }
.wfp-dias.largo b{ font-size:11px; }
.wfp-dias b{ font-size:10.5px; font-weight:700; color:var(--text-secondary); }
.wfp-dias small{ font-size:8px; color:var(--text-muted); }
.wfp-dias .hj{ background:rgba(234,67,53,.12); }
.wfp-dias .hj b{ color:#EA4335; }
.wfp-hoje{ position:absolute; top:0; bottom:0; width:2px; background:#EA4335; z-index:2; pointer-events:none; }

.wf-b-tarefa{
  position:absolute; top:50%; transform:translateY(-50%); height:34px;
  border-radius:9px; overflow:hidden; z-index:1;
  box-shadow:0 2px 7px rgba(15,20,35,.16), inset 0 0 0 1px rgba(19,24,41,.06);
  transition:box-shadow .1s ease;
}
.wf-b-tarefa:hover{ box-shadow:0 5px 16px rgba(15,20,35,.28); z-index:4; }
/* parte do prazo que já passou: cor cheia. o resto fica na cor clara do fundo */
.wf-b-passado{ display:block; height:100%; border-radius:9px 0 0 9px; }
.wf-b-tarefa.ok{ opacity:.55; filter:saturate(.7); }
.wf-b-tarefa.ok .wf-b-passado{ border-radius:9px; }
.wf-b-tarefa.atrasada{ outline:2px solid #B4322F; outline-offset:1px; }

/* alça de arrastar a tarefa para cima/baixo */
.wfp-pegar{
  flex-shrink:0; width:14px; cursor:grab; user-select:none;
  color:var(--text-muted); font-size:13px; line-height:1; letter-spacing:-1px;
  opacity:.35; align-self:center;
}
.wfp-pegar:hover{ opacity:1; color:var(--text-primary); }
.wfp-pegar:active{ cursor:grabbing; }
.wfp-linha[data-reorder-item].sendo-arrastado{ opacity:.4; }
.wfp-linha[data-reorder-item].sendo-arrastado .wfp-rotulo{ background:rgba(118,184,42,.12); }

.wfp-linha-add .wfp-rotulo{ padding:7px 12px 7px 16px; }
.wfp-add{
  display:inline-flex; align-items:center; gap:8px; cursor:pointer;
  background:transparent; border:1.5px dashed var(--border-strong); border-radius:9px;
  padding:6px 14px; font-family:inherit; font-size:12px; font-weight:650;
  color:var(--text-secondary); box-shadow:none;
}
.wfp-add span{
  width:18px; height:18px; border-radius:50%; background:var(--green); color:#fff;
  display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:800; line-height:1;
}
.wfp-add:hover{ border-color:var(--green); color:var(--text-primary); background:rgba(118,184,42,.08); }

.wf-avatar{
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  color:#fff; font-size:9px; font-weight:800;
  border:1.5px solid #fff; box-shadow:0 1px 3px rgba(15,20,35,.25);
}
.wf-p-x{
  width:22px; height:22px; padding:0; border-radius:50%; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:transparent; border:0; box-shadow:none; color:var(--text-muted);
  font-size:11px; cursor:pointer;
}
.wf-p-x:hover{ background:rgba(180,50,47,.12); color:#B4322F; }

/* edição direto na célula */
.wf-inline{ cursor:pointer; border-bottom:1px dashed transparent; }
.wf-inline:hover{ border-bottom-color:var(--border-strong); background:rgba(118,184,42,.1); border-radius:4px; }
.c-donos.wf-inline{ border-radius:6px; padding:2px 4px; margin:-2px -4px; }
.wf-inline-input{
  box-sizing:border-box; width:100%; height:30px !important; padding:3px 8px !important;
  font-size:12.5px !important; border-radius:7px !important; border:1.5px solid var(--green) !important;
  background:#fff !important; box-shadow:0 0 0 3px rgba(118,184,42,.15) !important;
}
.wf-inline-input:not(.nome){ width:130px; }
.wf-minipop{
  position:fixed; z-index:300; min-width:190px;
  background:rgba(255,255,255,.98); border:1px solid var(--border); border-radius:12px;
  box-shadow:0 14px 40px rgba(15,20,35,.25); padding:11px 13px;
  display:flex; flex-direction:column; gap:6px; animation:ev-pop .12s ease;
}
.wf-minipop > b{ font-size:11px; font-weight:800; letter-spacing:.05em; text-transform:uppercase; color:var(--text-muted); margin-bottom:2px; }
.wf-minipop label{ display:flex; align-items:center; gap:8px; font-size:12.5px; cursor:pointer; padding:3px 2px; }
.wf-minipop label input{ width:15px; height:15px; margin:0; accent-color:var(--green); }
.wf-minipop .btn-primary{ margin-top:6px; }
/* ---------- prazos das etapas na criação do contrato ---------- */
.ct-etapas{ display:flex; flex-direction:column; gap:6px; }
.ct-etapa{
  display:flex; align-items:center; gap:11px;
  background:var(--surface-1); border:1px solid var(--border); border-radius:9px;
  padding:8px 13px;
}
.ct-etapa-num{
  width:22px; height:22px; border-radius:50%; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center;
  background:rgba(118,184,42,.16); color:var(--green-dark); font-size:11px; font-weight:800;
}
.ct-etapa-nome{ flex:1; min-width:0; font-size:13px; font-weight:600; }
.ct-etapa-prazo{
  display:inline-flex; align-items:center; gap:6px; flex-shrink:0;
  font-size:11.5px; color:var(--text-muted);
}
.ct-etapa-prazo input{ width:74px; height:32px; padding:3px 8px; font-size:12.5px; text-align:center; }

/* ---------- Financeiro por mês ---------- */
.fin-shell{ display:flex; gap:16px; align-items:flex-start; }
.fin-meses{
  width:190px; flex-shrink:0; display:flex; flex-direction:column; gap:4px;
  position:sticky; top:16px;
}
.fin-mes{
  display:flex; align-items:center; justify-content:space-between; gap:8px;
  padding:10px 13px; border-radius:10px; text-decoration:none;
  background:var(--surface-2); border:1px solid var(--border);
  font-size:13px; font-weight:600; color:var(--text-secondary);
}
.fin-mes:hover{ border-color:var(--border-strong); color:var(--text-primary); box-shadow:var(--shadow-xs); }
.fin-mes.active{
  background:linear-gradient(160deg,#141A2C,#232B45); color:#fff; border-color:#141A2C;
  box-shadow:var(--shadow-sm);
}
.fin-mes-tag{
  font-size:9.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  padding:2px 7px; border-radius:999px; background:rgba(118,184,42,.16); color:var(--green-dark);
}
.fin-mes.active .fin-mes-tag{ background:rgba(118,184,42,.35); color:#E6F5D2; }
.fin-mes-seta{
  text-align:center; padding:5px; border-radius:8px; text-decoration:none;
  color:var(--text-muted); font-size:11px; border:1px dashed var(--border);
}
.fin-mes-seta:hover{ color:var(--text-primary); border-color:var(--border-strong); background:var(--surface-2); }

.fin-extrato{
  flex:1; min-width:0;
  background:var(--vidro-fundo, rgba(255,255,255,.66));
  -webkit-backdrop-filter:blur(14px) saturate(1.15); backdrop-filter:blur(14px) saturate(1.15);
  border:1px solid var(--vidro-borda, var(--border)); border-radius:var(--radius-xl);
  box-shadow:var(--shadow-sm); padding:22px 24px 24px;
}
.fin-titulo-mes{ font-size:18px; font-weight:700; letter-spacing:-.02em; margin:0 0 16px; }
.fin-grupo-titulo{
  font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  color:var(--text-muted); margin-bottom:8px;
}
.fin-vazio{ font-size:12.5px; color:var(--text-muted); padding:10px 2px 4px; }

/* uma linha só por lançamento, em COLUNAS alinhadas e separadas por
   divisória: dia · nome · categoria/produto · situação · valor */
.fin-linha{
  display:grid; align-items:center; gap:0;
  grid-template-columns:46px minmax(0,1fr) 190px 108px 132px;
  padding:0 12px; border-radius:8px; margin-bottom:3px;
  border:1px solid transparent; min-height:36px;
}
.fin-linha > *{
  padding:6px 12px; min-width:0;
  border-left:1px solid rgba(19,24,41,.07);
}
.fin-linha > *:first-child{ border-left:0; padding-left:0; }
.fin-linha > *:last-child{ padding-right:0; }
@media (max-width:1100px){
  .fin-linha{ grid-template-columns:42px minmax(0,1fr) 130px 96px 116px; }
  .fin-linha > *{ padding:6px 8px; }
}
@media (max-width:760px){
  .fin-linha{ grid-template-columns:38px minmax(0,1fr) 96px 108px; }
  .fin-linha .fin-cat{ display:none; }
}
.fin-cabeca{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.fin-cabeca .fin-titulo-mes{ margin:0; }
.fin-filtros{ display:flex; gap:8px; flex-wrap:wrap; margin-left:auto; }
.fin-filtros select{
  width:auto; height:32px; padding:3px 9px; font-size:12px; font-weight:600;
  border-radius:8px; background:var(--surface-2); border:1px solid var(--border);
}
.fin-cat{
  font-size:11.5px; color:var(--text-secondary);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.fin-sit{ display:flex; justify-content:center; }
/* cada lançamento abre ali mesmo, sem precisar ir em "Gerenciar" */
.fin-item > summary{ list-style:none; cursor:pointer; }
.fin-item > summary::-webkit-details-marker{ display:none; }
.fin-item > summary:hover{ filter:brightness(.97); }
.fin-item[open] > summary{ margin-bottom:0; border-radius:10px 10px 0 0; }
.fin-acoes{
  background:var(--surface-1); border:1px solid var(--border); border-top:0;
  border-radius:0 0 10px 10px; padding:12px 14px; margin-bottom:8px;
  display:flex; flex-direction:column; gap:10px;
}
.fin-acoes-info{ font-size:12.5px; color:var(--text-secondary); }
.fin-form-conc, .fin-form-edit{ display:flex; gap:9px; flex-wrap:wrap; align-items:flex-end; }
.fin-form-edit{ padding-top:10px; border-top:1px dashed var(--border); }
.fin-acoes label{
  display:flex; flex-direction:column; gap:3px;
  font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--text-muted);
}
.fin-acoes label input, .fin-acoes label select{
  box-sizing:border-box; height:32px; padding:4px 8px; font-size:12.5px;
  font-weight:500; letter-spacing:0; text-transform:none; color:var(--text-primary);
}
.fin-acoes label input[type=text]{ width:112px; }
.fin-acoes label input[type=date]{ width:138px; }
.fin-acoes label select{ width:auto; min-width:120px; }
.fin-form-edit label:nth-child(2) input{ width:190px; }
.fin-parcial{ justify-content:flex-end; }
.fin-parcial > span{
  display:inline-flex; align-items:center; gap:6px; cursor:pointer;
  font-size:11px; font-weight:700; letter-spacing:.03em; text-transform:none; color:var(--text-secondary);
  height:32px;
}
.fin-parcial input[type=checkbox]{ width:15px; height:15px; margin:0; accent-color:var(--green); }
.fin-parcial input[type=date]{ margin-top:4px; }
.fin-acoes-rodape{
  display:flex; align-items:center; gap:12px; flex-wrap:wrap;
  padding-top:9px; border-top:1px dashed var(--border);
  font-size:11.5px; color:var(--text-muted);
}
/* cores combinadas: verde bem clarinho na entrada, vermelho bem clarinho na
   saída (mesma intensidade), âmbar quando é recorrente de valor variável */
/* verde = entrada, vermelho = saída. Nada de laranja. */
.fin-ent{ background:rgba(118,184,42,.09); border-color:rgba(118,184,42,.22); }
.fin-sai{ background:rgba(217,83,79,.09);  border-color:rgba(217,83,79,.22); }
/* no extrato mensal só o DIA basta: o mês já é o título da tela */
.fin-dia{
  display:flex; align-items:center; justify-content:center;
  font-size:13px; font-weight:750; font-variant-numeric:tabular-nums;
  color:var(--text-secondary);
}
.fin-desc{
  font-size:12.5px; font-weight:600;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.fin-chip{
  font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  padding:3px 9px; border-radius:999px; white-space:nowrap;
}
.fin-chip-pago{ background:rgba(118,184,42,.18); color:#3E7113; }
.fin-chip-vencido{ background:rgba(180,50,47,.14); color:#B4322F; }
.fin-chip-aberto{ background:rgba(19,24,41,.07); color:var(--text-secondary); }
.fin-valor{ text-align:right; font-size:13.5px; font-weight:700; font-variant-numeric:tabular-nums; }
.fin-ent .fin-valor{ color:#3E7113; }
.fin-sai .fin-valor{ color:#B4322F; }

/* resumo do mês: azul em transparência */
.fin-resumo{
  margin-top:22px; border-radius:var(--radius-lg); padding:16px 18px;
  background:rgba(62,134,201,.10); border:1px solid rgba(62,134,201,.28);
  display:flex; flex-direction:column; gap:8px;
}
.fin-resumo > div{ display:flex; justify-content:space-between; gap:12px; font-size:13px; }
.fin-resumo span{ color:var(--text-secondary); }
.fin-resumo b{ font-variant-numeric:tabular-nums; }
.fin-resumo-saldo{
  border-top:1px solid rgba(62,134,201,.3); padding-top:10px; margin-top:2px;
  font-size:14.5px !important;
}
.fin-resumo-saldo span{ font-weight:650; color:var(--text-primary); }
.fin-resumo-saldo.positivo b{ color:#3E7113; font-size:16px; }
.fin-resumo-saldo.negativo b{ color:#B4322F; font-size:16px; }
.fin-saldo-ini{ align-items:center; padding-bottom:8px; border-bottom:1px solid rgba(62,134,201,.28); margin-bottom:2px; }
.fin-nota-saldo{ font-size:11.5px; color:var(--text-muted); line-height:1.5; padding-top:6px; }
.fin-tipo{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.fin-tipo label{
  display:flex; align-items:center; gap:8px; cursor:pointer;
  background:var(--surface-1); border:1.5px solid var(--border); border-radius:10px;
  padding:9px 15px; font-size:12.5px; font-weight:650;
}
.fin-tipo label:has(input:checked){ border-color:var(--green); background:rgba(118,184,42,.1); }
.fin-tipo input{ width:15px; height:15px; margin:0; accent-color:var(--green); }

@media (max-width:900px){
  .fin-shell{ flex-direction:column; }
  .fin-meses{ width:100%; flex-direction:row; flex-wrap:wrap; position:static; }
  .fin-mes{ flex:1; min-width:130px; }
}

/* ---------- variações do produto ---------- */
.var-linha{
  display:grid; grid-template-columns:1.2fr 1.6fr .8fr .8fr auto; gap:10px;
  align-items:center; margin-bottom:9px;
}
.var-linha input{ box-sizing:border-box; width:100%; }
.var-linha [data-var-remover]{ padding:6px 11px; }
@media (max-width:900px){ .var-linha{ grid-template-columns:1fr 1fr; } }

/* ---------- canvas do fluxo do produto ---------- */
.fx-barra{
  display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between;
  margin-bottom:12px;
}
.fx-paleta{ display:flex; gap:6px; flex-wrap:wrap; }
.fx-add{
  font-family:inherit; font-size:12px; font-weight:600; cursor:pointer;
  padding:6px 12px; border-radius:999px; box-shadow:none;
  background:var(--surface-1); border:1px solid var(--border); color:var(--text-secondary);
}
.fx-add:hover{ border-color:var(--green); color:var(--text-primary); background:rgba(118,184,42,.08); }
.fx-acoes{ display:flex; gap:7px; flex-wrap:wrap; align-items:center; }
.fx-estado{ font-size:11.5px; font-weight:600; margin-right:4px; }

.fx-canvas{
  position:relative; min-height:360px; overflow:auto;
  border:1px solid var(--border); border-radius:var(--radius-lg);
  background:
    radial-gradient(circle at 1px 1px, rgba(19,24,41,.11) 1px, transparent 0) 0 0 / 22px 22px,
    linear-gradient(180deg, var(--surface-1), var(--surface-2));
}
.fx-linhas{ position:absolute; inset:0; width:100%; height:100%; pointer-events:none; overflow:visible; }
.fx-linha{ stroke:#7A8194; stroke-width:1.9; pointer-events:stroke; cursor:pointer; }
.fx-linha:hover{ stroke:var(--text-primary); stroke-width:2.6; }
.fx-linha.selecionada{ stroke:#B4322F; stroke-width:2.8; }
.fx-linha-rotulo{ font-size:11px; font-weight:700; fill:var(--text-secondary); text-anchor:middle; }
.fx-vazio{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  font-size:13px; color:var(--text-muted); pointer-events:none; text-align:center; padding:20px;
}

.fx-no{
  position:absolute; min-width:158px; max-width:230px; min-height:52px;
  display:flex; align-items:center; justify-content:center; text-align:center;
  padding:11px 15px; border-radius:12px; cursor:grab; user-select:none;
  font-size:12.5px; font-weight:650; line-height:1.3; color:#fff;
  box-shadow:0 4px 14px rgba(15,20,35,.16); border:1px solid rgba(255,255,255,.18);
}
.fx-no:active{ cursor:grabbing; }
.fx-no.selecionado{ outline:2.5px solid var(--navy-700); outline-offset:2px; }
.fx-no.ligando{ outline:2.5px dashed var(--green); outline-offset:2px; }
.fx-no-txt{ pointer-events:none; }
.fx-alca{
  position:absolute; right:-9px; bottom:-9px; width:19px; height:19px; padding:0;
  border-radius:50%; cursor:crosshair; box-shadow:0 2px 6px rgba(15,20,35,.3);
  background:#fff; border:2px solid var(--green);
}
.fx-alca:hover{ background:var(--green); }

/* cores: identidade Vanitelli (verde/navy) + apoio para os outros tipos */
.fx-inicio{ background:linear-gradient(160deg,#131829,#232B45); }
.fx-processo{ background:linear-gradient(160deg,#76B82A,#5D9720); }
.fx-subprocesso{ background:linear-gradient(160deg,#8A93A8,#6E7789); }
.fx-decisao{
  background:linear-gradient(160deg,#E39A17,#C97E06); min-width:150px;
  border-radius:10px; transform:none;
}
.fx-decisao .fx-no-txt::before{ content:"◆ "; opacity:.85; }
.fx-espera{ background:linear-gradient(160deg,#3E86C9,#2D6BA5); }
.fx-cliente{ background:linear-gradient(160deg,#7E5BD1,#6544B4); }
.fx-documento{ background:linear-gradient(160deg,#4E5668,#3A4152); }

.fx-legenda{ display:flex; gap:16px; flex-wrap:wrap; margin-top:12px; font-size:11.5px; color:var(--text-secondary); }
.fx-legenda span{ display:flex; align-items:center; gap:6px; }
.fx-legenda i{ width:12px; height:12px; border-radius:4px; display:inline-block; }
.fx-cor-inicio{ background:#1B2136; }
.fx-cor-processo{ background:#76B82A; }
.fx-cor-subprocesso{ background:#8A93A8; }
.fx-cor-decisao{ background:#E39A17; }
.fx-cor-espera{ background:#3E86C9; }
.fx-cor-cliente{ background:#7E5BD1; }
.fx-cor-documento{ background:#4E5668; }

/* "por quê?" ao lado de um Excluir bloqueado (listagem de clientes) */
.ajuda-trava{
  font-size:11.5px; color:var(--text-muted); text-decoration:underline dotted;
  margin-left:5px; cursor:help; white-space:nowrap;
}
.ajuda-trava:hover{ color:var(--text-primary); }

/* ---------- Gerenciar Agendas: cartões expansíveis ---------- */
.ag-topo{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:16px; }
@media (max-width:1000px){ .ag-topo{ grid-template-columns:1fr; } }

.agcard{
  background:var(--vidro-fundo, rgba(255,255,255,.66));
  -webkit-backdrop-filter:blur(14px) saturate(1.15); backdrop-filter:blur(14px) saturate(1.15);
  border:1px solid var(--vidro-borda, var(--border)); border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm); margin-bottom:12px; overflow:hidden;
}
.agcard > summary{
  display:flex; align-items:center; gap:11px; flex-wrap:wrap;
  padding:15px 18px; cursor:pointer; list-style:none; user-select:none;
}
.agcard > summary::-webkit-details-marker{ display:none; }
.agcard > summary:hover{ background:rgba(19,24,41,.025); }
.agcard-cor{ width:12px; height:12px; border-radius:4px; flex-shrink:0; }
.agcard-nome{ font-weight:650; font-size:14.5px; letter-spacing:-.01em; }
.agcard-dono{ color:var(--text-muted); font-size:12px; }
.agcard-chips{ display:flex; gap:6px; flex-wrap:wrap; margin-left:auto; }
.agcard-abrir{
  flex-shrink:0; font-size:12px; font-weight:600; color:var(--text-secondary);
  border:1px solid var(--border); border-radius:8px; padding:5px 11px;
}
.agcard-abrir::after{ content:" ▾"; font-size:10px; }
.agcard[open] .agcard-abrir::after{ content:" ▴"; }
.agcard[open] > summary{ border-bottom:1px solid var(--border); }
.agcard-corpo{ padding:16px 18px 18px; }

.mini-chip{
  display:inline-flex; align-items:center; font-size:11px; font-weight:600;
  padding:3px 9px; border-radius:999px; white-space:nowrap;
  background:var(--surface-1); border:1px solid var(--border); color:var(--text-secondary);
}
.mini-chip.ok{ background:rgba(118,184,42,.12); border-color:rgba(118,184,42,.35); color:#3E7113; }
.mini-chip.warn{ background:rgba(214,138,0,.12); border-color:rgba(214,138,0,.4); color:#8A5A00; }
.mini-chip.off{ color:var(--text-muted); }

.ag-grid{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:1000px){ .ag-grid{ grid-template-columns:1fr; } }
.ag-bloco{
  background:var(--surface-2); border:1px solid var(--border);
  border-radius:var(--radius); padding:13px 15px;
}
.ag-bloco-titulo{
  display:flex; align-items:center; gap:7px;
  font-size:12.5px; font-weight:700; letter-spacing:.02em; margin-bottom:9px;
}
.ag-nota{ font-size:11.5px; color:var(--text-muted); margin-top:8px; line-height:1.45; }
.ag-fatos{ display:flex; flex-direction:column; gap:4px; }
.ag-fatos > div{ display:flex; gap:8px; font-size:12.5px; }
.ag-fatos span{ color:var(--text-muted); width:150px; flex-shrink:0; }
.ag-fatos b{ font-weight:600; word-break:break-all; }

.hc-linha{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; padding:4px 0; border-bottom:1px dashed var(--border); }
.hc-linha:last-child{ border-bottom:0; }
.hc-linha input[type=time]{ width:96px; height:32px; padding:4px 7px; font-size:12.5px; }
.hc-aplicar{ font-size:11px; padding:3px 9px; margin-left:auto; }

.ag-link{
  display:flex; justify-content:space-between; align-items:center; gap:10px;
  border:1px solid var(--border); border-radius:var(--radius); padding:9px 12px;
  background:var(--surface-2);
}
.ag-link-url{ font-size:11px; color:var(--text-secondary); word-break:break-all; }

.ag-acoes{
  margin-top:14px; padding-top:12px; border-top:1px solid var(--border);
  display:flex; gap:10px; flex-wrap:wrap; align-items:center;
}

.subcard{
  margin-top:14px; border:1px solid var(--border); border-radius:var(--radius);
  background:var(--surface-2); padding:0 14px;
}
.subcard > summary{
  padding:11px 0; cursor:pointer; list-style:none; user-select:none;
  font-size:12.5px; font-weight:700; letter-spacing:.02em;
}
.subcard > summary::-webkit-details-marker{ display:none; }
.subcard > summary::after{ content:" ▾"; color:var(--text-muted); font-size:10px; }
.subcard[open] > summary::after{ content:" ▴"; }
.subcard[open]{ padding-bottom:14px; }

/* horário fora do expediente (Semana útil com horário comercial definido) */
.tg-slot-fora{
  background:repeating-linear-gradient(135deg, rgba(19,24,41,.035) 0 6px, transparent 6px 12px);
  cursor:not-allowed;
}
.tg-col-fechada{ background:rgba(19,24,41,.02); }

.ev-editor .ed-copia{
  margin:8px 0 2px 86px; font-size:12px; color:var(--text-muted);
  background:var(--surface-1); border:1px dashed var(--border);
  border-radius:8px; padding:7px 11px; display:inline-block;
}
.ev-editor .ed-meet{ margin:10px 0 2px 86px; }
.ev-editor .ed-meet-add{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--surface-2); border:1px solid var(--border); border-radius:8px;
  padding:8px 13px; font-size:12.5px; font-weight:600; color:var(--text-primary);
  cursor:pointer; box-shadow:none;
}
.ev-editor .ed-meet-add:hover{ border-color:var(--border-strong); background:var(--surface-1); }
.ev-editor .ed-meet-add.ativo{ border-color:var(--green); background:rgba(118,184,42,.08); }
.ev-editor .ed-meet-linha{ display:flex; align-items:center; gap:9px; font-size:12.5px; }
.ev-editor .ed-meet-abrir{ color:var(--text-primary); font-weight:600; text-decoration:none; }
.ev-editor .ed-meet-abrir:hover{ text-decoration:underline; }
.ev-editor .ed-meet-copiar{
  background:transparent; border:1px solid var(--border); border-radius:7px;
  padding:5px 10px; font-size:12px; cursor:pointer; box-shadow:none; color:var(--text-secondary);
}
.ev-editor .ed-meet-copiar:hover{ border-color:var(--border-strong); color:var(--text-primary); }
.ev-editor .acoes{ align-items:center; margin-top:16px; }
.ev-editor .ed-excluir{
  background:transparent; border:0; box-shadow:none; padding:8px 10px;
  font-size:12.5px; font-weight:600; cursor:pointer; border-radius:8px;
}
.ev-editor .ed-excluir:hover{ background:rgba(180,50,47,.08); }

/* seletor de visualização da Agenda (§2.1) */
.agenda-view-switch{ display:inline-flex; background:var(--surface-1); border:1px solid var(--border); border-radius:var(--radius); padding:3px; gap:2px; }
.agenda-view-switch button{
  border:0; background:transparent; padding:6px 12px; font-size:12.5px; font-weight:500;
  border-radius:calc(var(--radius) - 3px); color:var(--text-secondary); cursor:pointer;
}
.agenda-view-switch button.active{ background:var(--surface-2); color:var(--text-primary); box-shadow:var(--shadow-xs); font-weight:600; }

/* visualização "Dia" da Agenda: lista detalhada em vez de grade */
.agenda-dia-lista{ display:flex; flex-direction:column; gap:8px; }
.agenda-dia-item{
  display:flex; gap:14px; align-items:flex-start; text-decoration:none; color:inherit;
  background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius);
  padding:12px 14px;
}
.agenda-dia-item:hover{ border-color:var(--border-strong); box-shadow:var(--shadow-sm); }
.agenda-dia-hora{ flex-shrink:0; width:110px; font-size:12.5px; font-weight:600; color:var(--text-secondary); }

/* ---------- etapas de fluxo (arrastar para reordenar) ---------- */
[data-reorder-item]{
  display:flex; align-items:center; gap:10px;
  background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius);
  padding:10px 12px; margin-bottom:8px; cursor:grab;
}
[data-reorder-item].sendo-arrastado{ opacity:.4; }
[data-reorder-item] .etapa-arrastar{ color:var(--text-muted); flex-shrink:0; cursor:grab; }
[data-reorder-item] .etapa-corpo{ flex:1; min-width:0; }
[data-reorder-item].etapa-inativa{ opacity:.55; }
[data-reorder-item].etapa-personalizada{ border-color:var(--green); box-shadow:0 0 0 1px rgba(118,184,42,.18); }

/* cards de indicador (métricas) */
.stat{ background:var(--surface-2); border:1px solid var(--border); border-radius:var(--radius-lg); padding:15px 17px; box-shadow:var(--shadow-sm); }
.stat-label{ font-size:11px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--text-muted); margin-bottom:6px; }
.stat-valor{ font-size:26px; font-weight:700; letter-spacing:-.025em; line-height:1.15; }
.barra{ height:7px; background:#E7E9EF; border-radius:999px; overflow:hidden; }
.barra > span{ display:block; height:100%; background:linear-gradient(90deg,var(--green),#93CE45); border-radius:999px; }

.mobile-menu-btn{ display:none; }
.sidebar-backdrop{ display:none; }

/* impressão / "salvar como PDF" do navegador (§3.4) — a classe .no-print já
   era usada em layout_header.php na topbar, mas nunca tinha regra de fato */
@media print{
  .no-print, #sidebar, .mobile-menu-btn, .sidebar-backdrop, .form-actions,
  .filtros, button, a.btn, a.btn-sm, .btn-primary, .btn-quiet, .btn-danger{ display:none !important; }
  .shell{ display:block; }
  .main{ padding:0; }
  .main-inner{ max-width:none; }
  .tbl-wrap{ box-shadow:none; border:1px solid #999; }
  body{ background:#fff; }
}

@media (max-width:1000px){
  .shell{ flex-direction:column; }
  #sidebar{
    width:82%; max-width:300px; height:100vh; position:fixed; top:0; left:0; z-index:50;
    padding:22px 14px 20px; transform:translateX(-100%); transition:transform .25s ease;
    box-shadow:var(--shadow-lg);
  }
  #sidebar.mobile-open{ transform:translateX(0); }
  .main{ padding:64px 18px 48px; }
  .form-grid-2, .form-grid-3, .form-grid-4{ grid-template-columns:1fr; }
  .linha-contato-adicional{ grid-template-columns:1fr; }
  .linha-contato-adicional .btn-danger{ width:100%; text-align:center; }
  .cal-grid{ gap:3px; }
  .daycell{ min-height:78px; padding:5px; }

  .mobile-menu-btn{
    display:flex; align-items:center; justify-content:center;
    position:fixed; top:14px; left:14px; z-index:60;
    width:40px; height:40px; border-radius:var(--radius);
    background:var(--navy-800); border:1px solid var(--navy-800); color:#fff;
    cursor:pointer;
  }
  .sidebar-backdrop.show{
    display:block; position:fixed; inset:0; z-index:45;
    background:rgba(14,18,32,.45);
  }
}
/* ============================================================
   TEMA ESCURO — fundo no azul Vanitelli, barra lateral preta.
   Ligado por html[data-tema="escuro"] (botão de lua na barra de
   cima; a escolha fica no navegador via localStorage).
   ============================================================ */
html[data-tema="escuro"]{ color-scheme:dark; }
html[data-tema="escuro"] body{
  --surface-0:#0E1220; --surface-1:#151B2E; --surface-2:#1B2238;
  --text-primary:#EDF0F7; --text-secondary:#A9B0C6; --text-muted:#727A95;
  --border:rgba(255,255,255,.09); --border-strong:rgba(255,255,255,.17);
  --green-soft:rgba(118,184,42,.16); --green-dark:#8FCC4A; --text-accent:#8FCC4A;
  --shadow-sm:0 1px 3px rgba(0,0,0,.4), 0 1px 2px rgba(0,0,0,.3);
  --shadow-md:0 6px 18px rgba(0,0,0,.42);
  --shadow-lg:0 24px 60px rgba(0,0,0,.6);
  --vidro-fundo:linear-gradient(158deg, rgba(27,34,56,.92) 0%, rgba(23,30,50,.88) 55%, rgba(20,26,44,.85) 100%);
  --vidro-borda:rgba(255,255,255,.10);
  --vidro-borda-verde:rgba(118,184,42,.3);
  --vidro-sombra:0 12px 32px rgba(0,0,0,.4), 0 2px 8px rgba(0,0,0,.3);
  --vidro-brilho:inset 0 1px 0 rgba(255,255,255,.06);
  --campo-fundo:rgba(255,255,255,.06);
  --campo-fundo-foco:rgba(255,255,255,.11);
}
/* o "fundo branco" vira o azul da Vanitelli */
html[data-tema="escuro"] body::before{
  background:
    radial-gradient(760px 520px at 12% -6%, rgba(118,184,42,.09), transparent 62%),
    radial-gradient(680px 460px at 96% 8%, rgba(118,184,42,.06), transparent 60%),
    radial-gradient(900px 620px at 50% 108%, rgba(24,95,165,.12), transparent 62%),
    linear-gradient(180deg, #0E1220 0%, #10162a 48%, #0E1220 100%);
}
/* barra lateral PRETA */
html[data-tema="escuro"] #sidebar{
  background:linear-gradient(175deg,#050710 0%,#0A0D18 55%,#04060D 100%);
}
html[data-tema="escuro"] .tbl thead th{ background:rgba(255,255,255,.045) !important; color:var(--text-secondary); }
html[data-tema="escuro"] .fin-ent{ background:rgba(118,184,42,.10); border-color:rgba(118,184,42,.24); }
html[data-tema="escuro"] .fin-sai{ background:rgba(217,83,79,.10); border-color:rgba(217,83,79,.26); }
html[data-tema="escuro"] .fin-ent .fin-valor{ color:#9BD65A; }
html[data-tema="escuro"] .fin-sai .fin-valor,
html[data-tema="escuro"] .cob-total, html[data-tema="escuro"] .cob-total-geral,
html[data-tema="escuro"] .pf-atraso, html[data-tema="escuro"] .fin-chip-vencido,
html[data-tema="escuro"] .wfl-status.atraso, html[data-tema="escuro"] .wfl-prox.atraso{ color:#F08A85; }
html[data-tema="escuro"] .fin-chip-vencido{ background:rgba(217,83,79,.18); }
html[data-tema="escuro"] .fin-linha > *{ border-left-color:rgba(255,255,255,.08); }
html[data-tema="escuro"] .wfp-acao, html[data-tema="escuro"] .wfp-btn,
html[data-tema="escuro"] .wfp-situacao, html[data-tema="escuro"] .btn-desfazer{
  background:rgba(255,255,255,.07); color:var(--text-secondary);
}
html[data-tema="escuro"] .wfp-acao:hover, html[data-tema="escuro"] .wfp-btn:hover{ background:rgba(255,255,255,.14); color:var(--text-primary); }
html[data-tema="escuro"] .kb-quadro, html[data-tema="escuro"] .pf-quadro{
  background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(0,0,0,.18));
}
html[data-tema="escuro"] .kb-cab-col{ background:linear-gradient(180deg, #1B2238, rgba(27,34,56,.8)); }
html[data-tema="escuro"] .kb-celula{ background:rgba(255,255,255,.035); }
html[data-tema="escuro"] .kb-raia-cab{ background:linear-gradient(180deg, #171E33, rgba(23,30,51,.7)); }
html[data-tema="escuro"] .pf-col{ background:rgba(255,255,255,.035); }
html[data-tema="escuro"] .pf-col-topo{ background:rgba(20,26,44,.97); }
html[data-tema="escuro"] .fx-raiz input[type=text], html[data-tema="escuro"] .fx-raiz textarea,
html[data-tema="escuro"] .fx-raiz input[type=number], html[data-tema="escuro"] .fx-raiz select,
html[data-tema="escuro"] .kb-novo textarea, html[data-tema="escuro"] .kb-modal textarea,
html[data-tema="escuro"] .kb-modal input{ background:var(--campo-fundo); color:var(--text-primary); }
html[data-tema="escuro"] .kb-modal, html[data-tema="escuro"] .wfm-caixa,
html[data-tema="escuro"] .cfg-caixa{ background:var(--surface-1); }
html[data-tema="escuro"] .alert-sucesso{ background:rgba(118,184,42,.14); color:#9BD65A; border-color:rgba(118,184,42,.3); }
html[data-tema="escuro"] .alert-erro{ background:rgba(217,83,79,.14); color:#F08A85; border-color:rgba(217,83,79,.3); }
html[data-tema="escuro"] .agenda-view-switch button.active{ color:#fff; }
html[data-tema="escuro"] img.side-config-ico{ filter:brightness(10); }

/* botão de tema: mostra a lua no claro e o sol no escuro */
.tema-sol{ display:none; }
html[data-tema="escuro"] .tema-lua{ display:none; }
html[data-tema="escuro"] .tema-sol{ display:block; }
button.topbar-sino{ cursor:pointer; }
