.campaign-review-sheet { display:flex; flex-direction:column; width:min(1280px,100%); height:min(94dvh,1100px); max-height:94dvh; min-height:0; border-radius:8px; }
.campaign-review-sheet>header,.campaign-review-sheet>footer,#campaign-review-controls { flex:0 0 auto; }
.review-heading,.review-toolbar { display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.review-heading { justify-content:space-between; }
.review-heading>div { min-width:0; flex:1; }
.review-heading h2 { font-size:20px; overflow-wrap:anywhere; margin:0; }
.review-heading p { margin:4px 0; font-size:13px; }
.review-toolbar { margin:6px 0; }
.review-toolbar>input { flex:1; min-width:180px; }
.review-toolbar>select { max-width:100%; width:auto; }
.review-toolbar label { display:grid; gap:3px; font-size:13px; width:170px; min-width:0; }
.review-toolbar input[type=date] { width:100%; min-width:0; }
.review-toolbar [role=tab][aria-selected=true] { background:#1c7756; color:white; }
#campaign-review-body { flex:1 1 auto; min-height:0; max-height:none; overflow:auto; scrollbar-gutter:stable; }
.review-table { width:100%; border-collapse:collapse; table-layout:fixed; font-size:13px; }
.review-table th,.review-table td { text-align:left; vertical-align:top; padding:12px 8px; border-bottom:1px solid #dce3e0; overflow-wrap:anywhere; }
.review-table th { position:sticky; top:0; background:#eff4f2; z-index:1; }
.review-table th:first-child { width:32%; }
.review-table .button { margin:3px 0; font-size:12px; padding:9px; max-width:100%; white-space:normal; }
.review-error { color:#982d21; overflow-wrap:anywhere; }
.review-attachments { border-top:1px solid #dce3e0; margin-top:16px; padding-top:10px; }
.quality-body { flex:1 1 auto; min-height:0; overflow:auto; scrollbar-gutter:stable; }
.quality-controls,.quality-footer { flex:0 0 auto; }
.quality-controls>label { max-width:280px; }
.quality-review { border-bottom:1px solid #b9cec3; padding:12px 0 20px; margin-bottom:20px; }
.quality-review h3 { font-size:17px; }
.quality-review form { display:grid; grid-template-columns:140px 200px minmax(0,1fr); gap:10px; }
.quality-review form>p { grid-column:1/3; }
.quality-review form>button { justify-self:end; width:auto; align-self:center; }
.quality-review form>[role=alert] { grid-column:1/-1; }
.quality-check { display:flex; align-items:center; gap:8px; margin:8px 0; }
.quality-check input[type=checkbox],.quality-contact input { width:18px; height:18px; flex:0 0 18px; }
.quality-target-group { border-bottom:1px solid #dce3e0; padding:12px 2px; }
.quality-target-group>summary { font-weight:700; cursor:pointer; padding:8px; }
.quality-target-group small { font-weight:400; }
.quality-group-content { padding:10px; }
.quality-group-contacts { max-height:320px; overflow:auto; }
.quality-contact { display:flex; align-items:flex-start; gap:10px; padding:10px 4px; border-bottom:1px solid #e4e8e6; }
.quality-contact span { min-width:0; overflow-wrap:anywhere; }
.quality-members { max-height:360px; overflow:auto; }
@media(max-width:600px) {
  .quality-review form { grid-template-columns:minmax(0,1fr); }
  .quality-review form>p { grid-column:auto; }
  .campaign-review-sheet { padding:10px; gap:6px; }
  .review-heading h2 { font-size:16px; }
  .review-toolbar { gap:6px; }
  #review-export label { flex:1 1 120px; width:auto; }
  .review-toolbar .button { font-size:12px; padding:9px; }
  .review-table { table-layout:auto; }
  .review-table thead { display:none; }
  .review-table tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border-bottom:1px solid #b9cec3; padding:8px 0; }
  .review-table td { border:0; padding:5px; }
  .review-table td:first-child,.review-table td:last-child { grid-column:1/-1; }
}
