.app-modal {
  position: fixed;
  inset: 0;
  z-index: 100;
  background: var(--overlay-backdrop);
  display: grid;
  place-items: center;
  padding: 12px;
}
.app-modal-panel {
  width: min(560px, 100%);
  max-height: calc(100dvh - 24px);
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--overlay-panel);
  border: 1px solid var(--overlay-border);
  border-radius: var(--radius-sm);
  box-shadow: var(--overlay-shadow);
  overflow: hidden;
}
.app-modal-panel[data-size="small"] { width: min(420px, 100%); }
.app-modal-panel[data-size="wide"] { width: min(920px, 100%); }
.app-modal-header, .app-modal-footer {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  flex: 0 0 auto;
}
.app-modal-header { border-bottom: 1px solid var(--overlay-border); }
.app-modal-header h2 { font-size: 16px; margin: 0; flex: 1; }
.app-modal-footer { border-top: 1px solid var(--overlay-border); justify-content: flex-end; }
.app-modal-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 16px; }
.app-modal .board-picker-list { max-height: none; overflow: visible; }
.app-modal .board-add-list { max-height: none; }
.app-modal .board-picker-controls { margin-bottom: 12px; }
.app-modal.hidden { display: none; }
