.pl-tela { min-width:0; max-width:100%; }
.pl-tela h2 { margin-bottom:8px; }
.pl-tela p { line-height:1.5; }
.pl-filtros,.pl-editor { display:flex; flex-wrap:wrap; align-items:end; gap:16px; margin:20px 0; }
.pl-tela label { display:flex; flex-direction:column; gap:6px; font-size:14px; }
.pl-tela input,.pl-tela select { color:inherit; background:var(--bg); border:1px solid var(--line); border-radius:6px; padding:9px; min-width:100px; }
.pl-tela button { border:1px solid var(--line); border-radius:6px; padding:10px 16px; color:inherit; background:var(--panel); cursor:pointer; font:inherit; }
.pl-tela button:disabled { opacity:.5; cursor:wait; }
.pl-scroll { overflow-x:auto; max-width:100%; border:1px solid var(--line); border-radius:8px; margin:18px 0; }
.pl-scroll table { border-collapse:collapse; width:100%; font-size:14px; white-space:nowrap; }
.pl-scroll th,.pl-scroll td { padding:12px 16px; text-align:right; border-bottom:1px solid var(--line); display:table-cell!important; }
.pl-scroll th:first-child { text-align:left; }
.pl-scroll thead { background:var(--panel); }
.pl-falta { color:var(--muted); font-size:12px; }
.pl-origem { font-size:13px; color:var(--muted); }
.pl-editor h3 { flex-basis:100%; margin:0; }
.pl-cenarios { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:24px 0; }
.pl-cenario { padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.pl-cenario h3 { text-transform:capitalize; }
.pl-cenario label { margin:12px 0; }
.pl-cenario dd { margin:3px 0 14px; font-size:20px; }
.pl-grafico { overflow-x:auto; margin-top:24px; }
.pl-barras { display:flex; min-width:560px; gap:8px; height:180px; }
.pl-mes { flex:1; text-align:center; }
.pl-par { display:flex; gap:2px; align-items:end; height:155px; justify-content:center; }
.pl-barra { display:block; width:12px; }
.pl-serie-0 { background:var(--ds-chart-1); } .pl-serie-1 { background:var(--ds-chart-2); } .pl-serie-2 { background:var(--ds-chart-3); }
@media(max-width:820px) { .pl-cenarios { grid-template-columns:1fr; } .pl-tela { padding:16px; } }
/* #297 · referência mensal em destaque, funil atual/projetado e curvas com pontos.
   #812 · só tokens do DS: o destaque é o acento do skin com transparência
   (amarelo literal ficava fora da identidade — e laranja no portal azul). */
.pl-graficos { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:20px 0; }
.pl-linha { min-width:0; padding:18px; border:1px solid var(--line); border-radius:12px; background:var(--panel); }
.pl-linha h3 { margin:0 0 16px; font-size:16px; }
.pl-linha svg { width:100%; max-height:230px; }
.pl-linha svg text { fill:var(--muted); font-size:11px; }
.pl-eixo { stroke:var(--line); }
.pl-matriz { max-height:78vh; }
/* cabeçalho grudado precisa de fundo opaco: o painel por baixo, o acento por cima */
.pl-matriz thead th { position:sticky; top:0; z-index:2; background:linear-gradient(color-mix(in srgb, var(--ds-accent) 22%, transparent), color-mix(in srgb, var(--ds-accent) 22%, transparent)) var(--panel); color:var(--ink); }
.pl-matriz th:first-child { position:sticky; left:0; z-index:1; background:var(--panel); min-width:265px; }
.pl-matriz thead th:first-child { z-index:3; background:var(--panel); }
.pl-matriz .pl-bloco th { background:color-mix(in srgb, var(--ds-accent) 14%, transparent); color:var(--ink); text-align:left; font-weight:800; }
.pl-matriz .pl-agregado { background:color-mix(in srgb, var(--ds-accent) 8%, transparent); font-weight:700; }
.pl-matriz thead .pl-agregado { background:linear-gradient(color-mix(in srgb, var(--ds-accent) 34%, transparent), color-mix(in srgb, var(--ds-accent) 34%, transparent)) var(--panel); }
.pl-manual { margin:20px 0; padding:20px; border:1px solid var(--line); border-radius:10px; }
.pl-premissas { margin:20px 0; }
.pl-campos { display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:14px; margin-bottom:18px; }
.pl-campos input { background:color-mix(in srgb, var(--ds-warn) 12%, transparent); color:var(--ink); border-color:var(--ds-warn); }
.pl-campos input:disabled { background:var(--panel-2); color:var(--muted); border-color:var(--line); }
.pl-funil .pl-atual { background:color-mix(in srgb, var(--ds-warn) 18%, transparent); color:var(--ink); text-align:center; }
.pl-funil .pl-projetado { background:color-mix(in srgb, var(--ds-ok) 18%, transparent); color:var(--ink); text-align:center; }
.pl-funil td.pl-diagnostico { text-align:left; white-space:normal; min-width:260px; max-width:380px; font-size:13px; }
@media(max-width:820px) { .pl-graficos { grid-template-columns:1fr; } .pl-matriz th:first-child { min-width:180px; max-width:210px; white-space:normal; } }
