/* Fatia C · Entregáveis: tabela do Benê, gaveta (Resumo, Horas), bloco "Entregáveis com atenção".
   Só tokens (var(--…)); nenhum hex aqui. */

/* ── Cabeçalho e menu "⋯" ── */
.count-muted { color: var(--muted); font-weight: 500; font-variant-numeric: tabular-nums; }
.menu { position: relative; }
.menu > summary { list-style: none; }
.menu > summary::-webkit-details-marker { display: none; }
.menu-panel { position: absolute; right: 0; top: calc(100% + var(--s-1)); z-index: 50; min-width: 220px; padding: var(--s-1);
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-2); }
.menu-item { display: flex; align-items: center; gap: var(--s-2); min-height: var(--tap); padding: 0 var(--s-3);
  border-radius: var(--r-sm); color: var(--ink); text-decoration: none; font-weight: 500; }
.menu-item:hover, .menu-item:focus-visible { background: var(--surface-2); }

/* ── Filtros (situação e disciplina) ── */
.filters { display: flex; gap: var(--s-3); flex-wrap: wrap; align-items: flex-end; }
.field-inline { min-width: 0; flex: 1 1 200px; max-width: 280px; }
@media (max-width: 640px) { .field-inline { flex: 1 1 140px; max-width: none; } }

/* ── Tabela do Benê ── */
#deliverables td[data-primary] { min-width: 0; }
#deliverables .row-link { font-weight: 600; color: var(--ink); text-decoration: none; }
#deliverables .row-link:hover { text-decoration: underline; }
#deliverables .row-link:focus-visible { box-shadow: var(--focus); border-radius: var(--r-sm); outline: none; }
#deliverables td[data-primary] .code-ref { display: block; margin-top: 2px; }
#deliverables .spent { min-width: 210px; }
.situation { display: inline-grid; gap: 2px; justify-items: start; }
.situation-detail { font-size: var(--fs-sm); color: var(--muted); max-width: 26ch; }
.situation-cell .pill-bad + .sr-only + .situation-detail { color: var(--bad); }
.due-late { color: var(--bad); font-weight: 500; white-space: nowrap; }
.table-total td { color: var(--ink); }
.table-total .spent .hint { display: block; font-weight: 400; }
#deliverables tbody tr { cursor: default; }
@media (min-width: 641px) {
  #deliverables td, #deliverables th { padding-left: var(--s-2); padding-right: var(--s-2); }
  #deliverables td:first-child, #deliverables th:first-child { padding-left: 0; }
}
.page-deliverables .page-head { flex-wrap: nowrap; }
@media (max-width: 640px) {
  #deliverables { border-collapse: separate; }
  #deliverables tbody { display: grid; gap: var(--s-3); }
  #deliverables tbody tr, #deliverables tfoot tr { grid-template-columns: 1fr 1fr; gap: var(--s-2) var(--s-3); }
  #deliverables tbody tr { padding: var(--s-4); border: 1px solid var(--line); border-radius: var(--r-lg); background: var(--surface); box-shadow: var(--shadow-1); }
  #deliverables tbody tr:hover td { background: transparent; }
  /* Totais viram um cartão de resumo: "Total dos 12" em cima, Horas | Valor lado a lado, custo embaixo do valor. */
  #deliverables tfoot tr { margin-top: var(--s-3); padding: var(--s-4); border: 1px solid var(--line); border-radius: var(--r-lg);
    background: var(--surface-2); align-items: start; }
  #deliverables tfoot td { border-top: 0; }
  #deliverables tfoot td.spent { grid-column: auto; }
  #deliverables tfoot td.num, #deliverables tfoot td.spent strong { font-size: var(--fs-lg); }
  #deliverables tfoot td::before { font-weight: 400; margin-bottom: 2px; }
  #deliverables td.spent { grid-column: 1 / -1; }
  #deliverables .spent { min-width: 0; }
  #deliverables .hide-sm { display: none; }
  #deliverables tfoot td[data-primary] { font-weight: 600; }
  .situation-detail { max-width: none; }
}

/* Cartão compacto no celular (usabilidade r2): nome + código na 1ª linha; situação, horas e barra na 2ª (quebra só se
   não couber); responsável e prazo em cinza na última, sem rótulos. ~130 px por cartão em vez de ~500. */
@media (max-width: 640px) {
  #deliverables tbody { gap: var(--s-2); }
  #deliverables tbody tr { display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-2) var(--s-3); padding: var(--s-3) var(--s-4); }
  #deliverables tbody td::before { display: none; }
  #deliverables tbody td[data-primary] { flex: 1 0 100%; }
  #deliverables tbody td[data-primary] .code-ref { display: inline; margin: 0 0 0 var(--s-2); }
  #deliverables tbody .situation-cell { flex: 0 1 auto; }
  #deliverables tbody .situation-cell:has(.situation-detail) { flex-basis: 100%; }
  #deliverables tbody .cell-hours { flex: 0 0 auto; color: var(--ink); }
  #deliverables tbody td.spent { flex: 0 1 auto; }
  #deliverables tbody .spent .bar-track { width: 48px; }
  #deliverables tbody .spent .bar-label { font-size: var(--fs-xs); }
  #deliverables tbody .cell-resp, #deliverables tbody .cell-due { font-size: var(--fs-sm); color: var(--muted); }
  #deliverables tbody .cell-resp { order: 9; flex: 1 0 55%; }
  #deliverables tbody .cell-due { order: 10; flex: 0 0 auto; margin-left: auto; }
  #deliverables tbody .cell-due::before { content: "prazo "; display: inline; font-size: inherit; color: inherit; }
  #deliverables tbody .cell-due:has(> .muted)::before { content: none; }
  #deliverables tbody .cell-due:has(> .muted[title="Emitido"]) { display: none; }
  #deliverables tbody .cell-due .due-late { color: var(--bad); }
}
.attention-chip { align-self: flex-end; }
.attention-chip .chip { min-height: var(--tap); }
.attention-chip input:focus-visible + .chip { box-shadow: var(--focus); }
