/* NEXXO CORE-01 · Empreendimentos e frentes. Reaproveita os tokens e os padrões da Carteira; nada aqui altera telas aprovadas. */
.vt-switch{margin-bottom:12px}
.vt-list{display:grid;gap:18px}
.vt-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px}
.vt-card{display:flex;align-items:center;gap:12px;width:100%;text-align:left;color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px;min-width:0}
.vt-card:hover,.vt-card:focus-visible{border-color:var(--mint);background:var(--raised)}
.vt-card-main{display:grid;gap:5px;min-width:0;flex:1}
.vt-card-main strong{font-size:14px;overflow-wrap:anywhere}
.vt-card-main small,.vt-line{color:var(--sub);font-size:11px}
.vt-go{color:var(--sub2);flex:none}
.vt-late,.vt-row-meta .vt-late{color:var(--red);font-weight:700}
.vt-loose h2{font-size:14px;display:flex;gap:8px;align-items:center}
.vt-count{color:var(--sub);font-size:11px;font-weight:600}
.vt-loose .note{margin:6px 0 10px}
.vt-loose-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:8px}
.vt-front{display:grid;gap:3px;text-align:left;color:var(--text);background:var(--ghost);border:1px solid var(--line);border-radius:11px;padding:12px 13px;min-width:0}
.vt-front:hover,.vt-front:focus-visible{border-color:var(--mint)}
.vt-front strong{font-size:12px;overflow-wrap:anywhere}.vt-front small{color:var(--sub);font-size:10px}
.vt-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin:0 0 18px;flex-wrap:wrap}
.vt-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:14px}
.vt-kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:15px;display:grid;gap:5px;min-width:0}
.vt-kpi span{font-size:10px;color:var(--sub)}.vt-kpi strong{font-size:24px;letter-spacing:-.04em;line-height:1.1}.vt-kpi small{font-size:10px;color:var(--sub)}
.vt-rows{list-style:none;margin:0;padding:0}
.vt-row{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--line);padding:10px 0}
.vt-row:last-child{border-bottom:0}
.vt-row-main{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:12px;text-align:left;color:var(--text);background:none;border:0;border-radius:9px;padding:6px 8px}
.vt-row-main:hover,.vt-row-main:focus-visible{background:rgba(20,209,184,.07)}
.vt-row-main strong{display:block;font-size:12px;overflow-wrap:anywhere}.vt-row-main small{display:block;color:var(--sub);font-size:10px;margin-top:3px}
.vt-row-meta{display:grid;gap:5px;justify-items:end;text-align:right;flex:none}
.vt-unlink{flex:none}
.vt-foot{display:flex;align-items:center;gap:12px;margin-top:16px;flex-wrap:wrap}.vt-foot small{color:var(--sub2);font-size:10px}
.vt-badge{margin-top:8px;font-size:11px;color:var(--sub)}
@media(max-width:900px){.vt-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.vt-cards,.vt-loose-list{grid-template-columns:1fr}.vt-row{flex-wrap:wrap}.vt-row-main{flex-direction:column;align-items:flex-start}.vt-row-meta{justify-items:start;text-align:left}.vt-head .actions{width:100%}}
@media print{.vt-unlink,.vt-foot{display:none}}
/* CORE-02 · Pendências e próximas ações */
.fu-card,.fu-summary{margin-top:13px}
.fu-warn{margin:0 0 12px;color:var(--sub)}
.fu-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.fu-col{min-width:0}
.fu-col h3{margin:0 0 8px;color:var(--text)}
.fu-group h4{margin:10px 0 4px;color:var(--sub);font-size:11px}
.fu-list,.fu-fronts{list-style:none;margin:0;padding:0}
.fu-item{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:9px 0}
.fu-item.is-late{border-left:3px solid var(--red);padding-left:8px}
.fu-main{display:grid;gap:3px;min-width:0;flex:1 1 180px;overflow-wrap:anywhere}
.fu-main small,.fu-unknown{color:var(--sub);font-size:11px}
.fu-late{color:var(--red);font-weight:700}
.fu-actions{display:flex;gap:6px;flex-wrap:wrap}
.fu-front{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding:8px 0}
.fu-front small{color:var(--sub);font-size:11px}
@media(max-width:620px){.fu-cols{grid-template-columns:1fr}}
/* CORE-03a · Histórico da previsão (marcos e entregáveis) */
.rp-chip{display:inline-block;margin:4px 0 0;color:var(--sub);font-size:11px;white-space:normal}
.rp-details{margin-top:6px;font-size:12px;overflow-wrap:anywhere}
.rp-details summary{cursor:pointer;color:var(--sub)}
.rp-now{margin:6px 0 4px;color:var(--text)}
.rp-list{margin:0;padding-left:18px;display:grid;gap:4px}
.rp-events{margin:6px 0 0;padding-left:16px;font-size:11px;color:var(--sub);display:grid;gap:2px}
.rp-event small{display:block;color:var(--sub)}
.rp-note,.rp-prev{color:var(--sub);font-size:11px}
.rp-note{margin:6px 0 0}
@media print{.rp-details>*{display:block}.rp-details>summary{display:none}}
/* CORE-03b · Histórico do período dos fluxos (reaproveita .rp-chip, .rp-details, .rp-events do CORE-03a) */
.rp-mark{display:inline-block;margin-left:6px;color:var(--sub);font-size:10px;font-weight:600;white-space:normal;overflow-wrap:anywhere}
.flow-item .rp-details{margin-top:8px}
.flow-item .rp-chip{margin-left:8px}
.exec-flow-name .rp-events{margin-top:4px}
/* CORE-03b · Caixa discreta de limpeza do valor legado inválido (o estilo global de input ocuparia a linha toda) */
.field label>input[type=checkbox]{width:auto;display:inline-block;margin:0 8px 0 0;padding:0;vertical-align:middle;accent-color:var(--mint)}
.field label:has(>input[type=checkbox]){display:flex;align-items:center;gap:0;color:var(--text);font-size:12px;font-weight:600}
/* CORE-04 E1 · Aviso de registros com data inválida no Painel (reaproveita .dx-sec, .dx-list, .dx-row e .dx-note) */
.dx-int .dx-note{margin:0 0 8px;overflow-wrap:anywhere}
.dx-int .dx-list{border-color:color-mix(in srgb,var(--orange) 45%,var(--line))}
.dx-int .dx-row .dx-main strong{font-weight:600}
.dx-int-rest{margin-top:8px}
.dx-int-rest>summary{display:flex;align-items:center;min-height:44px;padding:0 4px;cursor:pointer;color:var(--sub);font-size:13px}
.dx-int-rest>summary:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.dx-int-rest[open]>summary{margin-bottom:4px}
/* CORE-04 E2 · Atenção agora: Painel (reaproveita .dx-sec, .dx-list, .dx-row, .dx-note e .dx-none), cards de foco e Relatório (.exec-rows) */
.dx-fu .dx-fu-counts{list-style:none;margin:0 0 10px;padding:0;display:grid;gap:4px}
.dx-fu .dx-fu-counts li{display:flex;flex-wrap:wrap;gap:2px 14px;color:var(--text);font-size:13.5px}
.dx-fu .dx-row .dx-main strong{font-weight:600;overflow-wrap:anywhere}
.dx-fu .dx-note{overflow-wrap:anywhere}
.dx-fu .dx-list+.dx-note{margin-top:8px}
.dx-proj .dx-main small>.dx-fu-line{flex-basis:100%}
.exec-att-group>h3{margin:0 0 8px}
.exec-att-group+.exec-att-group{margin-top:18px}
/* Destaque discreto do item aberto a partir do Painel (tirado ao renderizar de novo) */
.fu-item.fu-target{outline:2px solid var(--mint);outline-offset:2px;background:color-mix(in srgb,var(--mint) 10%,transparent)}
@media print{.fu-item.fu-target{outline:none;background:none}}
/* CORE-04 E3 · Registros do período: Painel (reaproveita .dx-sec, .dx-list, .dx-row, .dx-note e .dx-none) e Relatório (.exec-panel, .exec-rows) */
.dx-pw .dx-pw-range{margin:0 0 8px;font-size:13.5px;color:var(--text)}
.dx-pw-sel{display:flex;gap:8px;margin:0 0 10px}
.dx-pw-btn{flex:1 1 0;min-height:44px;padding:0 14px;border:1px solid var(--line2);border-radius:var(--r);background:transparent;color:var(--sub);font:inherit;font-size:13.5px;cursor:pointer}
.dx-pw-btn[aria-pressed="true"]{border-color:var(--mint);color:var(--text);background:color-mix(in srgb,var(--mint) 12%,transparent)}
.dx-pw-btn:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.dx-pw-counts{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:6px}
.dx-pw-counts li{color:var(--text);font-size:13.5px;overflow-wrap:anywhere}
.dx-pw-counts li small{display:block;color:var(--sub);font-size:12.5px}
.dx-pw-sub{margin:12px 0 6px;font-size:13.5px;font-weight:650}
.dx-pw .dx-note{overflow-wrap:anywhere}
.dx-pw .dx-list+.dx-note{margin-top:8px}
.dx-resw{display:grid;gap:12px}
.dx-res{min-width:0;padding:14px;background:var(--card);border:1px solid var(--line);border-inline-start:3px solid var(--line2);border-radius:var(--r);box-shadow:var(--shadow)}
.dx-res-act{border-inline-start-color:var(--blue)}
.dx-res-out{border-inline-start-color:var(--mint)}
.dx-res-acc{border-inline-start-color:var(--purple)}
.dx-res h3{margin:0 0 8px;font-size:14.5px;font-weight:650}
.dx-res-sub{margin:12px 0 6px;font-size:13px;font-weight:650;color:var(--sub)}
.dx-res-roles,.dx-res-counts{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}
.dx-res-roles li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 12px;font-size:13.5px;overflow-wrap:anywhere}
.dx-res-counts li{font-size:13.5px;overflow-wrap:anywhere}
.dx-res-big{margin:0 0 8px;font-size:14.5px;font-weight:650;overflow-wrap:anywhere}
.dx-res-big small{font-weight:400;color:var(--sub);font-size:12.5px}
.dx-res .dx-res-text{overflow-wrap:anywhere;white-space:pre-wrap}
.dx-res .dx-row .dx-main strong{overflow-wrap:anywhere}
.dx-res .dx-list+.dx-note{margin-top:8px}
.dx-res .dx-none{margin-top:4px}
.exec-res-ctl{display:flex;gap:8px;margin:0 0 12px}
.exec-res-btn{flex:1 1 0;max-width:180px;min-height:44px;padding:0 14px;border:1px solid var(--line2);border-radius:var(--r);background:transparent;color:var(--sub);font:inherit;font-size:13.5px;cursor:pointer}
.exec-res-btn[aria-pressed="true"]{border-color:var(--mint);color:var(--text);background:color-mix(in srgb,var(--mint) 12%,transparent)}
.exec-res-btn:focus-visible{outline:2px solid var(--mint);outline-offset:2px}
.exec-res-roles{list-style:none;margin:0 0 8px;padding:0;display:grid;gap:6px}
.exec-res-roles li{display:flex;flex-wrap:wrap;gap:2px 12px;overflow-wrap:anywhere}
.exec-res .exec-res-count{margin:0 0 8px;color:var(--text)}
.exec-res .exec-note{overflow-wrap:anywhere}
@media print{.exec-res-ctl{display:none}}
