/* ============================================================
   Qualidade (SGQ) — protótipo. Tokens: tokens.css (--wf-*). Especificação: docs/design-handoff/qualidade/README.md
   ============================================================ */
.q-pagina { padding: var(--wf-space-6, 24px); display: flex; flex-direction: column; gap: 16px; min-height: 100%; }
.q-trilha { font-size: 12px; color: var(--wf-text-subtle); margin-bottom: 4px; }
.q-titulo { font-size: 24px; font-weight: 700; letter-spacing: -0.6px; margin: 0; color: var(--wf-text); }
.q-subtitulo { font-size: 13px; color: var(--wf-text-muted); margin: 4px 0 0; }
.q-cabecalho { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.q-cabecalho-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.q-rotulo-secao { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.6px; color: var(--wf-text-subtle); }
.q-mono { font-family: var(--wf-font-mono); }
.q-card { background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); box-shadow: var(--wf-shadow-sm); padding: 16px; }
.q-vazio { padding: 40px; text-align: center; color: var(--wf-text-subtle); border: 1px dashed var(--wf-border); border-radius: var(--wf-radius-lg); background: var(--wf-surface-alt); }
.q-skeleton { background: linear-gradient(90deg, var(--wf-bg-sunken) 25%, var(--wf-surface-alt) 50%, var(--wf-bg-sunken) 75%); background-size: 200% 100%; animation: q-shimmer 1.2s infinite; border-radius: var(--wf-radius-md); }
@keyframes q-shimmer { from { background-position: 200% 0; } to { background-position: -200% 0; } }
.q-erro { color: var(--wf-danger); font-size: 12px; margin-top: 4px; }

/* Faixa do protótipo */
.q-faixa { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 6px 12px; font-size: 12px;
           background: var(--wf-warning-bg); color: var(--wf-text-muted); border-bottom: 1px solid var(--wf-border); }
.q-faixa strong { color: var(--wf-warning); }
.q-faixa select { height: 26px; font-size: 12px; border: 1px solid var(--wf-border); border-radius: var(--wf-radius-sm); background: var(--wf-surface); color: var(--wf-text); }
.q-faixa-sep { flex: 1; }
.q-faixa-aviso { color: var(--wf-danger); }

/* ---------- Componentes base ---------- */
.q-st-verde { --q-cor: var(--wf-success); --q-bg: var(--wf-success-bg); }
.q-st-amarelo { --q-cor: var(--wf-warning); --q-bg: var(--wf-warning-bg); }
.q-st-vermelho { --q-cor: var(--wf-danger); --q-bg: var(--wf-danger-bg); }
.q-st-cinza { --q-cor: var(--wf-text-subtle); --q-bg: var(--wf-bg-sunken); }

.q-chip { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 8px; width: fit-content; white-space: nowrap;
          border-radius: var(--wf-radius-pill); font-size: 12px; font-weight: 600; color: var(--q-cor); background: var(--q-bg);
          border: 1px solid color-mix(in srgb, var(--q-cor) 20%, transparent); }
.q-chip--lg { height: 26px; font-size: 13px; }
.q-chip-ponto { width: 7px; height: 7px; border-radius: 50%; background: var(--q-cor); flex: none; }
.q-chip-meta { font-weight: 400; color: var(--wf-text-muted); }

.q-bar { width: 100%; background: var(--wf-bg-sunken); border-radius: var(--wf-radius-pill); overflow: hidden; }
.q-bar-fill { height: 100%; background: var(--q-cor, var(--wf-brand-accent)); border-radius: inherit; transition: width .2s; }

.q-seg { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.q-seg-btn { height: 34px; padding: 0 14px; border-radius: var(--wf-radius-pill); border: 1px solid var(--wf-border);
             background: var(--wf-surface); color: var(--wf-text-muted); font-size: 13px; cursor: pointer; }
.q-seg-btn:hover { background: var(--wf-hover); }
.q-seg-btn--ativo { background: var(--wf-selected); color: var(--wf-selected-text); border-color: var(--wf-brand-accent); font-weight: 600; }
.q-seg-btn--ativo.q-seg--good { background: var(--wf-success-bg); color: var(--wf-success); border-color: var(--wf-success); }
.q-seg-btn--ativo.q-seg--bad { background: var(--wf-danger-bg); color: var(--wf-danger); border-color: var(--wf-danger); }
.q-seg-btn--ativo.q-seg--warn { background: var(--wf-warning-bg); color: var(--wf-warning); border-color: var(--wf-warning); }

.q-pessoa { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; color: var(--wf-text); }
.q-avatar { display: inline-flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--wf-text-on-brand); font-weight: 700;
            border: 2px solid var(--wf-surface); flex: none; }
.q-pessoa--inativo { opacity: .55; }
.q-pessoa--inativo .q-pessoa-nome { text-decoration: line-through; }
.q-tag-inativo { font-size: 9px; font-weight: 700; color: var(--wf-danger); background: var(--wf-danger-bg); padding: 1px 4px; border-radius: var(--wf-radius-sm); }
.q-avatar-par { display: inline-flex; }
.q-avatar-par .q-pessoa + .q-pessoa { margin-left: -6px; }

.q-plano-chip { display: inline-flex; align-items: center; gap: 6px; height: 24px; padding: 0 8px; border-radius: var(--wf-radius-pill);
                border: 1px solid var(--wf-border); background: var(--wf-surface-alt); color: var(--wf-text-muted); font-size: 12px; cursor: pointer; }
.q-plano-chip:hover { background: var(--wf-hover); }
.q-plano-chip-bar { width: 40px; }

/* ---------- Gráficos ---------- */
.q-spark { display: block; overflow: visible; }
.q-spark-faixa { fill: color-mix(in srgb, var(--wf-success) 7%, transparent); }
.q-spark-meta { stroke: var(--wf-success); stroke-width: 1; stroke-dasharray: 3 3; }
.q-spark-linha, .q-big-linha { fill: none; stroke: var(--wf-brand-accent); stroke-width: 1.6; stroke-linejoin: round; }
.q-spark circle, .q-big circle { fill: var(--q-cor); stroke: var(--wf-surface); stroke-width: 1; }
.q-big { display: block; max-height: 320px; }
.q-big-grade { stroke: var(--wf-border-subtle); stroke-width: 1; }
.q-big-guia { stroke: var(--wf-border-subtle); stroke-width: 1; opacity: .6; }
.q-big-tick, .q-big-periodo { font-size: 11px; fill: var(--wf-text-subtle); font-family: var(--wf-font); }
.q-big-valor { font-size: 11px; font-weight: 600; fill: var(--wf-text); font-family: var(--wf-font); }
.q-big-meta { stroke: var(--wf-success); stroke-width: 1.2; stroke-dasharray: 5 4; }
.q-big-meta-rotulo { font-size: 11px; font-weight: 600; fill: var(--wf-success); font-family: var(--wf-font); }
.q-big-futuro { stroke: var(--wf-text-dim); stroke-dasharray: 2 2; }
.q-big-marcador rect { fill: var(--wf-brand-accent); }

.q-grid { display: grid; grid-template-columns: repeat(12, minmax(56px, 1fr)) minmax(110px, 1.4fr); gap: 6px; }
.q-grid--compacto { grid-template-columns: repeat(7, 1fr); }
.q-grid-celula { display: flex; flex-direction: column; gap: 2px; align-items: flex-start; padding: 8px; min-height: 64px; cursor: pointer;
                 background: var(--q-bg); border: 1px solid color-mix(in srgb, var(--q-cor) 25%, transparent); border-radius: var(--wf-radius-md);
                 text-align: left; color: var(--wf-text); }
.q-grid-celula:hover { box-shadow: var(--wf-shadow-sm); }
.q-grid-celula:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-grid-periodo { font-size: 11px; color: var(--wf-text-subtle); font-weight: 600; }
.q-grid-valor { font-size: 14px; font-weight: 700; color: var(--q-cor); }
.q-grid-icones { display: inline-flex; gap: 4px; color: var(--wf-text-muted); margin-top: auto; }
.q-grid-ico-pendente { color: var(--wf-warning); }
.q-grid-consolidado { display: flex; flex-direction: column; gap: 2px; padding: 8px; border: 1px dashed var(--wf-border-strong); border-radius: var(--wf-radius-md); background: var(--wf-surface-alt); }
.q-grid-consolidado .q-grid-valor { color: var(--wf-text); }
@media (max-width: 1100px) { .q-grid { grid-template-columns: repeat(6, 1fr); } }

/* ---------- Painel ---------- */
.q-painel { max-width: 1600px; width: 100%; margin: 0 auto; }
.q-filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.q-filtro { min-width: 150px; max-width: 220px; }
.q-filtro-ano { width: 88px; }
.q-filtros-espaco { flex: 1; }
.q-filtros .q-seg-btn { height: 30px; padding: 0 10px; font-size: 12px; }
.q-tiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.q-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; text-align: left; font: inherit; color: var(--wf-text);
  background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); box-shadow: var(--wf-shadow-sm);
  padding: 14px 18px; cursor: pointer; transition: box-shadow 120ms ease-out, border-color 120ms ease-out; }
div.q-tile { cursor: default; }
button.q-tile:hover { box-shadow: var(--wf-shadow-md); border-color: var(--wf-border-strong); }
.q-tile:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-tile--ativo { border-color: var(--wf-brand-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--wf-brand-accent) 14%, transparent); }
.q-tile-rotulo { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); }
.q-tile-numero { font-size: 30px; font-weight: 700; letter-spacing: -1px; line-height: 1.15; color: var(--q-cor, var(--wf-text)); }
.q-tile--neutro .q-tile-numero { color: var(--wf-text); }
.q-tile-sub { font-size: 11px; color: var(--wf-text-muted); }
@media (max-width: 900px) { .q-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

.q-grupo { display: flex; flex-direction: column; gap: 10px; }
.q-grupo-titulo { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: var(--wf-text-subtle); margin-top: 4px; }
.q-grupo-titulo a { color: inherit; text-decoration: none; }
.q-grupo-titulo a:hover { color: var(--wf-brand-accent); text-decoration: underline; }
.q-grupo-contagem { font-weight: 400; }

.q-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 16px; }
.q-indicador-card { background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); box-shadow: var(--wf-shadow-sm);
  padding: 16px; display: flex; flex-direction: column; gap: 10px; min-width: 0; cursor: pointer; transition: box-shadow 120ms ease-out, border-color 120ms ease-out; }
.q-indicador-card:hover { box-shadow: var(--wf-shadow-md); border-color: var(--wf-border-strong); }
.q-indicador-card:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-card-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.q-card-ident { min-width: 0; }
.q-card-codigo { font-size: 11px; color: var(--wf-text-subtle); }
.q-card-nome { font-size: 14px; font-weight: 600; letter-spacing: -.2px; color: var(--wf-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-card-local { font-size: 11px; color: var(--wf-text-subtle); margin-top: 1px; }
.q-card-linha-resultado { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.q-card-resultado { font-size: 26px; font-weight: 700; letter-spacing: -1px; line-height: 1; color: var(--q-cor); }
.q-card-meta { font-size: 12px; color: var(--wf-text-muted); }
.q-card-periodo { font-size: 11px; color: var(--wf-text-subtle); }
.q-card-spark .q-spark { width: 100%; height: auto; }
.q-card-rodape { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; margin-top: auto; }
.q-card-preenchimento { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; color: var(--wf-text-muted); }
.q-card-ok { display: inline-flex; color: var(--wf-success); }
.q-card-preenchimento--pendente { color: var(--wf-warning); font-weight: 600; }
.q-card-preenchimento--atraso { color: var(--wf-danger); }
.q-card-chips { display: inline-flex; gap: 4px; flex-wrap: wrap; }
.q-indicador-card--grande { padding: 24px; gap: 14px; }
.q-indicador-card--grande .q-card-codigo { font-size: 13px; }
.q-indicador-card--grande .q-card-nome { font-size: 20px; }
.q-indicador-card--grande .q-card-local { font-size: 13px; }
.q-indicador-card--grande .q-card-resultado { font-size: 40px; }
.q-indicador-card--grande .q-card-meta { font-size: 15px; }
.q-indicador-card--grande .q-card-periodo { font-size: 13px; }

.q-painel-vazio { display: flex; flex-direction: column; align-items: center; gap: 8px; padding: 64px 24px; font-size: 13px; }
.q-painel-vazio-titulo { font-size: 16px; font-weight: 600; color: var(--wf-text); }
.q-tabela-indicador { min-width: 0; line-height: 1.3; }
.q-tabela-codigo { font-size: 11px; color: var(--wf-text-subtle); }
.q-tabela-local { font-size: 11px; color: var(--wf-text-subtle); }

/* ---------- Lista (1.03) ---------- */
.q-lista-indicadores { max-width: 1600px; width: 100%; margin: 0 auto; }
.q-lista-corpo { display: flex; gap: 16px; align-items: flex-start; min-height: 0; }
.q-areas { width: 220px; flex: none; display: flex; flex-direction: column; gap: 2px;
  background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg);
  box-shadow: var(--wf-shadow-sm); padding: 8px; }
.q-area-item { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: var(--wf-radius-md);
  cursor: pointer; color: var(--wf-text-muted); font-size: 12.5px; font-weight: 500; }
.q-area-item:hover { background: var(--wf-hover); }
.q-area-item--ativo { background: var(--wf-selected); color: var(--wf-selected-text); font-weight: 600; }
.q-area-item span:first-child { flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-area-contagem { font-size: 10px; font-weight: 700; background: var(--wf-bg-sunken); border: 1px solid var(--wf-border);
  border-radius: var(--wf-radius-pill); padding: 1px 7px; color: var(--wf-text-subtle); }
.q-lista-tabela { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.q-lista-filtros { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.q-lista-filtros .wf-input, .q-lista-filtros > span:first-child { width: 320px; max-width: 100%; }
.q-toggle-inativos { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; color: var(--wf-text-muted); cursor: pointer; }
.q-toggle-inativos input { accent-color: var(--wf-brand-accent); }
.q-lista-acoes { display: inline-flex; gap: 2px; align-items: center; }

/* ---------- Apresentação ---------- */
.q-apresentacao { min-height: 100vh; background: var(--wf-bg); color: var(--wf-text); display: flex; flex-direction: column; outline: none; font-size: 15px; }
.q-apresentacao-topo { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 18px 32px; border-bottom: 1px solid var(--wf-border); background: var(--wf-surface); }
.q-apresentacao-marca { display: flex; align-items: center; gap: 14px; }
.q-apresentacao-titulo { font-size: 20px; font-weight: 700; letter-spacing: -.4px; }
.q-apresentacao-sub { font-size: 13px; color: var(--wf-text-muted); }
.q-apresentacao-acoes { display: flex; align-items: center; gap: 8px; }
.q-apresentacao-corpo { flex: 1; padding: 32px; display: flex; flex-direction: column; gap: 24px; }
.q-tiles--grandes .q-tile { padding: 20px 24px; }
.q-tiles--grandes .q-tile-rotulo { font-size: 13px; }
.q-tiles--grandes .q-tile-numero { font-size: 44px; }
.q-cards--grandes { grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); gap: 20px; }
.q-apresentacao-indicador { display: flex; flex-direction: column; gap: 24px; max-width: 1400px; width: 100%; margin: 0 auto; }
.q-apresentacao-cab { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.q-apresentacao-codigo { font-size: 15px; color: var(--wf-text-subtle); }
.q-apresentacao-nome { font-size: 34px; font-weight: 700; letter-spacing: -.8px; }
.q-apresentacao-local { font-size: 15px; color: var(--wf-text-muted); }
.q-apresentacao-valor-bloco { text-align: right; }
.q-apresentacao-valor { font-size: 56px; font-weight: 700; letter-spacing: -2px; line-height: 1; color: var(--q-cor); }
.q-apresentacao-meta { font-size: 16px; color: var(--wf-text-muted); }
.q-apresentacao-analise { display: flex; flex-direction: column; gap: 12px; padding: 20px; }
.q-analise-colunas { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.q-analise-colunas p { font-size: 14px; line-height: 1.45; color: var(--wf-text-muted); margin: 6px 0 0; }
.q-analise-passo { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); margin-bottom: 4px; }
.q-analise-autor { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--wf-text-subtle); border-top: 1px dashed var(--wf-border); padding-top: 8px; }
.q-apresentacao-rodape { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 32px; border-top: 1px solid var(--wf-border);
  background: var(--wf-surface); font-size: 13px; color: var(--wf-text-muted); position: sticky; bottom: 0; }
.q-apresentacao-dicas kbd { font-family: var(--wf-font-mono); font-size: 11px; padding: 1px 6px; border: 1px solid var(--wf-border); border-bottom-width: 2px; border-radius: var(--wf-radius-sm); background: var(--wf-surface-alt); }

/* ---------- Ficha (1.04) ---------- */
.q-ficha { max-width: 1400px; width: 100%; margin: 0 auto; }
.q-ficha-cab { padding: 18px 22px; }
.q-ficha-cab-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.q-ficha-ident { min-width: 260px; }
.q-ficha-linha-nome { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.q-ficha-codigo { font-size: 13px; color: var(--wf-text-subtle); background: var(--wf-bg-sunken); border: 1px solid var(--wf-border);
  padding: 2px 8px; border-radius: var(--wf-radius-sm); }
.q-ficha-nome { font-size: 20px; font-weight: 700; letter-spacing: -.4px; color: var(--wf-text); }
.q-ficha-local { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 6px; font-size: 12px; color: var(--wf-text-muted); }
.q-ficha-link { display: inline-flex; align-items: center; gap: 3px; color: var(--wf-brand-accent); text-decoration: none; }
.q-ficha-link:hover { text-decoration: underline; }
.q-ficha-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 14px; margin-top: 16px; padding-top: 14px;
  border-top: 1px solid var(--wf-border); font-size: 13px; color: var(--wf-text); }
.q-ficha-campos--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 12px; padding-top: 0; border-top: 0; }
.q-ficha-campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }

.q-ficha-abas-linha { display: flex; align-items: flex-end; justify-content: space-between; gap: 12px; flex-wrap: wrap; border-bottom: 1px solid var(--wf-border); }
.q-abas { display: flex; gap: 2px; flex-wrap: wrap; }
.q-aba { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; margin-bottom: -1px; font: inherit; font-size: 13px;
  color: var(--wf-text-muted); background: transparent; border: 0; border-bottom: 2px solid transparent; cursor: pointer; }
.q-aba:hover { color: var(--wf-text); }
.q-aba:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-aba--ativa { color: var(--wf-brand-accent); border-bottom-color: var(--wf-brand-accent); font-weight: 600; }
.q-aba-contagem { font-size: 10px; font-weight: 700; background: var(--wf-bg-sunken); border: 1px solid var(--wf-border);
  border-radius: var(--wf-radius-pill); padding: 0 6px; color: var(--wf-text-subtle); }
.q-ficha-ano { width: 88px; margin-bottom: 6px; }

.q-ficha-pilha { display: flex; flex-direction: column; gap: 14px; }
.q-ficha-secao { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.q-ficha-secao-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.q-ficha-secao-titulo { font-size: 13px; font-weight: 600; color: var(--wf-text); }
.q-ficha-secao-desc { font-size: 11px; color: var(--wf-text-subtle); margin-top: 2px; }
.q-ficha-sem-dados { display: flex; align-items: center; justify-content: center; min-height: 160px; padding: 24px; text-align: center;
  font-size: 13px; color: var(--wf-text-subtle); background: var(--wf-bg-sunken); border-radius: var(--wf-radius-md); }

.q-ficha-legenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: 11px; color: var(--wf-text-muted); }
.q-ficha-legenda > span { display: inline-flex; align-items: center; gap: 5px; }
.q-ficha-legenda-ico { display: inline-flex; color: var(--wf-text-subtle); }
.q-ficha-legenda-ico--plano { color: var(--wf-brand-accent); }

.q-ficha-tabela-rolagem { overflow-x: auto; }
.q-ficha-tabela { width: 100%; border-collapse: collapse; font-size: 12px; color: var(--wf-text); }
.q-ficha-tabela th { text-align: left; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle);
  padding: 6px 8px; border-bottom: 1px solid var(--wf-border); white-space: nowrap; }
.q-ficha-tabela td { padding: 10px 8px; border-bottom: 1px solid var(--wf-border); vertical-align: middle; }
.q-ficha-tabela--compacta td { padding: 8px; }
.q-ficha-linha { cursor: pointer; }
.q-ficha-linha:hover { background: var(--wf-hover); }
.q-ficha-linha:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -3px; }
.q-ficha-periodo { font-weight: 600; white-space: nowrap; }
.q-ficha-muted { color: var(--wf-text-muted); }
.q-ficha-traco { color: var(--wf-text-subtle); font-size: 11px; }
.q-ficha-quem { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.q-ficha-evidencia { display: inline-flex; align-items: center; gap: 5px; }
.q-ficha-progresso { display: inline-flex; align-items: center; gap: 8px; min-width: 120px; }
.q-ficha-progresso .q-bar { width: 80px; }
.q-ficha-atrasadas { color: var(--wf-danger); font-weight: 700; }

.q-ficha-analise .q-analise-colunas p { font-size: 12.5px; }
.q-ficha-analise strong { font-size: 13px; color: var(--wf-text); }
.q-ficha-nota { font-size: 11px; color: var(--wf-text-subtle); }
.q-ficha-analise-plano { margin-top: 8px; }

.q-ficha-cadastro { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 16px; align-items: start; }
.q-ficha-formula { display: flex; flex-direction: column; gap: 6px; padding-top: 12px; border-top: 1px solid var(--wf-border); font-size: 13px; }
.q-ficha-variavel { display: flex; gap: 10px; align-items: baseline; font-size: 12px; }
.q-ficha-sigla { font-weight: 600; background: var(--wf-bg-sunken); border: 1px solid var(--wf-border); padding: 1px 7px; border-radius: var(--wf-radius-sm); }
.q-ficha-lista { display: flex; flex-direction: column; gap: 10px; font-size: 12px; }
.q-ficha-permissao { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.q-ficha-revisao { display: flex; gap: 10px; }
.q-ficha-rev { font-weight: 700; color: var(--wf-text-subtle); min-width: 44px; }

/* ---------- Apuração (1.05) + análise crítica (1.06) + drawer do plano (3.09) ---------- */
.q-apuracao { max-width: 1300px; width: 100%; margin: 0 auto; }
.q-apuracao-sub { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 4px; font-size: 13px; color: var(--wf-text-muted); }
.q-apuracao-corpo { display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(280px, 1fr); gap: 20px; align-items: start; }
.q-apuracao-principal, .q-apuracao-lateral { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.q-apuracao-lateral .q-big { max-height: 200px; }

.q-campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.q-campo-rotulo { font-size: 12px; font-weight: 600; color: var(--wf-text); }
.q-campo-desc { font-weight: 400; color: var(--wf-text-subtle); }
.q-campo-unidade { display: flex; align-items: center; gap: 8px; }
.q-campo-sufixo { font-size: 12px; color: var(--wf-text-subtle); min-width: 24px; }
.q-obrigatorio { color: var(--wf-danger); }
.q-input, .q-textarea { width: 100%; min-width: 0; font: inherit; font-size: 13px; color: var(--wf-text); background: var(--wf-surface);
  border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); transition: border-color 120ms ease-out, box-shadow 120ms ease-out; }
.q-input { height: var(--wf-h-input, 36px); padding: 0 10px; }
.q-textarea { padding: 8px 10px; resize: vertical; min-height: 64px; line-height: 1.45; }
.q-input:focus, .q-textarea:focus { outline: none; border-color: var(--wf-border-focus); box-shadow: 0 0 0 3px color-mix(in srgb, var(--wf-border-focus) 13%, transparent); }
.q-input::placeholder, .q-textarea::placeholder { color: var(--wf-text-dim); }

.q-apuracao-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.q-apuracao-resultado { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 18px; border-radius: var(--wf-radius-md);
  background: var(--q-bg, var(--wf-bg-sunken)); border: 1px solid color-mix(in srgb, var(--q-cor, var(--wf-border)) 25%, transparent); }
.q-apuracao-valor { font-size: 28px; font-weight: 700; letter-spacing: -.8px; line-height: 1; color: var(--q-cor, var(--wf-text)); }
.q-apuracao-valor--vazio { color: var(--wf-text-dim); }
.q-apuracao-aviso { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--wf-danger); }
.q-apuracao-lido { font-size: 15px; font-weight: 600; color: var(--wf-text); }
.q-apuracao-obs { font-size: 13px; color: var(--wf-text-muted); white-space: pre-wrap; }

.q-evidencia-drop { position: relative; display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 22px 16px; text-align: center;
  border: 1.5px dashed var(--wf-border-strong); border-radius: var(--wf-radius-md); background: var(--wf-surface-alt); color: var(--wf-text-muted);
  font-size: 12px; cursor: pointer; transition: border-color 120ms ease-out, background 120ms ease-out; }
.q-evidencia-drop:hover, .q-evidencia-drop:focus-within { border-color: var(--wf-brand-accent); background: var(--wf-info-bg); }
.q-evidencia-drop strong { color: var(--wf-brand-accent-deep); }
/* o input cobre toda a área: clique e arrastar-soltar nativos do navegador */
.q-evidencia-input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.q-evidencia-arquivo { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md);
  background: var(--wf-surface-alt); color: var(--wf-brand-accent); font-size: 12px; }
.q-evidencia-nome { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--wf-text); }

.q-apuracao-rodape { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.q-apuracao-rodape-espaco { flex: 1; }
.q-apuracao-msg { font-size: 12px; color: var(--wf-text-muted); }
.q-apuracao-faixa { display: flex; align-items: center; gap: 8px; padding: 10px 14px; font-size: 12.5px; color: var(--wf-text);
  background: var(--wf-warning-bg); border: 1px solid color-mix(in srgb, var(--wf-warning) 30%, transparent); border-radius: var(--wf-radius-md); }
.q-apuracao-faixa svg { color: var(--wf-warning); flex: none; }
.q-apuracao-concluida { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; font-size: 12.5px; color: var(--wf-text-muted);
  background: var(--wf-success-bg); border: 1px solid color-mix(in srgb, var(--wf-success) 30%, transparent); border-radius: var(--wf-radius-md); }
.q-apuracao-concluida > svg { color: var(--wf-success); flex: none; }
.q-apuracao-resumo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; padding: 8px 14px; font-size: 12.5px; color: var(--wf-text-muted);
  background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); }
.q-apuracao-resumo-evid { display: inline-flex; align-items: center; gap: 4px; color: var(--wf-text); min-width: 0; overflow-wrap: anywhere; }
.q-apuracao-ultima { display: flex; align-items: center; justify-content: space-between; gap: 8px; font-size: 12px; color: var(--wf-text-muted); }

.q-apuracao-plano { display: flex; flex-direction: column; gap: 8px; border-left: 3px solid var(--wf-brand-accent); }
.q-apuracao-plano-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.q-apuracao-plano-titulo { font-size: 14px; font-weight: 600; color: var(--wf-text); }
.q-apuracao-plano .q-ficha-progresso .q-bar { width: 140px; }
.q-apuracao-plano-acoes { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: 12px; }
.q-apuracao-plano-acoes li { display: flex; align-items: center; gap: 10px; }
.q-apuracao-plano-oque { flex: 1; min-width: 0; color: var(--wf-text); }

/* Análise crítica inline */
.q-analise { display: flex; flex-direction: column; gap: 22px; border-color: color-mix(in srgb, var(--wf-brand-accent) 35%, var(--wf-border)); outline: none; scroll-margin-top: 16px; }
.q-analise:focus-visible { box-shadow: 0 0 0 3px color-mix(in srgb, var(--wf-border-focus) 25%, transparent); }
.q-analise-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-bottom: 12px; border-bottom: 1px solid var(--wf-border); }
.q-analise-etapa { display: flex; flex-direction: column; gap: 8px; }
.q-analise-etapa-titulo { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 600; color: var(--wf-text); margin-bottom: 2px; }
.q-analise-num { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 20px; border-radius: 50%; font-size: 11px; font-weight: 700;
  background: var(--wf-brand-navy); color: var(--wf-surface); }
.q-analise-nota { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--wf-text-subtle); }
.q-analise-nota svg { color: var(--wf-brand-accent); flex: none; }
.q-decisoes { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; }
.q-decisao { display: flex; align-items: flex-start; gap: 10px; padding: 12px; text-align: left; font: inherit; color: var(--wf-text); cursor: pointer;
  background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); transition: border-color 120ms ease-out, background 120ms ease-out; }
.q-decisao:hover:not(:disabled) { background: var(--wf-hover); }
.q-decisao:disabled { opacity: .5; cursor: not-allowed; }
.q-decisao:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-decisao--ativa { border-color: var(--wf-brand-accent); background: var(--wf-selected); }
.q-decisao-radio { width: 14px; height: 14px; margin-top: 2px; flex: none; border-radius: 50%; border: 1.5px solid var(--wf-border-strong); background: var(--wf-surface); }
.q-decisao--ativa .q-decisao-radio { border: 4px solid var(--wf-brand-accent); }
.q-decisao-texto { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.q-decisao-titulo { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; font-size: 13px; font-weight: 600; }
.q-decisao-desc { font-size: 11px; color: var(--wf-text-muted); }
.q-analise-dica { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px 14px; font-size: 12px; color: var(--wf-text-muted);
  background: var(--wf-info-bg); border: 1px dashed color-mix(in srgb, var(--wf-brand-accent) 40%, transparent); border-radius: var(--wf-radius-md); }
.q-analise-vinculo { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; font-size: 12px; color: var(--wf-text);
  background: var(--wf-success-bg); border: 1px solid color-mix(in srgb, var(--wf-success) 30%, transparent); border-radius: var(--wf-radius-md); }
.q-analise-vinculo > svg { color: var(--wf-success); flex: none; }
.q-analise-rodape { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding-top: 14px; border-top: 1px solid var(--wf-border); }
.q-analise-assinatura { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--wf-text-subtle); }
.q-analise-assinatura strong { color: var(--wf-text-muted); }
.q-analise-rodape-acoes { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.q-analise-rodape-acoes .q-erro { margin-top: 0; }

/* Criação guiada (3.08/3.09) · cartão de origem, modo "escolha" e rodapé (q-pdrawer-*) */
.q-pdrawer { display: flex; flex-direction: column; gap: 14px; }
.q-pdrawer-origem { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); background: var(--wf-surface-alt); }
.q-pdrawer-origem-linha { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 12px; }
.q-pdrawer-proc { font-size: 11px; color: var(--wf-text-subtle); }
.q-pdrawer-nome { font-size: 13px; font-weight: 600; color: var(--wf-text); }
.q-pdrawer-origem .q-spark { width: 100%; height: auto; }
.q-pdrawer-causa { display: flex; flex-direction: column; gap: 2px; font-size: 12px; color: var(--wf-text-muted); }
.q-pdrawer-aviso { display: flex; align-items: flex-start; gap: 8px; padding: 10px 12px; font-size: 12px; color: var(--wf-text);
  background: var(--wf-warning-bg); border: 1px solid color-mix(in srgb, var(--wf-warning) 30%, transparent); border-radius: var(--wf-radius-md); }
.q-pdrawer-aviso svg { color: var(--wf-warning); flex: none; margin-top: 1px; }
.q-pdrawer-opcao { display: flex; flex-direction: column; gap: 6px; padding: 14px; text-align: left; font: inherit; color: var(--wf-text); cursor: pointer;
  background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); }
.q-pdrawer-opcao:hover { background: var(--wf-hover); }
.q-pdrawer-opcao:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-pdrawer-opcao--recomendada { border-color: var(--wf-brand-accent); background: var(--wf-info-bg); }
.q-pdrawer-opcao-topo { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; font-size: 13px; }
.q-pdrawer-recomendado { font-size: 11px; font-weight: 600; color: var(--wf-brand-accent); white-space: nowrap; }
.q-pdrawer-opcao-desc { font-size: 12px; color: var(--wf-text-muted); }
.q-pdrawer-opcao-meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 11px; color: var(--wf-text-muted); }
.q-pdrawer-rodape { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; width: 100%; }
.q-pdrawer-rodape-espaco { flex: 1; }
.q-pdrawer-rodape .q-erro { margin-top: 0; }

/* Criação guiada · stepper, modelos, origens, plano e ações rápidas */
.q-cplano { display: flex; flex-direction: column; gap: 16px; }
.q-cplano-passos { display: flex; gap: 6px; margin: 0; padding: 0; list-style: none; }
.q-cplano-passos > li { flex: 1; min-width: 0; }
.q-cplano-passo { display: flex; flex-direction: column; gap: 5px; width: 100%; padding: 0; font: inherit; text-align: left; cursor: pointer; background: none; border: 0; }
.q-cplano-passo:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); border-radius: var(--wf-radius-sm); }
.q-cplano-passo-barra { height: 3px; border-radius: 2px; background: var(--wf-border); }
.q-cplano-passo-rotulo { font-size: 11.5px; font-weight: 500; color: var(--wf-text-subtle); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-cplano-passo--ativo .q-cplano-passo-barra, .q-cplano-passo--feito .q-cplano-passo-barra { background: var(--wf-brand-accent); }
.q-cplano-passo--ativo .q-cplano-passo-rotulo { font-weight: 700; color: var(--wf-text); }
.q-cplano-lista { display: flex; flex-direction: column; gap: 8px; }
.q-cplano-card { display: flex; gap: 12px; padding: 12px; font: inherit; text-align: left; color: var(--wf-text); cursor: pointer;
  background: var(--wf-surface); border: 1.5px solid var(--wf-border); border-radius: var(--wf-radius-md); }
.q-cplano-card > svg { flex: none; color: var(--wf-text-subtle); }
.q-cplano-card:hover { background: var(--wf-hover); }
.q-cplano-card:focus-visible, .q-cplano-origem:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-cplano-card--sel, .q-cplano-card--sel:hover { border-color: var(--wf-brand-accent); background: var(--wf-info-bg); }
.q-cplano-card--sel > svg { color: var(--wf-brand-accent-deep); }
.q-cplano-card-texto { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.q-cplano-card-nome { font-size: 13px; font-weight: 600; }
.q-cplano-card-desc { font-size: 11.5px; color: var(--wf-text-muted); }
.q-cplano-muda { display: flex; gap: 5px; margin-top: 6px; font-size: 11.5px; color: var(--wf-brand-accent-deep); }
.q-cplano-muda svg { flex: none; margin-top: 2px; }
.q-cplano-secao { display: flex; flex-direction: column; gap: 12px; }
.q-cplano-secao--acoes { padding-top: 14px; border-top: 1px solid var(--wf-border); }
.q-cplano-nota { font-size: 12px; color: var(--wf-text-muted); }
.q-cplano-nota--sutil { font-size: 11.5px; color: var(--wf-text-subtle); }
.q-cplano-nota--marca { font-size: 11.5px; color: var(--wf-brand-accent-deep); }
.q-cplano-origens { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.q-cplano-origem { display: flex; align-items: center; gap: 8px; padding: 10px 12px; font: inherit; font-size: 12.5px; font-weight: 600; text-align: left;
  color: var(--wf-text); cursor: pointer; background: var(--wf-surface); border: 1.5px solid var(--wf-border); border-radius: var(--wf-radius-md); }
.q-cplano-origem svg { color: var(--wf-text-subtle); }
.q-cplano-origem:hover { background: var(--wf-hover); }
.q-cplano-origem--sel, .q-cplano-origem--sel:hover { border-color: var(--wf-brand-accent); background: var(--wf-info-bg); }
.q-cplano-origem--sel svg { color: var(--wf-brand-accent-deep); }
.q-cplano-obrig { color: var(--wf-danger); }
.q-cplano-grade2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.q-cplano-campos { display: flex; flex-direction: column; gap: 10px; padding: 12px; border: 1px dashed var(--wf-border-strong); border-radius: var(--wf-radius-md); }
.q-cplano-acao { display: grid; grid-template-columns: minmax(0, 1fr) 130px 128px 64px 32px; gap: 6px; align-items: center; }
.q-cplano-acao--fase { grid-template-columns: 130px minmax(0, 1fr) 130px 128px 64px 32px; }
.q-cplano-acao--causa { grid-template-columns: minmax(0, 1fr) 120px 120px 124px 56px 32px; }
.q-cplano-acao--fase.q-cplano-acao--causa { grid-template-columns: 104px minmax(0, 1fr) 112px 112px 124px 56px 32px; }
.q-cplano-acao .q-input { height: 32px; padding: 0 6px; font-size: 12px; }
.q-cplano-acao-cab { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.5px; color: var(--wf-text-subtle); }
.q-cplano-remover { display: inline-flex; justify-content: center; }
@media (max-width: 640px) {
  .q-cplano-grade2 { grid-template-columns: 1fr; }
  .q-cplano-acao, .q-cplano-acao--fase, .q-cplano-acao--causa, .q-cplano-acao--fase.q-cplano-acao--causa { grid-template-columns: 1fr 1fr; }
  .q-cplano-acao-cab { display: none; }
}

/* ---------- Cadastro / edição do indicador (1.07) ---------- */
/* A faixa do protótipo fica acima do RecordShell: a coluna ocupa a altura útil e o shell cresce no resto. */
.q-cadastro { display: flex; flex-direction: column; height: calc(100vh - var(--wf-h-topbar) - var(--wf-h-tabbar)); min-height: 0; }
.q-cadastro > .q-pagina { flex: 1; overflow-y: auto; }
.q-cadastro-shell { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.q-cadastro-shell > .wf-record { flex: 1; height: auto; min-height: 0; }
.q-cad-campos { border: 0; margin: 0; padding: 0; min-width: 0; }
.q-cad-legenda { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.q-cad-campos:disabled .q-input, .q-cad-campos:disabled .q-textarea { background: var(--wf-bg-sunken); color: var(--wf-text-muted); cursor: not-allowed; }
.q-cad-campos:disabled .q-seg-btn { cursor: not-allowed; opacity: .75; }

.q-cad-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; }
.q-cad-grade--2 { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.q-cad-span2 { grid-column: span 2; }
.q-cad-bloco { margin-top: 14px; }
.q-cad-rotulo { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.q-cad-dica { font-size: 11px; font-weight: 400; color: var(--wf-text-subtle); }
.q-cad-desc { font-size: 12px; color: var(--wf-text-subtle); margin: 0 0 12px; }
.q-cad-num { width: 96px; flex: none; }
.q-cad-nota { font-size: 12px; color: var(--wf-text-muted); padding: 10px 14px; background: var(--wf-bg-sunken); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); }

.q-cad-tabela, .q-vig { display: flex; flex-direction: column; gap: 8px; }
.q-cad-cab, .q-vig-cab { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); }
.q-vig-cab-dica { font-weight: 400; text-transform: none; letter-spacing: 0; }
.q-cad-var { display: grid; grid-template-columns: 110px minmax(0, 1fr) 90px 34px; gap: 8px; align-items: center; }
.q-vig-linha { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 90px 150px 34px; gap: 8px; align-items: center; }
.q-cad-perm { display: grid; grid-template-columns: minmax(0, 1fr) 180px 34px; gap: 8px; align-items: center; }
.q-vig-vazio { font-size: 12px; color: var(--wf-text-subtle); padding: 10px; text-align: center; background: var(--wf-bg-sunken); border-radius: var(--wf-radius-md); }

.q-cad-previa { margin-top: 10px; padding: 10px 14px; display: flex; flex-direction: column; gap: 8px; font-size: 12px; color: var(--wf-text-muted);
  background: var(--wf-bg-sunken); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); }
.q-cad-previa-cab { display: flex; align-items: center; gap: 8px; }
.q-cad-previa-cab svg { color: var(--wf-success); flex: none; }
.q-cad-previa-campos { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.q-cad-previa-var { display: inline-flex; align-items: center; gap: 6px; color: var(--wf-text); }
.q-cad-previa-var .q-input { height: 30px; }
.q-cad-previa-seta { color: var(--wf-text-subtle); }
.q-cad-previa-valor { font-size: 14px; color: var(--wf-brand-accent-deep); }
.q-cad-previa .q-erro { margin-top: 0; }

.q-cad-revisao { font-size: 13px; color: var(--wf-text-muted); }
.q-cad-faixa, .q-cad-erro-geral { display: flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--wf-text); }
.q-cad-faixa svg { color: var(--wf-warning); flex: none; }
.q-cad-erro-geral { color: var(--wf-danger); font-weight: 600; }
.q-cad-erro-geral svg { flex: none; }

@media (max-width: 1100px) {
  .q-apuracao-corpo { grid-template-columns: minmax(0, 1fr); }
  .q-apuracao-lateral { order: -1; } /* resumo do ano vai para cima */
}
@media (max-width: 600px) {
  .q-cad-span2 { grid-column: auto; }
  .q-cad-var { grid-template-columns: 90px minmax(0, 1fr) 34px; }
  .q-cad-var select { grid-column: 1 / 3; }
  .q-vig-linha { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 34px; }
  .q-vig-linha > select { grid-column: 1; }
  .q-cad-perm { grid-template-columns: minmax(0, 1fr) 34px; }
  .q-cad-cab, .q-vig-cab { display: none; }
  .q-pdrawer-acao { grid-template-columns: 52px minmax(0, 1fr) auto; }
  .q-pdrawer-oque { grid-column: 2 / -1; }
  .q-pdrawer-resp { grid-column: 1 / 3; }
}
@media (max-width: 480px) {
  .q-apuracao { padding: 16px; }
  .q-apuracao-lateral { order: 0; } /* no celular o formulário vem primeiro */
  .q-apuracao-campos, .q-decisoes { grid-template-columns: minmax(0, 1fr); }
  .q-apuracao-resultado { padding: 12px; }
  .q-apuracao-rodape { position: sticky; bottom: 0; z-index: 5; margin: 0 -16px; padding: 10px 16px; justify-content: stretch;
    background: var(--wf-surface); border-top: 1px solid var(--wf-border); box-shadow: var(--wf-shadow-md); }
  .q-apuracao-rodape .q-apuracao-rodape-espaco { display: none; }
  .q-apuracao-rodape .q-erro, .q-apuracao-rodape .q-apuracao-msg { flex-basis: 100%; }
  .q-apuracao-rodape button { flex: 1; }
}

/* ---------- Planos · chips ---------- */
.q-origem-chip { display: inline-flex; align-items: center; gap: 5px; height: 20px; padding: 0 8px; width: fit-content; white-space: nowrap;
                 border-radius: var(--wf-radius-pill); font-size: 11.5px; font-weight: 400; color: var(--wf-text-muted);
                 background: var(--wf-bg-sunken); border: 1px solid var(--wf-border); }
.q-origem-chip strong { color: var(--wf-text); font-weight: 600; margin-left: 2px; }
.q-origem-chip--sm { font-size: 10.5px; height: 18px; }
button.q-origem-chip { cursor: pointer; }
button.q-origem-chip:hover { background: var(--wf-hover); }

.q-mencao { color: var(--wf-brand-accent-deep); font-weight: 600; }

/* ---------- Página do plano ---------- */
.q-plano { max-width: 1500px; width: 100%; margin: 0 auto; }
.q-plano-cab { padding: 16px 20px; }
.q-plano-cab-topo { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.q-plano-ident { flex: 1; min-width: 280px; }
.q-plano-ident-linha { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.q-plano-id { font-size: 13px; color: var(--wf-text-subtle); background: var(--wf-bg-sunken); border: 1px solid var(--wf-border);
              padding: 2px 8px; border-radius: var(--wf-radius-sm); white-space: nowrap; }
.q-plano-modelo { font-size: 11.5px; color: var(--wf-text-subtle); }
.q-plano-titulo { font-size: 20px; font-weight: 700; letter-spacing: -0.4px; margin: 6px 0 0; color: var(--wf-text); }
.q-plano-esperado { font-size: 12px; color: var(--wf-text-muted); margin-top: 4px; }
.q-ficha-coleta { color: var(--wf-text-muted); }
.q-plano-observacao { font-size: 12px; color: var(--wf-text-muted); margin-top: 2px; white-space: pre-line; }
.q-plano-cab-acoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.q-porque { position: relative; }
.q-porque-pop { position: absolute; right: 0; top: 34px; width: 300px; max-width: calc(100vw - 32px); z-index: 20; padding: 12px; font-size: 12px; line-height: 17px;
                color: var(--wf-text-muted); background: var(--wf-surface); border: 1px solid var(--wf-border);
                border-radius: var(--wf-radius-md); box-shadow: var(--wf-shadow-lg); }
.q-porque-pop strong { color: var(--wf-text); display: block; margin-bottom: 4px; }
.q-seguidores { display: inline-flex; }
.q-seguidor { display: inline-flex; border-radius: 50%; box-shadow: 0 0 0 1.5px var(--wf-surface); }
.q-seguidor + .q-seguidor { margin-left: -6px; }
.q-plano-excluir { display: inline-flex; }
.q-plano-origem { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--wf-border); display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.q-plano-origem-chip { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.q-plano-origem-titulo { font-size: 12.5px; color: var(--wf-text-muted); }
.q-plano-spark { width: 240px; padding: 6px 10px 4px; border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); background: var(--wf-surface-alt); }
.q-plano-spark .q-spark { width: 100%; height: auto; }
.q-plano-spark-cab, .q-plano-spark-eixo { display: flex; justify-content: space-between; font-size: 10px; color: var(--wf-text-subtle); }
.q-plano-spark-eixo { color: var(--wf-text-dim); }
.q-plano-links { display: flex; gap: 12px; flex-wrap: wrap; font-size: 12px; }
.q-plano-links a, .q-plano-origem-titulo a { color: var(--wf-brand-accent-deep); font-weight: 600; text-decoration: none; }
.q-plano-links a:hover, .q-plano-origem-titulo a:hover { text-decoration: underline; }
.q-plano-causa { flex-basis: 100%; font-size: 12px; color: var(--wf-text-muted); border-left: 2px solid var(--wf-border-strong); padding-left: 10px; }
.q-plano-causa strong { color: var(--wf-text); }
.q-causas { flex-basis: 100%; display: flex; gap: 8px; flex-wrap: wrap; }
.q-causa-chip { font-size: 11.5px; padding: 4px 10px; border-radius: var(--wf-radius-pill); }
.q-causa-chip--ok { background: var(--wf-success-bg); color: var(--wf-text-muted); }
.q-causa-chip--sem { background: var(--wf-danger-bg); color: var(--wf-danger); }

.q-plano-faixa { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; padding: 12px 16px; border-radius: var(--wf-radius-lg); font-size: 12.5px; }
.q-plano-faixa-texto { flex: 1; min-width: 220px; color: var(--wf-text-muted); }
.q-plano-faixa-texto strong { color: var(--wf-text); }
.q-plano-faixa--rascunho { background: var(--wf-warning-bg); border: 1px solid color-mix(in srgb, var(--wf-warning) 27%, transparent); }
.q-plano-faixa--rascunho > svg { color: var(--wf-warning); }
.q-plano-faixa--concluido { background: var(--wf-success-bg); border: 1px solid color-mix(in srgb, var(--wf-success) 27%, transparent); color: var(--wf-text); }
.q-plano-faixa--concluido > svg { color: var(--wf-success); }
.q-plano-faixa--leitura { background: var(--wf-bg-sunken); color: var(--wf-text-muted); font-size: 12px; padding: 10px 14px; }

.q-plano-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.q-plano-kpi { padding: 12px 16px; display: flex; flex-direction: column; gap: 4px; }
.q-plano-kpi-valor { font-size: 24px; font-weight: 700; color: var(--wf-text); }
.q-plano-kpi-valor--md { font-size: 20px; }
.q-plano-kpi-progresso { display: flex; align-items: center; gap: 8px; }
.q-plano-kpi-progresso .q-bar { flex: 1; }
.q-plano-kpi-acoes { font-size: 20px; font-weight: 700; color: var(--wf-text); }
.q-plano-kpi-custos { font-size: 16px; color: var(--wf-text); }
.q-plano-kpi-custos span { font-size: 12px; color: var(--wf-text-subtle); }
.q-plano-kpi-sub { font-size: 10.5px; color: var(--wf-text-subtle); }

.q-plano-corpo { display: flex; gap: 16px; align-items: flex-start; }
.q-plano-principal { flex: 1.7; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.q-plano-atividade { flex: 1; min-width: 300px; }
@media (max-width: 1100px) {
  .q-plano-corpo { flex-direction: column; align-items: stretch; }
  .q-plano-atividade { min-width: 0; }
}
.q-plano-secao { padding: 16px 18px; display: flex; flex-direction: column; gap: 12px; }
.q-plano-secao-cab { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.q-plano-secao-titulo { font-size: 14px; font-weight: 700; color: var(--wf-text); }
.q-plano-secao-desc { font-size: 11.5px; color: var(--wf-text-subtle); margin-top: 2px; }
.q-plano-estrutura { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; font-size: 12.5px; color: var(--wf-text); line-height: 18px; }
.q-plano-estrutura-campo { display: flex; flex-direction: column; gap: 4px; }
.q-plano-sem-acoes { padding: 28px 0; text-align: center; font-size: 12.5px; color: var(--wf-text-subtle); }
.q-plano-fase + .q-plano-fase { margin-top: 6px; }
.q-plano-fase-titulo { display: flex; align-items: center; gap: 8px; padding: 10px 6px 6px; font-size: 11px; font-weight: 700;
                       text-transform: uppercase; letter-spacing: 0.5px; color: var(--wf-brand-accent-deep); }
.q-plano-fase-titulo span { color: var(--wf-text-subtle); font-weight: 500; }
.q-plano-fase-vazia { font-size: 11.5px; color: var(--wf-text-dim); padding: 4px 6px 10px; }
.q-acao-linha { display: flex; flex-direction: column; gap: 8px; padding: 12px 8px; border-bottom: 1px solid var(--wf-border); font-size: 12px; cursor: pointer; }
.q-acao-linha:hover { background: var(--wf-hover); }
.q-acao-linha:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -3px; }
.q-acao-linha--cancelada { opacity: .5; }
.q-acao-linha-topo { display: flex; gap: 10px; align-items: flex-start; }
.q-acao-id { font-size: 11px; font-weight: 700; color: var(--wf-text-subtle); padding-top: 2px; min-width: 22px; }
.q-acao-oque { flex: 1; min-width: 0; font-size: 13px; font-weight: 600; line-height: 19px; color: var(--wf-text); }
.q-acao-lado { flex-shrink: 0; }
.q-acao-situacao { font-size: 11px; color: var(--wf-text-subtle); }
.q-acao-linha-info { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; padding-left: 32px; }
.q-acao-progresso { display: inline-flex; align-items: center; gap: 6px; width: 120px; font-size: 11px; color: var(--wf-text-subtle); }
.q-acao-progresso .q-bar { flex: 1; }
.q-acao-meta { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; color: var(--wf-text-subtle); }

/* Eficácia */
.q-eficacia { display: flex; flex-direction: column; gap: 12px; }
.q-eficacia-campos { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; font-size: 12.5px; color: var(--wf-text); }
.q-eficacia-campo { display: flex; flex-direction: column; gap: 4px; }
.q-eficacia-acomp { padding: 12px; background: var(--wf-surface-alt); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); }
.q-eficacia-acomp-titulo { font-size: 11.5px; color: var(--wf-text-muted); margin-bottom: 8px; }
.q-eficacia-acomp-titulo strong { color: var(--wf-text); }
.q-eficacia-chips { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; color: var(--wf-text-dim); }
.q-eficacia-faixa { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; font-size: 12.5px; padding: 10px 12px; border-radius: var(--wf-radius-md); }
.q-eficacia-faixa--ok { background: var(--wf-success-bg); color: var(--wf-text); }
.q-eficacia-faixa--ok > svg { color: var(--wf-success); }
.q-eficacia-faixa--falha { background: var(--wf-danger-bg); color: var(--wf-danger); }
.q-eficacia-faixa--na { background: var(--wf-surface-alt); border: 1px solid var(--wf-border); color: var(--wf-text-muted); }
.q-eficacia-faixa-texto { flex: 1; min-width: 200px; }
.q-eficacia-atendido { font-size: 12px; color: var(--wf-success); }

/* Atividade */
.q-comentar { display: flex; flex-direction: column; gap: 6px; }
.q-comentar-linha { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.q-comentar-espaco { flex: 1; }
.q-atividade { display: flex; flex-direction: column; gap: 14px; }
.q-atividade-item { display: flex; gap: 10px; }
.q-atividade-sistema { width: 24px; height: 24px; flex-shrink: 0; border-radius: 50%; background: var(--wf-bg-sunken); color: var(--wf-text-subtle);
                       display: inline-flex; align-items: center; justify-content: center; }
.q-atividade-corpo { flex: 1; min-width: 0; }
.q-atividade-meta { font-size: 11px; color: var(--wf-text-subtle); }
.q-atividade-meta strong { color: var(--wf-text); }
.q-atividade-tag { margin-left: 6px; color: var(--wf-brand-accent-deep); font-weight: 600; }
.q-atividade-texto { font-size: 12.5px; margin-top: 2px; line-height: 18px; color: var(--wf-text); overflow-wrap: anywhere; }
.q-atividade-texto--sistema { color: var(--wf-text-muted); }
.q-atividade-texto--comentario { background: var(--wf-surface-alt); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); padding: 6px 10px; }

/* Sem acesso (4.04) */
.q-sem-acesso { max-width: 720px; margin: 40px auto; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.q-sem-acesso-icone { width: 64px; height: 64px; border-radius: 16px; background: var(--wf-bg-sunken); border: 1px solid var(--wf-border);
                      display: inline-flex; align-items: center; justify-content: center; color: var(--wf-text-subtle); margin-bottom: 6px; }
.q-sem-acesso-titulo { font-size: 18px; font-weight: 700; margin: 0; color: var(--wf-text); }
.q-sem-acesso-motivo { font-size: 13px; color: var(--wf-text-muted); max-width: 520px; line-height: 20px; margin: 0; }
.q-sem-acesso-quem { font-size: 12px; color: var(--wf-text-subtle); margin: 8px 0 10px; }

/* Modais do plano */
.q-modal-corpo { display: flex; flex-direction: column; gap: 14px; }
.q-modal-sub { font-size: 13px; color: var(--wf-text-muted); margin: 0; line-height: 19px; }
.q-modal-grade { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.q-modal-rodape-erro { flex: 1; }
.q-modal-rodape-erro .q-erro { margin-top: 0; }

/* Drawer da ação (3.06) */
.q-adrawer { display: flex; flex-direction: column; gap: 18px; }
.q-adrawer-tags { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.q-adrawer-sutil { color: var(--wf-text-subtle); font-size: 11.5px; }
.q-adrawer-aviso { display: flex; gap: 8px; align-items: center; font-size: 12px; padding: 8px 12px; background: var(--wf-bg-sunken);
                   border-radius: var(--wf-radius-md); color: var(--wf-text-muted); }
.q-adrawer-causa { font-size: 12px; padding: 8px 12px; background: var(--wf-warning-bg); border-radius: var(--wf-radius-md); color: var(--wf-text-muted); }
.q-adrawer-causa strong { color: var(--wf-warning); }
.q-adrawer-concluida { display: flex; gap: 8px; align-items: center; font-size: 12.5px; padding: 10px 12px; background: var(--wf-success-bg);
                       border-radius: var(--wf-radius-md); color: var(--wf-success); }
.q-checkin { padding: 14px; background: var(--wf-surface); border: 1.5px solid color-mix(in srgb, var(--wf-brand-accent) 40%, transparent);
             border-radius: var(--wf-radius-lg); display: flex; flex-direction: column; gap: 10px; }
.q-checkin--concluir { border-color: color-mix(in srgb, var(--wf-success) 40%, transparent); }
.q-checkin-cab { display: flex; align-items: center; justify-content: space-between; }
.q-checkin-titulo { font-size: 13px; font-weight: 700; color: var(--wf-text); }
.q-checkin-linha { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; }
.q-checkin-espaco { flex: 1; }
.q-checkin-rodape { display: flex; justify-content: flex-end; }
.q-pilula { height: 32px; min-width: 52px; padding: 0 10px; border-radius: var(--wf-radius-pill); border: 1.5px solid var(--wf-border);
            background: var(--wf-surface); color: var(--wf-text-muted); font: inherit; font-weight: 700; font-size: 12px; cursor: pointer; }
.q-pilula:hover { background: var(--wf-hover); }
.q-pilula--ativa { border-color: var(--wf-brand-accent); background: var(--wf-info-bg); color: var(--wf-brand-accent-deep); }
.q-pilula--concluir { border-color: var(--wf-success); background: var(--wf-success-bg); color: var(--wf-success); }
.q-anexar { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; font-size: 12px; font-weight: 500;
            color: var(--wf-text); background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md);
            box-shadow: var(--wf-shadow-sm); cursor: pointer; }
.q-anexar:hover, .q-anexar:focus-within { background: var(--wf-hover); }
.q-arquivo { display: inline-flex; align-items: center; gap: 6px; font-size: 11.5px; padding: 3px 8px; background: var(--wf-bg-sunken);
             border: 1px solid var(--wf-border); border-radius: var(--wf-radius-sm); color: var(--wf-text); width: fit-content; }
.q-arquivo > svg { color: var(--wf-brand-accent); }
.q-arquivo-remover { border: none; background: none; padding: 0 2px; font: inherit; color: var(--wf-text-subtle); cursor: pointer; }
.q-adrawer-secao { display: flex; flex-direction: column; gap: 10px; }
.q-adrawer-secao-cab { display: flex; align-items: center; justify-content: space-between; }
.q-adrawer-secao-titulo { font-size: 13px; font-weight: 700; color: var(--wf-text); }
.q-adrawer-contagem { font-weight: 400; color: var(--wf-text-subtle); font-size: 12px; }
.q-5w2h { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; padding: 14px; background: var(--wf-surface-alt);
          border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); font-size: 12.5px; line-height: 18px; color: var(--wf-text); }
.q-5w2h-cel { min-width: 0; }
.q-5w2h-cel--cheia { grid-column: 1 / -1; }
.q-5w2h-rotulo { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.6px; color: var(--wf-brand-accent-deep); margin-bottom: 4px; }
.q-5w2h-quem { display: flex; flex-direction: column; gap: 2px; }
.q-adrawer-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.q-adrawer-form-cheia { grid-column: 1 / -1; }
.q-subtarefas { display: flex; flex-direction: column; gap: 6px; }
.q-subtarefa { display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: var(--wf-text); cursor: pointer; }
.q-subtarefa input { accent-color: var(--wf-brand-accent); width: 16px; height: 16px; }
.q-subtarefa input:disabled { cursor: default; }
.q-subtarefa--feita { color: var(--wf-text-subtle); text-decoration: line-through; }
.q-adrawer-linha-form { display: flex; gap: 6px; align-items: center; }
.q-adrawer-linha-form .q-input { height: 32px; }
.q-historico { display: flex; flex-direction: column; gap: 12px; }
.q-historico-item { display: flex; gap: 10px; }
.q-historico-corpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.q-historico-meta { font-size: 11.5px; color: var(--wf-text-subtle); }
.q-historico-meta strong { color: var(--wf-text); }
.q-historico-pct { margin-left: 6px; font-weight: 700; color: var(--wf-brand-accent-deep); }
.q-historico-pct--ok { color: var(--wf-success); }
/* Check-in legado sem % (R8): só texto, marcado como comentário. */
.q-historico-tipo { margin-left: 6px; font-size: 11px; color: var(--wf-text-subtle); }
.q-historico-texto { font-size: 12.5px; color: var(--wf-text); }
.q-historico-motivo { font-size: 11.5px; color: var(--wf-text-muted); }
.q-adrawer-vazio { font-size: 12px; color: var(--wf-text-dim); }
.q-adrawer-rodape { display: flex; align-items: center; gap: 8px; width: 100%; }
.q-adrawer-rodape-erro { flex: 1; }
.q-adrawer-rodape-erro .q-erro { margin-top: 0; }
@media (max-width: 600px) {
  .q-5w2h, .q-adrawer-form, .q-modal-grade { grid-template-columns: 1fr; }
  .q-acao-linha-info { padding-left: 0; }
  .q-plano-spark { width: 100%; }
}

/* ---------- Planos · lista (3.01) ---------- */
.q-planos { max-width: 1600px; width: 100%; margin: 0 auto; }
.q-planos-abas { border-bottom: 1px solid var(--wf-border); }
.q-planos-filtros { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.q-planos-select { width: auto; height: 32px; font-size: 12px; padding: 0 8px; cursor: pointer; }
.q-planos-dica { margin-left: auto; font-size: 11.5px; color: var(--wf-text-subtle); }
.q-planos-tabela { background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); box-shadow: var(--wf-shadow-sm); overflow: hidden; }
.q-planos-rolagem { overflow-x: auto; }
.q-planos-grade { display: grid; grid-template-columns: 84px minmax(240px, 2fr) 150px minmax(120px, .8fr) 90px 100px 150px; gap: 12px;
                  align-items: center; min-width: 980px; padding: 11px 16px; border-bottom: 1px solid var(--wf-border); }
.q-planos-cab { padding: 8px 16px; background: var(--wf-bg-sunken); font-size: 10px; font-weight: 700; text-transform: uppercase;
                letter-spacing: .5px; color: var(--wf-text-subtle); }
.q-planos-linha { font-size: 12px; color: var(--wf-text); background: var(--wf-surface); cursor: pointer; }
.q-planos-linha:last-child { border-bottom: 0; }
.q-planos-linha:hover { background: var(--wf-hover); }
.q-planos-linha:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -3px; }
.q-planos-id { font-size: 11.5px; font-weight: 600; }
.q-planos-situacao { font-size: 10.5px; color: var(--wf-text-subtle); }
.q-planos-titulo-col { min-width: 0; }
.q-planos-titulo { font-weight: 600; margin-bottom: 4px; }
.q-planos-origem { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; font-size: 10.5px; color: var(--wf-text-subtle); }
.q-planos-progresso { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--wf-text-subtle); }
.q-planos-progresso > span { min-width: 28px; }
.q-planos-acoes { color: var(--wf-text-muted); }
.q-planos-previsao { font-size: 11px; }
.q-planos-vazio { padding: 56px 24px; border: 1.5px dashed var(--wf-border-strong); color: var(--wf-text-muted); font-size: 13px; }
.q-planos-vazio-titulo { font-size: 15px; font-weight: 600; color: var(--wf-text); margin-bottom: 4px; }
.q-lixeira-vazia { font-size: 13px; color: var(--wf-text-subtle); text-align: center; padding: 20px; }
.q-lixeira-linha { display: flex; gap: 10px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--wf-border); }
.q-lixeira-info { flex: 1; min-width: 0; }
.q-lixeira-titulo { font-size: 13px; font-weight: 600; color: var(--wf-text); }
.q-lixeira-id { color: var(--wf-text-subtle); font-weight: 400; }
.q-lixeira-sub { font-size: 11.5px; color: var(--wf-text-subtle); }

/* ---------- Planos · quadro (3.02) ---------- */
.q-kanban { display: grid; grid-template-columns: repeat(4, minmax(240px, 1fr)); gap: 12px; overflow-x: auto; align-items: start; }
.q-kanban-erro { margin-top: 0; }
.q-kanban-coluna { --q-col: var(--wf-text-subtle); background: var(--wf-surface-alt); border: 1px solid var(--wf-border);
                   border-radius: var(--wf-radius-lg); padding: 10px; min-height: 300px; transition: background .1s; }
.q-kanban-coluna--emandamento { --q-col: var(--wf-brand-accent); }
.q-kanban-coluna--concluida { --q-col: var(--wf-success); }
.q-kanban-coluna--cancelada { --q-col: var(--wf-text-dim); }
.q-kanban-coluna--sobre { background: var(--wf-info-bg); border-style: dashed; border-color: var(--wf-brand-accent); }
.q-kanban-coluna-cab { display: flex; align-items: center; gap: 8px; padding: 2px 4px 10px; }
.q-kanban-ponto { width: 8px; height: 8px; border-radius: 50%; background: var(--q-col); flex: none; }
.q-kanban-coluna-titulo { font-size: 12px; font-weight: 700; color: var(--wf-text); }
.q-kanban-contagem { font-size: 11px; color: var(--wf-text-subtle); }
.q-kanban-dica { margin-left: auto; font-size: 10px; color: var(--wf-text-dim); }
.q-kanban-lista { display: flex; flex-direction: column; gap: 8px; }
.q-kanban-vazio { font-size: 11.5px; color: var(--wf-text-dim); text-align: center; padding: 20px 0; }
.q-kcard { background: var(--wf-surface); border: 1px solid var(--wf-border); border-left: 3px solid var(--q-cor); border-radius: var(--wf-radius-md);
           padding: 10px; cursor: grab; box-shadow: var(--wf-shadow-sm); display: flex; flex-direction: column; gap: 7px; }
.q-kcard:hover { border-color: var(--wf-border-strong); border-left-color: var(--q-cor); }
.q-kcard:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-kcard--arrastando { opacity: .4; }
.q-kcard-topo { display: flex; gap: 6px; align-items: center; font-size: 10.5px; color: var(--wf-text-subtle); flex-wrap: wrap; }
.q-kcard-id { font-weight: 600; }
.q-kcard-alta { color: var(--wf-danger); font-weight: 700; }
.q-kcard-titulo { font-size: 12.5px; font-weight: 600; line-height: 16px; color: var(--wf-text); }
.q-kcard-progresso { display: flex; align-items: center; gap: 6px; font-size: 10.5px; color: var(--wf-text-subtle); }
/* a saúde do cartão (--q-cor) não pode tingir a barra: ela é da cor da marca, verde só quando concluída */
.q-kcard .q-bar-fill:not(.q-st-verde) { --q-cor: var(--wf-brand-accent); }
.q-kcard-rodape { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.q-kcard-rodape .q-pessoa { font-size: 12px; min-width: 0; }
.q-kcard-prazo { font-size: 10.5px; font-weight: 600; color: var(--q-cor); white-space: nowrap; }

/* ---------- Planos · linha do tempo (3.03) ---------- */
/* Geometria em px espelha QGanttAcoes (11px/dia, linhas de 36px, rótulos de 300px). */
.q-gantt { background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); box-shadow: var(--wf-shadow-sm); overflow: hidden; }
.q-gantt--arrastando { user-select: none; cursor: ew-resize; }
.q-gantt-rolagem { overflow: auto; max-height: calc(100vh - 260px); }
.q-gantt-conteudo { position: relative; min-width: 100%; }
.q-gantt-cab { display: flex; position: sticky; top: 0; z-index: 3; height: 32px; background: var(--wf-bg-sunken); border-bottom: 1px solid var(--wf-border); }
.q-gantt-cab-rotulo { width: 300px; flex: none; padding: 0 14px; display: flex; align-items: center; position: sticky; left: 0; z-index: 4;
                      background: var(--wf-bg-sunken); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); }
.q-gantt-semana { flex: none; display: flex; align-items: center; padding-left: 4px; border-left: 1px solid var(--wf-border); font-size: 10px; color: var(--wf-text-subtle); }
.q-gantt-hoje-rotulo { position: absolute; top: 8px; z-index: 5; padding: 1px 5px; border-radius: var(--wf-radius-sm); font-size: 9.5px; font-weight: 700;
                       color: var(--wf-danger); background: var(--wf-danger-bg); border: 1px solid var(--wf-danger); }
.q-gantt-corpo { position: relative; }
.q-gantt-grupo, .q-gantt-linha { height: 36px; display: flex; align-items: center; border-bottom: 1px solid var(--wf-border); position: relative; }
.q-gantt-grupo { background: var(--wf-surface-alt); }
.q-gantt-grupo-rotulo { width: 300px; flex: none; padding: 0 14px; position: sticky; left: 0; z-index: 2; background: var(--wf-surface-alt);
                        font-size: 12px; font-weight: 700; color: var(--wf-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-gantt-id, .q-gantt-acao-id { color: var(--wf-text-subtle); }
.q-gantt-acao-id { font-size: 10.5px; }
.q-gantt-rotulo { width: 300px; flex: none; height: 100%; padding: 0 14px 0 26px; position: sticky; left: 0; z-index: 2; background: var(--wf-surface);
                  display: flex; gap: 8px; align-items: center; font-size: 12px; color: var(--wf-text); cursor: pointer; }
.q-gantt-rotulo:hover { background: var(--wf-hover); }
.q-gantt-rotulo:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -3px; }
.q-gantt-acao-oque { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-gantt-barra { position: absolute; top: 8px; height: 20px; border-radius: 5px; background: var(--q-bg); border: 1px solid var(--q-cor); overflow: hidden; cursor: pointer; z-index: 1; }
.q-gantt-barra--concluida { background: var(--wf-success-bg); }
.q-gantt-barra-progresso { height: 100%; background: var(--q-cor); opacity: .35; }
.q-gantt-barra-texto { position: absolute; left: 6px; top: 2px; font-size: 10px; font-weight: 700; color: var(--q-cor); white-space: nowrap; pointer-events: none; }
.q-gantt-alca { position: absolute; right: 0; top: 0; bottom: 0; width: 8px; cursor: ew-resize; background: var(--q-cor); opacity: .6; touch-action: none; }
.q-gantt-alca:hover { opacity: .9; }
.q-gantt-barra--antes-janela { border-left: 2px dashed var(--q-cor); }
.q-gantt-antes-marca { position: absolute; left: 0; top: 0; bottom: 0; display: flex; align-items: center; color: var(--q-cor); pointer-events: none; }
.q-gantt-svg { position: absolute; top: 0; pointer-events: none; overflow: visible; z-index: 1; }
.q-gantt-hoje { stroke: var(--wf-danger); stroke-width: 1.5; }
.q-gantt-rodape { padding: 8px 14px; font-size: 11px; color: var(--wf-text-subtle); border-top: 1px solid var(--wf-border); }

/* ---------- Planos · gestão (3.04) ---------- */
.q-gestao { display: flex; flex-direction: column; gap: 14px; }
.q-gestao-tiles { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1100px) { .q-gestao-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .q-gestao-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.q-gestao-grade { display: grid; grid-template-columns: repeat(auto-fit, minmax(360px, 1fr)); gap: 14px; align-items: start; }
@media (max-width: 420px) { .q-gestao-grade { grid-template-columns: 1fr; } }
.q-gestao-secao { background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); box-shadow: var(--wf-shadow-sm); min-width: 0; }
.q-gestao-secao-cab { padding: 12px 16px; border-bottom: 1px solid var(--wf-border); }
.q-gestao-secao-titulo { font-size: 13px; font-weight: 700; color: var(--wf-text); }
.q-gestao-secao-desc { font-size: 11px; color: var(--wf-text-subtle); margin-top: 2px; }
.q-gestao-secao-corpo { padding: 12px 16px 16px; }
.q-gestao-vazio { font-size: 12px; color: var(--wf-text-subtle); padding: 8px 0; }
.q-gestao-pessoas { display: flex; flex-direction: column; gap: 4px; }
.q-gestao-pessoa { display: grid; grid-template-columns: 140px 1fr 64px; gap: 10px; align-items: center; padding: 4px; margin: 0 -4px;
                   font: inherit; text-align: left; background: none; border: 0; border-radius: var(--wf-radius-sm); cursor: pointer; color: var(--wf-text); }
.q-gestao-pessoa:hover { background: var(--wf-hover); }
.q-gestao-pessoa:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-gestao-pessoa .q-pessoa { font-size: 12px; min-width: 0; overflow: hidden; white-space: nowrap; }
.q-gestao-pilha { display: flex; height: 14px; border-radius: 3px; overflow: hidden; }
.q-gestao-seg { background: var(--q-cor); }
.q-gestao-pessoa-total { font-size: 11px; color: var(--wf-text-muted); white-space: nowrap; }
.q-gestao-atr { color: var(--wf-danger); font-weight: 700; }
.q-gestao-legenda { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 12px; font-size: 10.5px; color: var(--wf-text-muted); }
.q-gestao-legenda > span { display: inline-flex; gap: 4px; align-items: center; }
.q-gestao-amostra { width: 9px; height: 9px; border-radius: 2px; background: var(--q-cor); }
.q-gestao-equipe { display: grid; grid-template-columns: 110px 1fr auto; gap: 10px; align-items: center; padding: 7px 0; border-bottom: 1px solid var(--wf-border); font-size: 12px; }
.q-gestao-equipe:last-child { border-bottom: 0; }
.q-gestao-equipe-nome { font-weight: 600; color: var(--wf-text); }
.q-gestao-equipe-gestor { font-size: 11px; color: var(--wf-text-subtle); }
.q-gestao-equipe-total { text-align: right; color: var(--wf-text-muted); }
.q-gestao-equipe-total.q-gestao-atr { font-weight: 400; }
.q-gestao-origem { display: grid; grid-template-columns: 1fr 60px 80px 70px; gap: 8px; padding: 7px 0; font-size: 12px; color: var(--wf-text); border-bottom: 1px solid var(--wf-border); }
.q-gestao-origem:last-child { border-bottom: 0; }
.q-gestao-origem-cab { padding: 0 0 6px; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); }
.q-gestao-origem-nome { display: inline-flex; gap: 6px; align-items: center; }
.q-gestao-origem-nome .wf-icon, .q-gestao-origem-nome svg { color: var(--wf-text-subtle); }
.q-gestao-eficaz { color: var(--wf-success); font-weight: 600; }
.q-gestao-zero { color: var(--wf-text-dim); }
.q-gestao-meses { display: flex; align-items: flex-end; gap: 14px; height: 130px; padding-top: 10px; }
.q-gestao-mes { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; }
.q-gestao-mes-valor { font-size: 11px; font-weight: 600; color: var(--wf-text-muted); }
.q-gestao-mes-coluna { width: 100%; background: var(--wf-border-strong); border-radius: 4px 4px 0 0; }
.q-gestao-mes--atual .q-gestao-mes-coluna { background: var(--wf-brand-accent); }
.q-gestao-mes--atual .q-gestao-mes-valor { color: var(--wf-text); }
.q-gestao-mes-rotulo { font-size: 10.5px; color: var(--wf-text-subtle); }

/* ---------- Processo · componentes (Onda C: README §2.01/2.03/2.04/2.08/2.09) ---------- */
.q-ico-direita { display: inline-flex; transform: rotate(180deg); }

/* Dono */
.q-sem-dono { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--wf-text-muted); }
.q-sem-dono svg { color: var(--wf-text-subtle); }

/* Card do processo (mapa do SGQ) */
.q-proc-card { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 8px; padding: 12px; cursor: pointer;
               background: var(--wf-surface); border: 1.5px solid var(--wf-border); border-radius: var(--wf-radius-lg);
               box-shadow: var(--wf-shadow-sm); transition: border-color 140ms, box-shadow 140ms, opacity 140ms; }
.q-proc-card:hover { border-color: var(--wf-border-strong); box-shadow: var(--wf-shadow-md); }
.q-proc-card:focus-visible { outline: none; border-color: var(--wf-brand-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--wf-brand-accent) 25%, transparent); }
.q-proc-card--sel, .q-proc-card--sel:hover { border-color: var(--wf-brand-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--wf-brand-accent) 13%, transparent); }
.q-proc-card--dim { opacity: .38; }
.q-proc-card-topo { display: flex; align-items: center; justify-content: space-between; gap: 6px; }
.q-proc-card-codigo { font-family: var(--wf-font-mono); font-size: 10.5px; color: var(--wf-text-subtle); }
.q-proc-card-alertas { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 700; color: var(--wf-warning);
                       background: var(--wf-warning-bg); padding: 1px 6px; border-radius: var(--wf-radius-pill); }
.q-proc-card-nome { font-size: 13px; font-weight: 600; line-height: 17px; min-height: 34px; color: var(--wf-text); overflow: hidden;
                    display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; word-break: break-word; }
.q-proc-card .q-pessoa { font-size: 12px; min-width: 0; }
.q-proc-card .q-pessoa-nome { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-proc-card-rev { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.q-proc-card-farol { display: flex; align-items: center; gap: 6px; min-height: 16px; }
.q-farol-ponto { width: 10px; height: 10px; border-radius: 50%; flex: none; background: var(--q-cor); border: 1.5px solid var(--wf-surface);
                 box-shadow: 0 0 0 1px color-mix(in srgb, var(--q-cor) 35%, transparent); }
.q-proc-card-sem-ind { font-size: 10.5px; color: var(--wf-text-dim); white-space: nowrap; }
.q-proc-card-espaco { flex: 1; }
.q-proc-card-atrasadas { font-size: 10px; font-weight: 700; color: var(--wf-danger); white-space: nowrap; }
.q-proc-card-completude { display: flex; align-items: center; gap: 6px; }
.q-proc-card-pct { font-size: 10px; font-weight: 600; color: var(--wf-text-subtle); min-width: 26px; text-align: right; }

/* RACI */
.q-raci { display: flex; gap: 4px; flex-wrap: wrap; }
.q-raci-pilula { display: inline-flex; align-items: center; gap: 4px; font-size: 10.5px; padding: 1px 6px 1px 2px; max-width: 100%;
                 border: 1px solid var(--wf-border); border-radius: var(--wf-radius-pill); background: var(--wf-surface); }
.q-raci-papel { width: 15px; height: 15px; border-radius: 50%; flex: none; display: inline-flex; align-items: center; justify-content: center;
                font-size: 9px; font-weight: 800; color: var(--wf-text-on-brand); }
.q-raci-papel--r { background: var(--wf-brand-accent); }
.q-raci-papel--a { background: var(--wf-brand-navy); }
.q-raci-papel--c { background: var(--wf-text-subtle); }
.q-raci-papel--i { background: var(--wf-text-dim); }
.q-raci-nome { color: var(--wf-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-raci-pilula--inativo { border-color: var(--wf-danger); background: var(--wf-danger-bg); }
.q-raci-pilula--inativo .q-raci-nome { color: var(--wf-danger); text-decoration: line-through; }

/* Chip de fornecedor/cliente (SIPOC) */
.q-ref-chip { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 2px 7px; border-radius: var(--wf-radius-sm);
              font-size: 11px; font-weight: 600; white-space: nowrap; overflow: hidden; background: var(--wf-bg-sunken); color: var(--wf-text-muted); }
.q-ref-chip-texto { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.q-ref-chip--processo { background: var(--wf-info-bg); color: var(--wf-brand-accent-deep); text-decoration: none; cursor: pointer; }
.q-ref-chip--processo:hover { text-decoration: underline; }
.q-ref-chip--processo:focus-visible { outline: 2px solid var(--wf-brand-accent); outline-offset: 1px; }
.q-ref-chip--externo { background: var(--wf-warning-bg); color: var(--wf-warning); max-width: 180px; }
.q-ref-chip--vazio { color: var(--wf-text-subtle); }

/* Tartaruga */
.q-tartaruga { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.15fr) minmax(0,1fr); gap: 10px; }
.q-tartaruga--mobile { grid-template-columns: minmax(0,1fr); gap: 8px; }
.q-tart-bloco { min-width: 0; min-height: 150px; display: flex; flex-direction: column; gap: 6px; padding: 12px;
                background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); transition: border-color 120ms; }
.q-tartaruga--mobile .q-tart-bloco, .q-tartaruga--mobile .q-tart-centro { min-height: 0; }
.q-tart-bloco--vazio { border-style: dashed; border-color: var(--wf-border-strong); }
.q-tart-bloco--clicavel { cursor: pointer; }
.q-tart-bloco--clicavel:hover, .q-tart-bloco--editando { border-color: var(--wf-brand-accent); }
.q-tart-bloco--clicavel:focus-visible { outline: none; border-color: var(--wf-brand-accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--wf-brand-accent) 20%, transparent); }
.q-tart-bloco-cab { display: flex; align-items: baseline; justify-content: space-between; gap: 6px; }
.q-tart-pergunta { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; color: var(--wf-brand-accent-deep); }
.q-tart-sub { font-size: 10.5px; color: var(--wf-text-subtle); }
.q-tart-bloco-ico { color: var(--wf-text-dim); }
.q-tart-vazio { flex: 1; display: flex; align-items: center; font-size: 11.5px; color: var(--wf-text-dim); }
.q-tart-itens { display: flex; flex-direction: column; gap: 3px; }
.q-tart-item { display: flex; align-items: center; gap: 6px; min-width: 0; font-size: 11.5px; line-height: 15px; color: var(--wf-text); }
.q-tart-ponto { width: 4px; height: 4px; border-radius: 50%; flex: none; background: var(--wf-text-dim); }
.q-tart-ponto-ind { width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--q-cor); }
.q-tart-item-texto { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.q-tart-item--ind .q-tart-item-texto { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-tart-item-valor { font-weight: 700; color: var(--q-cor); white-space: nowrap; }
.q-tart-item--inativo .q-tart-item-texto { color: var(--wf-danger); }
.q-tart-tag { font-family: var(--wf-font-mono); font-size: 9.5px; color: var(--wf-text-subtle); background: var(--wf-bg-sunken);
              padding: 0 4px; border-radius: 3px; white-space: nowrap; max-width: 45%; overflow: hidden; text-overflow: ellipsis; }
.q-tart-mais { font-size: 11px; font-weight: 600; color: var(--wf-text-subtle); }
.q-tart-edicao { display: flex; flex-direction: column; gap: 6px; cursor: default; }
.q-tart-rotulo { display: flex; flex-direction: column; gap: 4px; font-size: 11px; font-weight: 600; color: var(--wf-text-muted); }
.q-tart-edicao-acoes { display: flex; gap: 6px; justify-content: flex-end; }
.q-tart-erro { font-size: 12px; color: var(--wf-danger); }
.q-tart-centro { min-width: 0; min-height: 150px; display: flex; flex-direction: column; justify-content: center; gap: 6px; padding: 16px;
                 background: var(--wf-brand-navy); color: var(--wf-text-on-brand); border-radius: var(--wf-radius-lg); }
.q-tart-centro-rotulo { font-size: 10.5px; font-weight: 800; letter-spacing: .8px; text-transform: uppercase; color: var(--wf-brand-accent); }
.q-tart-centro-nome { font-size: 17px; font-weight: 700; letter-spacing: -.3px; line-height: 21px; overflow-wrap: anywhere; }
.q-tart-centro-objetivo { font-size: 11.5px; line-height: 16px; color: color-mix(in srgb, var(--wf-text-on-brand) 72%, transparent); }
.q-tart-linha { display: flex; align-items: baseline; min-width: 0; white-space: pre; font-family: var(--wf-font-mono); font-size: 10.5px;
                color: color-mix(in srgb, var(--wf-text-on-brand) 55%, transparent); }
.q-tart-ident { display: inline-block; max-width: 16ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; vertical-align: bottom; }
/* Objetivo editável no centro + gestores em chips no "Com quem?" */
.q-tart-centro-objetivo--clicavel { display: inline-flex; align-items: flex-start; gap: 6px; align-self: flex-start; text-align: left; background: none;
                                    border: 0; margin: 0 -4px; padding: 2px 4px; border-radius: var(--wf-radius-sm); font: inherit; font-size: 11.5px;
                                    line-height: 16px; color: color-mix(in srgb, var(--wf-text-on-brand) 72%, transparent); cursor: pointer; }
.q-tart-centro-objetivo--clicavel:hover, .q-tart-centro-objetivo--clicavel:focus-visible { outline: none; color: var(--wf-text-on-brand);
                                    background: color-mix(in srgb, var(--wf-text-on-brand) 10%, transparent); }
.q-tart-centro-objetivo--clicavel svg { flex: none; margin-top: 2px; opacity: .7; }
.q-tart-centro-objetivo--vazio { font-style: italic; }
.q-tart-centro--editando { justify-content: flex-start; }
.q-tart-centro-edicao .q-tart-rotulo { color: color-mix(in srgb, var(--wf-text-on-brand) 80%, transparent); }
.q-tart-gestores { min-height: 0; padding: 6px; gap: 4px; }
.q-tart-gestores .wf-chip { font-size: 11px; }
.q-tart-gestores .wf-chip-add { font-size: 11px; padding: 3px 8px; }
.q-tart-chip--inativo { background: var(--wf-danger-bg); color: var(--wf-danger); border-color: var(--wf-danger); }

/* Matriz de risco 5×5 */
.q-matriz-risco { display: flex; flex-direction: column; gap: 10px; }
.q-matriz-corpo { display: flex; gap: 8px; }
.q-matriz-eixo-y { writing-mode: vertical-rl; transform: rotate(180deg); text-align: center; font-size: 10px; font-weight: 700;
                   text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); }
.q-matriz-area { flex: 1; min-width: 0; }
.q-matriz-grade { display: grid; grid-template-columns: 18px repeat(5, minmax(0, 1fr)); gap: 3px; }
.q-matriz-rotulo { align-self: center; font-size: 10px; color: var(--wf-text-subtle); }
.q-matriz-rotulo--x { text-align: center; }
.q-matriz-eixo-x { margin-top: 4px; text-align: center; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); }
.q-risco-cel { aspect-ratio: 1; display: flex; flex-wrap: wrap; gap: 2px; align-content: center; justify-content: center; padding: 2px; border-radius: 4px; min-width: 0; }
.q-risco-cel--alto { background: var(--wf-danger-bg); }
.q-risco-cel--medio { background: var(--wf-warning-bg); }
.q-risco-cel--baixo { background: var(--wf-success-bg); }
.q-risco-chip { font-size: 9.5px; font-weight: 800; padding: 2px 4px; border-radius: 3px; color: var(--wf-text-on-brand); cursor: default; }
.q-risco-chip--risco { background: var(--wf-brand-navy); }
.q-risco-chip--oportunidade { background: var(--wf-brand-accent); }
.q-risco-chip--destacado { outline: 2px solid var(--wf-brand-accent); outline-offset: 1px; }
.q-matriz-legenda { display: flex; gap: 12px; flex-wrap: wrap; font-size: 10.5px; color: var(--wf-text-muted); }
.q-matriz-legenda > span { display: inline-flex; gap: 4px; align-items: center; }
.q-matriz-amostra { width: 10px; height: 10px; border-radius: 2px; padding: 0; }

/* Comparação de revisões */
.q-diff { display: flex; flex-direction: column; }
.q-diff-cab, .q-diff-linha { display: grid; grid-template-columns: 160px minmax(0,1fr) minmax(0,1fr); gap: 12px; }
.q-diff-cab { padding: 0 0 8px; border-bottom: 1px solid var(--wf-border); font-size: 10px; font-weight: 700; text-transform: uppercase;
              letter-spacing: .5px; color: var(--wf-text-subtle); }
.q-diff-linha { padding: 10px 0; border-bottom: 1px solid var(--wf-border); font-size: 12px; align-items: start; }
.q-diff-secao { font-weight: 600; color: var(--wf-text); }
.q-diff-antes, .q-diff-depois { padding: 6px 8px; border-radius: var(--wf-radius-sm); overflow-wrap: anywhere; }
.q-diff-antes { background: var(--wf-danger-bg); color: var(--wf-text-muted); }
.q-diff-depois { background: var(--wf-success-bg); color: var(--wf-text); }
.q-diff-removido { text-decoration: line-through; }
.q-diff-vazio { font-style: italic; color: var(--wf-text-subtle); }
.q-diff-motivo { margin-top: 8px; font-size: 11px; color: var(--wf-text-subtle); }
.q-diff-motivo { margin-top: 0; font-size: 12px; }
@media (max-width: 640px) {
    .q-diff-cab, .q-diff-linha { grid-template-columns: minmax(0,1fr); gap: 6px; }
}

/* ---------- Mapa do SGQ (2.01 mapa · 2.02 lista) ---------- */
.q-sgq { max-width: 1600px; width: 100%; margin: 0 auto; }
.q-sgq-tiles { grid-template-columns: repeat(5, minmax(0, 1fr)); }
@media (max-width: 1100px) { .q-sgq-tiles { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 700px) { .q-sgq-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.q-sgq-barra { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.q-sgq-visoes { display: inline-flex; border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); overflow: hidden; }
.q-sgq-visao { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 12px; border: 0; background: var(--wf-surface);
               color: var(--wf-text-muted); font: inherit; font-size: 12px; font-weight: 500; cursor: pointer; }
.q-sgq-visao:hover { background: var(--wf-hover); }
.q-sgq-visao--ativa, .q-sgq-visao--ativa:hover { background: var(--wf-selected); color: var(--wf-selected-text); font-weight: 600; }
.q-sgq-visao:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -3px; }
.q-sgq-dica { font-size: 12px; color: var(--wf-text-subtle); }
.q-sgq-busca { position: relative; display: inline-flex; align-items: center; width: 240px; max-width: 100%; }
.q-sgq-busca svg { position: absolute; left: 10px; color: var(--wf-text-subtle); pointer-events: none; }
.q-sgq-busca .q-input { height: 32px; padding-left: 30px; font-size: 12px; }

.q-sgq-corpo { display: flex; gap: 16px; align-items: flex-start; }
.q-sgq-mapa { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.q-sgq-faixa { background: var(--wf-surface-alt); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); padding: 14px; min-width: 0; }
.q-sgq-faixa--nc { border: 1.5px dashed var(--wf-border-strong); }
.q-sgq-faixa-cab { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.q-sgq-faixa-titulo { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: var(--wf-text-subtle); }
.q-sgq-faixa-desc { font-size: 11px; color: var(--wf-text-dim); }
.q-sgq-cards { display: flex; gap: 12px; flex-wrap: wrap; }
.q-sgq-cadeia { display: flex; align-items: stretch; overflow-x: auto; padding-bottom: 4px; }
.q-sgq-cadeia > .q-proc-card + .q-proc-card { margin-left: 12px; }
/* "Organizar mapa": card + controles (grupo e ← → da cadeia) numa coluna com a largura do card. */
.q-sgq-org { display: flex; flex-direction: column; gap: 6px; flex: none; }
.q-sgq-cadeia > .q-sgq-org + .q-sgq-org { margin-left: 12px; }
.q-sgq-org-ctrl { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.q-sgq-org-grupo { flex: 1; min-width: 0; height: 28px; padding: 0 6px; font-size: 12px; }
.q-sgq-org-seta { width: 28px; height: 28px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--wf-border);
                  border-radius: var(--wf-radius-md); background: var(--wf-surface); color: var(--wf-text); cursor: pointer; }
.q-sgq-org-seta:hover:not(:disabled) { background: var(--wf-hover); }
.q-sgq-org-seta:disabled { opacity: 0.4; cursor: default; }
.q-sgq-org-seta:focus-visible { outline: 2px solid var(--wf-brand-accent); outline-offset: 1px; }
.q-sgq-cliente { width: 92px; flex: none; align-self: center; display: flex; flex-direction: column; align-items: center; gap: 2px; text-align: center;
                 padding: 12px 6px; border-radius: var(--wf-radius-lg); border: 1.5px dashed var(--wf-border-strong); background: var(--wf-surface); }
.q-sgq-cliente svg { color: var(--wf-text-subtle); }
.q-sgq-cliente + .q-proc-card { margin-left: 12px; }
.q-sgq-cliente-titulo { font-size: 11px; font-weight: 700; color: var(--wf-text); }
.q-sgq-cliente-sub { font-size: 10px; color: var(--wf-text-subtle); }
.q-sgq-seta { width: 72px; flex: none; align-self: center; display: flex; flex-direction: column; align-items: stretch; gap: 3px; padding: 0 4px; }
.q-sgq-seta-rotulo { font-size: 9.5px; line-height: 12px; color: var(--wf-text-subtle); text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-sgq-seta-linha { position: relative; height: 1.5px; background: var(--wf-border-strong); }
.q-sgq-seta-linha::after { content: ""; position: absolute; right: -1px; top: -4px; border: 4.5px solid transparent; border-left: 6px solid var(--wf-border-strong); border-right: 0; }
.q-sgq-legenda { display: flex; gap: 16px; flex-wrap: wrap; font-size: 11px; color: var(--wf-text-muted); padding: 4px 2px; }
.q-sgq-legenda > span { display: inline-flex; align-items: center; gap: 5px; }
.q-sgq-legenda-alerta svg { color: var(--wf-warning); }

.q-sgq-painel { width: 320px; flex: none; position: sticky; top: 0; display: flex; flex-direction: column; gap: 12px; }
.q-sgq-painel-cab { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; }
.q-sgq-painel-titulo { font-size: 14px; font-weight: 600; color: var(--wf-text); }
.q-sgq-painel-desc { font-size: 12px; color: var(--wf-text-muted); margin-top: 2px; line-height: 17px; }
.q-sgq-fechar { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border: 0; border-radius: var(--wf-radius-sm);
                background: transparent; color: var(--wf-text-subtle); cursor: pointer; }
.q-sgq-fechar:hover { background: var(--wf-hover); color: var(--wf-text); }
.q-sgq-painel-corpo { display: flex; flex-direction: column; gap: 14px; }
.q-sgq-painel-dono { display: flex; justify-content: space-between; align-items: center; gap: 8px; flex-wrap: wrap; }
.q-sgq-painel-pessoa { display: inline-flex; flex-direction: column; gap: 2px; min-width: 0; }
.q-sgq-painel-sub { font-size: 10.5px; color: var(--wf-text-subtle); }
.q-sgq-painel-rotulo { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); margin-bottom: 6px; }
.q-sgq-vazio { font-size: 12px; color: var(--wf-text-dim); }
.q-sgq-ind { display: flex; justify-content: space-between; align-items: center; gap: 8px; font-size: 12px; padding: 3px 0; }
.q-sgq-ind-nome { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--wf-text); }
.q-sgq-viz-grupo { padding: 4px 0; }
.q-sgq-viz-grupo + .q-sgq-viz-grupo { border-top: 1px solid var(--wf-border); }
.q-sgq-viz-proc { font-size: 12px; font-weight: 600; color: var(--wf-text); }
.q-sgq-viz-proc .q-mono { font-size: 11px; color: var(--wf-text-subtle); font-weight: 400; }
.q-sgq-viz-item { font-size: 12px; color: var(--wf-text-muted); padding: 1px 0 1px 10px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.q-sgq-viz-mais { border: 0; background: none; padding: 1px 0 1px 10px; font: inherit; font-size: 11.5px; color: var(--wf-brand-accent-deep); cursor: pointer; }
.q-sgq-viz-mais:hover { text-decoration: underline; }
.q-sgq-alerta { display: flex; align-items: center; gap: 6px; font-size: 11.5px; color: var(--wf-text-muted); }
.q-sgq-alerta svg { color: var(--wf-warning); flex: none; }
.q-sgq-alerta--grave, .q-sgq-alerta--grave svg { color: var(--wf-danger); }
.q-sgq-painel-alertas { display: flex; flex-direction: column; gap: 4px; }
.q-sgq-alertas-lista { display: flex; flex-direction: column; max-height: 560px; overflow-y: auto; margin: 0 -4px; padding: 0 4px; }
.q-sgq-alertas-item { display: flex; flex-direction: column; gap: 4px; padding: 8px 4px 10px; border-bottom: 1px solid var(--wf-border); cursor: pointer; border-radius: var(--wf-radius-sm); }
.q-sgq-alertas-item:last-child { border-bottom: 0; }
.q-sgq-alertas-item:hover { background: var(--wf-hover); }
.q-sgq-alertas-item:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -3px; }
.q-sgq-alertas-nome { font-size: 12px; font-weight: 600; color: var(--wf-text); }
.q-sgq-alertas-nome .q-mono { font-weight: 400; color: var(--wf-text-subtle); }
@media (max-width: 1100px) {
    .q-sgq-corpo { flex-direction: column; align-items: stretch; }
    .q-sgq-painel { width: auto; position: static; }
}

/* Lista */
.q-sgq-grade { display: grid; grid-template-columns: 64px minmax(180px, 1.5fr) 110px 170px 160px 120px 90px 50px 200px; gap: 12px;
               align-items: center; min-width: 1140px; padding: 10px 16px; border-bottom: 1px solid var(--wf-border); }
.q-sgq-grade.q-planos-cab { padding: 8px 16px; }
.q-sgq-lista-cod { font-size: 11px; }
.q-sgq-lista-nome { font-weight: 600; }
.q-sgq-lista-muted { color: var(--wf-text-muted); }
.q-sgq-lista-dono { min-width: 0; }
.q-sgq-lista-dono .q-pessoa { font-size: 12px; }
.q-sgq-lista-prox { font-size: 10.5px; color: var(--wf-text-subtle); margin-top: 2px; }
.q-sgq-lista-farol { display: flex; gap: 4px; align-items: center; }
.q-sgq-lista-alertas { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.q-sgq-lista-alertas .q-sgq-alerta { font-size: 11px; white-space: nowrap; }
.q-sgq-lista-mais { font-size: 10.5px; color: var(--wf-text-subtle); }
.q-sgq-lista-nenhum { font-size: 11px; color: var(--wf-text-dim); }
.q-sgq-lista-vazia { padding: 40px; text-align: center; font-size: 13px; color: var(--wf-text-subtle); min-width: 1140px; }

/* Substituir responsável */
.q-troca-pessoas { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); gap: 10px; align-items: end; }
.q-troca-seta { padding-bottom: 8px; color: var(--wf-text-subtle); display: inline-flex; }
.q-troca-aviso { display: flex; gap: 8px; align-items: center; font-size: 12px; padding: 8px 12px; background: var(--wf-danger-bg); color: var(--wf-danger); border-radius: var(--wf-radius-md); }
.q-troca-lista { border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); max-height: 280px; overflow-y: auto; }
.q-troca-vazio { padding: 16px; font-size: 12px; color: var(--wf-text-subtle); text-align: center; }
.q-troca-item { display: flex; gap: 10px; align-items: center; padding: 9px 12px; border-bottom: 1px solid var(--wf-border); cursor: pointer; font-size: 12px; color: var(--wf-text); }
.q-troca-item:last-child { border-bottom: 0; }
.q-troca-item:hover { background: var(--wf-hover); }
.q-troca-item input { accent-color: var(--wf-brand-accent); }
.q-troca-item-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.q-troca-item-papel { color: var(--wf-text-muted); font-size: 11px; }
.q-troca-sucesso { display: flex; gap: 12px; align-items: center; padding: 8px 0; }
.q-troca-sucesso-ico { width: 40px; height: 40px; flex: none; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center;
                       background: var(--wf-success-bg); color: var(--wf-success); }
.q-troca-sucesso-titulo { font-size: 14px; font-weight: 600; color: var(--wf-text); }
.q-troca-sucesso-sub { font-size: 12px; color: var(--wf-text-muted); }
@media (max-width: 560px) { .q-troca-pessoas { grid-template-columns: minmax(0, 1fr); } .q-troca-seta { display: none; } }

/* Novo processo */
.q-novo-campos { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 10px; }
.q-novo-opcoes { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.q-novo-opcao { display: flex; gap: 10px; align-items: flex-start; padding: 14px; text-align: left; font: inherit; color: var(--wf-text); cursor: pointer;
                background: var(--wf-surface); border: 1.5px solid var(--wf-border); border-radius: var(--wf-radius-md); }
.q-novo-opcao:hover { border-color: var(--wf-border-strong); }
.q-novo-opcao:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-novo-opcao--sel, .q-novo-opcao--sel:hover { border-color: var(--wf-brand-accent); background: var(--wf-info-bg); }
.q-novo-opcao-ico { display: inline-flex; color: var(--wf-text-subtle); flex: none; }
.q-novo-opcao--sel .q-novo-opcao-ico { color: var(--wf-brand-accent-deep); }
.q-novo-opcao-nome { display: block; font-size: 13px; font-weight: 600; }
.q-novo-opcao-desc { display: block; font-size: 11.5px; color: var(--wf-text-muted); margin-top: 2px; }
@media (max-width: 560px) { .q-novo-campos, .q-novo-opcoes { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Página do processo (2.03) ---------- */
.q-proc { max-width: 1600px; width: 100%; margin: 0 auto; }
.q-trilha-link { color: inherit; text-decoration: none; }
.q-trilha-link:hover { color: var(--wf-text); text-decoration: underline; }
.q-proc-link { background: none; border: 0; padding: 0; font: inherit; font-size: 12px; font-weight: 600; color: var(--wf-brand-accent-deep); cursor: pointer; text-decoration: none; }
.q-proc-link:hover { text-decoration: underline; }

/* Cabeçalho */
.q-proc-cab { padding: 16px 20px; display: flex; gap: 20px; align-items: center; flex-wrap: wrap; }
.q-proc-ident { flex: 1; min-width: 280px; }
.q-proc-ident-linha { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.q-proc-codigo { font-size: 13px; color: var(--wf-text-subtle); background: var(--wf-bg-sunken); border: 1px solid var(--wf-border);
                 padding: 2px 8px; border-radius: var(--wf-radius-sm); white-space: nowrap; flex: none; }
.q-proc-nome { font-size: 20px; font-weight: 700; letter-spacing: -0.4px; margin: 0; color: var(--wf-text); }
.q-proc-grupo { display: inline-flex; align-items: center; gap: 8px; font-size: 11.5px; color: var(--wf-text-subtle); white-space: nowrap; }
.q-proc-grupo-select { height: 26px; width: auto; padding: 0 8px; font-size: 11.5px; }
.q-proc-desc { font-size: 12px; color: var(--wf-text-muted); margin-top: 6px; max-width: 760px; }
.q-proc-desc--vazia { color: var(--wf-text-dim); }
.q-proc-resumo { display: flex; gap: 22px; align-items: center; flex-wrap: wrap; }
.q-proc-dono { display: flex; flex-direction: column; gap: 2px; }
.q-proc-dono-sub { font-size: 11px; color: var(--wf-text-subtle); padding-left: 34px; }
.q-proc-dono .q-proc-link { padding-left: 2px; text-align: left; }
.q-proc-anel-grupo { display: flex; align-items: center; gap: 8px; }
/* Anel de completude: conic-gradient na cor do status (--q-cor) sobre o fundo afundado; --q-pct vem em graus. */
.q-proc-anel { width: 42px; height: 42px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center;
               background: conic-gradient(var(--q-cor) var(--q-pct, 0deg), var(--wf-bg-sunken) 0); }
.q-proc-anel-valor { width: 32px; height: 32px; border-radius: 50%; background: var(--wf-surface); display: flex; align-items: center; justify-content: center;
                     font-size: 11px; font-weight: 700; color: var(--wf-text); }
.q-proc-anel-texto { font-size: 11px; line-height: 14px; color: var(--wf-text-subtle); }
.q-proc-acoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }

/* Navegação lateral + conteúdo */
.q-proc-corpo { display: flex; gap: 16px; align-items: flex-start; }
.q-proc-nav { width: 210px; flex: none; position: sticky; top: 0; display: flex; flex-direction: column; gap: 2px; padding: 6px;
              background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); box-shadow: var(--wf-shadow-sm); }
.q-proc-nav-item { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border: 0; border-radius: var(--wf-radius-md); background: transparent;
                   font: inherit; font-size: 12.5px; font-weight: 500; text-align: left; color: var(--wf-text-muted); cursor: pointer; }
.q-proc-nav-item svg { color: var(--wf-text-subtle); flex: none; }
.q-proc-nav-item:hover { background: var(--wf-hover); }
.q-proc-nav-item:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-proc-nav-item--ativo, .q-proc-nav-item--ativo:hover { background: var(--wf-selected); color: var(--wf-selected-text); font-weight: 600; }
.q-proc-nav-item--ativo svg { color: var(--wf-brand-accent-deep); }
.q-proc-nav-rotulo { flex: 1; min-width: 0; }
.q-proc-nav-n { font-size: 10px; font-weight: 700; color: var(--wf-text-subtle); background: var(--wf-bg-sunken); border-radius: var(--wf-radius-pill);
                padding: 1px 6px; white-space: nowrap; }
.q-proc-nav-n--warn { color: var(--wf-warning); background: var(--wf-warning-bg); }
.q-proc-conteudo { flex: 1; min-width: 0; }

/* Visão geral */
.q-proc-visao { display: flex; gap: 16px; align-items: flex-start; }
.q-proc-visao-principal { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.q-proc-visao-lateral { width: 330px; flex: none; display: flex; flex-direction: column; gap: 16px; }
.q-proc-secao { display: flex; flex-direction: column; gap: 12px; }
.q-proc-secao-titulo { font-size: 14px; font-weight: 700; color: var(--wf-text); }
.q-proc-secao-desc { font-size: 12px; color: var(--wf-text-muted); margin-top: 2px; }
/* Monitoramento importado do Wiser+ (D11): texto somente leitura */
.q-mon-lista { display: flex; flex-direction: column; }
.q-mon-item { padding: 8px 0; border-top: 1px solid var(--wf-border); }
.q-mon-item:first-child { border-top: 0; }
.q-mon-indicador { font-size: 13px; font-weight: 600; color: var(--wf-text); }
.q-mon-detalhes { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 2px; font-size: 12px; color: var(--wf-text-muted); }
.q-mon-rotulo { color: var(--wf-text-subtle); }
.q-proc-faixa { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; padding: 14px 18px; border-radius: var(--wf-radius-lg);
                background: var(--wf-info-bg); border: 1px solid color-mix(in srgb, var(--wf-brand-accent) 27%, transparent); }
.q-proc-faixa-ico { display: inline-flex; color: var(--wf-brand-accent-deep); }
.q-proc-faixa-texto { flex: 1; min-width: 240px; }
.q-proc-faixa-titulo { font-size: 13px; font-weight: 600; color: var(--wf-text); }
.q-proc-faixa-sub { font-size: 12px; color: var(--wf-text-muted); }

.q-proc-saude-vazio { font-size: 12px; color: var(--wf-text-subtle); }
.q-proc-tiles { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.q-proc-tile { display: flex; flex-direction: column; align-items: flex-start; gap: 0; padding: 8px 10px; border: 0; border-radius: var(--wf-radius-md);
               background: var(--wf-bg-sunken); font: inherit; text-align: left; cursor: pointer; }
.q-proc-tile:hover { filter: brightness(0.97); }
.q-proc-tile:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-proc-tile-n { font-size: 20px; font-weight: 700; line-height: 1.1; color: var(--wf-text); }
.q-proc-tile-rotulo { font-size: 11px; color: var(--wf-text-muted); }
.q-proc-tile--cor { background: var(--q-bg); }
.q-proc-tile--cor .q-proc-tile-n { color: var(--q-cor); }

.q-proc-alertas-ok { display: flex; gap: 6px; align-items: center; font-size: 12px; color: var(--wf-success); }
.q-proc-alertas-lista { display: flex; flex-direction: column; gap: 10px; }
.q-proc-alerta { display: flex; gap: 8px; align-items: flex-start; }
.q-proc-alerta-sev { width: 7px; height: 7px; border-radius: 50%; margin-top: 5px; flex: none; }
.q-proc-alerta-sev--alta { background: var(--wf-danger); }
.q-proc-alerta-sev--media { background: var(--wf-warning); }
.q-proc-alerta-sev--baixa { background: var(--wf-text-subtle); }
.q-proc-alerta-corpo { flex: 1; min-width: 0; }
.q-proc-alerta-texto { font-size: 12px; line-height: 16px; color: var(--wf-text); }
.q-proc-alerta-detalhe { font-size: 11px; color: var(--wf-text-subtle); }
.q-proc-alerta-acao-off { font-size: 12px; font-weight: 500; color: var(--wf-text-dim); padding: 4px 8px; white-space: nowrap; cursor: not-allowed; }
.q-proc-alertas-mais { display: inline-flex; align-items: center; gap: 6px; align-self: flex-start; margin-left: 15px; padding: 2px 8px; border: 1px dashed var(--wf-border);
                       border-radius: var(--wf-radius-pill); background: transparent; font: inherit; font-size: 11.5px; font-weight: 600; color: var(--wf-text-muted); cursor: pointer; }
.q-proc-alertas-mais:hover { background: var(--wf-hover); color: var(--wf-text); }

.q-proc-completude-lista { display: flex; flex-direction: column; gap: 5px; }
.q-proc-comp-item { display: flex; gap: 7px; align-items: center; font-size: 12px; }
.q-proc-comp-item--ok { color: var(--wf-text-subtle); }
.q-proc-comp-item--ok .q-proc-comp-ico { color: var(--wf-success); }
.q-proc-comp-item--falta { color: var(--wf-text); cursor: pointer; border-radius: var(--wf-radius-sm); }
.q-proc-comp-item--falta:hover { background: var(--wf-hover); }
.q-proc-comp-item--falta:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); }
.q-proc-comp-item--falta .q-proc-comp-ico { color: var(--wf-danger); }
.q-proc-comp-ico { display: inline-flex; flex: none; }
.q-proc-comp-rotulo { flex: 1; min-width: 0; }
.q-proc-comp-det { color: var(--wf-text-subtle); }

/* Excluir processo */
.q-proc-excluir-docs { border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); }
.q-proc-excluir-doc { display: flex; gap: 10px; align-items: center; padding: 8px 12px; border-bottom: 1px solid var(--wf-border); font-size: 12px; color: var(--wf-text); }
.q-proc-excluir-doc svg { color: var(--wf-text-subtle); flex: none; }
.q-proc-excluir-doc-cod { font-size: 11px; min-width: 84px; }
.q-proc-excluir-doc-nome { flex: 1; min-width: 0; }
.q-proc-excluir-doc-rev { color: var(--wf-text-subtle); white-space: nowrap; }
.q-proc-excluir-mais { padding: 8px 12px; font-size: 12px; color: var(--wf-text-subtle); }
.q-proc-excluir-docs > :last-child { border-bottom: 0; }
.q-proc-excluir-nota { font-size: 11.5px; color: var(--wf-text-subtle); margin: 0; }

@media (max-width: 1100px) { .q-proc-visao { flex-direction: column; } .q-proc-visao-lateral { width: 100%; } }
@media (max-width: 760px) {
    .q-proc-corpo { flex-direction: column; }
    .q-proc-nav { width: 100%; position: static; flex-direction: row; overflow-x: auto; }
    .q-proc-nav-item { white-space: nowrap; }
}
@media print { .q-proc-nav, .q-proc-acoes, .q-faixa { display: none; } .q-proc-corpo, .q-proc-visao { display: block; } }

/* ---------- Processo · seções Fluxo / Indicadores / Vínculos (Onda C: README §2.04–2.07) ---------- */
.q-proc-sec { display: flex; flex-direction: column; gap: 14px; }
.q-proc-secao-cab--acoes { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.q-rolagem-x { overflow-x: auto; }
.q-proc-sec-vazio { padding: 32px 20px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; }
.q-proc-sec-vazio-titulo { font-size: 14px; font-weight: 600; color: var(--wf-text); }
.q-proc-sec-vazio-sub { font-size: 12px; color: var(--wf-text-muted); margin-bottom: 8px; }
.q-proc-sec-vazio-acoes { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; }

/* Link com cara de botão (navegação real: <a href>) */
.q-link-botao { display: inline-flex; align-items: center; gap: 6px; height: 28px; padding: 0 10px; border-radius: var(--wf-radius-md); font-size: 12px; font-weight: 500;
                text-decoration: none; white-space: nowrap; border: 1px solid var(--wf-border); background: var(--wf-surface); color: var(--wf-text); }
.q-link-botao:hover { background: var(--wf-hover); }
.q-link-botao--primary { background: var(--wf-brand-accent); border-color: transparent; color: var(--wf-text-on-brand); }
.q-link-botao--primary:hover { background: var(--wf-brand-accent-deep); }
.q-link-botao:focus-visible, .q-link-icone:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: 1px; }
.q-link-icone { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: var(--wf-radius-md); color: var(--wf-text-muted); }
.q-link-icone:hover { background: var(--wf-hover); color: var(--wf-text); }

/* Fluxo · faixa "Como ler" */
.q-sipoc-ajuda-texto { flex: 1; min-width: 240px; font-size: 12px; color: var(--wf-text-muted); }
.q-sipoc-ajuda-texto strong { color: var(--wf-text); }

/* Fluxo · chevrons */
.q-chevrons { display: flex; overflow-x: auto; padding-bottom: 2px; }
.q-chevron { flex: 1 0 150px; min-width: 150px; max-width: 260px; display: flex; flex-direction: column; gap: 2px; padding: 10px 18px 10px 24px; text-align: left;
             font: inherit; color: var(--wf-text); background: var(--wf-surface); border: 1px solid var(--wf-border);
             clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%); }
.q-chevron + .q-chevron { margin-left: -6px; }
.q-chevron:nth-child(even) { background: var(--wf-surface-alt); }
.q-chevron--clicavel { cursor: pointer; }
.q-chevron--clicavel:hover { background: var(--wf-hover); }
.q-chevron--clicavel:focus-visible { outline: none; background: var(--wf-selected); }
.q-chevron-n { font-size: 10px; font-weight: 700; color: var(--wf-brand-accent-deep); }
.q-chevron-atividade { font-size: 11.5px; font-weight: 600; line-height: 14px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* Fluxo · tabela SIPOC */
.q-sipoc { min-width: 860px; }
.q-sipoc-grade { display: grid; gap: 12px; grid-template-columns: minmax(120px, .9fr) minmax(150px, 1.1fr) minmax(220px, 1.5fr) minmax(150px, 1.1fr) minmax(120px, .9fr); }
.q-sipoc-cab { padding: 0 8px 8px; border-bottom: 1px solid var(--wf-border); font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .6px; color: var(--wf-text-subtle); }
.q-sipoc-cab-atividade { color: var(--wf-brand-accent-deep); }
.q-sipoc-linha { padding: 12px 8px; border-bottom: 1px solid var(--wf-border); align-items: start; }
.q-sipoc-linha--clicavel { cursor: pointer; }
.q-sipoc-linha--clicavel:hover { background: var(--wf-hover); }
.q-sipoc-linha--clicavel:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -3px; }
.q-sipoc-refs { display: flex; flex-direction: column; gap: 5px; align-items: flex-start; min-width: 0; }
.q-sipoc-itens { display: flex; flex-direction: column; gap: 5px; font-size: 12px; line-height: 19px; color: var(--wf-text); min-width: 0; }
.q-sipoc-atividade { display: flex; flex-direction: column; gap: 6px; padding: 8px 10px; min-width: 0; border-radius: var(--wf-radius-md);
                     background: var(--wf-surface-alt); border: 1px solid var(--wf-border); }
.q-sipoc-atividade--inativo { border-color: color-mix(in srgb, var(--wf-danger) 45%, transparent); }
.q-sipoc-atividade-topo { display: flex; gap: 8px; align-items: flex-start; }
.q-sipoc-n { width: 20px; height: 20px; border-radius: 50%; flex: none; display: inline-flex; align-items: center; justify-content: center;
             background: var(--wf-brand-navy); color: var(--wf-text-on-brand); font-size: 10.5px; font-weight: 700; }
.q-sipoc-atividade-nome { font-size: 12.5px; font-weight: 600; line-height: 17px; color: var(--wf-text); }
.q-sipoc-atividade-meta { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; min-width: 0; }
.q-metodo-doc { display: inline-flex; align-items: center; gap: 4px; min-width: 0; max-width: 100%; font-size: 10.5px; font-family: var(--wf-font-mono); color: var(--wf-text-muted); }
.q-metodo-doc svg { flex: none; }
.q-metodo-doc-texto { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-metodo-texto { font-size: 11px; color: var(--wf-text-muted); line-height: 15px; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.q-metodo-vazio { display: inline-flex; align-items: center; gap: 3px; font-size: 10.5px; color: var(--wf-warning); }

/* Editor de etapa */
.q-etapa-form { display: flex; flex-direction: column; gap: 12px; }
.q-etapa-rotulo-linha { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.q-etapa-rotulo-linha .q-campo-desc { font-size: 11px; }
.q-etapa-doc-filtro { width: 100%; }
.q-etapa-sub { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); margin-top: 6px; }
.q-etapa-lista { display: flex; flex-direction: column; gap: 8px; }
.q-etapa-io { display: grid; grid-template-columns: minmax(0, 1fr) 130px 150px 28px; gap: 6px; align-items: center; }
.q-etapa-io .q-input { height: 32px; font-size: 12px; }
.q-etapa-raci { display: grid; grid-template-columns: minmax(0, 1fr) auto 28px; gap: 8px; align-items: start; }
.q-etapa-raci-quem { min-width: 0; }
.q-etapa-papeis { display: inline-flex; border: 1px solid var(--wf-border); border-radius: var(--wf-radius-md); overflow: hidden; }
.q-etapa-papel { width: 32px; height: 34px; border: 0; background: var(--wf-surface); color: var(--wf-text-muted); font: inherit; font-size: 12px; font-weight: 700; cursor: pointer; }
.q-etapa-papel + .q-etapa-papel { border-left: 1px solid var(--wf-border); }
.q-etapa-papel:hover { background: var(--wf-hover); }
.q-etapa-papel:focus-visible { outline: 2px solid var(--wf-border-focus); outline-offset: -2px; }
.q-etapa-papel--ativo, .q-etapa-papel--ativo:hover { background: var(--wf-brand-navy); color: var(--wf-text-on-brand); }
.q-etapa-nota { font-size: 11px; color: var(--wf-text-subtle); }
@media (max-width: 640px) { .q-etapa-io { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) 28px; } .q-etapa-io > :first-child { grid-column: 1 / -1; } }

/* Indicadores do processo */
.q-pind-tabela { min-width: 1000px; }
.q-pind-grade { display: grid; gap: 10px; align-items: center;
                grid-template-columns: minmax(200px, 1.6fr) 90px 120px minmax(100px, .8fr) 80px 170px 130px 110px 64px; }
.q-pind-cab { padding: 0 4px 8px; border-bottom: 1px solid var(--wf-border); font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); }
.q-pind-linha { padding: 11px 4px; border-bottom: 1px solid var(--wf-border); font-size: 12px; color: var(--wf-text); }
.q-pind-codigo { font-size: 11px; color: var(--wf-text-subtle); }
.q-pind-meta, .q-pind-formula { font-size: 11px; }
.q-pind-formula, .q-pind-periodo { color: var(--wf-text-muted); overflow: hidden; text-overflow: ellipsis; }
.q-pind-acoes { display: flex; gap: 2px; justify-content: flex-end; }

/* Documentos, NCs e ações */
.q-vinc-lock { display: flex; gap: 12px; align-items: center; flex-wrap: wrap; padding: 12px 16px; border-radius: var(--wf-radius-lg);
               background: var(--wf-bg-sunken); border: 1px solid var(--wf-border); color: var(--wf-text-subtle); }
.q-vinc-lock-texto { flex: 1; min-width: 240px; font-size: 12px; color: var(--wf-text-muted); }
.q-vinc-lock-texto strong { color: var(--wf-text); }
.q-vinc-lista { display: flex; flex-direction: column; }
.q-vinc-nc, .q-vinc-plano { display: grid; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--wf-border); font-size: 12px; align-items: center; color: var(--wf-text); }
.q-vinc-nc { grid-template-columns: 90px minmax(200px, 1fr) 100px 120px minmax(100px, auto); }
.q-vinc-plano { grid-template-columns: 80px minmax(200px, 1fr) minmax(150px, auto) 140px 170px; cursor: pointer; }
.q-vinc-plano:hover { background: var(--wf-hover); }
.q-vinc-plano:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -3px; }
.q-vinc-id { font-size: 11px; color: var(--wf-text-muted); }
.q-vinc-titulo { min-width: 0; }
.q-vinc-titulo--forte { font-weight: 600; }
.q-vinc-data { color: var(--wf-text-subtle); }
.q-vinc-nc-planos { display: inline-flex; gap: 8px; flex-wrap: wrap; }
.q-vinc-link { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 600; color: var(--wf-brand-accent-deep); text-decoration: none; }
.q-vinc-link:hover { text-decoration: underline; }
.q-vinc-sem-link { font-size: 11px; color: var(--wf-text-subtle); }
.q-vinc-traco { color: var(--wf-text-dim); }
.q-vinc-progresso { display: flex; gap: 6px; align-items: center; }
.q-vinc-progresso .q-bar { flex: 1; }
.q-vinc-pct { font-size: 11px; color: var(--wf-text-subtle); min-width: 32px; text-align: right; }
.q-vinc-ocultos { display: flex; align-items: center; gap: 6px; padding: 10px 0 2px; font-size: 12px; color: var(--wf-text-subtle); }
@media (max-width: 900px) {
    .q-vinc-nc, .q-vinc-plano { grid-template-columns: 1fr 1fr; }
    .q-vinc-titulo { grid-column: 1 / -1; }
}

/* Lista de documentos (agrupada por família) */
.q-docs { display: flex; flex-direction: column; gap: 10px; }
.q-docs-barra { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.q-docs-busca { width: 280px; }
.q-docs-contador { font-size: 12px; color: var(--wf-text-muted); }
.q-docs-espaco { flex: 1; }
.q-docs-vazio { font-size: 12px; color: var(--wf-text-subtle); padding: 12px 0; }
.q-docs-grupos { display: flex; flex-direction: column; border-top: 1px solid var(--wf-border); }
.q-docs-grupo { border-bottom: 1px solid var(--wf-border); }
.q-docs-grupo-cab { display: flex; align-items: center; gap: 8px; width: 100%; padding: 9px 4px; border: 0; background: transparent; font: inherit;
                    font-size: 12.5px; font-weight: 600; color: var(--wf-text); text-align: left; cursor: pointer; }
.q-docs-grupo-cab:hover { background: var(--wf-hover); }
.q-docs-grupo-cab:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -3px; }
.q-docs-chevron { display: inline-flex; color: var(--wf-text-subtle); transition: transform 120ms ease-out; }
.q-docs-chevron--aberto { transform: rotate(90deg); }
.q-docs-linhas { padding: 0 0 6px 24px; }
.q-doc-linha { display: grid; grid-template-columns: 100px minmax(180px, 1fr) 60px 110px 100px; gap: 10px; padding: 8px 0; align-items: center;
               font-size: 12px; color: var(--wf-text); border-top: 1px solid var(--wf-border); }
.q-docs:not(.q-docs--compacto) .q-doc-linha { grid-template-columns: 14px 18px 100px minmax(180px, 1fr) 60px 110px 100px; }
.q-docs--compacto .q-doc-linha { grid-template-columns: 100px minmax(180px, 1fr) 60px; }
.q-doc-codigo { font-size: 11px; color: var(--wf-text-muted); }
.q-doc-nome { font-weight: 600; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-doc-rev { color: var(--wf-text-muted); white-space: nowrap; }
.q-doc-validade { font-size: 11px; color: var(--wf-text-subtle); white-space: nowrap; }
.q-doc-validade--vencido { color: var(--wf-danger); font-weight: 600; }
@media (max-width: 700px) {
    .q-doc-linha { grid-template-columns: 90px minmax(0, 1fr) auto; }
    .q-doc-situacao, .q-doc-validade { grid-column: span 1; }
}
@media print { .q-sipoc-ajuda, .q-docs-barra { display: none; } }

/* ---------- Documentos (O3): link para o PDF vigente, aviso de sincronização e filtros da tela ---------- */
.q-doc-linha--link { color: inherit; text-decoration: none; cursor: pointer; }
.q-doc-linha--link:hover .q-doc-nome, .q-doc-linha--link:focus-visible .q-doc-nome { color: var(--wf-brand-accent); text-decoration: underline; }
.q-doc-sync { margin-left: 6px; font-size: 11px; font-weight: 400; color: var(--wf-text-subtle); white-space: nowrap; }
.q-doc-abrir, .q-doc-abrir:visited { color: inherit; text-decoration: none; font: inherit; }
.q-doc-abrir:hover { color: var(--wf-brand-accent); text-decoration: underline; }
.q-doc-abrir:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: 2px; border-radius: var(--wf-radius-sm); }
.q-doc-nome-celula { display: inline-flex; align-items: center; gap: 4px; min-width: 0; }
.q-docs-filtros { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 12px; }
.q-docs-filtros .q-sgq-busca { flex: 1 1 260px; }
.q-docs-filtros select.q-input { width: auto; min-width: 160px; }
.q-docs-filtros .q-docs-contador { margin-left: auto; font-size: 12px; color: var(--wf-text-muted); }
@media (max-width: 700px) { .q-docs-filtros select.q-input { flex: 1 1 100%; } .q-docs-filtros .q-docs-contador { margin-left: 0; } }

/* ---------- Documentos (O3): árvore de pastas à esquerda; abaixo de 768px vira um select acima da lista ---------- */
.q-docs-corpo { display: block; }
.q-docs-corpo--arvore { display: grid; grid-template-columns: 264px minmax(0, 1fr); gap: 16px; align-items: start; }
.q-docs-conteudo { min-width: 0; }
.q-arvore { background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); padding: 8px;
            max-height: calc(100vh - 220px); overflow-y: auto; position: sticky; top: 8px; }
.q-arvore-lista { list-style: none; margin: 0; padding: 0; }
.q-arvore-lista .q-arvore-lista { margin-left: 0; }
.q-arvore-linha { display: flex; align-items: center; gap: 2px; padding-left: calc(var(--q-nivel, 0) * 14px); }
.q-arvore-chevron { display: inline-flex; align-items: center; justify-content: center; width: 20px; height: 24px; flex: none; border: 0; background: transparent;
                    color: var(--wf-text-subtle); cursor: pointer; border-radius: var(--wf-radius-sm); transition: transform 120ms ease-out; }
.q-arvore-chevron--aberto { transform: rotate(90deg); }
.q-arvore-chevron:hover { background: var(--wf-hover); }
.q-arvore-espaco { display: inline-block; width: 20px; flex: none; }
.q-arvore-no { display: flex; align-items: center; gap: 6px; flex: 1; min-width: 0; padding: 5px 8px; border: 0; background: transparent; font: inherit;
               font-size: 12.5px; color: var(--wf-text); text-align: left; cursor: pointer; border-radius: var(--wf-radius-sm); }
.q-arvore-raiz { width: 100%; font-weight: 600; padding-left: 8px; margin-bottom: 4px; }
.q-arvore-raiz svg { color: var(--wf-text-subtle); }
.q-arvore-no svg { color: var(--wf-text-subtle); }
.q-arvore-no:hover { background: var(--wf-hover); }
.q-arvore-no:focus-visible, .q-arvore-chevron:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: -2px; }
.q-arvore-no--sel { background: var(--wf-selected); color: var(--wf-selected-text); font-weight: 600; }
.q-arvore-no--sel svg { color: var(--wf-brand-accent); }
.q-arvore-nome { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-arvore-qtd { flex: none; font-size: 11px; color: var(--wf-text-muted); font-variant-numeric: tabular-nums; }
.q-arvore-select { display: none; }
@media (max-width: 700px) {
    .q-docs-corpo--arvore { display: flex; flex-direction: column; gap: 12px; }
    .q-docs-corpo--arvore > * { min-width: 0; }
    .q-arvore { display: none; }
    .q-arvore-select { display: block; width: 100%; }
}

/* ---------- Processo · Riscos e oportunidades (README §2.08) ---------- */
.q-proc-riscos-grade { display: flex; gap: 16px; align-items: flex-start; }
.q-proc-riscos-matriz { width: 430px; flex: none; }
.q-proc-riscos-lista { flex: 1; min-width: 0; container-type: inline-size; }
.q-risco-linhas { display: flex; flex-direction: column; }
.q-risco-linha { display: grid; grid-template-columns: 44px minmax(160px, 1fr) 60px 84px 70px 120px; gap: 10px; padding: 10px 4px;
                 border-bottom: 1px solid var(--wf-border); font-size: 12px; align-items: center; color: var(--wf-text); }
/* Card estreito (matriz de 430px ao lado): a descrição ocupa a 1ª linha e os demais campos descem para a 2ª. */
@container (max-width: 640px) {
    .q-risco-linha { grid-template-columns: 44px 60px 84px minmax(0, 1fr) auto; row-gap: 6px; }
    .q-risco-desc { grid-column: 2 / -1; }
    .q-risco-pontos { grid-column: 2; }
}
.q-risco-linha--destacada { background: var(--wf-hover); }
.q-risco-id { font-size: 11px; font-weight: 700; }
.q-risco-desc { min-width: 0; }
.q-risco-tag { margin-left: 6px; }
.q-risco-pontos { font-size: 11px; color: var(--wf-text-muted); white-space: nowrap; }
.q-risco-trat { color: var(--wf-text-muted); }
.q-risco-aceito { font-size: 11px; color: var(--wf-text-dim); }
.q-risco-rodape { display: flex; gap: 6px; align-items: center; font-size: 11.5px; color: var(--wf-danger); }
.q-risco-vazio { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 36px 20px; text-align: center; }
.q-risco-vazio-ico { display: inline-flex; color: var(--wf-brand-accent-deep); }
.q-risco-form-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 1100px) {
    .q-proc-riscos-grade { flex-direction: column; align-items: stretch; }
    .q-proc-riscos-matriz { width: 100%; max-width: 430px; }
}
@media (max-width: 560px) { .q-risco-form-grade { grid-template-columns: minmax(0, 1fr); } }

/* ---------- Processo · Revisões + comparação (README §2.09) ---------- */
.q-proc-revisoes { display: flex; gap: 16px; align-items: flex-start; }
.q-rev-linha-tempo { width: 300px; flex: none; }
.q-rev-direita { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.q-rev-vazio { font-size: 12px; color: var(--wf-text-subtle); display: flex; gap: 6px; flex-wrap: wrap; align-items: baseline; }
.q-rev-itens { display: flex; flex-direction: column; }
.q-rev-item { display: flex; gap: 10px; width: 100%; padding: 0; border: 0; background: transparent; font: inherit; text-align: left; cursor: pointer; color: var(--wf-text); }
.q-rev-item:focus-visible { outline: 3px solid color-mix(in srgb, var(--wf-border-focus) 30%, transparent); outline-offset: 1px; border-radius: var(--wf-radius-md); }
.q-rev-trilho { display: flex; flex-direction: column; align-items: center; flex: none; }
.q-rev-ponto { width: 12px; height: 12px; border-radius: 50%; margin-top: 4px; flex: none; }
.q-rev-ponto--vigente { background: var(--wf-success); }
.q-rev-ponto--aberta { background: var(--wf-warning); }
.q-rev-ponto--obsoleta { background: var(--wf-border-strong); }
.q-rev-item--sel .q-rev-ponto { box-shadow: 0 0 0 4px color-mix(in srgb, var(--wf-brand-accent) 20%, transparent); }
.q-rev-ligacao { width: 2px; flex: 1; min-height: 30px; background: var(--wf-border); }
.q-rev-item-corpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; padding: 0 6px 14px; border-radius: var(--wf-radius-md); }
.q-rev-item:hover .q-rev-item-corpo { background: var(--wf-hover); }
.q-rev-item--sel .q-rev-item-corpo, .q-rev-item--sel:hover .q-rev-item-corpo { background: var(--wf-selected); }
.q-rev-item-topo { display: flex; gap: 6px; align-items: center; font-size: 13px; padding-top: 2px; }
.q-rev-item-meta { font-size: 11px; color: var(--wf-text-subtle); }
.q-rev-item-motivo { font-size: 11.5px; line-height: 15px; color: var(--wf-text-muted); }
.q-rev-acoes { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.q-rev-aguardando { font-size: 11.5px; color: var(--wf-text-subtle); }
.q-rev-motivo { font-size: 12.5px; color: var(--wf-text-muted); }
.q-rev-motivo strong { color: var(--wf-text); }
.q-rev-devolucao { font-size: 12px; color: var(--wf-warning); }
.q-rev-comentario { font-size: 12px; color: var(--wf-success); }
.q-rev-dica, .q-rev-nota-importada { display: flex; gap: 6px; align-items: center; font-size: 11.5px; color: var(--wf-text-subtle); }
@media (max-width: 1100px) {
    .q-proc-revisoes { flex-direction: column; align-items: stretch; }
    .q-rev-linha-tempo { width: 100%; }
}

/* ---------- Auditoria (README §2.10/2.11): tela cheia fora do shell (EmptyLayout), sempre a revisão vigente ---------- */
.q-auditoria { min-height: 100vh; display: flex; flex-direction: column; background: var(--wf-bg); color: var(--wf-text); }
.q-aud-barra { display: flex; align-items: center; gap: 12px; padding: 12px 24px; border-bottom: 1px solid var(--wf-border);
               background: var(--wf-surface); flex-wrap: wrap; }
.q-aud-barra-ico { display: inline-flex; color: var(--wf-brand-accent); }
.q-aud-barra-titulos { flex: 1; min-width: 160px; }
.q-aud-barra-titulo { font-size: 14px; font-weight: 700; }
.q-aud-barra-sub { font-size: 11.5px; color: var(--wf-text-muted); }

.q-aud-area { flex: 1; overflow: auto; padding: 32px; }
.q-aud-desktop { max-width: 1200px; margin: 0 auto; }

.q-aud-corpo { display: flex; flex-direction: column; gap: 16px; }
.q-aud-celular .q-aud-corpo { gap: 10px; }
.q-aud-codigo { font-size: 12px; color: var(--wf-text-subtle); }
.q-aud-celular .q-aud-codigo { font-size: 11px; }
.q-aud-nome { font-size: 30px; font-weight: 700; letter-spacing: -0.6px; line-height: 1.15; margin: 0; }
.q-aud-celular .q-aud-nome { font-size: 22px; }
.q-aud-meta-linha { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-top: 8px; }
.q-aud-meta-texto { font-size: 12px; color: var(--wf-text-muted); }
.q-aud-aviso { display: flex; gap: 10px; align-items: center; margin-top: 8px; padding: 14px 18px; border-radius: var(--wf-radius-lg);
               background: var(--wf-warning-bg); border: 1px solid color-mix(in srgb, var(--wf-warning) 30%, transparent); color: var(--wf-warning); }

.q-aud-secao { background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); }
.q-aud-secao-cab { padding: 12px 14px; }
.q-aud-secao-cab--acordeao { width: 100%; min-height: 44px; display: flex; align-items: center; justify-content: space-between;
                              gap: 10px; background: none; border: 0; cursor: pointer; font: inherit; color: inherit; text-align: left; }
.q-aud-secao-titulo { font-size: 14px; font-weight: 600; }
.q-aud-chevron { display: inline-flex; color: var(--wf-text-subtle); transition: transform 0.15s ease; }
.q-aud-chevron--aberto { transform: rotate(180deg); }
.q-aud-secao-corpo { padding: 0 14px 14px; }

.q-aud-etapas { display: flex; flex-direction: column; gap: 8px; }
.q-aud-etapa { display: flex; gap: 10px; font-size: 12.5px; padding-bottom: 8px; border-bottom: 1px solid var(--wf-border); }
.q-aud-etapa:last-child { border-bottom: 0; padding-bottom: 0; }
.q-aud-etapa-n { width: 22px; height: 22px; border-radius: 50%; background: var(--wf-brand-navy); color: var(--wf-text-on-brand);
                 font-size: 11px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.q-aud-etapa-corpo { flex: 1; min-width: 0; }
.q-aud-etapa-atividade { font-weight: 600; }
.q-aud-etapa-fluxo { color: var(--wf-text-muted); font-size: 11.5px; margin-top: 2px; display: -webkit-box;
                      -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.q-aud-etapa-metodo { color: var(--wf-text-subtle); font-size: 11px; margin-top: 2px; }

.q-aud-indicadores { display: flex; flex-direction: column; gap: 8px; }
.q-aud-ind-linha { display: flex; justify-content: space-between; gap: 10px; align-items: center; flex-wrap: wrap; }
.q-aud-ind-nome { font-size: 12.5px; }
.q-aud-ind-cod { font-size: 11px; color: var(--wf-text-subtle); }
.q-aud-vazio-secao { font-size: 12px; color: var(--wf-text-subtle); }

.q-aud-naoencontrado { max-width: 1200px; margin: 40px auto; text-align: center; display: flex; flex-direction: column; gap: 10px; }

/* Viewport real estreita: complementa o acordeão que o JS liga (wfQualidade.viewportCelular via matchMedia,
   ProcessoAuditoria.razor OnAfterRenderAsync → _viewportCelular); sem JS (prerender/bUnit) fica o layout de desktop. */
@media (max-width: 480px) {
    .q-aud-area { padding: 16px 0; }
    .q-aud-desktop { padding-left: 12px; padding-right: 12px; }
    .q-aud-nome { font-size: 22px; }
    .q-tartaruga { grid-template-columns: minmax(0,1fr); gap: 8px; }
}

@media print {
    .q-auditoria, .q-auditoria * { visibility: visible; }
    .q-auditoria { position: absolute; left: 0; top: 0; width: 100%; min-height: 0; background: #fff; }
    .q-aud-barra { display: none; }
    .q-aud-area { overflow: visible; padding: 0; }
    .q-aud-secao-corpo { display: block !important; }
}

/* ---------- Minhas Pendências (README §4.01): caixa única agrupada por vencimento + check-in inline ---------- */
.q-pend { max-width: 1180px; width: 100%; margin: 0 auto; }
.q-pend-filtros { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.q-pend-filtros-espaco { flex: 1; }
.q-pend-chip { height: 30px; padding: 0 12px; border-radius: var(--wf-radius-pill); border: 1px solid var(--wf-border); background: var(--wf-surface);
               color: var(--wf-text-muted); font: inherit; font-size: 12px; font-weight: 600; cursor: pointer;
               display: inline-flex; gap: 6px; align-items: center; }
.q-pend-chip:hover { background: var(--wf-hover); }
.q-pend-chip--ativo { border-color: var(--wf-brand-accent); background: var(--wf-info-bg); color: var(--wf-brand-accent-deep); }
.q-pend-chip--vazio { opacity: .5; }
.q-pend-chip-n { font-size: 10.5px; color: var(--wf-text-subtle); }
.q-pend-switch input { appearance: none; width: 28px; height: 16px; margin: 0; border-radius: var(--wf-radius-pill); background: var(--wf-border-strong);
                       position: relative; cursor: pointer; transition: background .15s; }
.q-pend-switch input::after { content: ""; position: absolute; top: 2px; left: 2px; width: 12px; height: 12px; border-radius: 50%;
                              background: var(--wf-surface); box-shadow: var(--wf-shadow-sm); transition: transform .15s; }
.q-pend-switch input:checked { background: var(--wf-brand-accent); }
.q-pend-switch input:checked::after { transform: translateX(12px); }
.q-pend-switch input:focus-visible { outline: 2px solid var(--wf-brand-accent); outline-offset: 2px; }

.q-pend-grupo { display: flex; flex-direction: column; gap: 8px; }
.q-pend-grupo-cab { display: flex; align-items: baseline; gap: 8px; margin: 0 2px; }
.q-pend-grupo-titulo { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .6px; color: var(--wf-text-subtle); }
.q-pend-grupo-titulo--atrasadas { color: var(--wf-danger); }
.q-pend-grupo-n { font-size: 11.5px; color: var(--wf-text-subtle); }
.q-pend-card { background: var(--wf-surface); border: 1px solid var(--wf-border); border-radius: var(--wf-radius-lg); overflow: hidden; box-shadow: var(--wf-shadow-sm); }

.q-pend-item + .q-pend-item { border-top: 1px solid var(--wf-border); }
.q-pend-linha { display: flex; align-items: center; gap: 14px; padding: 12px 16px; cursor: pointer; flex-wrap: wrap; }
.q-pend-linha:hover { background: var(--wf-hover); }
.q-pend-linha:focus-visible { outline: 2px solid var(--wf-brand-accent); outline-offset: -2px; }
.q-pend-icone { width: 34px; height: 34px; border-radius: var(--wf-radius-md); background: var(--wf-bg-sunken); color: var(--wf-text-muted);
                display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.q-pend-texto { flex: 1; min-width: 220px; }
.q-pend-titulo { font-size: 13px; font-weight: 600; color: var(--wf-text); }
.q-pend-contexto { font-size: 11.5px; color: var(--wf-text-muted); margin-top: 1px; }
.q-pend-tipo { color: var(--wf-text-subtle); }
.q-pend-progresso { width: 110px; display: flex; gap: 6px; align-items: center; }
.q-pend-progresso .q-bar { flex: 1; }
.q-pend-pct { font-size: 11px; color: var(--wf-text-subtle); }
.q-pend-resp { display: inline-flex; align-items: center; font-size: 12px; color: var(--wf-text-muted); }
.q-pend-prazo { min-width: 130px; display: flex; justify-content: flex-end; }
.q-pend-botao { display: inline-flex; }

.q-pend-detalhe { padding: 0 16px 14px 64px; }
.q-pend-checkin { display: flex; gap: 16px; align-items: flex-start; flex-wrap: wrap; }
.q-pend-checkin-form { flex: 1; min-width: 320px; }
.q-pend-checkin-lado { width: 220px; font-size: 11.5px; line-height: 17px; color: var(--wf-text-muted); display: flex; flex-direction: column; gap: 2px; }
.q-pend-checkin-lado strong { color: var(--wf-text); }
.q-pend-link { margin-top: 8px; padding: 0; border: none; background: none; font: inherit; font-weight: 600; color: var(--wf-brand-accent-deep);
               cursor: pointer; text-align: left; width: fit-content; }
.q-pend-link:hover { text-decoration: underline; }

.q-ckr { display: flex; flex-direction: column; gap: 8px; }
.q-ckr .q-pilula { height: 30px; min-width: 48px; }
.q-ckr--grande .q-pilula { height: 44px; min-width: 60px; font-size: 14px; }
.q-ckr--grande .q-anexar { height: 44px; font-size: 14px; }
/* Alvos de toque ≥ 44px no celular: o Button Lg tem 42px de altura inline (min-height vence height) e o "×" da evidência é mínimo. */
.q-ckr--grande [data-acao='registrar'] { min-height: 44px; }
.q-ckr--grande .q-arquivo-remover { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; font-size: 18px; }

.q-pend-vazio { padding: 56px 24px; text-align: center; border: 1.5px dashed var(--wf-border-strong); border-radius: var(--wf-radius-lg); background: var(--wf-surface-alt); }
.q-pend-vazio-icone { width: 56px; height: 56px; border-radius: 12px; background: var(--wf-success-bg); color: var(--wf-success);
                      display: inline-flex; align-items: center; justify-content: center; margin-bottom: 10px; }
.q-pend-vazio-titulo { font-size: 15px; font-weight: 600; color: var(--wf-text); }
.q-pend-vazio-texto { font-size: 13px; color: var(--wf-text-muted); margin-top: 4px; }

/* ---------- "Como sou avisado" (README §4.02) ---------- */
.q-avisos-linha { display: flex; gap: 12px; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--wf-border); cursor: pointer; }
.q-avisos-linha-texto { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.q-avisos-linha-titulo { font-size: 13px; font-weight: 600; color: var(--wf-text); }
.q-avisos-linha-desc { font-size: 11.5px; color: var(--wf-text-muted); }
.q-avisos-linha .q-pend-switch { display: inline-flex; flex-shrink: 0; }
.q-avisos-linha .q-pend-switch input { width: 34px; height: 20px; }
.q-avisos-linha .q-pend-switch input::after { width: 16px; height: 16px; }
.q-avisos-linha .q-pend-switch input:checked::after { transform: translateX(14px); }
.q-avisos-horario { padding: 8px 0 4px; }
.q-avisos-secao { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); margin-top: 14px; }
.q-avisos-canais { display: flex; gap: 16px; flex-wrap: wrap; }
.q-avisos-canal { display: inline-flex; align-items: center; gap: 6px; font-size: 12.5px; color: var(--wf-text); cursor: pointer; }
.q-avisos-canal input { accent-color: var(--wf-brand-accent); width: 16px; height: 16px; margin: 0; }

/* ---------- Minhas Pendências no celular (README §4.03): prévia 390×800 e viewport real ---------- */
.q-cel-overlay { position: fixed; inset: 0; z-index: 900; background: color-mix(in srgb, var(--wf-brand-navy) 55%, transparent);
                 display: flex; align-items: center; justify-content: center; gap: 32px; padding: 20px; flex-wrap: wrap; overflow: auto; }
/* transform: a moldura vira o bloco de contenção do position: fixed da bottom sheet (fica presa à tela do celular). */
.q-cel-moldura { width: 390px; height: 800px; max-height: calc(100vh - 40px); border-radius: 48px; border: 11px solid var(--wf-brand-navy);
                 background: var(--wf-bg); overflow: hidden; box-shadow: var(--wf-shadow-lg); display: flex; flex-direction: column;
                 position: relative; transform: translateZ(0); flex-shrink: 0; }
.q-cel-statusbar { height: 38px; flex-shrink: 0; display: flex; align-items: center; justify-content: space-between; padding: 0 24px;
                   font-size: 13px; font-weight: 600; color: var(--wf-text); }
.q-cel-statusbar-ilha { width: 96px; height: 24px; background: var(--wf-brand-navy); border-radius: 14px; }
.q-cel-lateral { max-width: 300px; color: var(--wf-text-on-brand); display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
.q-cel-lateral-titulo { font-size: 18px; font-weight: 700; }
.q-cel-lateral-texto { font-size: 13px; line-height: 20px; opacity: .85; }

.q-cel { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.q-cel-cab { padding: 6px 18px 12px; flex-shrink: 0; }
.q-cel-cab-app { font-size: 12px; color: var(--wf-text-subtle); }
.q-cel-cab-titulo { font-size: 24px; font-weight: 700; letter-spacing: -.5px; color: var(--wf-text); }
.q-cel-cab-resumo { font-size: 13px; color: var(--wf-text-muted); }
.q-cel-lista { flex: 1; overflow: auto; padding: 0 14px 24px; }
.q-cel-vazio { text-align: center; padding: 40px; color: var(--wf-text-subtle); }
.q-cel-grupo { margin-bottom: 14px; }
.q-cel-grupo-titulo { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--wf-text-subtle); margin: 6px 4px; }
.q-cel-grupo-titulo--atrasadas { color: var(--wf-danger); }
.q-cel-card { background: var(--wf-surface); border: 1px solid var(--wf-border); border-left: 4px solid var(--wf-success); border-radius: 14px;
              padding: 12px 14px; margin-bottom: 8px; min-height: 64px; display: flex; gap: 12px; align-items: center; cursor: pointer; }
.q-cel-card:focus-visible { outline: 2px solid var(--wf-brand-accent); outline-offset: 2px; }
.q-cel-card--atrasada { border-left-color: var(--wf-danger); }
.q-cel-card--proxima { border-left-color: var(--wf-warning); }
.q-cel-card--em-dia { border-left-color: var(--wf-success); }
.q-cel-card-texto { flex: 1; min-width: 0; }
.q-cel-meta { font-size: 11.5px; color: var(--wf-text-subtle); }
.q-cel-titulo { font-size: 14.5px; font-weight: 600; line-height: 19px; margin-top: 2px; color: var(--wf-text); }
.q-cel-progresso { display: flex; gap: 6px; align-items: center; margin-top: 6px; font-size: 11.5px; color: var(--wf-text-subtle); }
.q-cel-progresso .q-bar { flex: 1; }
.q-cel-checkin { height: 44px; padding: 0 14px; border-radius: 22px; background: var(--wf-brand-accent); color: var(--wf-text-on-brand);
                 font-size: 13px; font-weight: 700; display: inline-flex; align-items: center; flex-shrink: 0; }

.q-sheet-fundo { position: fixed; inset: 0; z-index: 950; background: color-mix(in srgb, var(--wf-brand-navy) 40%, transparent);
                 display: flex; align-items: flex-end; }
.q-sheet { width: 100%; max-height: 90%; overflow: auto; background: var(--wf-surface); border-radius: 22px 22px 0 0; padding: 10px 18px 26px;
           display: flex; flex-direction: column; gap: 12px; box-shadow: var(--wf-shadow-lg); }
.q-sheet:focus { outline: none; }
.q-sheet-alca { width: 40px; height: 5px; border-radius: 3px; background: var(--wf-border-strong); margin: 0 auto 4px; flex-shrink: 0; }
.q-cel-sheet-ref { font-size: 12px; color: var(--wf-text-subtle); }
.q-cel-sheet-titulo { font-size: 16px; font-weight: 700; line-height: 21px; color: var(--wf-text); }

/* Viewport real: a lista ocupa a tela, sem a moldura. */
.q-pend--celular { padding-left: 0; padding-right: 0; }
.q-cel-real .q-cel-cab { padding-top: 12px; }
.q-cel-real .q-cel-lista { overflow: visible; }

/* ---------- Documentos: bolinha de situação (cores do Wiser+) e ícone de tipo ---------- */
.q-doc-dot { display: inline-block; width: 12px; height: 12px; border-radius: 50%; border: 1px solid #808080; box-sizing: border-box; vertical-align: middle; }
.q-doc-dot--elaboracao { background: #FFFFFF; }
.q-doc-dot--revisao { background: #FFFF00; }
.q-doc-dot--consenso { background: #ADD8E6; }
.q-doc-dot--aprovacao { background: #FFA500; }
.q-doc-dot--publicado { background: #008000; }
.q-doc-dot--cancelado { background: #FF0000; }
.q-doc-tipo { display: inline-flex; vertical-align: middle; color: var(--wf-text-muted); }
.q-doc-tipo--pdf { color: var(--wf-danger); }
.q-doc-tipo--word { color: #2B579A; }
.q-doc-tipo--planilha { color: var(--wf-success); }
[data-theme="dark"] .q-doc-tipo--word { color: #6C9BE0; }

/* Visualizador "somente visualização" (documentos da Qualidade) */
.q-vis { min-height: 100vh; display: flex; flex-direction: column; background: var(--wf-bg-sunken); }
.q-vis-barra { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; align-items: center; gap: 12px;
               padding: 10px 16px; background: var(--wf-surface); border-bottom: 1px solid var(--wf-border); }
.q-vis-codigo { font-family: var(--wf-font-mono); font-weight: 600; }
.q-vis-nome { font-weight: 600; flex: 1 1 200px; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.q-vis-selo { display: inline-flex; align-items: center; gap: 4px; font-size: 12px; padding: 2px 8px; border-radius: var(--wf-radius-pill);
              background: var(--wf-warning-bg); color: var(--wf-warning); }
.q-vis-zoom { display: inline-flex; align-items: center; gap: 6px; }
.q-vis-botao { width: 28px; height: 28px; border-radius: var(--wf-radius-sm); border: 1px solid var(--wf-border); background: transparent;
               color: var(--wf-text); cursor: pointer; }
.q-vis-paginas { display: flex; flex-direction: column; align-items: safe center; gap: 16px; padding: 24px 16px; overflow-x: auto;
                 user-select: none; -webkit-user-select: none; }
.q-vis-pagina { background: #fff; box-shadow: var(--wf-shadow-sm); flex: none; }
.q-vis-aviso { margin: 48px auto; padding: 24px; max-width: 520px; text-align: center; background: var(--wf-surface);
               color: var(--wf-text); border-radius: var(--wf-radius-lg); }
.q-vis-impressao-bloqueada { display: none; }
@media print {
    .q-vis > *:not(.q-vis-impressao-bloqueada) { display: none !important; }
    .q-vis-impressao-bloqueada { display: block; padding: 48px; font-size: 18px; text-align: center; }
}
