/* dmarcboard app — scheduled reports page (/reports): list of schedules, recipient states, create / edit dialog. Uses tokens.css. */

.rep-list { list-style: none; margin: 0; padding: 0; }
.rep { display: grid; grid-template-columns: 40px minmax(0, 1fr) auto; gap: 12px 16px; align-items: start; padding: 18px 24px; border-bottom: 1px solid var(--border); }
.rep:last-child { border-bottom: 0; }
.rep.is-paused .rep-main > p { opacity: .75; }
.rep-icon { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 10px; background: var(--brand-50); color: var(--brand); }
.rep-main { min-width: 0; display: flex; flex-direction: column; gap: 6px; }
.rep-main > p { margin: 0; }
.rep-name { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; font-size: 15.5px; }
.rep-name strong { overflow-wrap: anywhere; color: var(--fg); }
.rep-line { display: flex; align-items: flex-start; gap: 8px; font-size: 14px; color: var(--muted-fg); }
.rep-line .i { flex: none; margin-top: 3px; color: var(--subtle-fg); }
.rep-line span { min-width: 0; overflow-wrap: anywhere; }
.rep-rcpts { list-style: none; margin: 2px 0 0 24px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.rep-rcpt { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 10px; font-size: 13.5px; }
.rep-rcpt-mail { font-family: var(--mono); font-size: 12.5px; color: var(--fg); overflow-wrap: anywhere; min-width: 0; }
.rep-meta { display: flex; flex-wrap: wrap; gap: 4px 16px; font-size: 13px; color: var(--subtle-fg); }
.rep-last-pass { color: var(--pass); }
.rep-last-warn { color: var(--warn); }
.rep-last-fail { color: var(--fail); }
.rep-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; }
.rep-actions .btn { white-space: nowrap; }
.rep-side { display: flex; align-items: center; gap: 10px; }
.rep-switch { cursor: pointer; color: var(--muted-fg); }

/* Empty state + explanation */
.rep-uses { list-style: none; margin: 0; padding: 0; display: grid; gap: 8px; text-align: left; max-width: 520px; width: 100%; }
.rep-uses li { display: flex; align-items: flex-start; gap: 8px; color: var(--muted-fg); font-size: 14.5px; }
.rep-uses .i { flex: none; margin-top: 3px; color: var(--pass); }
.rep-about h2 { margin: 0 0 8px; font-size: 16px; }
.rep-about .bullets { margin: 0; }
.rep-about .bullets li + li { margin-top: 6px; }

/* Create / edit dialog */
.dialog:has(.rep-form) { width: min(780px, calc(100vw - 32px)); }
.rep-form { display: flex; flex-direction: column; gap: 22px; }
.rep-form > * + * { margin-top: 0; }
.rep-fieldset { border: 0; margin: 0; padding: 0; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.rep-fieldset > legend { float: left; width: 100%; margin: 0 0 2px; font-size: 15px; }
.rep-fieldset > legend + * { clear: both; }
.rep-fieldset > .muted { margin: -4px 0 0; }
.rep-choices { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rep-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 18px; }
.rep-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.rep-grid > [hidden] { display: none; }
.rep-sub[hidden] { display: none; }
.rep-domlist { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 14px; max-height: 220px; overflow-y: auto; padding: 10px 12px;
  border: 1px solid var(--border-strong); border-radius: var(--r-sm); }
.rep-domlist:focus-visible { outline: none; box-shadow: var(--focus); }
.rep-domlist[aria-invalid="true"] { border-color: var(--fail); }
.rep-dom { display: flex; align-items: center; gap: 8px; font-size: 14px; min-width: 0; cursor: pointer; }
.rep-dom span { overflow-wrap: anywhere; min-width: 0; }
.rep-dom input { flex: none; width: 16px; height: 16px; accent-color: var(--brand); }
.rep-textarea { min-height: 76px; resize: vertical; font-family: var(--mono); font-size: 13.5px; line-height: 1.5; }

@media (max-width: 760px) {
  .rep { grid-template-columns: 40px minmax(0, 1fr); padding: 16px; }
  .rep-side { grid-column: 1 / -1; grid-row: 1; justify-content: flex-end; }
  .rep-icon { grid-row: 2; }
  .rep-main { grid-row: 2; }
  .rep-rcpts { margin-left: 0; }
  .rep-choices, .rep-grid, .rep-grid-3, .rep-domlist { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 420px) {
  .rep { grid-template-columns: minmax(0, 1fr); }
  .rep-icon { display: none; }
  .rep-main { grid-row: 2; }
}
