/* Management UI palette. The couple-facing note and the theme swatches keep their own colors. */
.admin-body {
  --ink: #242526;
  --muted: #707275;
  --line: #e2e3e4;
  background: #f7f7f7;
  color: var(--ink);
}
.admin-body :focus-visible { outline-color: #55585b; }
.admin-body .muted { color: #74777a; }
.admin-body .eyebrow { color: #777a7d; }
.admin-body .text-button { color: #3c3f42; }
.admin-body .button-dark,
.admin-body .button-accent { background: #242526; color: #fff; box-shadow: none; }
.admin-body .button-dark:hover:not(:disabled),
.admin-body .button-accent:hover:not(:disabled) { background: #414346; }
.admin-body .button-outline,
.admin-body .button-soft { background: #fff; border: 1px solid #d7d9db; color: #303234; box-shadow: none; }
.admin-body .button-outline:hover:not(:disabled),
.admin-body .button-soft:hover:not(:disabled) { background: #f2f2f2; }

/* Header and navigation */
.admin-body .admin-topbar { background: #fff; border-color: #e3e4e5; box-shadow: 0 2px 12px rgba(0,0,0,.025); }
.admin-body .brand { color: #202123; }
.admin-body .brand-sub,
.admin-body .role-switch { color: #737578; }
.admin-body .current-account { color: #55595c; font-size: 13px; font-weight: 600; white-space: nowrap; }
.admin-body .sign-out-button { color: #55595c; background: #fff; border: 1px solid #d7d9da; border-radius: 9px; padding: 7px 11px; font: inherit; font-size: 12px; cursor: pointer; }
.admin-body .sign-out-button:hover { background: #f3f4f4; }
@media (max-width: 900px) {
  .admin-body .admin-topbar { grid-template-columns: minmax(0, 1fr) auto auto auto; column-gap: 8px; }
  .admin-body .current-account { grid-column: 2; grid-row: 1; justify-self: end; font-size: 11px; }
  .admin-body .sign-out-button { grid-column: 3; grid-row: 1; justify-self: end; padding: 6px 8px; font-size: 11px; }
  .admin-body #notification-center { grid-column: 4; grid-row: 1; justify-self: end; }
}
@media (max-width: 390px) {
  .admin-body .current-account { display: none; }
}
.admin-body .role-switch select { border-color: #d7d9da; color: #303234; background-color: #fff; }
.admin-body .prototype-pill { background: #f0f0f0; color: #626568; }
.admin-body .admin-sidebar { background: #fbfbfb; border-color: #e3e4e5; }
.admin-body .sidebar-eyebrow { color: #989b9e; }
.admin-body .sidebar-link { color: #64676a; }
.admin-body .sidebar-link:hover,
.admin-body .sidebar-link.active { background: #ececed; color: #242526; }
.admin-body .sidebar-toggle,
.admin-body .mobile-admin-link { border-color: #d9dbdd; color: #515457; background: #fff; }
.admin-body .sidebar-toggle:hover,
.admin-body .mobile-admin-link:hover,
.admin-body .mobile-admin-link.active { background: #ededee; border-color: #dedfe1; color: #242526; }
.admin-body .sidebar-toggle:focus-visible { outline-color: #777a7d; }
.admin-body .sidebar-note { background: #ededee; color: #414346; }
.admin-body .sidebar-note-icon,
.admin-body .sidebar-note p,
.admin-body .sidebar-bottom { color: #777a7d; }

/* Note list and editorial workflow */
.admin-body .summary-strip { background: #ededee; }
.admin-body .summary-strip > div,
.admin-body .summary-strip strong,
.admin-body .summary-strip p { color: #353739; }
.admin-body .list-title-controls { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; max-width: 100%; }
.admin-body .all-cases-toggle { position: relative; display: inline-flex; align-items: center; gap: 8px; color: #55585b; font-size: 12px; font-weight: 700; line-height: 1.2; white-space: nowrap; cursor: pointer; }
.admin-body .all-cases-toggle input { position: absolute; width: 1px; height: 1px; margin: 0; opacity: 0; }
.admin-body .all-cases-toggle-track { position: relative; display: inline-block; width: 36px; height: 21px; flex: none; border: 1px solid #c9cbce; border-radius: 999px; background: #d9dbdd; transition: background .18s ease, border-color .18s ease; }
.admin-body .all-cases-toggle-track::after { content: ""; position: absolute; top: 2px; left: 2px; width: 15px; height: 15px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.18); transition: transform .18s ease; }
.admin-body .all-cases-toggle input:checked + .all-cases-toggle-track { background: #303234; border-color: #303234; }
.admin-body .all-cases-toggle input:checked + .all-cases-toggle-track::after { transform: translateX(15px); }
.admin-body .all-cases-toggle input:focus-visible + .all-cases-toggle-track { outline: 2px solid #303234; outline-offset: 3px; }
.admin-body .list-header { align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: wrap; }
.admin-body .list-header-left { display: flex; align-items: center; gap: 14px; min-width: 0; flex-wrap: wrap; }
.admin-body .list-pagination { display: inline-flex; align-items: center; gap: 7px; min-width: 0; color: #55585b; font-size: 12px; line-height: 1.35; }
.admin-body .list-pagination[hidden] { display: none; }
.admin-body .list-pagination-summary { white-space: nowrap; }
.admin-body .list-pagination-pages { display: inline-flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.admin-body .list-pagination button { display: inline-flex; align-items: center; justify-content: center; min-width: 24px; height: 24px; padding: 0 6px; border: 1px solid #cfd2d4; border-radius: 999px; background: #fff; color: #353739; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.admin-body .list-pagination button:hover:not(:disabled):not(.is-current) { border-color: #92979b; background: #f1f3f4; }
.admin-body .list-pagination button.is-current,
.admin-body .list-pagination button[aria-current="page"] { border-color: #3b986f; background: #3b986f; color: #fff; }
.admin-body .list-pagination button:focus-visible { outline: 2px solid #357e5b; outline-offset: 2px; }
.admin-body .list-pagination button:disabled { opacity: .42; cursor: default; }
.admin-body .list-pagination .list-page-direction { padding: 0 9px; white-space: nowrap; }
.admin-body .list-pagination .list-page-ellipsis { color: #868a8d; font-weight: 700; }
.admin-body .case-table-head,
.admin-body .case-cell[data-label]::before { color: #777a7d; }
.admin-body .case-list { gap: 7px; }
.admin-body .case-row,
.admin-body .venue-row,
.admin-body .supporter-admin-row { border-color: #e3e4e5; box-shadow: 0 4px 18px rgba(0,0,0,.025); }
.admin-body .case-row { min-height: 62px; padding: 9px 16px; border-radius: 10px; }
.admin-body .case-row:hover { border-color: #bfc2c4; box-shadow: 0 9px 22px rgba(0,0,0,.055); }
.admin-body .case-cell-name { gap: 1px; }
.admin-body .case-cell-name strong { font-size: 14px; line-height: 1.35; }
.admin-body .case-venue,
.admin-body .case-cell-name .case-venue,
.admin-body .case-cell-assignee,
.admin-body .case-cell-date { color: #686b6e; }
.admin-body .case-cell-name .case-venue { font-size: 10px; line-height: 1.35; }
.admin-body .case-cell-assignee { font-size: 12px; line-height: 1.4; }
.admin-body .case-cell-assignee .assignee-content { gap: 6px; }
.admin-body .case-cell-assignee .supporter-profile-avatar { width: 24px; height: 24px; font-size: 10px; }
@media (max-width: 620px) {
  .admin-body .list-header { justify-content: space-between; }
  .admin-body .case-cell-name .case-venue { font-size: 10px; }
}
@media (max-width: 1280px) {
  .admin-body .case-row { min-height: 0; padding: 12px 14px; row-gap: 8px; }
  .admin-body .case-cell-date { font-size: 12px; }
}
@media (min-width: 621px) and (max-width: 1280px) {
  .admin-body .case-row { row-gap: 6px; }
  .admin-body .case-cell-public-url,
  .admin-body .case-cell-assignee,
  .admin-body .case-cell-status,
  .admin-body .case-cell-date { display: flex; flex-direction: row; align-items: center; gap: 6px; }
  .admin-body .case-cell-public-url .case-url-content { min-width: 0; }
  .admin-body .case-cell[data-label]::before { flex: none; }
}
@media (max-width: 620px) {
  .admin-body .list-header-left { align-items: flex-start; flex-direction: column; gap: 6px; }
  .admin-body .list-pagination { flex-wrap: wrap; }
  .admin-body .list-pagination button { min-width: 28px; height: 28px; }
  .admin-body .case-row { padding: 11px 12px; }
}
.admin-body .case-name-button:focus-visible,
.admin-body .due-sort-button:focus-visible { outline-color: #55585b; }
.admin-body .case-public-link { color: #343638; }
.admin-body .case-public-link:hover,
.admin-body .due-sort-button:hover { color: #111214; }
.admin-body .case-url-status-dot:not(.is-live) + .case-public-link { color: #85898d; }
.admin-body .case-url-status-dot:not(.is-live) + .case-public-link:hover { color: #666a6e; }
.admin-body .case-public-pending { color: #9a9da0; }
.admin-body .case-url-content { display: flex; align-items: flex-start; gap: 8px; min-width: 0; }
.admin-body .case-url-content > .case-public-link { min-width: 0; }
.admin-body .case-url-status-dot { display: block; flex: none; width: 7px; height: 7px; margin-top: 4px; border-radius: 50%; background: #b8bbbe; }
.admin-body .case-url-status-dot.is-live { background: #32d74b; }
.admin-body .case-detail-url { max-width: 100%; margin: 0 0 9px; font-size: 11px; line-height: 1.5; }
.admin-body .case-detail-url .case-public-link { overflow-wrap: anywhere; }
.admin-body .mobile-due-sort { color: #626568; }
.admin-body .empty-state { border-color: #d3d5d7; color: #777a7d; }
.admin-body .process-steps { background: #ececed; }
.admin-body .editor-overview .process-steps,
.admin-body.detail-editing .editor-overview .process-steps {
  grid-template-columns: repeat(4, minmax(103px, 1fr));
  overflow-x: auto;
}
.admin-body .editor-overview .step b { flex: none; }
.admin-body .step { color: #777a7d; }
.admin-body .step.active { color: #242526; box-shadow: 0 2px 7px rgba(0,0,0,.055); }
.admin-body .step b { background: #dbdcde; color: #626568; }
.admin-body .step.active b { background: #333537; color: #fff; }
@media (max-width: 620px) {
  .admin-body .editor-overview .process-steps,
  .admin-body.detail-editing .editor-overview .process-steps {
    grid-template-columns: repeat(4, minmax(97px, 1fr));
  }
}
.admin-body .panel { border-color: #e3e4e5; box-shadow: 0 5px 20px rgba(0,0,0,.025); }
.admin-body .preview-panel { border: 0; background: transparent; box-shadow: none; }
.admin-body .subtle-badge { border-color: #dedfe1; color: #74777a; }
.admin-body .panel-lead,
.admin-body .entry-chapter-help,
.admin-body .name-fields-help { color: #777a7d; }
.admin-body .case-edit-icon { color: #55585b; border-color: #d9dbdd; }
.admin-body .case-edit-icon:hover { background: #f0f0f0; border-color: #c7c9cb; }

/* Editing fields */
.admin-body .field-group label,
.admin-body .modal label,
.admin-body .venue-panel form > label,
.admin-body .supporter-add-fields label,
.admin-body .person-name-fields legend,
.admin-body .entry-field-label { color: #383a3c; }
.admin-body .field-group textarea,
.admin-body .modal input,
.admin-body .modal select,
.admin-body .venue-add-row input,
.admin-body .supporter-add-fields input,
.admin-body .entry-person-select select,
.admin-body .entry-person-custom input,
.admin-body .entry-person-comment textarea,
.admin-body .entry-tip input,
.admin-body .entry-tip textarea { border-color: #dcdedf; background: #fff; color: #292b2d; }
.admin-body .field-group textarea:focus,
.admin-body .modal input:focus,
.admin-body .modal select:focus,
.admin-body .venue-add-row input:focus,
.admin-body .supporter-add-fields input:focus,
.admin-body .entry-person-select select:focus,
.admin-body .entry-person-custom input:focus,
.admin-body .entry-person-comment textarea:focus,
.admin-body .entry-tip input:focus,
.admin-body .entry-tip textarea:focus { border-color: #85888b; box-shadow: 0 0 0 3px #edeeef; }
.admin-body input[aria-invalid="true"],
.admin-body select[aria-invalid="true"],
.admin-body #edit-supporter-form input[aria-invalid="true"] { border-color: #7c7f82; box-shadow: 0 0 0 3px #eeeeef; }
.admin-body .modal input[readonly] { background: #f4f4f4; color: #66696c; }
.admin-body .check-row { color: #55585b; }
.admin-body .check-row input { accent-color: #343638; }
.admin-body .entry-number,
.admin-body .entry-number-letter { background: #ededee; color: #3f4143; }
.admin-body .entry-item label { color: #707376; }
.admin-body .entry-add { border-color: #c8cacc; background: #f8f8f8; color: #46494c; }
.admin-body .entry-add:hover { background: #ededee; }
.admin-body .entry-summary-field { border-color: #b7b9bb; background: #f5f5f5; }
.admin-body .entry-person,
.admin-body .entry-tip { border-color: #e1e2e3; background: #fafafa; }
.admin-body .entry-person-head h4,
.admin-body .entry-person-topic-top strong,
.admin-body .entry-tip-top strong { color: #3a3c3e; }
.admin-body .entry-person-head p { color: #808386; }
.admin-body .entry-person-topic { border-color: #e3e4e5; }
.admin-body .entry-remove { color: #686b6e; }
.admin-body .entry-person-select,
.admin-body .entry-person-custom,
.admin-body .entry-person-comment,
.admin-body .entry-tip label { color: #5b5e61; }
.admin-body .entry-tip-actions button { border-color: #dadcde; color: #505356; }
.admin-body .entry-tip-legacy { background: #f1f1f1; color: #676a6d; }
.admin-body .entry-chapter { border-color: #e3e4e5; }

/* Catalogs, modals, and theme controls */
.admin-body .venue-in-use,
.admin-body .venue-help { color: #777a7d; }
.admin-body .venue-error { color: #424446; font-weight: 700; }
.admin-body .venue-remove,
.admin-body .button-delete-note { border-color: #cfd1d3; color: #47494b; background: #fff; }
.admin-body .venue-remove:hover,
.admin-body .button-delete-note:hover:not(:disabled) { background: #f1f1f1; }
.admin-body .button-delete-confirm { background: #343638; color: #fff; }
.admin-body .button-delete-confirm:hover:not(:disabled) { background: #4b4e51; }
.admin-body .supporter-admin-status,
.admin-body .supporter-admin-status.is-active { background: #ededee; color: #585b5e; }
.admin-body .publication-state { background: #ededee; color: #55585b; }
.admin-body .publication-state.is-live { background: #e7eef9; color: #34649d; }
.admin-body .phone-frame { border-color: #262728; box-shadow: 0 20px 38px rgba(0,0,0,.15); }
.admin-body .phone-notch { background: #262728; }
.admin-body.detail-editing .editor-column,
.admin-body.detail-editing .preview-column { scrollbar-color: #c7c9cb transparent; }
.admin-body .theme-drawer-handle,
.admin-body .theme-drawer-close { border-color: #d8dadc; background: #fff; color: #414345; }
.admin-body .theme-drawer-handle:hover { background: #f0f0f0; }
.admin-body .theme-drawer-backdrop { background: rgba(0,0,0,.25); }
.admin-body .theme-drawer { border-color: #e0e1e2; background: #fafafa; box-shadow: -10px 0 30px rgba(0,0,0,.1); }
.admin-body .theme-drawer-head h2 { color: #292b2d; }
.admin-body .theme-card { border-color: #e0e1e2; color: #686b6e; }
.admin-body .theme-card.selected { border-color: #4f5153; box-shadow: 0 0 0 2px #e0e1e2; color: #282a2c; }
.admin-body .toast { background: #2b2d2f; }
.admin-body .modal { color: #292b2d; box-shadow: 0 22px 70px rgba(0,0,0,.2); }
.admin-body .modal::backdrop { background: rgba(0,0,0,.4); }
.admin-body .close-button { background: #f0f0f0; color: #343638; }

/* Keep the new-note and overview editor layouts aligned. */
.admin-body :is(#new-case-dialog, #edit-case-dialog) {
  box-sizing: border-box;
  width: min(820px, calc(100vw - 32px));
  max-width: min(820px, calc(100vw - 32px));
}
.admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-row,
.admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-name-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}
.admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-key-row { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-row > label,
.admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-row > .date-picker-field,
.admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-name-grid > fieldset { min-width: 0; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-name-grid .person-name-fields { margin-top: 14px; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .modal-actions { margin-top: 18px; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) input:not([type="hidden"]),
.admin-body :is(#new-case-dialog, #edit-case-dialog) select,
.admin-body :is(#new-case-dialog, #edit-case-dialog) input::placeholder { font-weight: 400; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) select:invalid { color: #85888b; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .date-picker-field { display: grid; gap: 6px; margin-top: 15px; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .date-picker-label { color: #383a3c; font-size: 12px; font-weight: 800; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .date-picker-trigger {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  width: 100%;
  height: 44px;
  border: 1px solid #dcdedf;
  border-radius: 11px;
  padding: 0 13px;
  background: #fff;
  color: #292b2d;
  font: inherit;
  font-size: 13px;
  font-weight: 400;
  text-align: left;
  cursor: pointer;
}
.admin-body :is(#new-case-dialog, #edit-case-dialog) .date-picker-trigger:hover { border-color: #85888b; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .date-picker-trigger:focus-visible { outline: 3px solid #edeeef; border-color: #85888b; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .date-picker-trigger[aria-invalid="true"] { border-color: #b24444; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .date-picker-trigger svg { width: 18px; height: 18px; flex: none; }
.admin-body :is(#new-case-dialog, #edit-case-dialog) .date-picker-error { color: #a73636; font-size: 11px; font-weight: 600; }

.admin-body .date-picker-dialog {
  box-sizing: border-box;
  width: min(420px, calc(100vw - 32px));
  max-width: min(420px, calc(100vw - 32px));
  max-height: calc(100dvh - 32px);
  overflow-y: auto;
  border: 1px solid #dedfe1;
  border-radius: 18px;
  padding: 22px;
  background: #fff;
  color: #292b2d;
  box-shadow: 0 24px 70px rgba(0, 0, 0, .25);
  font: inherit;
}
.admin-body .date-picker-dialog::backdrop { background: rgba(0, 0, 0, .42); }
.admin-body .date-picker-dialog-head,
.admin-body .date-picker-navigation { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.admin-body .date-picker-dialog-head { margin-bottom: 18px; }
.admin-body .date-picker-dialog-head h2 { margin: 0; font-size: 19px; }
.admin-body .date-picker-dialog-head button,
.admin-body .date-picker-navigation button {
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  flex: none;
  border: 1px solid #dcdedf;
  border-radius: 10px;
  background: #fff;
  color: #333;
  font: inherit;
  font-size: 24px;
  cursor: pointer;
}
.admin-body .date-picker-dialog-head button { border: 0; border-radius: 50%; background: #f0f0f0; }
.admin-body .date-picker-navigation { display: grid; grid-template-columns: 38px minmax(0, 1fr) minmax(0, 1fr) 38px; }
.admin-body .date-picker-navigation select {
  min-width: 0;
  height: 38px;
  border: 1px solid #dcdedf;
  border-radius: 10px;
  padding: 0 8px;
  background: #fff;
  color: #292b2d;
  font: inherit;
  font-size: 14px;
  font-weight: 600;
}
.admin-body .date-picker-navigation button:disabled { opacity: .35; cursor: default; }
.admin-body .date-picker-weekdays,
.admin-body .date-picker-days { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 3px; text-align: center; }
.admin-body .date-picker-weekdays { margin-top: 19px; color: #64676a; font-size: 13px; font-weight: 700; }
.admin-body .date-picker-weekdays span { padding: 7px 0; }
.admin-body .date-picker-weekdays span:first-child { color: #b75555; }
.admin-body .date-picker-weekdays span:last-child { color: #4d74a9; }
.admin-body .date-picker-days button {
  min-width: 0;
  height: 44px;
  border: 1px solid transparent;
  border-radius: 10px;
  background: #fff;
  color: #292b2d;
  font: inherit;
  font-size: 16px;
  font-weight: 500;
  cursor: pointer;
}
.admin-body .date-picker-days button:hover { background: #f0f0f0; }
.admin-body .date-picker-days button.is-today { border-color: #666a6e; }
.admin-body .date-picker-days button.is-selected,
.admin-body .date-picker-days button.is-selected:hover { background: #2d2f31; color: #fff; }
.admin-body .date-picker-dialog button:focus-visible,
.admin-body .date-picker-dialog select:focus-visible { outline: 3px solid #b4b7ba; outline-offset: 2px; }
.admin-body .date-picker-dialog-actions { display: flex; justify-content: flex-end; margin-top: 15px; border-top: 1px solid #e7e8e9; padding-top: 14px; }
.admin-body .date-picker-dialog-actions button { border: 0; background: transparent; color: #343638; font: inherit; font-size: 13px; font-weight: 700; cursor: pointer; }
@media (max-width: 700px) {
  .admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-row,
  .admin-body :is(#new-case-dialog, #edit-case-dialog) .person-name-fields .field-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-key-row { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
  .admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-key-row .date-picker-trigger { gap: 4px; padding-inline: 8px; font-size: 12px; }
  .admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-name-grid { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 420px) {
  .admin-body :is(#new-case-dialog, #edit-case-dialog) .new-case-row,
  .admin-body :is(#new-case-dialog, #edit-case-dialog) .person-name-fields .field-row { grid-template-columns: 1fr; gap: 0; }
}

/* Only the three note workflow states use accent colors. */
.admin-body .status-pill { background: #ededee; color: #55585b; }
.admin-body .status-pill.is-writing { background: #e1f1e6; color: #3f865a; }
.admin-body .status-pill.is-review { background: #f0eee5; color: #827451; }
.admin-body .status-pill.is-published { background: #e7eef9; color: #34649d; }

/* Keep the header, editor viewport, and theme drawer on one compact height. */
.admin-body { --admin-header-height: 60px; }
.admin-body .admin-topbar {
  height: var(--admin-header-height);
  min-height: var(--admin-header-height);
  padding: 0 24px;
}
.admin-body .admin-topbar .brand { font-size: 23px; line-height: 1.15; }
.admin-body .admin-topbar .brand-sub { font-size: 10px; }
.admin-body .role-switch select { padding-top: 6px; padding-bottom: 6px; }
.admin-body .admin-shell { min-height: calc(100vh - var(--admin-header-height)); }
.admin-body.detail-editing .admin-shell { height: calc(100dvh - var(--admin-header-height)); }
.admin-body .theme-drawer-backdrop { inset: var(--admin-header-height) 0 0; }
.admin-body .theme-drawer {
  top: var(--admin-header-height);
  height: calc(100dvh - var(--admin-header-height));
}

/* Supporter catalog uses the same heading and row pattern as the note list. */
.admin-body .supporter-table-head,
.admin-body .supporter-admin-row {
  display: grid;
  grid-template-columns: minmax(125px, 1.35fr) minmax(78px, .65fr) minmax(70px, .65fr) minmax(165px, 1.35fr);
  align-items: center;
  column-gap: 12px;
}
.admin-body .supporter-table-head {
  max-width: 760px;
  padding: 0 19px 9px;
  color: #777a7d;
  font-size: 12px;
  font-weight: 800;
}
.admin-body .supporter-admin-count { color: #686b6e; font-size: 12px; }
.admin-body .supporter-admin-status { justify-self: start; }
.admin-body .supporter-admin-actions { justify-content: flex-end; }
.admin-body #new-supporter-dialog .supporter-add-fields {
  grid-template-columns: 1fr;
  margin-top: 18px;
}

@media (max-width: 900px) {
  .admin-body { --admin-header-height: 56px; }
  .admin-body:has(#topbar-actions:not([hidden])) { --admin-header-height: 88px; }
  .admin-body .admin-topbar {
    height: var(--admin-header-height);
    min-height: var(--admin-header-height);
    padding: 6px 16px;
    grid-template-rows: 30px 40px;
    row-gap: 4px;
  }
  .admin-body .admin-topbar:not(:has(#topbar-actions:not([hidden]))) {
    height: var(--admin-header-height);
    min-height: var(--admin-header-height);
    grid-template-rows: 1fr;
  }
  .admin-body .admin-shell,
  .admin-body:not(.detail-editing) .admin-shell,
  .admin-body.detail-editing .admin-shell {
    height: auto;
    min-height: calc(100dvh - var(--admin-header-height));
  }
}
@media (max-width: 700px) {
  .admin-body .supporter-table-head { display: none; }
  .admin-body .supporter-admin-row {
    grid-template-columns: minmax(0, 1fr) auto;
    row-gap: 12px;
    align-items: center;
  }
  .admin-body .supporter-admin-main { grid-column: 1; grid-row: 1; }
  .admin-body .supporter-admin-status { grid-column: 2; grid-row: 1; }
  .admin-body .supporter-admin-count { grid-column: 1; grid-row: 2; }
  .admin-body .supporter-admin-count::before { content: attr(data-label) " "; color: #85888b; }
  .admin-body .supporter-admin-actions { grid-column: 2; grid-row: 2; }
}
@media (max-width: 620px) {
  .admin-body .admin-topbar { padding: 6px 12px; }
  .admin-body .admin-topbar .brand { font-size: 20px; }
}
@media (max-width: 480px) {
  .admin-body .supporter-admin-actions { grid-column: 1 / -1; grid-row: 3; justify-content: flex-start; }
}

/* Keep the names and comment action on one shared heading row. */
.admin-body .detail-layout > .case-context { grid-column: 1 / -1; margin: 0; min-width: 0; }
.admin-body.detail-editing .detail-layout { grid-template-rows: auto minmax(0, 1fr); }
.admin-body.detail-editing .detail-layout > .case-context { align-items: flex-start; margin: 0; }
.admin-body .case-title-row { width: 100%; max-width: 100%; gap: 12px; }
.admin-body .case-title-main { display: flex; align-items: center; gap: 9px; min-width: 0; }
.admin-body .case-title-row h1 {
  font-size: clamp(17px, 1.55vw, 22px);
  line-height: 1.3;
  white-space: nowrap;
  overflow-wrap: normal;
  overflow: hidden;
  text-overflow: ellipsis;
}
.admin-body .published-supporter-notice {
  margin: 0 0 9px;
  color: #34649d;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
}
.admin-body .input-panel.is-locked {
  background: transparent;
  border: 0;
}
.admin-body .input-panel.is-locked :is(textarea, input, select, button):disabled {
  background: #e9eaeb;
  border-color: #d3d5d7;
  color: #737679;
  box-shadow: none;
  opacity: 1;
  cursor: not-allowed;
}
.admin-body .input-panel.is-locked input[type="checkbox"]:disabled { opacity: .55; }
.admin-body .input-panel.is-locked .subtle-badge { background: #e9eaeb; }
.admin-body .modal-danger-zone {
  display: flex;
  justify-content: flex-start;
  margin-top: 22px;
  padding-top: 18px;
  border-top: 1px solid #e3e4e5;
}
.admin-body .modal-danger-zone:has(#delete-case-button[hidden]) { display: none; }

/* Each note chapter is its own card; the form remains shared for autosave. */
.admin-body .editor-section-heading {
  align-items: center;
  justify-content: space-between;
  margin: 0 0 12px;
}
.admin-body .editor-section-heading .eyebrow { margin: 0; }
.admin-body #note-fields { display: grid; gap: 16px; }
.admin-body .input-panel .entry-chapter,
.admin-body .input-panel .entry-chapter:first-child {
  padding: 24px;
  border: 1px solid #e3e4e5;
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 5px 20px rgba(0,0,0,.025);
}
.admin-body .input-panel .form-actions { margin-top: 12px; }
.admin-body .input-panel .character-count {
  justify-self: end;
  color: #777a7d;
  font-size: 11px;
  font-variant-numeric: tabular-nums;
}
.admin-body .entry-person { padding: 0; margin: 0; border: 0; background: transparent; }
.admin-body .entry-person [data-topic-list] { display: grid; gap: 14px; }
.admin-body .entry-person-topic {
  padding: 18px;
  border: 1px solid #e3e4e5;
  border-radius: 14px;
  background: #f8f8f8;
}
.admin-body .entry-person-comment textarea { font-weight: 400; }
.admin-body .mutual-editor-group {
  padding: 20px;
  border: 1px solid #e3e4e5;
  border-radius: 14px;
  background: #f8f8f8;
}
.admin-body .mutual-editor-group + .mutual-editor-group { margin-top: 14px; }
.admin-body .mutual-editor-group .entry-summary-field { margin-bottom: 0; }
.admin-body .input-panel.is-locked .mutual-editor-group { background: #eceeef; border-color: #dfe1e3; }
.admin-body .entry-tip input,
.admin-body .entry-tip textarea { font-weight: 400; }
.admin-body .entry-tip .character-count {
  display: block;
  margin-top: 6px;
  text-align: right;
  font-weight: 400;
}
.admin-body .entry-add-category { margin-top: 14px; }
.admin-body .idea-trigger {
  display: grid;
  place-items: center;
  flex: none;
  width: 38px;
  height: 38px;
  margin-left: auto;
  border: 1px solid #d7d9db;
  border-radius: 11px;
  background: #fff;
  color: #55585b;
}
.admin-body .idea-trigger:hover { background: #f1f2f3; border-color: #babdc0; }
.admin-body .idea-trigger svg { width: 20px; height: 20px; }
.admin-body .supporter-ideas-dialog {
  width: min(620px, calc(100% - 28px));
  max-width: 620px;
  max-height: 85dvh;
  overflow-y: auto;
  color: #242526;
  background: #fff;
}
.admin-body .supporter-ideas-dialog .modal-head h2 { color: #242526; }
.admin-body .supporter-ideas-dialog .modal-head { margin-bottom: 22px; }
.admin-body .supporter-idea-slide {
  min-height: 250px;
  padding: 26px;
  border: 1px solid #e3e4e5;
  border-radius: 16px;
  background: #f8f8f8;
}
.admin-body .supporter-idea-count { color: #777a7d; font-size: 11px; font-weight: 700; font-variant-numeric: tabular-nums; }
.admin-body .supporter-idea-slide h3 { margin: 14px 0 13px; font-size: 18px; }
.admin-body .supporter-idea-slide p { margin: 0; font-size: 14px; line-height: 1.9; white-space: pre-line; }
.admin-body .supporter-idea-slide.from-left { animation: idea-from-left .2s ease-out; }
.admin-body .supporter-idea-slide.from-right { animation: idea-from-right .2s ease-out; }
@keyframes idea-from-left { from { opacity: .4; transform: translateX(-10px); } to { opacity: 1; transform: translateX(0); } }
@keyframes idea-from-right { from { opacity: .4; transform: translateX(10px); } to { opacity: 1; transform: translateX(0); } }
.admin-body .supporter-idea-controls { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 18px; }
.admin-body .supporter-idea-arrow { width: 40px; height: 40px; flex: none; border: 1px solid #d7d9db; border-radius: 50%; background: #fff; color: #383a3c; font-size: 17px; }
.admin-body .supporter-idea-arrow:hover { background: #f1f2f3; }
.admin-body .supporter-idea-dots { display: flex; justify-content: center; gap: 8px; }
.admin-body .supporter-idea-dots button { width: 10px; height: 10px; padding: 0; border: 0; border-radius: 50%; background: #cfd1d3; }
.admin-body .supporter-idea-dots button[aria-current="true"] { background: #303234; }
@media (prefers-reduced-motion: reduce) {
  .admin-body .supporter-idea-slide.from-left,
  .admin-body .supporter-idea-slide.from-right { animation: none; }
}
.admin-body .input-panel.is-locked .entry-chapter,
.admin-body .input-panel.is-locked .entry-chapter:first-child {
  background: #f1f2f3;
  border-color: #dfe1e3;
}
.admin-body .input-panel.is-locked .entry-person-topic { background: #eceeef; border-color: #dfe1e3; }
@media (max-width: 620px) {
  .admin-body .supporter-ideas-dialog { padding: 20px; }
  .admin-body .supporter-idea-slide { padding: 20px; min-height: 0; }
  .admin-body .entry-person-topic { padding: 16px; }
  .admin-body .mutual-editor-group { padding: 16px; }
  .admin-body .input-panel .entry-chapter,
  .admin-body .input-panel .entry-chapter:first-child { padding: 18px; }
  .admin-body .case-context-main { width: 100%; }
  .admin-body .case-title-row h1 { font-size: clamp(14px, 3.7vw, 17px); }
}

/* Review requests and comments share the header notification menu. */
.admin-body .notification-center { position: relative; flex: none; }
.admin-body .notification-bell {
  position: relative;
  display: grid;
  place-items: center;
  width: 38px;
  height: 38px;
  padding: 0;
  border: 1px solid #d7d9db;
  border-radius: 10px;
  background: #fff;
  color: #45484b;
  cursor: pointer;
}
.admin-body .notification-bell:hover,
.admin-body .notification-bell[aria-expanded="true"] { background: #f1f2f3; border-color: #bfc2c4; }
.admin-body .notification-bell svg { width: 19px; height: 19px; stroke: currentColor; }
.admin-body .notification-count {
  position: absolute;
  top: -6px;
  right: -6px;
  display: grid;
  place-items: center;
  min-width: 18px;
  height: 18px;
  padding: 0 4px;
  border: 2px solid #fff;
  border-radius: 99px;
  background: #d83b45;
  color: #fff;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  font-variant-numeric: tabular-nums;
}
.admin-body .notification-count[hidden],
.admin-body .notification-menu[hidden] { display: none; }
.admin-body .notification-menu {
  position: absolute;
  z-index: 80;
  top: calc(100% + 10px);
  right: 0;
  width: min(360px, calc(100vw - 24px));
  max-height: min(430px, calc(100dvh - var(--admin-header-height) - 20px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border: 1px solid #e0e2e4;
  border-radius: 14px;
  background: #fff;
  box-shadow: 0 14px 40px rgba(0,0,0,.15);
  color: #282a2c;
}
.admin-body .notification-menu-head {
  padding: 16px 18px 12px;
  border-bottom: 1px solid #edeeef;
  font-size: 14px;
  font-weight: 800;
}
.admin-body .notification-list { min-height: 0; overflow-y: auto; }
.admin-body .notification-item {
  display: block;
  width: 100%;
  padding: 14px 18px;
  border: 0;
  border-bottom: 1px solid #f0f1f2;
  background: #fff;
  color: #333537;
  text-align: left;
  text-decoration: none;
  font: inherit;
  line-height: 1.5;
  cursor: pointer;
}
.admin-body .notification-item:last-child { border-bottom: 0; }
.admin-body .notification-item:hover,
.admin-body .notification-item:focus-visible { background: #f5f5f5; }
.admin-body .notification-item.is-unread { background: #fafafa; font-weight: 700; }
.admin-body .notification-item.is-unread:hover { background: #f2f2f2; }
.admin-body .notification-item-excerpt {
  display: -webkit-box;
  margin-top: 5px;
  overflow: hidden;
  color: #6d7073;
  font-size: 12px;
  font-weight: 400;
  overflow-wrap: anywhere;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
}
.admin-body .notification-item-meta { display: block; margin-top: 3px; color: #83868a; font-size: 11px; font-weight: 400; }
.admin-body .notification-empty { margin: 0; padding: 22px 18px; color: #797c80; font-size: 12px; }

/* A review request stays marked in the list until an operator opens that note. */
.admin-body .case-row { position: relative; }
.admin-body .case-unread-dot {
  position: absolute;
  top: 11px;
  right: 11px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #d83b45;
  box-shadow: 0 0 0 2px #fff;
  pointer-events: none;
}

@media (max-width: 900px) {
  .admin-body .admin-topbar { grid-template-columns: minmax(0,1fr) auto auto; }
  .admin-body .admin-topbar .notification-center { grid-column: 3; grid-row: 1; justify-self: end; margin-left: 8px; }
}
@media (max-width: 620px) {
  .admin-body .notification-bell { width: 34px; height: 34px; }
  .admin-body .notification-menu { right: -4px; }
}

/* Review comments stay in the admin UI; the public note has no review controls. */
.admin-body .review-toolbar {
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 8px;
  min-height: 34px;
  margin-left: auto;
  padding: 0;
  flex: none;
}
.admin-body .review-toolbar[hidden],
.admin-body .review-toolbar-button[hidden],
.admin-body .review-comments-panel[hidden],
.admin-body .review-comment-composer[hidden] { display: none; }
.admin-body .review-toolbar-button {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-height: 34px;
  padding: 5px 11px;
  border: 1px solid #d9dbdd;
  border-radius: 9px;
  background: #fff;
  color: #4a4c4e;
  font-size: 11px;
  font-weight: 700;
  white-space: nowrap;
  cursor: pointer;
}
.admin-body .review-toolbar-button:hover { background: #f3f3f3; }
.admin-body .review-toolbar-button.is-active { border-color: #35383a; background: #303234; color: #fff; }
.admin-body .review-toolbar-button span:last-child:not(:first-child) { font-variant-numeric: tabular-nums; }
.admin-body .review-comments-panel {
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  min-height: 380px;
  height: max-content;
  align-self: start;
  border: 1px solid #dfe0e2;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 6px 24px rgba(0,0,0,.025);
  color: #292b2d;
}
.admin-body:not(.review-comments-active) .review-comments-panel,
.admin-body.review-comments-active .input-panel { display: none; }
.admin-body.review-comments-active .review-comments-panel:not([hidden]) { display: flex; }
.admin-body.note-comment-mode #detail-view .editor-overview,
.admin-body.note-comment-mode #detail-view .case-context :is(.case-detail-url, .case-meta-row, .published-supporter-notice) { display: none; }
.admin-body .review-comments-head { display: flex; align-items: start; justify-content: space-between; gap: 12px; padding: 20px 20px 8px; }
.admin-body .review-comments-head h2 { margin: 0; font-size: 19px; }
.admin-body .review-comments-help { margin: 0; padding: 0 20px 16px; color: #777a7d; font-size: 11px; line-height: 1.6; }
.admin-body .review-comments-list { flex-shrink: 0; padding: 0 15px 20px; }
.admin-body .review-comments-empty { padding: 18px 5px; color: #777a7d; font-size: 12px; line-height: 1.7; }
.admin-body .review-comment-card { position: relative; margin: 0; padding: 8px 0 6px; border: 0; border-bottom: 1px solid #e1e5e2; border-radius: 0; background: transparent; box-shadow: none; overflow: visible; }
.admin-body .review-comment-card:last-child { border-bottom: 0; }
.admin-body .review-comment-card:hover,
.admin-body .review-comment-card:focus-within { z-index: 1; background: #f6f7f8; }
.admin-body .review-comment-card.is-resolved {
  background: transparent;
}
.admin-body .review-comment-card.is-resolved:hover,
.admin-body .review-comment-card.is-resolved:focus-within { background: #f0f1f2; }
.admin-body .review-comment-jump { display: grid; gap: 7px; width: 100%; padding: 14px; border: 0; border-radius: 0; background: transparent; color: inherit; text-align: left; font: inherit; cursor: pointer; }
.admin-body .review-comment-index { display: flex; align-items: center; gap: 7px; min-width: 0; color: #315e3d; font-size: 11px; font-weight: 800; }
.admin-body .review-comment-author { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-body .review-comment-time { flex: 0 0 auto; margin-left: auto; color: #8a8d90; font-size: 10px; font-weight: 400; line-height: 1.4; font-variant-numeric: tabular-nums; white-space: nowrap; }
.admin-body .review-comment-card.is-resolved .review-comment-index { color: #66696c; }
.admin-body .review-comment-number { display: inline-grid; flex: 0 0 auto; width: 23px; height: 23px; place-items: center; border: 1.5px solid #3d8553; border-radius: 50%; background: #3d8553; color: #fff; font-size: 11px; line-height: 1; font-variant-numeric: tabular-nums; }
.admin-body .review-comment-card.is-resolved .review-comment-number { border-color: #aeb5b0; background: #aeb5b0; color: #fff; }
.admin-body .review-comment-quoted { display: grid; gap: 3px; min-width: 0; padding: 8px 10px; border-left: 3px solid #84b993; border-radius: 0 7px 7px 0; background: #e6f1e8; color: #475f4d; }
.admin-body .review-comment-card.is-resolved .review-comment-quoted { border-left-color: #aaadb0; background: #f0f1f2; color: #55585b; }
.admin-body .review-comment-quote-label { color: #6e7174; font-size: 10px; font-weight: 700; letter-spacing: .05em; }
.admin-body .review-comment-quote-text { display: -webkit-box; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; font-size: 11px; line-height: 1.5; }
.admin-body .review-comment-body { font-size: 12px; line-height: 1.7; white-space: pre-wrap; overflow-wrap: anywhere; }
.admin-body .review-comment-card.is-resolved .review-comment-body { color: #6e7275; }
.admin-body .review-comment-meta { color: #8a8d90; font-size: 10px; }
.admin-body .review-comment-card-actions { display: flex; justify-content: flex-end; gap: 6px; padding: 0 14px 10px; }
.admin-body .review-comment-card-actions button,
.admin-body .review-reply-actions button { display: inline-flex; position: relative; align-items: center; justify-content: center; width: 31px; height: 31px; padding: 0; border: 0; border-radius: 6px; background: transparent; color: #356d46; cursor: pointer; }
.admin-body .review-comment-card-actions button svg,
.admin-body .review-reply-actions button svg { width: 15px; height: 15px; }
.admin-body .review-comment-card-actions button:hover,
.admin-body .review-reply-actions button:hover { background: #e5f2e8; color: #205e33; }
.admin-body .review-comment-card-actions button:focus-visible,
.admin-body .review-reply-actions button:focus-visible { outline: 2px solid #397c4d; outline-offset: 2px; }
.admin-body .review-comment-card-actions button[data-tooltip]::after,
.admin-body .review-reply-actions button[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  z-index: 2;
  bottom: calc(100% + 7px);
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  max-width: min(220px, calc(100vw - 40px));
  padding: 6px 9px;
  border-radius: 6px;
  background: #303634;
  box-shadow: 0 3px 10px rgba(0,0,0,.16);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .12s ease;
}
.admin-body .review-comment-card-actions button[data-tooltip]:first-child::after { left: 0; transform: none; }
.admin-body .review-comment-card-actions button[data-tooltip]:last-child::after,
.admin-body .review-reply-actions button[data-tooltip]::after { right: 0; left: auto; transform: none; }
.admin-body .review-comment-card-actions button[data-tooltip]:hover::after,
.admin-body .review-comment-card-actions button[data-tooltip]:focus-visible::after,
.admin-body .review-reply-actions button[data-tooltip]:hover::after,
.admin-body .review-reply-actions button[data-tooltip]:focus-visible::after { opacity: 1; visibility: visible; }
.admin-body .review-comment-card-actions button.is-addressed-action { background: #e2f1e6; color: #28653d; }
.admin-body .review-comment-card.is-resolved .review-comment-card-actions button,
.admin-body .review-comment-card.is-resolved .review-reply-actions button { color: #66696c; }
.admin-body .review-comment-card.is-resolved .review-comment-card-actions button:hover,
.admin-body .review-comment-card.is-resolved .review-reply-actions button:hover { background: #eceeef; color: #303234; }
.admin-body .review-comment-edit-form { display: grid; gap: 8px; padding: 0 14px 13px; }
.admin-body .review-comment-edit-form textarea { width: 100%; min-height: 90px; padding: 10px 11px; border: 1px solid #d7d9db; border-radius: 9px; background: #fff; color: #292b2d; font: inherit; font-size: 12px; line-height: 1.6; resize: vertical; }
.admin-body .review-comment-edit-form textarea:focus { outline: 2px solid #737679; outline-offset: 1px; }
.admin-body .review-comment-edit-actions { display: flex; justify-content: flex-end; gap: 7px; }
.admin-body .review-comment-edit-actions button { min-height: 31px; padding: 5px 10px; border: 1px solid #d7d9db; border-radius: 8px; background: #fff; color: #383a3c; font: inherit; font-size: 11px; font-weight: 700; cursor: pointer; }
.admin-body .review-comment-edit-actions button[type="submit"] { border-color: #303234; background: #303234; color: #fff; }
.admin-body .review-comment-edit-actions button:hover { filter: brightness(.94); }
.admin-body .review-comment-card-actions .review-comment-reply-toggle[aria-expanded="true"] { background: #dcefe0; color: #205e33; }
.admin-body .review-comment-card.is-resolved .review-comment-reply-toggle[aria-expanded="true"] { background: #e9ebec; color: #464a4d; }
.admin-body .review-comment-thread {
  min-width: 0;
  margin: 2px 14px 12px 28px;
  padding: 2px 0 1px 14px;
  border-left: 2px solid #d4d7da;
}
.admin-body .review-reply {
  min-width: 0;
  padding: 10px 0;
  border-bottom: 1px solid #e4e6e8;
}
.admin-body .review-reply:last-child { border-bottom: 0; }
.admin-body .review-reply-author { display: flex; align-items: center; gap: 6px; color: #3c3f42; font-size: 11px; font-weight: 800; }
.admin-body .review-reply-author .supporter-profile-avatar { width: 21px; height: 21px; font-size: 9px; }
.admin-body .review-reply-body {
  margin: 5px 0 0;
  color: #303234;
  font-size: 12px;
  line-height: 1.7;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}
.admin-body .review-reply-meta { display: block; margin-top: 5px; color: #898d90; font-size: 10px; }
.admin-body .review-reply-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; }
.admin-body .review-reply-form,
.admin-body .review-reply-edit-form {
  display: grid;
  gap: 8px;
  min-width: 0;
  margin: 10px 0 12px;
  padding: 12px;
  border: 1px solid #dfe1e3;
  border-radius: 9px;
  background: #fff;
}
.admin-body .review-reply-form[hidden],
.admin-body .review-reply-edit-form[hidden] { display: none; }
.admin-body .review-reply-form label,
.admin-body .review-reply-edit-form label { color: #4a4d50; font-size: 11px; font-weight: 700; }
.admin-body .review-reply-form textarea,
.admin-body .review-reply-edit-form textarea {
  width: 100%;
  min-height: 78px;
  padding: 9px 10px;
  border: 1px solid #d7d9db;
  border-radius: 8px;
  background: #fff;
  color: #292b2d;
  font: inherit;
  font-size: 12px;
  line-height: 1.6;
  resize: vertical;
}
.admin-body .review-reply-form textarea:focus,
.admin-body .review-reply-edit-form textarea:focus { outline: 2px solid #737679; outline-offset: 1px; }
.admin-body .review-reply-form button,
.admin-body .review-reply-edit-form button {
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid #d7d9db;
  border-radius: 8px;
  background: #fff;
  color: #383a3c;
  font: inherit;
  font-size: 11px;
  font-weight: 700;
  cursor: pointer;
}
.admin-body .review-reply-form button[type="submit"],
.admin-body .review-reply-edit-form button[type="submit"] { border-color: #303234; background: #303234; color: #fff; }
.admin-body .review-reply-form button:hover,
.admin-body .review-reply-edit-form button:hover { filter: brightness(.94); }
@media (max-width: 620px) {
  .admin-body .review-comment-thread { margin-left: 14px; padding-left: 10px; }
}
.admin-body .review-comment-composer {
  position: fixed;
  z-index: 95;
  max-height: calc(100dvh - 24px);
  overflow-y: auto;
  padding: 15px;
  border: 1px solid #dcdedf;
  border-radius: 13px;
  background: #fff;
  box-shadow: 0 16px 46px rgba(0,0,0,.24);
  color: #292b2d;
}
.admin-body .review-comment-label { margin: 0 0 7px; font-size: 12px; font-weight: 800; }
.admin-body .review-comment-composer blockquote { margin: 0 0 12px; padding: 7px 10px; border-left: 3px solid #e0b960; background: #faf7ed; color: #55585b; font-size: 11px; line-height: 1.5; max-height: 70px; overflow-y: auto; }
.admin-body .review-comment-composer label { display: block; margin-bottom: 5px; font-size: 11px; font-weight: 700; }
.admin-body .review-comment-composer textarea { width: 100%; min-height: 82px; padding: 9px; border: 1px solid #d7d9db; border-radius: 8px; color: #292b2d; background: #fff; font: inherit; font-size: 12px; line-height: 1.6; resize: vertical; }
.admin-body .review-comment-composer textarea:focus { outline: 2px solid #737679; outline-offset: 1px; }
.admin-body .review-comment-actions { display: flex; justify-content: flex-end; gap: 7px; margin-top: 10px; }
.admin-body .review-comment-actions .button { min-height: 32px; padding: 6px 10px; font-size: 11px; }
@media (max-width: 900px) {
  .admin-body .review-toolbar { justify-content: flex-end; }
}

/* Supporter profile icons in the note list and supporter management. */
.admin-body .supporter-profile-avatar {
  display: inline-grid;
  place-items: center;
  flex: none;
  width: 30px;
  height: 30px;
  overflow: hidden;
  border: 1px solid #dfe1e3;
  border-radius: 50%;
  background: #eceeef;
  color: #62666a;
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}
.admin-body .supporter-profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.admin-body .assignee-content { display: inline-flex; align-items: center; gap: 8px; min-width: 0; }
.admin-body .assignee-name { min-width: 0; overflow-wrap: anywhere; }
.admin-body .supporter-admin-main { display: flex; align-items: center; gap: 10px; }
.admin-body .supporter-admin-main .supporter-profile-avatar { width: 36px; height: 36px; font-size: 14px; }
.admin-body .supporter-avatar-editor { display: flex; align-items: center; gap: 16px; margin-top: 18px; }
.admin-body .supporter-avatar-preview { width: 70px; height: 70px; font-size: 26px; }
.admin-body .supporter-avatar-controls { display: grid; gap: 5px; min-width: 0; }
.admin-body .supporter-avatar-label { color: #494c4f; font-size: 12px; font-weight: 800; }
.admin-body .supporter-avatar-buttons { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.admin-body .supporter-avatar-buttons .button { min-height: 34px; padding: 6px 11px; font-size: 11px; }
.admin-body .supporter-avatar-buttons [hidden] { display: none; }
.admin-body .supporter-avatar-controls small { color: #85888b; font-size: 10px; }

/* Publication settings stay beside the live status in the header. */
.admin-body .publication-control { position: relative; display: inline-flex; align-items: center; gap: 3px; flex: none; }
.admin-body .publication-menu-toggle { display: grid; place-items: center; width: 28px; height: 34px; padding: 0; border: 0; border-radius: 8px; background: transparent; color: #55585b; font-size: 25px; line-height: 1; cursor: pointer; }
.admin-body .publication-menu-toggle:hover,
.admin-body .publication-menu-toggle[aria-expanded="true"] { background: #f0f1f2; }
.admin-body .publication-menu { position: absolute; z-index: 90; top: calc(100% + 8px); right: 0; min-width: 156px; padding: 5px; border: 1px solid #e0e2e4; border-radius: 10px; background: #fff; box-shadow: 0 12px 32px rgba(0,0,0,.14); }
.admin-body .publication-menu button { display: block; width: 100%; padding: 9px 11px; border: 0; border-radius: 6px; background: transparent; color: #343638; text-align: left; font-size: 12px; font-weight: 700; white-space: nowrap; }
.admin-body .publication-menu button:hover,
.admin-body .publication-menu button:focus-visible { background: #f2f3f4; }

/* Keep the assigned supporter and wedding date compact beneath the couple's names. */
.admin-body .case-meta-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  column-gap: 20px;
  row-gap: 7px;
}
.admin-body .case-meta-supporter,
.admin-body .case-meta-date,
.admin-body .case-meta-venue { display: inline-flex; align-items: center; min-width: 0; }
.admin-body .case-meta-supporter { gap: 7px; }
.admin-body .case-meta-supporter .supporter-profile-avatar {
  width: 22px;
  height: 22px;
  font-size: 10px;
}
