/* Bloco de Qualidade do Planejamento da Parte (Parts::QualityBlockComponent, doc 45).
   Renderizado DENTRO da <section> "01.3 Qualidade" do PhaseFieldsComponent (que já dá head + hint).
   Reusa .c-phase-fields__field para os editores Trix (herda toolbar-quiet, borda, foco); aqui só o
   cromo do bloco: âncora do in-process, cerimônia aninhada, grade de papéis. Tokens só; geometria
   sharp. (Doc 65: as âncoras A/B viraram uma só — appraisal e tolerância desceram para o critério.) */

.c-quality-block{ margin: 6px 0 0 47px; max-width: 66ch; }
/* alinha os editores à coluna do bloco (o generic empurra .__field 47px; o bloco já está indentado) */
.c-quality-block .c-phase-fields__field{ margin-left: 0; }

/* ── cabeçalho ÚNICO das seções ────────────────────────────────────────────────
   As três seções (in-process, cerimônia, responsabilidades) usam o MESMO dispositivo: rótulo mono
   uppercase + filete até a borda. Antes eram três — âncora em texto grande, caixa aninhada
   tracejada e cabeçalho de tabela —, e o bloco lia como três blocos empilhados.
   O filete é o ::after com `order`, para caber ENTRE o rótulo e a tag de papel (pseudo-elemento é
   sempre o último filho; `order` o recoloca no meio sem markup extra). */
.c-quality-block__shead{ display: flex; align-items: center; gap: 10px; margin: 30px 0 12px; }
/* :first-child SÓ na raiz do bloco: as outras duas seções são primeiro filho dos seus próprios
   wrappers, e a regra genérica zerava o respiro delas — era isso que fazia tudo colar. */
.c-quality-block > .c-quality-block__shead:first-child{ margin-top: 4px; }
.c-quality-block__shead::after{ content: ""; flex: 1; height: 1px; background: var(--line); order: 1; }
.c-quality-block__slabel{
  font: 500 var(--fs-label)/1 var(--font-mono); letter-spacing: .1em; text-transform: uppercase;
  color: var(--ink-3); white-space: nowrap;
}
.c-quality-block__role{
  order: 2; font: 600 var(--fs-label)/1.4 var(--font-mono); letter-spacing: .08em; text-transform: uppercase;
  padding: 1px 7px; border: 1px solid;
}
.c-quality-block__role--prod{ color: var(--ok); border-color: var(--ok); }
.c-quality-block__role--rev{ color: var(--accent); border-color: var(--accent); }

/* ── cerimônia de aceite (ponta "quality" da tríade do cronograma, doc 60) ────
   datas que o cronograma 03.2 LÊ; controle de bancada (--control-h-sm), mono, sharp. */
.c-quality-block__dates{ display: flex; flex-wrap: wrap; align-items: center; gap: 16px; padding: 2px 0 4px; }
.c-quality-block__date{
  display: inline-flex; align-items: center; gap: 6px;
  font: 600 var(--fs-label)/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--ink-3);
}
.c-quality-block__date input{
  height: var(--control-h-sm); border: 1px solid var(--line-2); background: var(--surface); outline: 0;
  font: 500 var(--fs-meta)/1 var(--font-mono); color: var(--ink); padding: 0 6px;
  font-variant-numeric: tabular-nums;
}
.c-quality-block__date input:focus{ border-color: var(--brand); box-shadow: inset 0 0 0 1px var(--brand); }

/* ── responsabilidades por papel ──────────────────────────────────────────── */
/* UMA tabela, não três cartões: a borda é do grupo e as linhas se separam por filete interno.
   Cartões soltos liam como três coisas independentes — são as três responsabilidades do MESMO
   produto (A.17). */
.c-quality-block__rlist{ border: 1px solid var(--line-2); }
.c-quality-block__rrow{
  display: grid; grid-template-columns: 116px minmax(0, 1fr); align-items: stretch;
  border-top: 1px solid var(--line-2); margin: 0;
}
.c-quality-block__rrow:first-child{ border-top: 0; }
.c-quality-block__rtag{
  /* empilha o nome do papel e (quando há) o badge "opcional": inline não cabe nos 116px e o badge
     transbordava para dentro do input. */
  display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 5px;
  padding: 9px 11px; background: var(--surface-sunken); border-right: 1px solid var(--line-2);
  font: 500 var(--fs-label)/1.2 var(--font-mono); letter-spacing: .05em; text-transform: uppercase;
}
.c-quality-block__rrow--prod .c-quality-block__rtag{ color: var(--ok); }
.c-quality-block__rrow--rev .c-quality-block__rtag{ color: var(--accent); }
.c-quality-block__rrow--app .c-quality-block__rtag{ color: var(--entity-parte); }
.c-quality-block__rflag{
  font: 500 var(--fs-label)/1.4 var(--font-mono); letter-spacing: .06em; color: var(--ink-3);
  border: 1px solid var(--line-2); padding: 0 4px;
}

.c-quality-block__rform{ display: flex; }
.c-quality-block__rinput{
  width: 100%; border: 0; background: var(--surface); outline: 0;
  font: 400 var(--fs-body)/1.5 var(--font-ui); color: var(--ink); padding: 9px 12px;
}
.c-quality-block__rinput::placeholder{ color: var(--ink-3); font-style: italic; }
.c-quality-block__rinput:focus{ background: #fff; box-shadow: inset 0 0 0 2px rgba(42, 49, 64, .09); }

/* legenda "o que faz" por papel, sob a linha */
/* ── modo leitura (defensivo; o dossiê omite este kind no contexto) ─────────── */
.c-quality-block--read{ margin-left: 0; }
.c-quality-block__readrow{ padding: 8px 0; border-top: 1px solid var(--line); }
.c-quality-block__readrow:first-child{ border-top: 0; }
.c-quality-block__readlabel{
  font: 500 var(--fs-label)/1 var(--font-mono); letter-spacing: .08em; text-transform: uppercase;
  color: var(--ink-3); margin: 0 0 4px;
}
.c-quality-block__readval--empty{ color: var(--ink-3); font-style: italic; }

/* memória da remarcação (data única, doc 60) */
.c-quality-block__era{ align-self: center; font: 500 var(--fs-label)/1 var(--font-mono); letter-spacing: .05em; color: var(--ink-3); white-space: nowrap; }

/* ── prosa legada das chaves removidas no doc 65 (mesmo gabarito do painel de `criteria` do
   dod_block, doc 57): tracejado, fechado por padrão, com a nota de para onde transcrever. ── */
