.protest-metrics { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.protest-context dl { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 18px; margin: 0; }
.protest-context dt { color: var(--text-soft); font-size: 12px; margin-bottom: 6px; }
.protest-context dd { margin: 0; overflow-wrap: anywhere; white-space: pre-wrap; }
.protest-context > p { white-space: pre-wrap; overflow-wrap: anywhere; }
.protest-chart-controls, .protest-form-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.protest-incomplete { padding: 12px 16px; border-left: 3px solid var(--orange); background: var(--orange-soft); }
.protest-table { min-width: 1050px; }
.protest-table tfoot td, .protest-table tfoot th { font-weight: 700; border-top: 1px solid var(--line); padding: 14px; }
.protest-editor-table { min-width: 1260px; }
.protest-editor-table input[type="number"] { min-width: 120px; }
.protest-editor-table input[type="date"] { min-width: 140px; }
.protest-editor-table input[type="text"] { min-width: 160px; }
.protest-range-mode { min-width: 115px!important; }
.protest-editor-table [data-field="endDate"][hidden] { display: none!important; }
.protest-records { display: grid; gap: 8px; }
.protest-record { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 14px 16px; border: 1px solid var(--line); background: var(--surface); border-radius: 12px; color: var(--text); text-align: left; cursor: pointer; }
.protest-record > span { display: grid; gap: 5px; min-width: 0; overflow-wrap: anywhere; }
.protest-record small { color: var(--text-soft); }
.protest-record.is-active { border-color: var(--accent); }
.protest-form-actions { margin-top: 16px; }
.protest-optional-cell { min-width: 190px; max-width: 250px; white-space: normal; }
.protest-optional summary { cursor: pointer; font-weight: 600; padding: 8px 0; }
.protest-optional summary small { color: var(--text-soft); font-weight: 400; margin-left: 6px; }
.protest-optional > div { display: grid; gap: 10px; padding: 8px 0; }
.protest-optional .field span, .protest-optional > div > small { font-size: 11px; color: var(--text-soft); }
.management-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
#view-management:has(.protest-editor-table) .view-stack > *, #view-management:has(.protest-editor-table) .management-card { min-width: 0; }
.raw-pro-protest-tabs { display: flex; gap: 8px; margin: 0 0 20px; }
.raw-pro-protest-tabs button { flex: 1; padding: 10px; color: inherit; background: transparent; border: 0; border-bottom: 2px solid transparent; cursor: pointer; }
.raw-pro-protest-tabs button.is-active { border-bottom-color: var(--accent); font-weight: 700; }
.raw-pro-protest-settings p { line-height: 1.6; }
.raw-pro-protest-settings button { margin-top: 12px; padding: 12px 16px; border-radius: 10px; border: 0; background: var(--accent); color: white; cursor: pointer; }
@media (max-width: 900px) { .protest-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
  .management-form-grid { grid-template-columns: minmax(0, 1fr); }
  .protest-metrics, .protest-context dl { grid-template-columns: minmax(0, 1fr); }
  .protest-chart-controls { width: 100%; }
  .protest-chart-controls .field { flex: 1; min-width: 125px; }
  .protest-record { padding: 12px; }
}
@media (max-width: 760px) { .protest-table tfoot { display: none; } }
