/* ============================================================================
   LINHA · Regulação (Assistencial, Kanban, Executante, Chamados)
   O esqueleto vem do modelo global (05-painel.css). Aqui fica só o que é da
   Regulação: lista com detalhe ao lado, etapas do processo e o quadro.
   ============================================================================ */

/* o conteúdo de cada seção segue o ritmo do painel */
#view-regulacao #reg-content{ display:flex; flex-direction:column; gap:var(--l-e5); min-width:0 }

.reg-n{ margin-left:4px; font-variant-numeric:tabular-nums; color:var(--l-texto-3); font-weight:500 }
.l-seg button.on .reg-n{ color:var(--l-marca-tinta) }
.reg-proto{ font-family:var(--l-mono); font-size:var(--l-t-mini); color:var(--l-texto-3); letter-spacing:.02em }
.reg-sub{ align-self:flex-start }

/* ---------------------------------------------------------------- solicitações: lista | detalhe */
.reg-mestre{ display:grid; grid-template-columns:minmax(0,1fr) 380px; gap:var(--l-e5); align-items:start }
.reg-mestre-lista{ max-height:calc(100dvh - 300px); overflow-y:auto }
.reg-solic{ grid-template-columns:auto minmax(0,1fr) auto; padding:12px var(--l-e5) }
.reg-solic .l-item-corpo small{ font-size:var(--l-t-mini); color:var(--l-texto-3); white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.reg-solic .l-item-lado{ display:flex; align-items:center; gap:var(--l-e3) }
.reg-solic > .prio{ min-width:92px; justify-content:center }
.reg-solic.is-sel{ background:var(--l-marca-suave); box-shadow:inset 3px 0 0 var(--l-marca) }
.reg-dias{ font-size:var(--l-t-peq); color:var(--l-texto-3); font-variant-numeric:tabular-nums }

.reg-mestre-detalhe{ position:sticky; top:118px }
.reg-detalhe-vazio{ display:flex; flex-direction:column; gap:4px; padding:var(--l-e10) var(--l-e6); text-align:center; color:var(--l-texto-3); font-size:var(--l-t-peq) }
.reg-detalhe-vazio b{ color:var(--l-texto-2); font-size:var(--l-t-corpo); font-weight:500 }
.reg-detalhe > header{ padding:var(--l-e5); border-bottom:1px solid var(--l-fio) }
.reg-detalhe > header p{ display:flex; align-items:center; gap:var(--l-e2); margin-bottom:var(--l-e2) }
.reg-detalhe > header h3{ font-size:var(--l-t-titulo); font-weight:600; letter-spacing:-.01em }
.reg-detalhe > header small{ color:var(--l-texto-2); font-size:var(--l-t-peq) }
.reg-acoes{ display:flex; flex-wrap:wrap; gap:var(--l-e2); padding:var(--l-e4) var(--l-e5); border-bottom:1px solid var(--l-fio) }
.reg-dados{ display:grid; grid-template-columns:1fr 1fr; gap:var(--l-e3) var(--l-e4); padding:var(--l-e5); margin:0 }
.reg-dados dt{ font-size:var(--l-t-mini); color:var(--l-texto-3) }
.reg-dados dd{ margin:0; font-size:var(--l-t-peq); font-weight:500; overflow-wrap:anywhere }
.reg-etapas-box{ border-top:1px solid var(--l-fio) }
.reg-etapas-box summary{ padding:var(--l-e4) var(--l-e5); cursor:pointer; font-size:var(--l-t-peq); font-weight:500; color:var(--l-texto-2) }
.reg-etapas{ list-style:none; margin:0; padding:0 var(--l-e5) var(--l-e5) }
.reg-etapas li{ position:relative; padding:0 0 var(--l-e3) 22px; font-size:var(--l-t-peq); color:var(--l-texto-3) }
.reg-etapas li::before{ content:""; position:absolute; left:3px; top:5px; width:8px; height:8px; border-radius:50%; background:var(--l-sup); box-shadow:0 0 0 1.5px var(--l-borda-forte) }
.reg-etapas li:not(:last-child)::after{ content:""; position:absolute; left:6.5px; top:16px; bottom:0; width:1px; background:var(--l-fio) }
.reg-etapas li.feita{ color:var(--l-texto-2) }
.reg-etapas li.feita::before{ background:var(--l-marca); box-shadow:none }
.reg-etapas li.agora{ color:var(--l-texto); font-weight:600 }
.reg-etapas li.agora::before{ background:var(--l-sup); box-shadow:0 0 0 2px var(--l-marca) }
.reg-etapas small{ display:block; font-weight:400; color:var(--l-texto-2) }

.reg-quando{ font-size:var(--l-t-mini); color:var(--l-texto-3); white-space:nowrap }
td .l-mini{ display:block; margin-top:2px }

/* ---------------------------------------------------------------- executante */
.reg-dia{ display:flex; align-items:center; gap:var(--l-e1) }
.reg-dia input[type="date"]{ height:var(--l-controle); width:auto }
.reg-admitir{ max-width:360px }

/* ---------------------------------------------------------------- kanban */
.l-conteudo.kb{ max-width:none }
.kb-quadro{ display:grid; grid-auto-flow:column; grid-auto-columns:minmax(210px,1fr); gap:var(--l-e4); overflow-x:auto; align-items:start; padding-bottom:var(--l-e2) }
.kb-col{ display:flex; flex-direction:column; gap:var(--l-e2); min-height:200px; padding:var(--l-e3); border-radius:var(--l-raio-3); background:var(--l-sup-3) }
.kb-col.drop-target{ box-shadow:inset 0 0 0 2px var(--l-marca) }
.kb-col-cab{ display:flex; align-items:center; justify-content:space-between; padding:2px var(--l-e1) var(--l-e1) }
.kb-col-cab h3{ font-size:var(--l-t-peq); font-weight:600; color:var(--l-texto-2) }
.kb-conta{ font-size:var(--l-t-mini); font-weight:600; color:var(--l-texto-3); font-variant-numeric:tabular-nums }
.kb-conta.is-acima{ color:var(--l-erro) }
.kb-cartoes{ display:flex; flex-direction:column; gap:var(--l-e2) }
.kb-vazio{ padding:var(--l-e4); text-align:center; font-size:var(--l-t-peq); color:var(--l-texto-3) }
.kb-criar{ display:flex; align-items:center; justify-content:center; gap:6px; width:100%; border:1px dashed var(--l-borda-forte); border-radius:var(--l-raio-2); background:none }
.kb-criar:hover{ color:var(--l-marca-tinta); border-color:var(--l-marca) }
.kb-criar svg{ width:14px; height:14px }
.kb-mais{ align-self:center; margin-top:var(--l-e1) }

.kb-cartao{ display:flex; flex-direction:column; gap:var(--l-e2); padding:var(--l-e3) var(--l-e4); border:1px solid var(--l-borda); border-radius:var(--l-raio-2); background:var(--l-sup); cursor:pointer; transition:border-color var(--l-rapido), box-shadow var(--l-rapido) }
.kb-cartao:hover{ border-color:var(--l-borda-forte); box-shadow:0 2px 6px rgba(20,26,12,.06) }
.kb-cartao.is-atrasada{ box-shadow:inset 3px 0 0 var(--l-erro) }
.kb-cartao.is-cancelada{ opacity:.72 }
.kb-cartao.is-transf{ cursor:default }
.kb-cartao.is-focused{ box-shadow:0 0 0 2px var(--l-marca) }
.kb-cartao-topo{ display:flex; align-items:center; justify-content:space-between; gap:var(--l-e2) }
.kb-cartao h4{ font-size:var(--l-t-corpo); font-weight:500; line-height:1.35; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden }
.kb-cartao-etq{ display:flex; flex-wrap:wrap; gap:4px }
.kb-cartao-etq:empty{ display:none }
/* etiquetas do cartão quebram linha dentro dele; a especialidade vem em destaque */
.kb-cartao-etq .l-etq{ height:auto; min-height:22px; padding:3px 8px; max-width:100%; white-space:normal; line-height:1.3 }
.kb-balao{ display:inline-grid; place-items:center; width:16px; height:16px; margin-left:3px; border-radius:50% 50% 50% 2px; background:var(--l-r-laranja, #e8742a); color:#fff; font-size:11px; font-weight:800; line-height:1; animation:kb-balao 1.6s ease-in-out 2 }
.kb-balao[hidden]{ display:none }
@keyframes kb-balao{ 50%{ transform:scale(1.18) } }
@media (prefers-reduced-motion:reduce){ .kb-balao{ animation:none } }
.kb-cartao-etq .kb-etq-esp{ background:var(--l-info-fundo); color:var(--l-info); font-weight:600 }
.kb-cartao-pe{ display:flex; align-items:center; gap:var(--l-e3); padding-top:var(--l-e2); border-top:1px solid var(--l-fio); font-size:var(--l-t-mini); color:var(--l-texto-3) }
.kb-resp{ display:flex; align-items:center; gap:6px; min-width:0; flex:1; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--l-texto-2) }
.kb-av{ display:inline-grid; place-items:center; flex:none; width:20px; height:20px; border-radius:50%; background:var(--l-marca-suave); color:var(--l-marca-tinta); font-style:normal; font-size:9px; font-weight:600 }
.kb-cont{ display:inline-flex; align-items:center; gap:3px }
.kb-cont svg{ width:12px; height:12px }
.kb-cartao-pe .l-link{ font-size:var(--l-t-mini) }

/* ---------------------------------------------------------------- chamados (abertura de agenda) */
/* calendário do mês: dias com vagas (marca) e cancelamentos (erro) */
.reg-cal{ display:flex; flex-direction:column; gap:var(--l-e4) }
.reg-cal-legend{ display:flex; align-items:center; gap:var(--l-e2); font-size:var(--l-t-mini); color:var(--l-texto-3) }
.reg-cal-dot{ width:8px; height:8px; border-radius:50%; margin-left:var(--l-e2) }
.reg-cal-dot:first-child{ margin-left:0 }
.reg-cal-dot-vaga{ background:var(--l-marca) }
.reg-cal-dot-canc{ background:var(--l-erro) }
.reg-cal-head{ display:flex; align-items:center; gap:var(--l-e2) }
.reg-cal-head strong{ min-width:150px; text-align:center; font-size:var(--l-t-med); font-weight:600 }
.reg-cal-grid{ display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px }
.reg-cal-weekday{ padding:4px 8px; font-size:var(--l-t-mini); font-weight:600; color:var(--l-texto-3); text-transform:uppercase; letter-spacing:.04em }
.reg-cal-cell{ display:flex; flex-direction:column; justify-content:space-between; min-height:64px; padding:6px 8px; border:1px solid var(--l-fio); border-radius:var(--l-raio-2); background:var(--l-sup) }
.reg-cal-empty{ border:0; background:none }
.reg-cal-cell.has-data{ cursor:pointer }
.reg-cal-cell.has-data:hover{ border-color:var(--l-marca) }
.reg-cal-cell.is-today{ box-shadow:inset 0 0 0 1.5px var(--l-marca) }
.reg-cal-num{ font-size:var(--l-t-peq); font-weight:500; color:var(--l-texto-2); font-variant-numeric:tabular-nums }
.reg-cal-marks{ display:flex; gap:4px; flex-wrap:wrap }
.reg-cal-badge{ display:inline-grid; place-items:center; min-width:22px; height:18px; padding:0 5px; border-radius:9px; font-size:10.5px; font-weight:600; font-variant-numeric:tabular-nums }
.reg-cal-badge-vaga{ background:var(--l-marca-suave); color:var(--l-marca-tinta) }
.reg-cal-badge-canc{ background:var(--l-erro-fundo); color:var(--l-erro) }
/* dia aberto (modal) */
.reg-cal-day{ display:flex; flex-direction:column; gap:var(--l-e5) }
.reg-cal-day-sec{ display:flex; flex-direction:column; gap:var(--l-e2) }
.reg-cal-day-list{ display:flex; flex-direction:column; gap:var(--l-e2) }
.reg-cal-item{ padding:var(--l-e3) var(--l-e4); border:1px solid var(--l-borda); border-radius:var(--l-raio-2); background:var(--l-sup) }
.reg-cal-item-vaga{ box-shadow:inset 3px 0 0 var(--l-marca) }
.reg-cal-item-top{ display:flex; align-items:center; justify-content:space-between; gap:var(--l-e2) }
.reg-cal-item-meta{ font-size:var(--l-t-peq); color:var(--l-texto-2); margin-top:2px }
.reg-cal-item-times{ display:flex; flex-wrap:wrap; gap:4px; margin-top:var(--l-e2) }
.reg-cal-time{ padding:1px 6px; border-radius:var(--l-raio-1); background:var(--l-sup-3); font-size:var(--l-t-mini); font-variant-numeric:tabular-nums }
.reg-cal-muted{ color:var(--l-texto-3) }
.reg-cal-pill{ display:inline-flex; align-items:center; gap:4px; padding:1px 6px; border-radius:var(--l-raio-1); background:var(--l-sup-3); font-size:var(--l-t-mini) }
.reg-cal-pill-proto{ font-family:var(--l-mono) }

/* avisos do formulário: informação e prazo */
.reg-agenda-info, .reg-agenda-policy{ display:flex; gap:var(--l-e3); align-items:flex-start; padding:var(--l-e3) var(--l-e4); border-radius:var(--l-raio-2); font-size:var(--l-t-peq); line-height:1.5 }
.reg-agenda-info{ background:var(--l-info-fundo); color:var(--l-texto) }
.reg-agenda-policy{ background:var(--l-atencao-fundo); color:var(--l-texto) }
.reg-agenda-info > svg, .reg-agenda-policy > svg{ flex:none; width:16px; height:16px; margin-top:2px }
.reg-agenda-info > svg{ color:var(--l-info) }
.reg-agenda-policy > svg{ color:var(--l-atencao) }
.reg-agenda-policy strong{ display:block }
.reg-modal-actions{ display:flex; justify-content:flex-end; gap:var(--l-e2); padding-top:var(--l-e4); border-top:1px solid var(--l-fio) }
.reg-ag-genrow{ display:flex; align-items:flex-end; gap:var(--l-e3); flex-wrap:wrap }
.reg-agcfg-col{ min-width:0 }
.reg-scope-note{ font-size:var(--l-t-peq); color:var(--l-texto-2) }
.reg-cancel-chips{ display:flex; flex-wrap:wrap; gap:6px }
.reg-cancel-chip input, .reg-chk input{ accent-color:var(--l-marca) }
.reg-proc-checks{ display:flex; flex-direction:column; gap:2px; margin-top:var(--l-e3) }
.reg-proc-rolagem{ max-height:320px; overflow:auto }
.reg-chk{ display:flex; align-items:center; gap:var(--l-e2); padding:6px var(--l-e2); border-radius:var(--l-raio-1); font-size:var(--l-t-peq) }
.reg-chk:hover{ background:var(--l-sup-2) }
.agv-comment-body{ white-space:pre-wrap }

/* ---------------------------------------------------------------- modais da regulação */
.reg-campos{ gap:0 }
.reg-campo{ padding:5px 0 }
.reg-campo.is-mudou{ padding-left:9px; box-shadow:inset 2px 0 0 var(--l-marca) }
.reg-etqs{ flex-wrap:wrap; gap:4px }
.reg-contagem{ width:82px }
.reg-preenchido{ background:var(--l-ok-fundo) }
/* resultado da consulta ao CADSUS na solicitação externa */
.reg-cadsus{ display:flex; gap:var(--l-e2); align-items:flex-start; padding:10px 12px; border:1px solid var(--l-borda); border-radius:var(--l-raio-2); background:var(--l-sup-2) }
.reg-cadsus-txt{ flex:1; min-width:0 }
.reg-cadsus-txt strong{ display:block; font-size:var(--l-t-peq) }
.reg-cadsus-txt .esp{ font-size:var(--l-t-mini) }
#ex-cadsus-ico{ font-size:15px; line-height:1.4 }
.reg-cadsus[data-estado="ok"]{ border-color:var(--l-ok); background:var(--l-ok-fundo) }
.reg-cadsus[data-estado="none"], .reg-cadsus[data-estado="erro"]{ border-color:var(--l-atencao); background:var(--l-atencao-fundo) }
.reg-cadsus[data-estado="obito"]{ border-color:var(--l-erro); background:var(--l-erro-fundo) }
.reg-cadsus[data-estado="ok"] :is(#ex-cadsus-ico, strong){ color:var(--l-ok) }
.reg-cadsus:is([data-estado="none"], [data-estado="erro"]) :is(#ex-cadsus-ico, strong){ color:var(--l-atencao) }
.reg-cadsus[data-estado="obito"] :is(#ex-cadsus-ico, strong){ color:var(--l-erro) }

/* modais de tarefa (nova, tratar, formulário, anexos) */
.reg-kb-modal{ display:flex; flex-direction:column; gap:var(--l-e4) }
.reg-kb-modal :is(.reg-form, .reg-fb-form){ display:flex; flex-direction:column; gap:var(--l-e4) }
.reg-kb-modal .reg-form-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--l-e3) var(--l-e4) }
.reg-kb-modal label{ display:flex; flex-direction:column; gap:4px; font-size:var(--l-t-peq); font-weight:500; color:var(--l-texto-2) }
.reg-kb-modal textarea{ resize:vertical; min-height:72px }
.reg-kb-modal :is(input, textarea)[readonly]{ background:var(--l-sup-3); color:var(--l-texto-2) }
.reg-hidden{ display:none }
.reg-task-protocol-banner{ display:flex; align-items:center; gap:var(--l-e2); padding:var(--l-e3) var(--l-e4); border-radius:var(--l-raio-2); background:var(--l-marca-suave); color:var(--l-marca-tinta) }
.reg-task-protocol-banner strong{ font-family:var(--l-mono); font-size:var(--l-t-corpo) }
.reg-task-protocol-banner span{ margin-left:auto; font-size:var(--l-t-mini) }
.reg-sla-hint{ display:flex; align-items:center; gap:var(--l-e2); padding:var(--l-e2) var(--l-e3); border-radius:var(--l-raio-2); background:var(--l-sup-3); font-size:var(--l-t-peq); color:var(--l-texto-2) }
.reg-sla-hint svg{ width:14px; height:14px }
.reg-task-attachments{ display:flex; flex-direction:column; gap:var(--l-e2); padding:var(--l-e4); border:1px solid var(--l-borda); border-radius:var(--l-raio-3) }
.reg-task-attachments-head strong{ font-size:var(--l-t-corpo); font-weight:600 }
.reg-task-attachments-head span{ display:block; margin-top:2px; font-size:var(--l-t-mini); color:var(--l-texto-3) }
:is(.reg-task-attachment-item, .reg-task-staged-item){ display:flex; align-items:center; gap:var(--l-e2); padding:var(--l-e2) var(--l-e3); border:1px solid var(--l-fio); border-radius:var(--l-raio-2) }
:is(.reg-task-attachment-icon, .reg-task-staged-icon){ display:grid; place-items:center; flex:none; width:32px; height:32px; border-radius:var(--l-raio-2); background:var(--l-marca-suave); color:var(--l-marca-tinta) }
:is(.reg-task-attachment-item > div, .reg-task-staged-info){ flex:1; min-width:0 }
:is(.reg-task-attachment-item, .reg-task-staged-info) strong{ display:block; font-size:var(--l-t-peq); font-weight:500; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
:is(.reg-task-attachment-item, .reg-task-staged-info) small{ font-size:var(--l-t-mini); color:var(--l-texto-3) }
.reg-att-add-btn{ border-style:dashed }
.reg-task-link-add{ display:flex; gap:var(--l-e2); flex-wrap:wrap }
:is(.reg-task-attachment-help, .reg-task-staged-head){ font-size:var(--l-t-mini); color:var(--l-texto-3) }
.reg-empty{ font-size:var(--l-t-peq); color:var(--l-texto-3) }

@media (max-width:1100px){
  .reg-mestre{ grid-template-columns:1fr }
  .reg-mestre-lista{ max-height:none }
  .reg-mestre-detalhe{ position:static }
}

/* ================================================================ comentários como conversa (tarefa e agenda) */
.chat{ display:flex; flex-direction:column; gap:var(--l-e4); min-height:0 }
.chat-fio{
  display:flex; flex-direction:column; gap:4px; max-height:min(56vh, 520px); min-height:180px; overflow-y:auto;
  padding:var(--l-e4); border-radius:var(--l-raio-3); background:var(--l-sup-2);
}
.chat-vazio{ margin:auto; color:var(--l-texto-3); font-size:var(--l-t-peq) }
.chat-dia{ display:flex; justify-content:center; margin:var(--l-e3) 0 var(--l-e2) }
.chat-dia span{ padding:3px 12px; border-radius:999px; background:var(--l-sup-3); color:var(--l-texto-3); font-size:11px; font-weight:500 }
.chat-msg{ display:flex; align-items:flex-end; gap:var(--l-e2); max-width:78% }
.chat-msg + .chat-msg:not(.is-seguida){ margin-top:var(--l-e2) }
.chat-msg.is-minha{ align-self:flex-end; flex-direction:row-reverse }
.chat-msg.is-outro{ align-self:flex-start }
.chat-av{ flex:none; display:grid; place-items:center; width:28px; height:28px; border-radius:50%; background:var(--l-sup-3); color:var(--l-texto-2); font-size:11px; font-weight:600 }
.chat-msg.is-seguida .chat-av{ background:none }
.chat-balao{
  position:relative; min-width:90px; padding:8px 12px 6px; border-radius:16px;
  background:var(--l-sup); color:var(--l-texto); box-shadow:0 1px 2px rgba(20,26,12,.08);
}
.chat-msg.is-outro:not(.is-seguida) .chat-balao{ border-bottom-left-radius:4px }
.chat-msg.is-minha .chat-balao{ background:var(--l-verde); color:var(--l-verde-texto) }
.chat-msg.is-minha:not(.is-seguida) .chat-balao{ border-bottom-right-radius:4px }
.chat-autor{ display:block; margin-bottom:2px; font-size:var(--l-t-peq); font-weight:600; color:var(--l-aba-ativa, var(--l-marca-tinta)) }
.chat-etq{ display:inline-block; margin-bottom:3px; padding:1px 7px; border-radius:999px; background:var(--l-atencao-fundo, rgba(232,116,42,.15)); color:var(--l-atencao, #b5541a); font-size:11px; font-style:normal; font-weight:600 }
.chat-balao p{ margin:0; font-size:var(--l-t-corpo); line-height:1.45; white-space:pre-wrap; overflow-wrap:anywhere }
.chat-balao time{ display:block; margin-top:2px; text-align:right; font-size:11px; color:var(--l-texto-3) }
.chat-msg.is-minha .chat-balao time{ color:var(--l-verde-texto-2) }
.chat-envio{ display:flex; align-items:flex-end; gap:var(--l-e2); padding:6px 6px 6px 14px; border:1px solid var(--l-borda); border-radius:22px; background:var(--l-sup) }
.chat-envio:focus-within{ border-color:var(--l-aba-ativa, var(--l-marca)) }
.chat-envio textarea{ flex:1; min-height:24px; max-height:140px; margin:5px 0; padding:0; border:0 !important; background:none !important; box-shadow:none !important; resize:none; font:inherit; font-size:var(--l-t-corpo); line-height:1.45; color:var(--l-texto); outline:none }
.chat-enviar{ flex:none; display:grid; place-items:center; width:36px; height:36px; border:0; border-radius:50%; background:var(--l-verde); color:var(--l-verde-texto); cursor:pointer }
.chat-enviar:hover{ filter:brightness(1.12) }
.chat-enviar svg, .chat-enviar i{ width:17px; height:17px }
.chat-fechado{ display:flex; align-items:center; justify-content:center; gap:var(--l-e2); margin:0; color:var(--l-texto-3); font-size:var(--l-t-peq) }
.chat-fechado svg{ width:15px; height:15px }

/* ================================================================ modal da tarefa (duas colunas) */
.tf{ display:flex; flex-direction:column; gap:var(--l-e5) }
.tf-cab{ display:flex; flex-direction:column; gap:var(--l-e2); padding-bottom:var(--l-e4); border-bottom:1px solid var(--l-fio) }
.tf-cab-linha{ display:flex; align-items:center; flex-wrap:wrap; gap:var(--l-e2); margin:0 }
.tf-titulo{ margin:0; font-size:22px; font-weight:600; letter-spacing:-.01em; line-height:1.25; color:var(--l-texto) }
.tf-sub{ margin:0; font-size:var(--l-t-peq); color:var(--l-texto-3) }
.tf-prazo{ display:inline-flex; align-items:center; gap:5px; height:22px; padding:0 9px; border-radius:999px; background:var(--l-sup-3); color:var(--l-texto-2); font-size:var(--l-t-mini); font-weight:500 }
.tf-prazo svg{ width:13px; height:13px }
.tf-prazo.is-atrasada{ background:var(--l-erro-fundo); color:var(--l-erro) }
.tf-corpo{ display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:var(--l-e5); align-items:start }
.tf-principal, .tf-lado{ display:flex; flex-direction:column; gap:var(--l-e4); min-width:0 }
.tf-lado{ position:sticky; top:0 }
.tf-bloco{ display:flex; flex-direction:column; gap:var(--l-e3); padding:var(--l-e4) var(--l-e5); border-radius:var(--l-raio-bloco, 14px); background:var(--l-sup-2) }
.tf-bloco-tit{ display:flex; align-items:center; gap:var(--l-e2); margin:0; font-size:var(--l-t-peq); font-weight:600; color:var(--l-texto-2); text-transform:none }
.tf-conta:not(:empty){ min-width:20px; padding:0 7px; border-radius:999px; background:var(--l-sup-3); text-align:center; font-size:11px; color:var(--l-texto-2) }
.tf-vazio{ margin:0; color:var(--l-texto-3); font-size:var(--l-t-peq); font-style:italic }
.tf .tv3-desc{ font-size:var(--l-t-corpo); line-height:1.55; color:var(--l-texto); white-space:pre-wrap }
.tf .tv3-agenda-wrap{ display:flex; flex-direction:column; gap:var(--l-e3) }
.tf :is(.tv3-section, .glass){ box-shadow:none !important }
/* conversa: o fio já tem fundo próprio dentro do bloco */
.tf-conversa .chat-fio{ background:var(--l-sup); max-height:min(46vh, 460px) }
/* lado: próximo passo em destaque, ferramentas em lista */
.tf-passo{ display:flex; flex-direction:column; gap:var(--l-e2) }
.tf-passo .btn{ justify-content:center; width:100%; height:42px; background:var(--l-verde) !important; color:var(--l-verde-texto) !important; border:0 !important; font-weight:600 }
.tf-passo .btn:hover{ filter:brightness(1.1) }
.tf-passo .reg-task-flow-empty{ text-align:center }
.tf-ferrs{ display:flex; flex-direction:column; gap:2px }
.tf-ferr{ display:flex; align-items:center; gap:var(--l-e3); width:100%; height:36px; padding:0 var(--l-e3); border:0; border-radius:var(--l-raio-2); background:none; color:var(--l-texto); font:inherit; font-size:var(--l-t-corpo); text-align:left; cursor:pointer }
.tf-ferr:hover{ background:var(--l-sup-3) }
.tf-ferr svg, .tf-ferr i{ flex:none; width:16px; height:16px; color:var(--l-texto-3) }
.tf-ferr b{ margin-left:4px; padding:0 6px; border-radius:999px; background:var(--l-sup-3); font-size:11px; font-weight:600; color:var(--l-texto-2) }
.tf-dados{ display:flex; flex-direction:column; gap:var(--l-e3); margin:0 }
.tf-dado dt{ font-size:11px; color:var(--l-texto-3); margin-bottom:2px }
.tf-dado dd{ margin:0; font-size:var(--l-t-corpo); color:var(--l-texto); overflow-wrap:anywhere }
.tf-dado dd small{ margin-left:4px; color:var(--l-texto-3) }
.tf-pessoa{ display:flex; align-items:center; gap:var(--l-e2) }
.tf-av{ display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:var(--l-verde); color:var(--l-verde-texto); font-size:11px; font-style:normal; font-weight:600 }
.tf-cancelar{ display:inline-flex; align-items:center; justify-content:center; gap:6px; height:34px; border:0; border-radius:var(--l-raio-2); background:none; color:var(--l-texto-3); font:inherit; font-size:var(--l-t-peq); cursor:pointer }
.tf-cancelar:hover{ background:var(--l-erro-fundo); color:var(--l-erro) }
.tf-cancelar svg{ width:15px; height:15px }
/* marcar a mensagem como tratativa, dentro da caixa de envio */
.chat-envio.tem-extra{ padding-left:8px }
.chat-tratativa{ flex:none; display:inline-flex !important; flex-direction:row !important; align-items:center; gap:5px !important; align-self:center; height:28px; padding:0 10px; border-radius:999px; background:var(--l-sup-3); font-size:var(--l-t-peq) !important; font-weight:500; color:var(--l-texto-2) !important; cursor:pointer; user-select:none }
.chat-tratativa input{ margin:0; accent-color:var(--l-aba-ativa, #4f7a1e) }
.chat-tratativa:has(input:checked){ background:var(--l-atencao-fundo, rgba(232,116,42,.15)); color:var(--l-atencao, #b5541a) !important }
@media (max-width:900px){
  .tf-corpo{ grid-template-columns:1fr }
  .tf-lado{ position:static; order:-1 }
}

/* a janela da tarefa usa quase a tela toda no computador */
.reg-modal-box.tf-janela{ width:96% !important; max-width:1400px !important; height:min(92dvh, 980px); max-height:92dvh !important }
.reg-modal-box.tf-janela .reg-modal-body{ flex:1; min-height:0 }

/* contraste da janela da tarefa: fundo tingido, blocos brancos com borda e sombra */
.reg-modal-box.tf-janela{ background:var(--l-fundo) !important }
.reg-modal-box.tf-janela .pf-modal-cab{ background:var(--l-fundo) }
.tf .tf-bloco{ background:var(--l-sup); border:1px solid var(--l-borda); box-shadow:var(--l-sombra-bloco) }
.tf .tf-bloco-tit{ font-size:var(--l-t-med); color:var(--l-texto) }
.tf .tf-cab{ border-bottom-color:var(--l-borda) }
.tf .tf-titulo{ font-size:24px }
.tf-conversa .chat-fio{ background:var(--l-fundo) !important; border:1px solid var(--l-fio) }
.tf-conversa .chat-msg.is-outro .chat-balao{ background:var(--l-sup); border:1px solid var(--l-borda) }
.tf .tf-dado dt{ color:var(--l-texto-2); font-weight:500 }
.tf .tf-dado + .tf-dado{ padding-top:var(--l-e3); border-top:1px solid var(--l-fio) }
.tf .tf-ferr{ color:var(--l-texto); font-weight:500 }
.tf .tf-ferr svg, .tf .tf-ferr i{ color:var(--l-texto-2) }
.tf .tf-ferrs{ padding-top:var(--l-e2); border-top:1px solid var(--l-fio) }
.tf .tf-cab-linha .st{ font-weight:600 }
.reg-modal-box.tf-janela .reg-modal-body{ overflow-anchor:none }

/* modal de comentários da tarefa: grande, conversa ocupa a altura */
.reg-modal-box.tf-coment-janela{ width:94% !important; max-width:980px !important; height:min(88dvh, 860px); max-height:88dvh !important }
.reg-modal-box.tf-coment-janela .reg-modal-body{ flex:1; min-height:0; display:flex; flex-direction:column; overflow:hidden }
.tf-coment{ flex:1; min-height:0; display:flex; flex-direction:column; gap:var(--l-e3) }
.tf-coment > div{ flex:1; min-height:0; display:flex; flex-direction:column }
.tf-coment .chat{ flex:1; min-height:0 }
.tf-coment .chat-fio{ flex:1; max-height:none; background:var(--l-fundo); border:1px solid var(--l-fio) }
.tf-coment .chat-msg.is-outro .chat-balao{ border:1px solid var(--l-borda) }
.tf-coment-tit{ margin:0; font-size:var(--l-t-corpo); color:var(--l-texto-2) }
.tf-ferr .kb-balao{ font-style:normal; margin-left:4px }

/* modal da tarefa, organização de cima para baixo (01/10): cabeçalho, barra de ações,
   ficha em grade e o conteúdo na largura toda */
.reg-modal-box.tf-janela{ max-width:1160px !important; height:auto }
.tf-barra{ display:flex; align-items:center; flex-wrap:wrap; gap:var(--l-e3); padding:var(--l-e3); border:1px solid var(--l-borda); border-radius:var(--l-raio-bloco, 14px); background:var(--l-sup); box-shadow:var(--l-sombra-bloco) }
.tf-barra .tf-passo{ flex-direction:row; flex-wrap:wrap }
.tf-barra .tf-passo .btn{ width:auto; min-width:150px; padding:0 22px }
.tf-barra .tf-ferrs{ flex-direction:row; flex-wrap:wrap; gap:2px; padding:0 0 0 var(--l-e3); border-top:0 !important; border-left:1px solid var(--l-fio) }
.tf-barra .tf-ferr{ width:auto; height:38px; padding:0 12px }
.tf-barra .tf-cancelar{ margin-left:auto }
.tf > .tf-dados{
  display:grid; grid-template-columns:repeat(auto-fit, minmax(150px, 1fr)); gap:0;
  border:1px solid var(--l-borda); border-radius:var(--l-raio-bloco, 14px); background:var(--l-sup); box-shadow:var(--l-sombra-bloco); overflow:hidden
}
.tf > .tf-dados .tf-dado{ padding:var(--l-e3) var(--l-e4); border:0 !important; border-right:1px solid var(--l-fio) !important; border-bottom:1px solid var(--l-fio) !important }
.tf > .tf-dados .tf-dado dd small{ display:block; margin:2px 0 0; font-size:var(--l-t-mini) }
.tf .tf-cab{ padding-bottom:var(--l-e2); border-bottom:0 }
@media (max-width:760px){
  .tf-barra .tf-ferrs{ padding-left:0; border-left:0 }
  .tf-barra .tf-cancelar{ margin-left:0 }
}

/* ficha com muito texto: círculo das iniciais não encolhe; cada campo mostra até 3
   linhas e o texto inteiro aparece ao passar o mouse (title) */
.tf-av{ flex:none }
.tf > .tf-dados .tf-dado dd > .tf-txt{ display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden }
.tf-pessoa .tf-txt{ min-width:0 }
.tf .tf-titulo{ overflow-wrap:anywhere; text-wrap:balance }

/* ================================================================ agenda pedida (tarefa e solicitação) */
.agv-ficha{ display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:var(--l-e3) var(--l-e5); margin:0 0 var(--l-e2) }
.agv-ficha .tf-dado.is-largo{ grid-column:1 / -1 }
.agv-ficha .tf-dado dt{ font-size:11px; color:var(--l-texto-2); font-weight:500; margin-bottom:2px }
.agv-ficha .tf-dado dd{ margin:0 }
.agv-ficha .tf-dado.is-largo .tf-txt{ -webkit-line-clamp:unset; display:block }
.agv-profs-sec{ display:flex; flex-direction:column; gap:var(--l-e3) }
.agv-profs-cab{ display:flex; align-items:center; justify-content:space-between; gap:var(--l-e3) }
.agv-profs-cab h4{ display:flex; align-items:center; gap:var(--l-e2); margin:0; font-size:var(--l-t-corpo); font-weight:600 }
.agv-total-vagas{ padding:3px 10px; border-radius:999px; background:var(--l-verde); color:var(--l-verde-texto); font-size:var(--l-t-peq) }
.agv-profs{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 360px), 1fr)); gap:var(--l-e3) }
.agv-prof-card{ display:flex; flex-direction:column; gap:var(--l-e3); padding:var(--l-e4); border:1px solid var(--l-borda); border-radius:var(--l-raio-3); background:var(--l-sup) }
.agv-prof-cab{ display:flex; align-items:flex-start; justify-content:space-between; gap:var(--l-e3) }
.agv-prof-name{ margin:0; font-size:var(--l-t-corpo); font-weight:600; color:var(--l-texto) }
.agv-prof-meta{ margin:2px 0 0; font-size:var(--l-t-peq); color:var(--l-texto-2) }
.agv-prof-vagas{ flex:none; padding:3px 10px; border-radius:999px; background:var(--l-marca-suave); color:var(--l-texto); font-size:var(--l-t-peq); white-space:nowrap }
.agv-prof-linha{ display:grid; grid-template-columns:68px minmax(0,1fr); gap:var(--l-e2); align-items:start }
.agv-prof-rot{ padding-top:4px; font-size:11px; font-weight:500; color:var(--l-texto-3) }
.agv-prof-etqs{ display:flex; flex-wrap:wrap; gap:4px }
.agv-prof-etqs > span{ display:inline-flex; align-items:center; gap:3px; height:24px; padding:0 8px; border-radius:var(--l-raio-1); background:var(--l-sup-3); font-size:var(--l-t-peq); color:var(--l-texto-2); font-variant-numeric:tabular-nums; white-space:nowrap }
.agv-prof-etqs .agv-dia b{ color:var(--l-texto); font-weight:600 }
.agv-prof-times em{ font-style:normal; font-weight:600; color:var(--l-aba-ativa, var(--l-marca-tinta)) }
.agv-diff-cards{ display:grid; grid-template-columns:repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap:var(--l-e3) }
.agv-diff-card{ display:flex; flex-direction:column; gap:var(--l-e2); padding:var(--l-e4); border:1px solid var(--l-borda) !important; border-radius:var(--l-raio-3) !important; background:var(--l-sup) !important; box-shadow:none !important }
.agv-diff-row{ display:flex; flex-direction:column; gap:2px; font-size:var(--l-t-peq) }
.agv-diff-label{ color:var(--l-texto-3); font-size:11px }
.agv-diff-old{ text-decoration:line-through; color:var(--l-texto-3) }
.agv-diff-arrow{ margin:0 6px; color:var(--l-texto-3) }
.agv-diff-new{ font-weight:600; color:var(--l-texto) }
.agv-diff-removed, .agv-diff-days{ font-size:var(--l-t-peq); color:var(--l-texto-2) }
.tf .agv-ficha .tf-dado + .tf-dado, .tf .agv-ficha .tf-dado{ padding-top:0; border-top:0 }
.tf .agv-ficha .tf-dado.is-largo{ padding-top:var(--l-e3); border-top:1px solid var(--l-fio) }

/* ================================================================ colunas do Kanban com identidade (01/10, 2ª rodada)
   Cada etapa tem a sua cor num fio no topo, no marcador do título e no contador:
   a fazer = cor do portal, andamento = azul, pendente = laranja, finalizado = verde,
   cancelado = cinza, transferidas = roxo-azulado. Coluna vazia vira área tracejada. */
.kb-col{ --kb:var(--l-marca); position:relative; padding-top:calc(var(--l-e3) + 3px); background:color-mix(in srgb, var(--kb) 5%, var(--l-sup-3)) }
.kb-col::before{ content:""; position:absolute; left:12px; right:12px; top:0; height:3px; border-radius:0 0 3px 3px; background:var(--kb) }
.kb-col-todo{ --kb:var(--l-aba-ativa, var(--l-marca)) }
.kb-col-doing{ --kb:var(--l-info) }
.kb-col-pending{ --kb:var(--l-atencao) }
.kb-col-done{ --kb:var(--l-ok) }
.kb-col-cancelled{ --kb:var(--l-borda-forte) }
.kb-col-transf{ --kb:#6f6fd0 }
.kb-col-cab h3{ display:flex; align-items:center; gap:8px; color:var(--l-texto) }
.kb-col-cab h3::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--kb); box-shadow:0 0 0 3px color-mix(in srgb, var(--kb) 18%, transparent) }
.kb-conta{ min-width:24px; padding:1px 8px; border-radius:999px; text-align:center; background:color-mix(in srgb, var(--kb) 14%, var(--l-sup)); color:var(--l-texto-2) }
.kb-conta.is-acima{ background:var(--l-erro-fundo) }
p.kb-vazio{ margin:0; padding:var(--l-e6) var(--l-e3); border:1.5px dashed color-mix(in srgb, var(--kb) 30%, var(--l-borda)); border-radius:12px; color:var(--l-texto-3) }
.kb-cartao{ border-radius:12px }
.kb-cartao:hover{ transform:translateY(-1px); border-color:color-mix(in srgb, var(--kb, var(--l-marca)) 45%, var(--l-borda)); box-shadow:0 8px 18px -12px rgba(20,26,12,.35) }
.kb-cartao{ transition:border-color var(--l-rapido), box-shadow var(--l-rapido), transform var(--l-rapido) }

/* barra do Kanban: com a busca ativa entra o "Limpar" e a troca Quadro/Lista caía
   para outra linha. Busca e departamento cedem largura antes de quebrar. */
.l-barra:has(#reg-task-search) .field.search{ flex:0 1 270px; min-width:190px }
.l-barra:has(#reg-task-search) #kb-dept{ max-width:190px }
