/* Comunicação 360 · Vertical 1 */
.communication-editor,
.communication-filters { margin-bottom: 1rem; }
.communication-form { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .85rem; }
.communication-form label,
.communication-filters label { display: grid; gap: .35rem; color: var(--muted); font-size: .78rem; font-weight: 700; }
.communication-form .field-wide { grid-column: 1 / -1; }
.communication-form input,
.communication-form select,
.communication-form textarea,
.communication-filters input,
.communication-filters select { width: 100%; }
.communication-form select[multiple] { min-height: 7.5rem; }
.communication-form-actions { display: flex; gap: .65rem; }
.communication-filters { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: .7rem; }
.communication-filters .communication-search { grid-column: span 2; }
.communication-list { display: grid; gap: .65rem; }
.communication-row { display: grid; grid-template-columns: 2.5rem minmax(0, 1fr) auto 2rem; gap: .85rem; align-items: start; padding: 1rem 1.1rem; border: 1px solid var(--line); border-radius: 1rem; background: var(--surface); }
.communication-row-icon { display: grid; place-items: center; width: 2.25rem; height: 2.25rem; border-radius: .75rem; background: var(--accent-soft); color: var(--accent); font-weight: 900; }
.communication-row-heading { display: flex; align-items: center; flex-wrap: wrap; gap: .55rem; }
.communication-row-heading > span,
.communication-row-heading > em { padding: .2rem .5rem; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: .72rem; font-style: normal; font-weight: 800; }
.communication-row-main > p { margin: .45rem 0; color: var(--muted); white-space: pre-line; }
.communication-context { display: flex; flex-wrap: wrap; gap: .45rem; }
.communication-context span { display: inline-flex; gap: .35rem; padding: .25rem .45rem; border: 1px solid var(--line); border-radius: .55rem; font-size: .75rem; }
.communication-row-meta { display: grid; justify-items: end; gap: .25rem; color: var(--muted); font-size: .76rem; white-space: nowrap; }
.communication-actions { position: relative; }
.communication-actions summary { cursor: pointer; font-size: 1.35rem; list-style: none; }
.communication-actions > div { position: absolute; z-index: 20; top: 1.8rem; right: 0; display: grid; min-width: 13.5rem; padding: .4rem; border: 1px solid var(--line); border-radius: .8rem; background: var(--surface); box-shadow: var(--shadow); }
.communication-actions button { padding: .55rem .65rem; border: 0; border-radius: .5rem; background: transparent; text-align: left; }
.communication-actions button:hover { background: var(--accent-soft); }

@media (max-width: 980px) {
  .communication-form,
  .communication-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .communication-row { grid-template-columns: 2.5rem minmax(0, 1fr) 2rem; }
  .communication-row-meta { grid-column: 2; grid-row: 2; justify-items: start; }
}

@media (max-width: 620px) {
  .communication-form,
  .communication-filters { grid-template-columns: 1fr; }
  .communication-filters .communication-search { grid-column: auto; }
  .communication-row { grid-template-columns: 2.25rem minmax(0, 1fr) 1.5rem; padding: .85rem; }
  .communication-context { display: grid; }
}
